@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
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+
3
+
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all) __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true
12
+ });
13
+ };
14
+ var __copyProps = (to, from, except, desc) => {
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
17
+ get: () => from[key],
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
21
+ return to;
22
+ };
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var useTypeahead_exports = {};
25
+ __export(useTypeahead_exports, { useTypeahead: () => useTypeahead });
26
+ module.exports = __toCommonJS(useTypeahead_exports);
27
+ var import_react = require("react");
28
+ var import_use_event = require("@tamagui/use-event");
29
+ var import_utils = require("./utils.native.js");
30
+ function useTypeahead(context, props) {
31
+ var { open, dataRef } = context;
32
+ var { listRef, activeIndex, onMatch: unstable_onMatch, onTypingChange: unstable_onTypingChange, enabled = true, findMatch = null, resetMs = 750, ignoreKeys = [], selectedIndex = null } = props;
33
+ var timeoutIdRef = (0, import_react.useRef)(-1);
34
+ var stringRef = (0, import_react.useRef)("");
35
+ var _ref;
36
+ var prevIndexRef = (0, import_react.useRef)((_ref = selectedIndex !== null && selectedIndex !== void 0 ? selectedIndex : activeIndex) !== null && _ref !== void 0 ? _ref : -1);
37
+ var matchIndexRef = (0, import_react.useRef)(null);
38
+ var onMatch = (0, import_use_event.useEvent)(unstable_onMatch || function() {});
39
+ var onTypingChange = (0, import_use_event.useEvent)(unstable_onTypingChange || function() {});
40
+ var findMatchRef = (0, import_react.useRef)(findMatch);
41
+ findMatchRef.current = findMatch;
42
+ var ignoreKeysRef = (0, import_react.useRef)(ignoreKeys);
43
+ ignoreKeysRef.current = ignoreKeys;
44
+ (0, import_react.useLayoutEffect)(function() {
45
+ if (open) {
46
+ (0, import_utils.clearTimeoutIfSet)(timeoutIdRef);
47
+ matchIndexRef.current = null;
48
+ stringRef.current = "";
49
+ }
50
+ }, [open]);
51
+ (0, import_react.useLayoutEffect)(function() {
52
+ if (open && stringRef.current === "") {
53
+ var _ref2;
54
+ prevIndexRef.current = (_ref2 = selectedIndex !== null && selectedIndex !== void 0 ? selectedIndex : activeIndex) !== null && _ref2 !== void 0 ? _ref2 : -1;
55
+ }
56
+ }, [
57
+ open,
58
+ selectedIndex,
59
+ activeIndex
60
+ ]);
61
+ var setTypingChange = function(value) {
62
+ if (value) {
63
+ if (!dataRef.current.typing) {
64
+ dataRef.current.typing = value;
65
+ onTypingChange(value);
66
+ }
67
+ } else {
68
+ if (dataRef.current.typing) {
69
+ dataRef.current.typing = value;
70
+ onTypingChange(value);
71
+ }
72
+ }
73
+ };
74
+ var onKeyDown = function(event) {
75
+ function getMatchingIndex(list, orderedList, string) {
76
+ var str = findMatchRef.current ? findMatchRef.current(orderedList, string) : orderedList.find(function(text) {
77
+ return (text === null || text === void 0 ? void 0 : text.toLocaleLowerCase().indexOf(string.toLocaleLowerCase())) === 0;
78
+ });
79
+ return str ? list.indexOf(str) : -1;
80
+ }
81
+ var listContent = listRef.current;
82
+ if (stringRef.current.length > 0 && stringRef.current[0] !== " ") {
83
+ if (getMatchingIndex(listContent, listContent, stringRef.current) === -1) {
84
+ setTypingChange(false);
85
+ } else if (event.key === " ") {
86
+ (0, import_utils.stopEvent)(event);
87
+ }
88
+ }
89
+ if (listContent == null || ignoreKeysRef.current.includes(event.key) || event.key.length !== 1 || event.ctrlKey || event.metaKey || event.altKey) {
90
+ return;
91
+ }
92
+ if (open && event.key !== " ") {
93
+ (0, import_utils.stopEvent)(event);
94
+ setTypingChange(true);
95
+ }
96
+ var allowRapidSuccessionOfFirstLetter = listContent.every(function(text) {
97
+ var _text_, _text_1;
98
+ 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()) : true;
99
+ });
100
+ if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) {
101
+ stringRef.current = "";
102
+ prevIndexRef.current = matchIndexRef.current;
103
+ }
104
+ stringRef.current += event.key;
105
+ (0, import_utils.clearTimeoutIfSet)(timeoutIdRef);
106
+ timeoutIdRef.current = window.setTimeout(function() {
107
+ stringRef.current = "";
108
+ prevIndexRef.current = matchIndexRef.current;
109
+ setTypingChange(false);
110
+ }, resetMs);
111
+ var prevIndex = prevIndexRef.current;
112
+ var index = getMatchingIndex(listContent, [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)], stringRef.current);
113
+ if (index !== -1) {
114
+ onMatch(index);
115
+ matchIndexRef.current = index;
116
+ } else if (event.key !== " ") {
117
+ stringRef.current = "";
118
+ setTypingChange(false);
119
+ }
120
+ };
121
+ var reference = (0, import_react.useMemo)(function() {
122
+ return { onKeyDown };
123
+ }, [open, enabled]);
124
+ var floating = (0, import_react.useMemo)(function() {
125
+ return {
126
+ onKeyDown,
127
+ onKeyUp(event) {
128
+ if (event.key === " ") {
129
+ setTypingChange(false);
130
+ }
131
+ }
132
+ };
133
+ }, [open, enabled]);
134
+ return (0, import_react.useMemo)(function() {
135
+ return enabled ? {
136
+ reference,
137
+ floating
138
+ } : {};
139
+ }, [
140
+ enabled,
141
+ reference,
142
+ floating
143
+ ]);
144
+ }
@@ -1,159 +1,146 @@
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 useTypeahead_exports = {};
26
- __export(useTypeahead_exports, {
27
- useTypeahead: () => useTypeahead
28
- });
25
+ __export(useTypeahead_exports, { useTypeahead: () => useTypeahead });
29
26
  module.exports = __toCommonJS(useTypeahead_exports);
30
27
  var import_react = require("react");
31
28
  var import_use_event = require("@tamagui/use-event");
32
29
  var import_utils = require("./utils.native.js");
33
30
  function useTypeahead(context, props) {
34
- var {
35
- open,
36
- dataRef
37
- } = context;
38
- var {
39
- listRef,
40
- activeIndex,
41
- onMatch: unstable_onMatch,
42
- onTypingChange: unstable_onTypingChange,
43
- enabled = true,
44
- findMatch = null,
45
- resetMs = 750,
46
- ignoreKeys = [],
47
- selectedIndex = null
48
- } = props;
49
- var timeoutIdRef = (0, import_react.useRef)(-1);
50
- var stringRef = (0, import_react.useRef)("");
51
- var _ref;
52
- var prevIndexRef = (0, import_react.useRef)((_ref = selectedIndex !== null && selectedIndex !== void 0 ? selectedIndex : activeIndex) !== null && _ref !== void 0 ? _ref : -1);
53
- var matchIndexRef = (0, import_react.useRef)(null);
54
- var onMatch = (0, import_use_event.useEvent)(unstable_onMatch || function () {});
55
- var onTypingChange = (0, import_use_event.useEvent)(unstable_onTypingChange || function () {});
56
- var findMatchRef = (0, import_react.useRef)(findMatch);
57
- findMatchRef.current = findMatch;
58
- var ignoreKeysRef = (0, import_react.useRef)(ignoreKeys);
59
- ignoreKeysRef.current = ignoreKeys;
60
- (0, import_react.useLayoutEffect)(function () {
61
- if (open) {
62
- (0, import_utils.clearTimeoutIfSet)(timeoutIdRef);
63
- matchIndexRef.current = null;
64
- stringRef.current = "";
65
- }
66
- }, [open]);
67
- (0, import_react.useLayoutEffect)(function () {
68
- if (open && stringRef.current === "") {
69
- var _ref2;
70
- prevIndexRef.current = (_ref2 = selectedIndex !== null && selectedIndex !== void 0 ? selectedIndex : activeIndex) !== null && _ref2 !== void 0 ? _ref2 : -1;
71
- }
72
- }, [open, selectedIndex, activeIndex]);
73
- var setTypingChange = function (value) {
74
- if (value) {
75
- if (!dataRef.current.typing) {
76
- dataRef.current.typing = value;
77
- onTypingChange(value);
78
- }
79
- } else {
80
- if (dataRef.current.typing) {
81
- dataRef.current.typing = value;
82
- onTypingChange(value);
83
- }
84
- }
85
- };
86
- var onKeyDown = function (event) {
87
- function getMatchingIndex(list, orderedList, string) {
88
- var str = findMatchRef.current ? findMatchRef.current(orderedList, string) : orderedList.find(function (text) {
89
- return (text === null || text === void 0 ? void 0 : text.toLocaleLowerCase().indexOf(string.toLocaleLowerCase())) === 0;
90
- });
91
- return str ? list.indexOf(str) : -1;
92
- }
93
- var listContent = listRef.current;
94
- if (stringRef.current.length > 0 && stringRef.current[0] !== " ") {
95
- if (getMatchingIndex(listContent, listContent, stringRef.current) === -1) {
96
- setTypingChange(false);
97
- } else if (event.key === " ") {
98
- (0, import_utils.stopEvent)(event);
99
- }
100
- }
101
- if (listContent == null || ignoreKeysRef.current.includes(event.key) ||
102
- // character key
103
- event.key.length !== 1 ||
104
- // modifier key
105
- event.ctrlKey || event.metaKey || event.altKey) {
106
- return;
107
- }
108
- if (open && event.key !== " ") {
109
- (0, import_utils.stopEvent)(event);
110
- setTypingChange(true);
111
- }
112
- var allowRapidSuccessionOfFirstLetter = listContent.every(function (text) {
113
- var _text_, _text_1;
114
- 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()) : true;
115
- });
116
- if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) {
117
- stringRef.current = "";
118
- prevIndexRef.current = matchIndexRef.current;
119
- }
120
- stringRef.current += event.key;
121
- (0, import_utils.clearTimeoutIfSet)(timeoutIdRef);
122
- timeoutIdRef.current = window.setTimeout(function () {
123
- stringRef.current = "";
124
- prevIndexRef.current = matchIndexRef.current;
125
- setTypingChange(false);
126
- }, resetMs);
127
- var prevIndex = prevIndexRef.current;
128
- var index = getMatchingIndex(listContent, [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)], stringRef.current);
129
- if (index !== -1) {
130
- onMatch(index);
131
- matchIndexRef.current = index;
132
- } else if (event.key !== " ") {
133
- stringRef.current = "";
134
- setTypingChange(false);
135
- }
136
- };
137
- var reference = (0, import_react.useMemo)(function () {
138
- return {
139
- onKeyDown
140
- };
141
- }, [open, enabled]);
142
- var floating = (0, import_react.useMemo)(function () {
143
- return {
144
- onKeyDown,
145
- onKeyUp(event) {
146
- if (event.key === " ") {
147
- setTypingChange(false);
148
- }
149
- }
150
- };
151
- }, [open, enabled]);
152
- return (0, import_react.useMemo)(function () {
153
- return enabled ? {
154
- reference,
155
- floating
156
- } : {};
157
- }, [enabled, reference, floating]);
31
+ var { open, dataRef } = context;
32
+ var { listRef, activeIndex, onMatch: unstable_onMatch, onTypingChange: unstable_onTypingChange, enabled = true, findMatch = null, resetMs = 750, ignoreKeys = [], selectedIndex = null } = props;
33
+ var timeoutIdRef = (0, import_react.useRef)(-1);
34
+ var stringRef = (0, import_react.useRef)("");
35
+ var _ref;
36
+ var prevIndexRef = (0, import_react.useRef)((_ref = selectedIndex !== null && selectedIndex !== void 0 ? selectedIndex : activeIndex) !== null && _ref !== void 0 ? _ref : -1);
37
+ var matchIndexRef = (0, import_react.useRef)(null);
38
+ var onMatch = (0, import_use_event.useEvent)(unstable_onMatch || function() {});
39
+ var onTypingChange = (0, import_use_event.useEvent)(unstable_onTypingChange || function() {});
40
+ var findMatchRef = (0, import_react.useRef)(findMatch);
41
+ findMatchRef.current = findMatch;
42
+ var ignoreKeysRef = (0, import_react.useRef)(ignoreKeys);
43
+ ignoreKeysRef.current = ignoreKeys;
44
+ (0, import_react.useLayoutEffect)(function() {
45
+ if (open) {
46
+ (0, import_utils.clearTimeoutIfSet)(timeoutIdRef);
47
+ matchIndexRef.current = null;
48
+ stringRef.current = "";
49
+ }
50
+ }, [open]);
51
+ (0, import_react.useLayoutEffect)(function() {
52
+ if (open && stringRef.current === "") {
53
+ var _ref2;
54
+ prevIndexRef.current = (_ref2 = selectedIndex !== null && selectedIndex !== void 0 ? selectedIndex : activeIndex) !== null && _ref2 !== void 0 ? _ref2 : -1;
55
+ }
56
+ }, [
57
+ open,
58
+ selectedIndex,
59
+ activeIndex
60
+ ]);
61
+ var setTypingChange = function(value) {
62
+ if (value) {
63
+ if (!dataRef.current.typing) {
64
+ dataRef.current.typing = value;
65
+ onTypingChange(value);
66
+ }
67
+ } else {
68
+ if (dataRef.current.typing) {
69
+ dataRef.current.typing = value;
70
+ onTypingChange(value);
71
+ }
72
+ }
73
+ };
74
+ var onKeyDown = function(event) {
75
+ function getMatchingIndex(list, orderedList, string) {
76
+ var str = findMatchRef.current ? findMatchRef.current(orderedList, string) : orderedList.find(function(text) {
77
+ return (text === null || text === void 0 ? void 0 : text.toLocaleLowerCase().indexOf(string.toLocaleLowerCase())) === 0;
78
+ });
79
+ return str ? list.indexOf(str) : -1;
80
+ }
81
+ var listContent = listRef.current;
82
+ if (stringRef.current.length > 0 && stringRef.current[0] !== " ") {
83
+ if (getMatchingIndex(listContent, listContent, stringRef.current) === -1) {
84
+ setTypingChange(false);
85
+ } else if (event.key === " ") {
86
+ (0, import_utils.stopEvent)(event);
87
+ }
88
+ }
89
+ if (listContent == null || ignoreKeysRef.current.includes(event.key) || event.key.length !== 1 || event.ctrlKey || event.metaKey || event.altKey) {
90
+ return;
91
+ }
92
+ if (open && event.key !== " ") {
93
+ (0, import_utils.stopEvent)(event);
94
+ setTypingChange(true);
95
+ }
96
+ var allowRapidSuccessionOfFirstLetter = listContent.every(function(text) {
97
+ var _text_, _text_1;
98
+ 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()) : true;
99
+ });
100
+ if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) {
101
+ stringRef.current = "";
102
+ prevIndexRef.current = matchIndexRef.current;
103
+ }
104
+ stringRef.current += event.key;
105
+ (0, import_utils.clearTimeoutIfSet)(timeoutIdRef);
106
+ timeoutIdRef.current = window.setTimeout(function() {
107
+ stringRef.current = "";
108
+ prevIndexRef.current = matchIndexRef.current;
109
+ setTypingChange(false);
110
+ }, resetMs);
111
+ var prevIndex = prevIndexRef.current;
112
+ var index = getMatchingIndex(listContent, [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)], stringRef.current);
113
+ if (index !== -1) {
114
+ onMatch(index);
115
+ matchIndexRef.current = index;
116
+ } else if (event.key !== " ") {
117
+ stringRef.current = "";
118
+ setTypingChange(false);
119
+ }
120
+ };
121
+ var reference = (0, import_react.useMemo)(function() {
122
+ return { onKeyDown };
123
+ }, [open, enabled]);
124
+ var floating = (0, import_react.useMemo)(function() {
125
+ return {
126
+ onKeyDown,
127
+ onKeyUp(event) {
128
+ if (event.key === " ") {
129
+ setTypingChange(false);
130
+ }
131
+ }
132
+ };
133
+ }, [open, enabled]);
134
+ return (0, import_react.useMemo)(function() {
135
+ return enabled ? {
136
+ reference,
137
+ floating
138
+ } : {};
139
+ }, [
140
+ enabled,
141
+ reference,
142
+ floating
143
+ ]);
158
144
  }
145
+
159
146
  //# sourceMappingURL=useTypeahead.native.js.map
@@ -1 +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":[]}
1
+ {"version":3,"file":"useTypeahead.native.js","names":[],"sources":["cjs/interactions/useTypeahead.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 useTypeahead_exports = {};\n__export(useTypeahead_exports, {\n useTypeahead: () => useTypeahead\n});\nmodule.exports = __toCommonJS(useTypeahead_exports);\nvar import_react = require(\"react\");\nvar import_use_event = require(\"@tamagui/use-event\");\nvar import_utils = require(\"./utils\");\nfunction useTypeahead(context, props) {\n var { open, dataRef } = context;\n var { listRef, activeIndex, onMatch: unstable_onMatch, onTypingChange: unstable_onTypingChange, enabled = true, findMatch = null, resetMs = 750, ignoreKeys = [], selectedIndex = null } = props;\n var timeoutIdRef = (0, import_react.useRef)(-1);\n var stringRef = (0, import_react.useRef)(\"\");\n var _ref;\n var prevIndexRef = (0, import_react.useRef)((_ref = selectedIndex !== null && selectedIndex !== void 0 ? selectedIndex : activeIndex) !== null && _ref !== void 0 ? _ref : -1);\n var matchIndexRef = (0, import_react.useRef)(null);\n var onMatch = (0, import_use_event.useEvent)(unstable_onMatch || function() {\n });\n var onTypingChange = (0, import_use_event.useEvent)(unstable_onTypingChange || function() {\n });\n var findMatchRef = (0, import_react.useRef)(findMatch);\n findMatchRef.current = findMatch;\n var ignoreKeysRef = (0, import_react.useRef)(ignoreKeys);\n ignoreKeysRef.current = ignoreKeys;\n (0, import_react.useLayoutEffect)(function() {\n if (open) {\n (0, import_utils.clearTimeoutIfSet)(timeoutIdRef);\n matchIndexRef.current = null;\n stringRef.current = \"\";\n }\n }, [\n open\n ]);\n (0, import_react.useLayoutEffect)(function() {\n if (open && stringRef.current === \"\") {\n var _ref2;\n prevIndexRef.current = (_ref2 = selectedIndex !== null && selectedIndex !== void 0 ? selectedIndex : activeIndex) !== null && _ref2 !== void 0 ? _ref2 : -1;\n }\n }, [\n open,\n selectedIndex,\n activeIndex\n ]);\n var setTypingChange = function(value) {\n if (value) {\n if (!dataRef.current.typing) {\n dataRef.current.typing = value;\n onTypingChange(value);\n }\n } else {\n if (dataRef.current.typing) {\n dataRef.current.typing = value;\n onTypingChange(value);\n }\n }\n };\n var onKeyDown = function(event) {\n function getMatchingIndex(list, orderedList, string) {\n var str = findMatchRef.current ? findMatchRef.current(orderedList, string) : orderedList.find(function(text) {\n return (text === null || text === void 0 ? void 0 : text.toLocaleLowerCase().indexOf(string.toLocaleLowerCase())) === 0;\n });\n return str ? list.indexOf(str) : -1;\n }\n var listContent = listRef.current;\n if (stringRef.current.length > 0 && stringRef.current[0] !== \" \") {\n if (getMatchingIndex(listContent, listContent, stringRef.current) === -1) {\n setTypingChange(false);\n } else if (event.key === \" \") {\n (0, import_utils.stopEvent)(event);\n }\n }\n if (listContent == null || ignoreKeysRef.current.includes(event.key) || // character key\n event.key.length !== 1 || // modifier key\n event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n if (open && event.key !== \" \") {\n (0, import_utils.stopEvent)(event);\n setTypingChange(true);\n }\n var allowRapidSuccessionOfFirstLetter = listContent.every(function(text) {\n var _text_, _text_1;\n 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()) : true;\n });\n if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) {\n stringRef.current = \"\";\n prevIndexRef.current = matchIndexRef.current;\n }\n stringRef.current += event.key;\n (0, import_utils.clearTimeoutIfSet)(timeoutIdRef);\n timeoutIdRef.current = window.setTimeout(function() {\n stringRef.current = \"\";\n prevIndexRef.current = matchIndexRef.current;\n setTypingChange(false);\n }, resetMs);\n var prevIndex = prevIndexRef.current;\n var index = getMatchingIndex(listContent, [\n ...listContent.slice((prevIndex || 0) + 1),\n ...listContent.slice(0, (prevIndex || 0) + 1)\n ], stringRef.current);\n if (index !== -1) {\n onMatch(index);\n matchIndexRef.current = index;\n } else if (event.key !== \" \") {\n stringRef.current = \"\";\n setTypingChange(false);\n }\n };\n var reference = (0, import_react.useMemo)(function() {\n return {\n onKeyDown\n };\n }, [\n open,\n enabled\n ]);\n var floating = (0, import_react.useMemo)(function() {\n return {\n onKeyDown,\n onKeyUp(event) {\n if (event.key === \" \") {\n setTypingChange(false);\n }\n }\n };\n }, [\n open,\n enabled\n ]);\n return (0, import_react.useMemo)(function() {\n return enabled ? {\n reference,\n floating\n } : {};\n }, [\n enabled,\n reference,\n floating\n ]);\n}\n//# sourceMappingURL=useTypeahead.js.map\n"],"mappings":";;;;AACA,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,uBAAuB,CAAC;AAC5B,SAAS,sBAAsB,EAC7B,oBAAoB,aACtB,CAAC;AACD,OAAO,UAAU,aAAa,oBAAoB;AAClD,IAAI,eAAe,QAAQ,OAAO;AAClC,IAAI,mBAAmB,QAAQ,oBAAoB;AACnD,IAAI,eAAe,QAAQ,mBAAS;AACpC,SAAS,aAAa,SAAS,OAAO;CACpC,IAAI,EAAE,MAAM,YAAY;CACxB,IAAI,EAAE,SAAS,aAAa,SAAS,kBAAkB,gBAAgB,yBAAyB,UAAU,MAAM,YAAY,MAAM,UAAU,KAAK,aAAa,CAAC,GAAG,gBAAgB,SAAS;CAC3L,IAAI,gBAAgB,GAAG,aAAa,QAAQ,CAAC,CAAC;CAC9C,IAAI,aAAa,GAAG,aAAa,QAAQ,EAAE;CAC3C,IAAI;CACJ,IAAI,gBAAgB,GAAG,aAAa,SAAS,OAAO,kBAAkB,QAAQ,kBAAkB,KAAK,IAAI,gBAAgB,iBAAiB,QAAQ,SAAS,KAAK,IAAI,OAAO,CAAC,CAAC;CAC7K,IAAI,iBAAiB,GAAG,aAAa,QAAQ,IAAI;CACjD,IAAI,WAAW,GAAG,iBAAiB,UAAU,oBAAoB,WAAW,CAC5E,CAAC;CACD,IAAI,kBAAkB,GAAG,iBAAiB,UAAU,2BAA2B,WAAW,CAC1F,CAAC;CACD,IAAI,gBAAgB,GAAG,aAAa,QAAQ,SAAS;CACrD,aAAa,UAAU;CACvB,IAAI,iBAAiB,GAAG,aAAa,QAAQ,UAAU;CACvD,cAAc,UAAU;CACxB,CAAC,GAAG,aAAa,iBAAiB,WAAW;EAC3C,IAAI,MAAM;GACR,CAAC,GAAG,aAAa,mBAAmB,YAAY;GAChD,cAAc,UAAU;GACxB,UAAU,UAAU;EACtB;CACF,GAAG,CACD,IACF,CAAC;CACD,CAAC,GAAG,aAAa,iBAAiB,WAAW;EAC3C,IAAI,QAAQ,UAAU,YAAY,IAAI;GACpC,IAAI;GACJ,aAAa,WAAW,QAAQ,kBAAkB,QAAQ,kBAAkB,KAAK,IAAI,gBAAgB,iBAAiB,QAAQ,UAAU,KAAK,IAAI,QAAQ,CAAC;EAC5J;CACF,GAAG;EACD;EACA;EACA;CACF,CAAC;CACD,IAAI,kBAAkB,SAAS,OAAO;EACpC,IAAI,OAAO;GACT,IAAI,CAAC,QAAQ,QAAQ,QAAQ;IAC3B,QAAQ,QAAQ,SAAS;IACzB,eAAe,KAAK;GACtB;EACF,OAAO;GACL,IAAI,QAAQ,QAAQ,QAAQ;IAC1B,QAAQ,QAAQ,SAAS;IACzB,eAAe,KAAK;GACtB;EACF;CACF;CACA,IAAI,YAAY,SAAS,OAAO;EAC9B,SAAS,iBAAiB,MAAM,aAAa,QAAQ;GACnD,IAAI,MAAM,aAAa,UAAU,aAAa,QAAQ,aAAa,MAAM,IAAI,YAAY,KAAK,SAAS,MAAM;IAC3G,QAAQ,SAAS,QAAQ,SAAS,KAAK,IAAI,KAAK,IAAI,KAAK,kBAAkB,EAAE,QAAQ,OAAO,kBAAkB,CAAC,OAAO;GACxH,CAAC;GACD,OAAO,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC;EACpC;EACA,IAAI,cAAc,QAAQ;EAC1B,IAAI,UAAU,QAAQ,SAAS,KAAK,UAAU,QAAQ,OAAO,KAAK;GAChE,IAAI,iBAAiB,aAAa,aAAa,UAAU,OAAO,MAAM,CAAC,GAAG;IACxE,gBAAgB,KAAK;GACvB,OAAO,IAAI,MAAM,QAAQ,KAAK;IAC5B,CAAC,GAAG,aAAa,WAAW,KAAK;GACnC;EACF;EACA,IAAI,eAAe,QAAQ,cAAc,QAAQ,SAAS,MAAM,GAAG,KACnE,MAAM,IAAI,WAAW,KACrB,MAAM,WAAW,MAAM,WAAW,MAAM,QAAQ;GAC9C;EACF;EACA,IAAI,QAAQ,MAAM,QAAQ,KAAK;GAC7B,CAAC,GAAG,aAAa,WAAW,KAAK;GACjC,gBAAgB,IAAI;EACtB;EACA,IAAI,oCAAoC,YAAY,MAAM,SAAS,MAAM;GACvE,IAAI,QAAQ;GACZ,OAAO,SAAS,SAAS,KAAK,QAAQ,QAAQ,WAAW,KAAK,IAAI,KAAK,IAAI,OAAO,kBAAkB,SAAS,UAAU,KAAK,QAAQ,QAAQ,YAAY,KAAK,IAAI,KAAK,IAAI,QAAQ,kBAAkB,KAAK;EAC3M,CAAC;EACD,IAAI,qCAAqC,UAAU,YAAY,MAAM,KAAK;GACxE,UAAU,UAAU;GACpB,aAAa,UAAU,cAAc;EACvC;EACA,UAAU,WAAW,MAAM;EAC3B,CAAC,GAAG,aAAa,mBAAmB,YAAY;EAChD,aAAa,UAAU,OAAO,WAAW,WAAW;GAClD,UAAU,UAAU;GACpB,aAAa,UAAU,cAAc;GACrC,gBAAgB,KAAK;EACvB,GAAG,OAAO;EACV,IAAI,YAAY,aAAa;EAC7B,IAAI,QAAQ,iBAAiB,aAAa,CACxC,GAAG,YAAY,OAAO,aAAa,KAAK,CAAC,GACzC,GAAG,YAAY,MAAM,IAAI,aAAa,KAAK,CAAC,CAC9C,GAAG,UAAU,OAAO;EACpB,IAAI,UAAU,CAAC,GAAG;GAChB,QAAQ,KAAK;GACb,cAAc,UAAU;EAC1B,OAAO,IAAI,MAAM,QAAQ,KAAK;GAC5B,UAAU,UAAU;GACpB,gBAAgB,KAAK;EACvB;CACF;CACA,IAAI,aAAa,GAAG,aAAa,SAAS,WAAW;EACnD,OAAO,EACL,UACF;CACF,GAAG,CACD,MACA,OACF,CAAC;CACD,IAAI,YAAY,GAAG,aAAa,SAAS,WAAW;EAClD,OAAO;GACL;GACA,QAAQ,OAAO;IACb,IAAI,MAAM,QAAQ,KAAK;KACrB,gBAAgB,KAAK;IACvB;GACF;EACF;CACF,GAAG,CACD,MACA,OACF,CAAC;CACD,QAAQ,GAAG,aAAa,SAAS,WAAW;EAC1C,OAAO,UAAU;GACf;GACA;EACF,IAAI,CAAC;CACP,GAAG;EACD;EACA;EACA;CACF,CAAC;AACH"}