@tamagui/select 2.7.7 → 3.0.0-beta.643.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 (248) hide show
  1. package/dist/cjs/Select.cjs +409 -467
  2. package/dist/cjs/Select.native.cjs +495 -0
  3. package/dist/cjs/Select.native.js +445 -492
  4. package/dist/cjs/Select.native.js.map +1 -1
  5. package/dist/cjs/SelectContent.cjs +80 -79
  6. package/dist/cjs/SelectContent.native.cjs +30 -0
  7. package/dist/cjs/SelectContent.native.js +18 -22
  8. package/dist/cjs/SelectContent.native.js.map +1 -1
  9. package/dist/cjs/SelectImpl.cjs +299 -319
  10. package/dist/cjs/SelectImpl.native.cjs +30 -0
  11. package/dist/cjs/SelectImpl.native.js +17 -24
  12. package/dist/cjs/SelectImpl.native.js.map +1 -1
  13. package/dist/cjs/SelectItem.cjs +268 -205
  14. package/dist/cjs/SelectItem.native.cjs +317 -0
  15. package/dist/cjs/SelectItem.native.js +291 -211
  16. package/dist/cjs/SelectItem.native.js.map +1 -1
  17. package/dist/cjs/SelectItemText.cjs +49 -79
  18. package/dist/cjs/SelectItemText.native.cjs +74 -0
  19. package/dist/cjs/SelectItemText.native.js +50 -79
  20. package/dist/cjs/SelectItemText.native.js.map +1 -1
  21. package/dist/cjs/SelectScrollButton.cjs +111 -130
  22. package/dist/cjs/SelectScrollButton.native.cjs +38 -0
  23. package/dist/cjs/SelectScrollButton.native.js +25 -22
  24. package/dist/cjs/SelectScrollButton.native.js.map +1 -1
  25. package/dist/cjs/SelectTrigger.cjs +69 -84
  26. package/dist/cjs/SelectTrigger.native.cjs +91 -0
  27. package/dist/cjs/SelectTrigger.native.js +71 -66
  28. package/dist/cjs/SelectTrigger.native.js.map +1 -1
  29. package/dist/cjs/SelectViewport.cjs +119 -142
  30. package/dist/cjs/SelectViewport.native.cjs +73 -0
  31. package/dist/cjs/SelectViewport.native.js +54 -50
  32. package/dist/cjs/SelectViewport.native.js.map +1 -1
  33. package/dist/cjs/constants.cjs +21 -22
  34. package/dist/cjs/constants.native.cjs +41 -0
  35. package/dist/cjs/constants.native.js +21 -21
  36. package/dist/cjs/constants.native.js.map +1 -1
  37. package/dist/cjs/context.cjs +38 -48
  38. package/dist/cjs/context.native.cjs +58 -0
  39. package/dist/cjs/context.native.js +40 -49
  40. package/dist/cjs/context.native.js.map +1 -1
  41. package/dist/cjs/index.cjs +15 -11
  42. package/dist/cjs/index.native.cjs +27 -0
  43. package/dist/cjs/index.native.js +15 -10
  44. package/dist/cjs/index.native.js.map +1 -1
  45. package/dist/cjs/selectionController.cjs +334 -0
  46. package/dist/cjs/selectionController.native.cjs +403 -0
  47. package/dist/cjs/selectionController.native.js +405 -0
  48. package/dist/cjs/selectionController.native.js.map +1 -0
  49. package/dist/cjs/types.cjs +10 -11
  50. package/dist/cjs/types.native.cjs +19 -0
  51. package/dist/cjs/types.native.js +10 -10
  52. package/dist/cjs/types.native.js.map +1 -1
  53. package/dist/esm/Select.mjs +382 -443
  54. package/dist/esm/Select.mjs.map +1 -1
  55. package/dist/esm/Select.native.js +418 -469
  56. package/dist/esm/Select.native.js.map +1 -1
  57. package/dist/esm/SelectContent.mjs +67 -61
  58. package/dist/esm/SelectContent.mjs.map +1 -1
  59. package/dist/esm/SelectContent.native.js +4 -5
  60. package/dist/esm/SelectContent.native.js.map +1 -1
  61. package/dist/esm/SelectImpl.mjs +284 -294
  62. package/dist/esm/SelectImpl.mjs.map +1 -1
  63. package/dist/esm/SelectImpl.native.js +5 -8
  64. package/dist/esm/SelectImpl.native.js.map +1 -1
  65. package/dist/esm/SelectItem.mjs +252 -182
  66. package/dist/esm/SelectItem.mjs.map +1 -1
  67. package/dist/esm/SelectItem.native.js +276 -190
  68. package/dist/esm/SelectItem.native.js.map +1 -1
  69. package/dist/esm/SelectItemText.mjs +33 -55
  70. package/dist/esm/SelectItemText.mjs.map +1 -1
  71. package/dist/esm/SelectItemText.native.js +34 -56
  72. package/dist/esm/SelectItemText.native.js.map +1 -1
  73. package/dist/esm/SelectScrollButton.mjs +95 -107
  74. package/dist/esm/SelectScrollButton.mjs.map +1 -1
  75. package/dist/esm/SelectScrollButton.native.js +11 -7
  76. package/dist/esm/SelectScrollButton.native.js.map +1 -1
  77. package/dist/esm/SelectTrigger.mjs +56 -58
  78. package/dist/esm/SelectTrigger.mjs.map +1 -1
  79. package/dist/esm/SelectTrigger.native.js +54 -44
  80. package/dist/esm/SelectTrigger.native.js.map +1 -1
  81. package/dist/esm/SelectViewport.mjs +104 -119
  82. package/dist/esm/SelectViewport.mjs.map +1 -1
  83. package/dist/esm/SelectViewport.native.js +44 -39
  84. package/dist/esm/SelectViewport.native.js.map +1 -1
  85. package/dist/esm/constants.mjs +1 -0
  86. package/dist/esm/constants.mjs.map +1 -1
  87. package/dist/esm/constants.native.js +1 -0
  88. package/dist/esm/constants.native.js.map +1 -1
  89. package/dist/esm/context.mjs +20 -28
  90. package/dist/esm/context.mjs.map +1 -1
  91. package/dist/esm/context.native.js +23 -31
  92. package/dist/esm/context.native.js.map +1 -1
  93. package/dist/esm/index.js +13 -3
  94. package/dist/esm/index.mjs +13 -3
  95. package/dist/esm/index.native.js +13 -3
  96. package/dist/esm/selectionController.mjs +305 -0
  97. package/dist/esm/selectionController.mjs.map +1 -0
  98. package/dist/esm/selectionController.native.js +372 -0
  99. package/dist/esm/selectionController.native.js.map +1 -0
  100. package/dist/esm/types.mjs +0 -2
  101. package/dist/esm/types.native.js +0 -2
  102. package/dist/jsx/Select.mjs +382 -443
  103. package/dist/jsx/Select.mjs.map +1 -1
  104. package/dist/jsx/Select.native.cjs +495 -0
  105. package/dist/jsx/Select.native.js +445 -492
  106. package/dist/jsx/Select.native.js.map +1 -1
  107. package/dist/jsx/SelectContent.mjs +67 -61
  108. package/dist/jsx/SelectContent.mjs.map +1 -1
  109. package/dist/jsx/SelectContent.native.cjs +30 -0
  110. package/dist/jsx/SelectContent.native.js +18 -22
  111. package/dist/jsx/SelectContent.native.js.map +1 -1
  112. package/dist/jsx/SelectImpl.mjs +284 -294
  113. package/dist/jsx/SelectImpl.mjs.map +1 -1
  114. package/dist/jsx/SelectImpl.native.cjs +30 -0
  115. package/dist/jsx/SelectImpl.native.js +17 -24
  116. package/dist/jsx/SelectImpl.native.js.map +1 -1
  117. package/dist/jsx/SelectItem.mjs +252 -182
  118. package/dist/jsx/SelectItem.mjs.map +1 -1
  119. package/dist/jsx/SelectItem.native.cjs +317 -0
  120. package/dist/jsx/SelectItem.native.js +291 -211
  121. package/dist/jsx/SelectItem.native.js.map +1 -1
  122. package/dist/jsx/SelectItemText.mjs +33 -55
  123. package/dist/jsx/SelectItemText.mjs.map +1 -1
  124. package/dist/jsx/SelectItemText.native.cjs +74 -0
  125. package/dist/jsx/SelectItemText.native.js +50 -79
  126. package/dist/jsx/SelectItemText.native.js.map +1 -1
  127. package/dist/jsx/SelectScrollButton.mjs +95 -107
  128. package/dist/jsx/SelectScrollButton.mjs.map +1 -1
  129. package/dist/jsx/SelectScrollButton.native.cjs +38 -0
  130. package/dist/jsx/SelectScrollButton.native.js +25 -22
  131. package/dist/jsx/SelectScrollButton.native.js.map +1 -1
  132. package/dist/jsx/SelectTrigger.mjs +56 -58
  133. package/dist/jsx/SelectTrigger.mjs.map +1 -1
  134. package/dist/jsx/SelectTrigger.native.cjs +91 -0
  135. package/dist/jsx/SelectTrigger.native.js +71 -66
  136. package/dist/jsx/SelectTrigger.native.js.map +1 -1
  137. package/dist/jsx/SelectViewport.mjs +104 -119
  138. package/dist/jsx/SelectViewport.mjs.map +1 -1
  139. package/dist/jsx/SelectViewport.native.cjs +73 -0
  140. package/dist/jsx/SelectViewport.native.js +54 -50
  141. package/dist/jsx/SelectViewport.native.js.map +1 -1
  142. package/dist/jsx/constants.mjs +1 -0
  143. package/dist/jsx/constants.mjs.map +1 -1
  144. package/dist/jsx/constants.native.cjs +41 -0
  145. package/dist/jsx/constants.native.js +21 -21
  146. package/dist/jsx/constants.native.js.map +1 -1
  147. package/dist/jsx/context.mjs +20 -28
  148. package/dist/jsx/context.mjs.map +1 -1
  149. package/dist/jsx/context.native.cjs +58 -0
  150. package/dist/jsx/context.native.js +40 -49
  151. package/dist/jsx/context.native.js.map +1 -1
  152. package/dist/jsx/index.js +13 -3
  153. package/dist/jsx/index.mjs +13 -3
  154. package/dist/jsx/index.native.cjs +27 -0
  155. package/dist/jsx/index.native.js +15 -10
  156. package/dist/jsx/index.native.js.map +1 -1
  157. package/dist/jsx/selectionController.mjs +305 -0
  158. package/dist/jsx/selectionController.mjs.map +1 -0
  159. package/dist/jsx/selectionController.native.cjs +403 -0
  160. package/dist/jsx/selectionController.native.js +405 -0
  161. package/dist/jsx/selectionController.native.js.map +1 -0
  162. package/dist/jsx/types.mjs +0 -2
  163. package/dist/jsx/types.native.cjs +19 -0
  164. package/dist/jsx/types.native.js +10 -10
  165. package/dist/jsx/types.native.js.map +1 -1
  166. package/package.json +28 -28
  167. package/src/Select.tsx +457 -357
  168. package/src/SelectContent.tsx +46 -16
  169. package/src/SelectImpl.native.tsx +0 -8
  170. package/src/SelectImpl.tsx +87 -100
  171. package/src/SelectItem.tsx +282 -136
  172. package/src/SelectItemText.tsx +16 -33
  173. package/src/SelectScrollButton.native.tsx +13 -4
  174. package/src/SelectScrollButton.tsx +56 -41
  175. package/src/SelectTrigger.tsx +77 -53
  176. package/src/SelectViewport.native.tsx +42 -25
  177. package/src/SelectViewport.tsx +52 -51
  178. package/src/context.tsx +6 -2
  179. package/src/index.tsx +5 -2
  180. package/src/selectionController.ts +389 -0
  181. package/src/types.tsx +88 -45
  182. package/types/Select.d.ts +139 -201
  183. package/types/Select.d.ts.map +1 -1
  184. package/types/SelectContent.d.ts +1 -1
  185. package/types/SelectContent.d.ts.map +1 -1
  186. package/types/SelectContent.native.d.ts.map +1 -1
  187. package/types/SelectImpl.d.ts +2 -1
  188. package/types/SelectImpl.d.ts.map +1 -1
  189. package/types/SelectImpl.native.d.ts +1 -5
  190. package/types/SelectImpl.native.d.ts.map +1 -1
  191. package/types/SelectItem.d.ts +13 -16
  192. package/types/SelectItem.d.ts.map +1 -1
  193. package/types/SelectItemText.d.ts +9 -13
  194. package/types/SelectItemText.d.ts.map +1 -1
  195. package/types/SelectScrollButton.d.ts +15 -2
  196. package/types/SelectScrollButton.d.ts.map +1 -1
  197. package/types/SelectScrollButton.native.d.ts +16 -3
  198. package/types/SelectScrollButton.native.d.ts.map +1 -1
  199. package/types/SelectTrigger.d.ts +11 -23
  200. package/types/SelectTrigger.d.ts.map +1 -1
  201. package/types/SelectViewport.d.ts +11 -38
  202. package/types/SelectViewport.d.ts.map +1 -1
  203. package/types/SelectViewport.native.d.ts +15 -4
  204. package/types/SelectViewport.native.d.ts.map +1 -1
  205. package/types/context.d.ts +2 -0
  206. package/types/context.d.ts.map +1 -1
  207. package/types/index.d.ts +5 -2
  208. package/types/index.d.ts.map +1 -1
  209. package/types/selectionController.d.ts +88 -0
  210. package/types/selectionController.d.ts.map +1 -0
  211. package/types/types.d.ts +47 -37
  212. package/types/types.d.ts.map +1 -1
  213. package/dist/cjs/BubbleSelect.cjs +0 -50
  214. package/dist/cjs/BubbleSelect.native.js +0 -30
  215. package/dist/cjs/BubbleSelect.native.js.map +0 -1
  216. package/dist/cjs/useSelectBreakpointActive.cjs +0 -32
  217. package/dist/cjs/useSelectBreakpointActive.native.js +0 -35
  218. package/dist/cjs/useSelectBreakpointActive.native.js.map +0 -1
  219. package/dist/esm/BubbleSelect.mjs +0 -27
  220. package/dist/esm/BubbleSelect.mjs.map +0 -1
  221. package/dist/esm/BubbleSelect.native.js +0 -4
  222. package/dist/esm/BubbleSelect.native.js.map +0 -1
  223. package/dist/esm/index.js.map +0 -1
  224. package/dist/esm/index.mjs.map +0 -1
  225. package/dist/esm/index.native.js.map +0 -1
  226. package/dist/esm/types.mjs.map +0 -1
  227. package/dist/esm/types.native.js.map +0 -1
  228. package/dist/esm/useSelectBreakpointActive.mjs +0 -7
  229. package/dist/esm/useSelectBreakpointActive.mjs.map +0 -1
  230. package/dist/esm/useSelectBreakpointActive.native.js +0 -7
  231. package/dist/esm/useSelectBreakpointActive.native.js.map +0 -1
  232. package/dist/jsx/BubbleSelect.mjs +0 -27
  233. package/dist/jsx/BubbleSelect.mjs.map +0 -1
  234. package/dist/jsx/BubbleSelect.native.js +0 -30
  235. package/dist/jsx/BubbleSelect.native.js.map +0 -1
  236. package/dist/jsx/index.js.map +0 -1
  237. package/dist/jsx/index.mjs.map +0 -1
  238. package/dist/jsx/types.mjs.map +0 -1
  239. package/dist/jsx/useSelectBreakpointActive.mjs +0 -7
  240. package/dist/jsx/useSelectBreakpointActive.mjs.map +0 -1
  241. package/dist/jsx/useSelectBreakpointActive.native.js +0 -35
  242. package/dist/jsx/useSelectBreakpointActive.native.js.map +0 -1
  243. package/src/BubbleSelect.tsx +0 -50
  244. package/src/useSelectBreakpointActive.tsx +0 -7
  245. package/types/BubbleSelect.d.ts +0 -2
  246. package/types/BubbleSelect.d.ts.map +0 -1
  247. package/types/useSelectBreakpointActive.d.ts +0 -3
  248. package/types/useSelectBreakpointActive.d.ts.map +0 -1
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+
3
4
  var __create = Object.create;
4
5
  var __defProp = Object.defineProperty;
5
6
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -7,233 +8,312 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
7
8
  var __getProtoOf = Object.getPrototypeOf;
8
9
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
10
  var __export = (target, all) => {
10
- for (var name in all) __defProp(target, name, {
11
- get: all[name],
12
- enumerable: true
13
- });
11
+ for (var name in all) __defProp(target, name, {
12
+ get: all[name],
13
+ enumerable: true
14
+ });
14
15
  };
15
16
  var __copyProps = (to, from, except, desc) => {
16
- if (from && typeof from === "object" || typeof from === "function") {
17
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
18
- get: () => from[key],
19
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
20
- });
21
- }
22
- return to;
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
19
+ get: () => from[key],
20
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
21
+ });
22
+ }
23
+ return to;
23
24
  };
24
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
25
- // If the importer is in node compatibility mode or this is not an ESM
26
- // file that has been converted to a CommonJS file using a Babel-
27
- // compatible transform (i.e. "__esModule" has not been set), then set
28
- // "default" to the CommonJS "module.exports" for node compatibility.
29
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
30
- value: mod,
31
- enumerable: true
25
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: true
32
28
  }) : target, mod));
33
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
34
- value: true
35
- }), mod);
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
36
30
  var SelectItem_exports = {};
37
31
  __export(SelectItem_exports, {
38
- SelectItem: () => SelectItem,
39
- SelectItemContextProvider: () => SelectItemContextProvider,
40
- useSelectItemContext: () => useSelectItemContext
32
+ SelectItem: () => SelectItem,
33
+ SelectItemContextProvider: () => SelectItemContextProvider,
34
+ SelectItemFrame: () => SelectItemFrame,
35
+ useSelectItemContext: () => useSelectItemContext
41
36
  });
42
37
  module.exports = __toCommonJS(SelectItem_exports);
43
38
  var import_jsx_runtime = require("react/jsx-runtime");
44
39
  var import_compose_refs = require("@tamagui/compose-refs");
40
+ var import_adapt = require("@tamagui/adapt");
45
41
  var import_constants = require("@tamagui/constants");
46
42
  var import_core = require("@tamagui/core");
47
- var import_list_item = require("@tamagui/list-item");
43
+ var import_helpers = require("@tamagui/helpers");
48
44
  var React = __toESM(require("react"), 1);
49
45
  var import_context = require("./context.native.js");
46
+ var import_selectionController = require("./selectionController.native.js");
50
47
  function _instanceof(left, right) {
51
- if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
52
- return !!right[Symbol.hasInstance](left);
53
- } else {
54
- return left instanceof right;
55
- }
48
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
49
+ return !!right[Symbol.hasInstance](left);
50
+ } else {
51
+ return left instanceof right;
52
+ }
56
53
  }
57
54
  var ITEM_NAME = "SelectItem";
58
- var {
59
- Provider: SelectItemContextProvider,
60
- useStyledContext: useSelectItemContext
61
- } = (0, import_core.createStyledContext)(null, ITEM_NAME);
62
- var SelectItem = import_list_item.ListItem.Frame.styleable(function SelectItem2(props, forwardedRef) {
63
- var {
64
- scope,
65
- value,
66
- disabled = false,
67
- textValue: textValueProp,
68
- index,
69
- ...restProps
70
- } = props;
71
- var context = (0, import_context.useSelectItemParentContext)(scope);
72
- var {
73
- setSelectedIndex,
74
- listRef,
75
- setOpen,
76
- onChange,
77
- activeIndexSubscribe,
78
- activeIndexRef,
79
- valueSubscribe,
80
- allowMouseUpRef,
81
- allowSelectRef,
82
- setValueAtIndex,
83
- selectTimeoutRef,
84
- dataRef,
85
- interactions,
86
- shouldRenderWebNative,
87
- size,
88
- onActiveChange,
89
- initialValue,
90
- setActiveIndexFast
91
- } = context;
92
- var [isSelected, setSelected] = React.useState(initialValue === value);
93
- (0, import_constants.useIsomorphicLayoutEffect)(function () {
94
- if (initialValue === value) {
95
- setSelectedIndex(index);
96
- }
97
- }, []);
98
- React.useEffect(function () {
99
- var handleActiveIndex = function (i) {
100
- if (index === i) {
101
- onActiveChange(value, index);
102
- if (import_constants.isWeb) {
103
- requestAnimationFrame(function () {
104
- var _listRef_current_index;
105
- listRef === null || listRef === void 0 ? void 0 : (_listRef_current_index = listRef.current[index]) === null || _listRef_current_index === void 0 ? void 0 : _listRef_current_index.focus();
106
- });
107
- }
108
- }
109
- };
110
- var currentActiveIndex = activeIndexRef === null || activeIndexRef === void 0 ? void 0 : activeIndexRef.current;
111
- if (currentActiveIndex !== null && currentActiveIndex !== void 0) {
112
- handleActiveIndex(currentActiveIndex);
113
- }
114
- return activeIndexSubscribe(handleActiveIndex);
115
- }, [index]);
116
- React.useEffect(function () {
117
- return valueSubscribe(function (val) {
118
- setSelected(val === value);
119
- });
120
- }, [value]);
121
- var textId = React.useId();
122
- var refCallback = React.useCallback(function (node) {
123
- if (!import_constants.isWeb) return;
124
- if (_instanceof(node, HTMLElement)) {
125
- if (listRef) {
126
- listRef.current[index] = node;
127
- }
128
- }
129
- }, [index, listRef]);
130
- var composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, refCallback);
131
- (0, import_constants.useIsomorphicLayoutEffect)(function () {
132
- setValueAtIndex(index, value);
133
- }, [index, setValueAtIndex, value]);
134
- function handleSelect() {
135
- setSelectedIndex(index);
136
- onChange(value);
137
- setOpen(false);
138
- }
139
- var selectItemProps = React.useMemo(function () {
140
- return interactions ? interactions.getItemProps({
141
- onTouchMove() {
142
- allowSelectRef.current = true;
143
- allowMouseUpRef.current = false;
144
- },
145
- onTouchEnd() {
146
- allowSelectRef.current = false;
147
- allowMouseUpRef.current = true;
148
- },
149
- onKeyDown(event) {
150
- if (event.key === "Enter" || event.key === " " && !(dataRef === null || dataRef === void 0 ? void 0 : dataRef.current.typing)) {
151
- event.preventDefault();
152
- handleSelect();
153
- } else if (event.key === "ArrowDown" || event.key === "ArrowUp") {
154
- event.preventDefault();
155
- event.stopPropagation();
156
- var _listRef_current_length;
157
- var itemCount = (_listRef_current_length = listRef === null || listRef === void 0 ? void 0 : listRef.current.length) !== null && _listRef_current_length !== void 0 ? _listRef_current_length : 0;
158
- if (itemCount === 0) return;
159
- var nextIndex;
160
- if (event.key === "ArrowDown") {
161
- nextIndex = index + 1 >= itemCount ? 0 : index + 1;
162
- } else {
163
- nextIndex = index - 1 < 0 ? itemCount - 1 : index - 1;
164
- }
165
- setActiveIndexFast === null || setActiveIndexFast === void 0 ? void 0 : setActiveIndexFast(nextIndex);
166
- } else {
167
- allowSelectRef.current = true;
168
- }
169
- },
170
- onClick() {
171
- if (allowSelectRef.current) {
172
- handleSelect();
173
- }
174
- },
175
- onMouseUp() {
176
- if (!allowMouseUpRef.current) {
177
- allowMouseUpRef.current = true;
178
- allowSelectRef.current = true;
179
- return;
180
- }
181
- if (allowSelectRef.current) {
182
- handleSelect();
183
- }
184
- clearTimeout(selectTimeoutRef.current);
185
- selectTimeoutRef.current = setTimeout(function () {
186
- allowSelectRef.current = true;
187
- });
188
- }
189
- }) : {
190
- onPress: handleSelect
191
- };
192
- }, [handleSelect, index, listRef, setActiveIndexFast]);
193
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(SelectItemContextProvider, {
194
- scope,
195
- value,
196
- textId: textId || "",
197
- isSelected,
198
- children: shouldRenderWebNative ? /* @__PURE__ */(0, import_jsx_runtime.jsx)("option", {
199
- value,
200
- children: props.children
201
- }) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_list_item.ListItem.Frame, {
202
- render: "div",
203
- componentName: ITEM_NAME,
204
- ref: composedRefs,
205
- role: "option",
206
- "aria-labelledby": textId,
207
- "aria-selected": isSelected,
208
- "data-state": isSelected ? "active" : "inactive",
209
- "aria-disabled": disabled || void 0,
210
- "data-disabled": disabled ? "" : void 0,
211
- tabIndex: disabled ? void 0 : -1,
212
- ...(!props.unstyled && {
213
- cursor: "default",
214
- size,
215
- outlineOffset: -0.5,
216
- zIndex: 100,
217
- hoverStyle: {
218
- backgroundColor: "$backgroundHover"
219
- },
220
- pressStyle: {
221
- backgroundColor: "$backgroundPress"
222
- },
223
- focusStyle: {
224
- backgroundColor: "$backgroundFocus"
225
- },
226
- focusVisibleStyle: {
227
- outlineColor: "$outlineColor",
228
- outlineWidth: 1,
229
- outlineStyle: "solid"
230
- }
231
- }),
232
- ...restProps,
233
- ...selectItemProps
234
- })
235
- });
236
- }, {
237
- disableTheme: true
55
+ var { Provider: SelectItemContextProvider, useStyledContext: useSelectItemContext } = (0, import_core.createStyledContext)(null, ITEM_NAME);
56
+ var SelectItemFrame = (0, import_core.styled)(import_core.View, {
57
+ displayName: ITEM_NAME,
58
+ alignItems: "center",
59
+ flexDirection: "row"
238
60
  });
61
+ var SelectItem = (0, import_core.createStyledHOC)(SelectItemFrame, function SelectItem2(props, forwardedRef) {
62
+ var { scope, value, disabled: disabledProp, "aria-disabled": ariaDisabled, textValue: textValueProp, ...restProps } = props;
63
+ var disabled = disabledProp !== null && disabledProp !== void 0 ? disabledProp : ariaDisabled === true;
64
+ var context = (0, import_context.useSelectItemParentContext)(scope);
65
+ var selectContext = (0, import_context.useSelectContext)(scope);
66
+ var isAdapted = (0, import_adapt.useAdaptIsActive)(selectContext.adaptScope);
67
+ var { listRef, registry, mode, selectedValues, selectValue, activeIndexSubscribe, activeIndexRef, allowMouseUpRef, allowSelectRef, selectTimeoutRef, interactions, shouldRenderWebNative, setActiveIndexFast, moveActive, search } = context;
68
+ var isSelected = selectedValues.includes(value);
69
+ var pendingMouseUpSelectionRef = React.useRef(false);
70
+ var itemNodeRef = React.useRef(null);
71
+ var [, rerenderRegistry] = React.useReducer(function(version) {
72
+ return version + 1;
73
+ }, 0);
74
+ var registrationRef = React.useRef(null);
75
+ var initialRegistration = React.useRef({
76
+ value,
77
+ disabled,
78
+ textValue: textValueProp
79
+ });
80
+ (0, import_constants.useIsomorphicLayoutEffect)(function() {
81
+ return registry.subscribe(function() {
82
+ return rerenderRegistry();
83
+ });
84
+ }, [registry]);
85
+ (0, import_constants.useIsomorphicLayoutEffect)(function() {
86
+ var registration = registry.registerItem(initialRegistration.current);
87
+ registrationRef.current = registration;
88
+ var registeredNode = itemNodeRef.current;
89
+ registration.setNode(registeredNode);
90
+ var registeredIndex = registry.getItems().findIndex(function(item) {
91
+ return item.id === registration.id;
92
+ });
93
+ if (import_constants.isWeb && listRef && registeredIndex >= 0 && _instanceof(registeredNode, HTMLElement)) {
94
+ listRef.current[registeredIndex] = registeredNode;
95
+ }
96
+ return function() {
97
+ var currentIndex = registry.getItems().findIndex(function(item) {
98
+ return item.id === registration.id;
99
+ });
100
+ if (listRef && currentIndex >= 0 && listRef.current[currentIndex] === registeredNode) {
101
+ listRef.current[currentIndex] = null;
102
+ }
103
+ registrationRef.current = null;
104
+ registration.unregister();
105
+ };
106
+ }, [registry]);
107
+ (0, import_constants.useIsomorphicLayoutEffect)(function() {
108
+ var _registrationRef_current;
109
+ (_registrationRef_current = registrationRef.current) === null || _registrationRef_current === void 0 ? void 0 : _registrationRef_current.update({
110
+ value,
111
+ disabled,
112
+ textValue: textValueProp
113
+ });
114
+ }, [
115
+ disabled,
116
+ textValueProp,
117
+ value
118
+ ]);
119
+ (0, import_constants.useIsomorphicLayoutEffect)(function() {
120
+ var _registrationRef_current;
121
+ (_registrationRef_current = registrationRef.current) === null || _registrationRef_current === void 0 ? void 0 : _registrationRef_current.setNode(itemNodeRef.current);
122
+ });
123
+ var index = registry.getIndex(value);
124
+ React.useEffect(function() {
125
+ var handleActiveIndex = function(i) {
126
+ if (index === i) {
127
+ if (import_constants.isWeb) {
128
+ requestAnimationFrame(function() {
129
+ var _listRef_current_index;
130
+ listRef === null || listRef === void 0 ? void 0 : (_listRef_current_index = listRef.current[index]) === null || _listRef_current_index === void 0 ? void 0 : _listRef_current_index.focus();
131
+ });
132
+ }
133
+ }
134
+ };
135
+ var currentActiveIndex = activeIndexRef === null || activeIndexRef === void 0 ? void 0 : activeIndexRef.current;
136
+ if (currentActiveIndex !== null && currentActiveIndex !== void 0) {
137
+ handleActiveIndex(currentActiveIndex);
138
+ }
139
+ return activeIndexSubscribe(handleActiveIndex);
140
+ }, [
141
+ activeIndexRef,
142
+ activeIndexSubscribe,
143
+ index,
144
+ listRef
145
+ ]);
146
+ var textId = React.useId();
147
+ var refCallback = React.useCallback(function(node) {
148
+ var _registrationRef_current;
149
+ itemNodeRef.current = node;
150
+ (_registrationRef_current = registrationRef.current) === null || _registrationRef_current === void 0 ? void 0 : _registrationRef_current.setNode(node);
151
+ if (!import_constants.isWeb) return;
152
+ if (listRef && index >= 0) {
153
+ listRef.current[index] = _instanceof(node, HTMLElement) ? node : null;
154
+ }
155
+ }, [index, listRef]);
156
+ var composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, refCallback);
157
+ var handleSelect = React.useCallback(function(event) {
158
+ var reason = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "item-press";
159
+ if (disabled) return;
160
+ var nativeEvent = (event === null || event === void 0 ? void 0 : event.nativeEvent) || event;
161
+ selectValue(value, (0, import_core.createChangeEventDetails)(reason, nativeEvent, event === null || event === void 0 ? void 0 : event.currentTarget));
162
+ }, [
163
+ disabled,
164
+ selectValue,
165
+ value
166
+ ]);
167
+ var handleKeyDown = React.useCallback(function(event) {
168
+ var _event_key;
169
+ if (disabled) return;
170
+ if (event.key === "Enter" || event.key === " ") {
171
+ event.preventDefault();
172
+ handleSelect(event, "keyboard");
173
+ return;
174
+ }
175
+ if (event.key === "ArrowDown" || event.key === "ArrowUp") {
176
+ event.preventDefault();
177
+ event.stopPropagation();
178
+ moveActive(event.key === "ArrowDown" ? 1 : -1, event.nativeEvent || event);
179
+ return;
180
+ }
181
+ if (!interactions && ((_event_key = event.key) === null || _event_key === void 0 ? void 0 : _event_key.length) === 1 && !event.metaKey && !event.ctrlKey) {
182
+ search(event.key, event.nativeEvent || event);
183
+ }
184
+ if (allowSelectRef) {
185
+ allowSelectRef.current = true;
186
+ }
187
+ }, [
188
+ allowSelectRef,
189
+ disabled,
190
+ handleSelect,
191
+ interactions,
192
+ moveActive,
193
+ search
194
+ ]);
195
+ var selectItemProps = React.useMemo(function() {
196
+ if (interactions) {
197
+ var { onTouchMove, onTouchEnd, onKeyDown, onClick, onMouseUp, onMouseMove, onPress, ...itemProps } = restProps;
198
+ var interactionProps = interactions.getItemProps({
199
+ ...itemProps,
200
+ onTouchMove() {
201
+ allowSelectRef.current = true;
202
+ allowMouseUpRef.current = false;
203
+ },
204
+ onTouchEnd() {
205
+ allowSelectRef.current = false;
206
+ allowMouseUpRef.current = true;
207
+ },
208
+ onMouseMove(event) {
209
+ if (disabled || index < 0) return;
210
+ setActiveIndexFast === null || setActiveIndexFast === void 0 ? void 0 : setActiveIndexFast(index, {
211
+ reason: "item-hover",
212
+ event: event.nativeEvent || event,
213
+ trigger: event.currentTarget,
214
+ index
215
+ });
216
+ },
217
+ onKeyDown: handleKeyDown,
218
+ onClick(event) {
219
+ if (disabled) return;
220
+ var shouldSelect = pendingMouseUpSelectionRef.current || allowSelectRef.current;
221
+ pendingMouseUpSelectionRef.current = false;
222
+ clearTimeout(selectTimeoutRef.current);
223
+ allowSelectRef.current = true;
224
+ if (shouldSelect) {
225
+ handleSelect(event);
226
+ }
227
+ },
228
+ onMouseUp(event) {
229
+ if (disabled) return;
230
+ if (!allowMouseUpRef.current) {
231
+ allowMouseUpRef.current = true;
232
+ allowSelectRef.current = true;
233
+ return;
234
+ }
235
+ pendingMouseUpSelectionRef.current = allowSelectRef.current;
236
+ clearTimeout(selectTimeoutRef.current);
237
+ selectTimeoutRef.current = setTimeout(function() {
238
+ allowSelectRef.current = true;
239
+ if (pendingMouseUpSelectionRef.current) {
240
+ pendingMouseUpSelectionRef.current = false;
241
+ handleSelect(event);
242
+ }
243
+ });
244
+ }
245
+ });
246
+ return {
247
+ ...interactionProps,
248
+ onTouchMove: (0, import_helpers.composeEventHandlers)(onTouchMove, interactionProps.onTouchMove),
249
+ onTouchEnd: (0, import_helpers.composeEventHandlers)(onTouchEnd, interactionProps.onTouchEnd),
250
+ onKeyDown: (0, import_helpers.composeEventHandlers)(onKeyDown, interactionProps.onKeyDown),
251
+ onClick(event) {
252
+ var _interactionProps_onClick;
253
+ onClick === null || onClick === void 0 ? void 0 : onClick(event);
254
+ if (event.defaultPrevented) {
255
+ pendingMouseUpSelectionRef.current = false;
256
+ clearTimeout(selectTimeoutRef.current);
257
+ allowSelectRef.current = true;
258
+ return;
259
+ }
260
+ (_interactionProps_onClick = interactionProps.onClick) === null || _interactionProps_onClick === void 0 ? void 0 : _interactionProps_onClick.call(interactionProps, event);
261
+ },
262
+ onMouseUp: (0, import_helpers.composeEventHandlers)(onMouseUp, interactionProps.onMouseUp),
263
+ onMouseMove: (0, import_helpers.composeEventHandlers)(onMouseMove, interactionProps.onMouseMove),
264
+ onPress
265
+ };
266
+ }
267
+ return {
268
+ ...restProps,
269
+ onKeyDown: (0, import_helpers.composeEventHandlers)(restProps.onKeyDown, handleKeyDown),
270
+ onMouseMove: (0, import_helpers.composeEventHandlers)(restProps.onMouseMove, function(event) {
271
+ if (disabled || index < 0) return;
272
+ setActiveIndexFast === null || setActiveIndexFast === void 0 ? void 0 : setActiveIndexFast(index, {
273
+ reason: "item-hover",
274
+ event: event.nativeEvent || event,
275
+ trigger: event.currentTarget,
276
+ index
277
+ });
278
+ }),
279
+ onPress: (0, import_helpers.composeEventHandlers)(restProps.onPress, handleSelect)
280
+ };
281
+ }, [
282
+ allowMouseUpRef,
283
+ allowSelectRef,
284
+ disabled,
285
+ handleKeyDown,
286
+ handleSelect,
287
+ index,
288
+ interactions,
289
+ restProps,
290
+ selectTimeoutRef,
291
+ setActiveIndexFast
292
+ ]);
293
+ var accessibilityProps = (0, import_selectionController.getSelectOptionProps)(mode, isSelected, disabled, import_constants.isWeb ? "web" : "native");
294
+ var _selectContext_activeIndex;
295
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectItemContextProvider, {
296
+ scope,
297
+ value,
298
+ textId: textId || "",
299
+ textValue: textValueProp,
300
+ isSelected,
301
+ children: shouldRenderWebNative ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("option", {
302
+ value,
303
+ disabled,
304
+ children: props.children
305
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectItemFrame, {
306
+ render: "div",
307
+ ref: composedRefs,
308
+ "aria-labelledby": textId,
309
+ "data-state": isSelected ? "active" : "inactive",
310
+ "data-disabled": disabled ? "" : void 0,
311
+ tabIndex: disabled ? void 0 : import_constants.isWeb && isAdapted ? index === ((_selectContext_activeIndex = selectContext.activeIndex) !== null && _selectContext_activeIndex !== void 0 ? _selectContext_activeIndex : selectContext.selectedIndex) ? 0 : -1 : -1,
312
+ zIndex: 100,
313
+ ...selectItemProps,
314
+ ...accessibilityProps
315
+ })
316
+ });
317
+ }, { disableTheme: true });
318
+
239
319
  //# sourceMappingURL=SelectItem.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","SelectItem_exports","SelectItem","SelectItemContextProvider","useSelectItemContext","module","exports","import_jsx_runtime","require","import_compose_refs","import_constants","import_core","import_list_item","React","import_context","_instanceof","left","right","Symbol","hasInstance","ITEM_NAME","Provider","useStyledContext","createStyledContext","ListItem","Frame","styleable","SelectItem2","props","forwardedRef","scope","disabled","textValue","textValueProp","index","restProps","context","useSelectItemParentContext","setSelectedIndex","listRef","setOpen","onChange","activeIndexSubscribe","activeIndexRef","valueSubscribe","allowMouseUpRef","allowSelectRef","setValueAtIndex","selectTimeoutRef","dataRef","interactions","shouldRenderWebNative","size","onActiveChange","initialValue","setActiveIndexFast","isSelected","setSelected","useState","useIsomorphicLayoutEffect","useEffect","handleActiveIndex","i","isWeb","requestAnimationFrame","_listRef_current_index","current","focus","currentActiveIndex","val","textId","useId","refCallback","useCallback","node","HTMLElement","composedRefs","useComposedRefs","handleSelect","selectItemProps","useMemo","getItemProps","onTouchMove","onTouchEnd","onKeyDown","event","typing","preventDefault","stopPropagation","_listRef_current_length","itemCount","length","nextIndex","onClick","onMouseUp","clearTimeout","setTimeout","onPress","jsx","children","render","componentName","ref","role","tabIndex","unstyled","cursor","outlineOffset","zIndex"],"sources":["../../src/SelectItem.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SelectItem.native.js","names":[],"sources":["jsx/SelectItem.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\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 __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar SelectItem_exports = {};\n__export(SelectItem_exports, {\n SelectItem: () => SelectItem,\n SelectItemContextProvider: () => SelectItemContextProvider,\n SelectItemFrame: () => SelectItemFrame,\n useSelectItemContext: () => useSelectItemContext\n});\nmodule.exports = __toCommonJS(SelectItem_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_compose_refs = require(\"@tamagui/compose-refs\");\nvar import_adapt = require(\"@tamagui/adapt\");\nvar import_constants = require(\"@tamagui/constants\");\nvar import_core = require(\"@tamagui/core\");\nvar import_helpers = require(\"@tamagui/helpers\");\nvar React = __toESM(require(\"react\"), 1);\nvar import_context = require(\"./context\");\nvar import_selectionController = require(\"./selectionController\");\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}\nvar ITEM_NAME = \"SelectItem\";\nvar { Provider: SelectItemContextProvider, useStyledContext: useSelectItemContext } = (0, import_core.createStyledContext)(null, ITEM_NAME);\nvar SelectItemFrame = (0, import_core.styled)(import_core.View, {\n displayName: ITEM_NAME,\n alignItems: \"center\",\n flexDirection: \"row\"\n});\nvar SelectItem = (0, import_core.createStyledHOC)(SelectItemFrame, function SelectItem2(props, forwardedRef) {\n var { scope, value, disabled: disabledProp, \"aria-disabled\": ariaDisabled, textValue: textValueProp, ...restProps } = props;\n var disabled = disabledProp !== null && disabledProp !== void 0 ? disabledProp : ariaDisabled === true;\n var context = (0, import_context.useSelectItemParentContext)(scope);\n var selectContext = (0, import_context.useSelectContext)(scope);\n var isAdapted = (0, import_adapt.useAdaptIsActive)(selectContext.adaptScope);\n var { listRef, registry, mode, selectedValues, selectValue, activeIndexSubscribe, activeIndexRef, allowMouseUpRef, allowSelectRef, selectTimeoutRef, interactions, shouldRenderWebNative, setActiveIndexFast, moveActive, search } = context;\n var isSelected = selectedValues.includes(value);\n var pendingMouseUpSelectionRef = React.useRef(false);\n var itemNodeRef = React.useRef(null);\n var [, rerenderRegistry] = React.useReducer(function(version) {\n return version + 1;\n }, 0);\n var registrationRef = React.useRef(null);\n var initialRegistration = React.useRef({\n value,\n disabled,\n textValue: textValueProp\n });\n (0, import_constants.useIsomorphicLayoutEffect)(function() {\n return registry.subscribe(function() {\n return rerenderRegistry();\n });\n }, [\n registry\n ]);\n (0, import_constants.useIsomorphicLayoutEffect)(function() {\n var registration = registry.registerItem(initialRegistration.current);\n registrationRef.current = registration;\n var registeredNode = itemNodeRef.current;\n registration.setNode(registeredNode);\n var registeredIndex = registry.getItems().findIndex(function(item) {\n return item.id === registration.id;\n });\n if (import_constants.isWeb && listRef && registeredIndex >= 0 && _instanceof(registeredNode, HTMLElement)) {\n listRef.current[registeredIndex] = registeredNode;\n }\n return function() {\n var currentIndex = registry.getItems().findIndex(function(item) {\n return item.id === registration.id;\n });\n if (listRef && currentIndex >= 0 && listRef.current[currentIndex] === registeredNode) {\n listRef.current[currentIndex] = null;\n }\n registrationRef.current = null;\n registration.unregister();\n };\n }, [\n registry\n ]);\n (0, import_constants.useIsomorphicLayoutEffect)(function() {\n var _registrationRef_current;\n (_registrationRef_current = registrationRef.current) === null || _registrationRef_current === void 0 ? void 0 : _registrationRef_current.update({\n value,\n disabled,\n textValue: textValueProp\n });\n }, [\n disabled,\n textValueProp,\n value\n ]);\n (0, import_constants.useIsomorphicLayoutEffect)(function() {\n var _registrationRef_current;\n (_registrationRef_current = registrationRef.current) === null || _registrationRef_current === void 0 ? void 0 : _registrationRef_current.setNode(itemNodeRef.current);\n });\n var index = registry.getIndex(value);\n React.useEffect(function() {\n var handleActiveIndex = function(i) {\n if (index === i) {\n if (import_constants.isWeb) {\n requestAnimationFrame(function() {\n var _listRef_current_index;\n listRef === null || listRef === void 0 ? void 0 : (_listRef_current_index = listRef.current[index]) === null || _listRef_current_index === void 0 ? void 0 : _listRef_current_index.focus();\n });\n }\n }\n };\n var currentActiveIndex = activeIndexRef === null || activeIndexRef === void 0 ? void 0 : activeIndexRef.current;\n if (currentActiveIndex !== null && currentActiveIndex !== void 0) {\n handleActiveIndex(currentActiveIndex);\n }\n return activeIndexSubscribe(handleActiveIndex);\n }, [\n activeIndexRef,\n activeIndexSubscribe,\n index,\n listRef\n ]);\n var textId = React.useId();\n var refCallback = React.useCallback(function(node) {\n var _registrationRef_current;\n itemNodeRef.current = node;\n (_registrationRef_current = registrationRef.current) === null || _registrationRef_current === void 0 ? void 0 : _registrationRef_current.setNode(node);\n if (!import_constants.isWeb) return;\n if (listRef && index >= 0) {\n listRef.current[index] = _instanceof(node, HTMLElement) ? node : null;\n }\n }, [\n index,\n listRef\n ]);\n var composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, refCallback);\n var handleSelect = React.useCallback(function(event) {\n var reason = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"item-press\";\n if (disabled) return;\n var nativeEvent = (event === null || event === void 0 ? void 0 : event.nativeEvent) || event;\n selectValue(value, (0, import_core.createChangeEventDetails)(reason, nativeEvent, event === null || event === void 0 ? void 0 : event.currentTarget));\n }, [\n disabled,\n selectValue,\n value\n ]);\n var handleKeyDown = React.useCallback(function(event) {\n var _event_key;\n if (disabled) return;\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n handleSelect(event, \"keyboard\");\n return;\n }\n if (event.key === \"ArrowDown\" || event.key === \"ArrowUp\") {\n event.preventDefault();\n event.stopPropagation();\n moveActive(event.key === \"ArrowDown\" ? 1 : -1, event.nativeEvent || event);\n return;\n }\n if (!interactions && ((_event_key = event.key) === null || _event_key === void 0 ? void 0 : _event_key.length) === 1 && !event.metaKey && !event.ctrlKey) {\n search(event.key, event.nativeEvent || event);\n }\n if (allowSelectRef) {\n allowSelectRef.current = true;\n }\n }, [\n allowSelectRef,\n disabled,\n handleSelect,\n interactions,\n moveActive,\n search\n ]);\n var selectItemProps = React.useMemo(function() {\n if (interactions) {\n var { onTouchMove, onTouchEnd, onKeyDown, onClick, onMouseUp, onMouseMove, onPress, ...itemProps } = restProps;\n var interactionProps = interactions.getItemProps({\n ...itemProps,\n onTouchMove() {\n allowSelectRef.current = true;\n allowMouseUpRef.current = false;\n },\n onTouchEnd() {\n allowSelectRef.current = false;\n allowMouseUpRef.current = true;\n },\n onMouseMove(event) {\n if (disabled || index < 0) return;\n setActiveIndexFast === null || setActiveIndexFast === void 0 ? void 0 : setActiveIndexFast(index, {\n reason: \"item-hover\",\n event: event.nativeEvent || event,\n trigger: event.currentTarget,\n index\n });\n },\n onKeyDown: handleKeyDown,\n onClick(event) {\n if (disabled) return;\n var shouldSelect = pendingMouseUpSelectionRef.current || allowSelectRef.current;\n pendingMouseUpSelectionRef.current = false;\n clearTimeout(selectTimeoutRef.current);\n allowSelectRef.current = true;\n if (shouldSelect) {\n handleSelect(event);\n }\n },\n onMouseUp(event) {\n if (disabled) return;\n if (!allowMouseUpRef.current) {\n allowMouseUpRef.current = true;\n allowSelectRef.current = true;\n return;\n }\n pendingMouseUpSelectionRef.current = allowSelectRef.current;\n clearTimeout(selectTimeoutRef.current);\n selectTimeoutRef.current = setTimeout(function() {\n allowSelectRef.current = true;\n if (pendingMouseUpSelectionRef.current) {\n pendingMouseUpSelectionRef.current = false;\n handleSelect(event);\n }\n });\n }\n });\n return {\n ...interactionProps,\n onTouchMove: (0, import_helpers.composeEventHandlers)(onTouchMove, interactionProps.onTouchMove),\n onTouchEnd: (0, import_helpers.composeEventHandlers)(onTouchEnd, interactionProps.onTouchEnd),\n onKeyDown: (0, import_helpers.composeEventHandlers)(onKeyDown, interactionProps.onKeyDown),\n onClick(event) {\n var _interactionProps_onClick;\n onClick === null || onClick === void 0 ? void 0 : onClick(event);\n if (event.defaultPrevented) {\n pendingMouseUpSelectionRef.current = false;\n clearTimeout(selectTimeoutRef.current);\n allowSelectRef.current = true;\n return;\n }\n (_interactionProps_onClick = interactionProps.onClick) === null || _interactionProps_onClick === void 0 ? void 0 : _interactionProps_onClick.call(interactionProps, event);\n },\n onMouseUp: (0, import_helpers.composeEventHandlers)(onMouseUp, interactionProps.onMouseUp),\n onMouseMove: (0, import_helpers.composeEventHandlers)(onMouseMove, interactionProps.onMouseMove),\n onPress\n };\n }\n return {\n ...restProps,\n onKeyDown: (0, import_helpers.composeEventHandlers)(restProps.onKeyDown, handleKeyDown),\n onMouseMove: (0, import_helpers.composeEventHandlers)(restProps.onMouseMove, function(event) {\n if (disabled || index < 0) return;\n setActiveIndexFast === null || setActiveIndexFast === void 0 ? void 0 : setActiveIndexFast(index, {\n reason: \"item-hover\",\n event: event.nativeEvent || event,\n trigger: event.currentTarget,\n index\n });\n }),\n onPress: (0, import_helpers.composeEventHandlers)(restProps.onPress, handleSelect)\n };\n }, [\n allowMouseUpRef,\n allowSelectRef,\n disabled,\n handleKeyDown,\n handleSelect,\n index,\n interactions,\n restProps,\n selectTimeoutRef,\n setActiveIndexFast\n ]);\n var accessibilityProps = (0, import_selectionController.getSelectOptionProps)(mode, isSelected, disabled, import_constants.isWeb ? \"web\" : \"native\");\n var _selectContext_activeIndex;\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectItemContextProvider, {\n scope,\n value,\n textId: textId || \"\",\n textValue: textValueProp,\n isSelected,\n children: shouldRenderWebNative ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(\"option\", {\n value,\n disabled,\n children: props.children\n }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectItemFrame, {\n render: \"div\",\n ref: composedRefs,\n \"aria-labelledby\": textId,\n \"data-state\": isSelected ? \"active\" : \"inactive\",\n \"data-disabled\": disabled ? \"\" : void 0,\n tabIndex: disabled ? void 0 : import_constants.isWeb && isAdapted ? index === ((_selectContext_activeIndex = selectContext.activeIndex) !== null && _selectContext_activeIndex !== void 0 ? _selectContext_activeIndex : selectContext.selectedIndex) ? 0 : -1 : -1,\n zIndex: 100,\n ...selectItemProps,\n ...accessibilityProps\n })\n });\n}, {\n disableTheme: true\n});\n//# sourceMappingURL=SelectItem.js.map\n"],"mappings":"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"}