@tamagui/select 2.0.0-rc.4 → 2.0.0-rc.40

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 (242) hide show
  1. package/dist/cjs/BubbleSelect.cjs +28 -23
  2. package/dist/cjs/BubbleSelect.native.js +12 -10
  3. package/dist/cjs/BubbleSelect.native.js.map +1 -1
  4. package/dist/cjs/Select.cjs +402 -376
  5. package/dist/cjs/Select.native.js +428 -414
  6. package/dist/cjs/Select.native.js.map +1 -1
  7. package/dist/cjs/SelectContent.cjs +73 -66
  8. package/dist/cjs/SelectContent.native.js +12 -10
  9. package/dist/cjs/SelectContent.native.js.map +1 -1
  10. package/dist/cjs/SelectImpl.cjs +239 -176
  11. package/dist/cjs/SelectImpl.native.js +21 -16
  12. package/dist/cjs/SelectImpl.native.js.map +1 -1
  13. package/dist/cjs/SelectItem.cjs +189 -137
  14. package/dist/cjs/SelectItem.native.js +211 -164
  15. package/dist/cjs/SelectItem.native.js.map +1 -1
  16. package/dist/cjs/SelectItemText.cjs +82 -68
  17. package/dist/cjs/SelectItemText.native.js +81 -69
  18. package/dist/cjs/SelectItemText.native.js.map +1 -1
  19. package/dist/cjs/SelectScrollButton.cjs +104 -83
  20. package/dist/cjs/SelectScrollButton.native.js +17 -15
  21. package/dist/cjs/SelectScrollButton.native.js.map +1 -1
  22. package/dist/cjs/SelectTrigger.cjs +81 -77
  23. package/dist/cjs/SelectTrigger.native.js +43 -40
  24. package/dist/cjs/SelectTrigger.native.js.map +1 -1
  25. package/dist/cjs/SelectViewport.cjs +141 -103
  26. package/dist/cjs/SelectViewport.native.js +39 -37
  27. package/dist/cjs/SelectViewport.native.js.map +1 -1
  28. package/dist/cjs/constants.cjs +19 -17
  29. package/dist/cjs/constants.native.js +19 -17
  30. package/dist/cjs/constants.native.js.map +1 -1
  31. package/dist/cjs/context.cjs +38 -27
  32. package/dist/cjs/context.native.js +46 -38
  33. package/dist/cjs/context.native.js.map +1 -1
  34. package/dist/cjs/index.cjs +7 -5
  35. package/dist/cjs/index.native.js +7 -5
  36. package/dist/cjs/index.native.js.map +1 -1
  37. package/dist/cjs/types.cjs +7 -5
  38. package/dist/cjs/types.native.js +7 -5
  39. package/dist/cjs/types.native.js.map +1 -1
  40. package/dist/cjs/useSelectBreakpointActive.cjs +13 -11
  41. package/dist/cjs/useSelectBreakpointActive.native.js +17 -15
  42. package/dist/cjs/useSelectBreakpointActive.native.js.map +1 -1
  43. package/dist/esm/BubbleSelect.mjs +16 -13
  44. package/dist/esm/BubbleSelect.mjs.map +1 -1
  45. package/dist/esm/Select.mjs +356 -331
  46. package/dist/esm/Select.mjs.map +1 -1
  47. package/dist/esm/Select.native.js +381 -369
  48. package/dist/esm/Select.native.js.map +1 -1
  49. package/dist/esm/SelectContent.mjs +55 -39
  50. package/dist/esm/SelectContent.mjs.map +1 -1
  51. package/dist/esm/SelectImpl.mjs +208 -147
  52. package/dist/esm/SelectImpl.mjs.map +1 -1
  53. package/dist/esm/SelectImpl.native.js +4 -1
  54. package/dist/esm/SelectImpl.native.js.map +1 -1
  55. package/dist/esm/SelectItem.mjs +157 -107
  56. package/dist/esm/SelectItem.mjs.map +1 -1
  57. package/dist/esm/SelectItem.native.js +180 -135
  58. package/dist/esm/SelectItem.native.js.map +1 -1
  59. package/dist/esm/SelectItemText.mjs +50 -38
  60. package/dist/esm/SelectItemText.mjs.map +1 -1
  61. package/dist/esm/SelectItemText.native.js +50 -40
  62. package/dist/esm/SelectItemText.native.js.map +1 -1
  63. package/dist/esm/SelectScrollButton.mjs +74 -55
  64. package/dist/esm/SelectScrollButton.mjs.map +1 -1
  65. package/dist/esm/SelectScrollButton.native.js +5 -5
  66. package/dist/esm/SelectScrollButton.native.js.map +1 -1
  67. package/dist/esm/SelectTrigger.mjs +51 -49
  68. package/dist/esm/SelectTrigger.mjs.map +1 -1
  69. package/dist/esm/SelectTrigger.native.js +13 -12
  70. package/dist/esm/SelectTrigger.native.js.map +1 -1
  71. package/dist/esm/SelectViewport.mjs +108 -83
  72. package/dist/esm/SelectViewport.mjs.map +1 -1
  73. package/dist/esm/SelectViewport.native.js +7 -7
  74. package/dist/esm/SelectViewport.native.js.map +1 -1
  75. package/dist/esm/constants.mjs +7 -7
  76. package/dist/esm/constants.mjs.map +1 -1
  77. package/dist/esm/constants.native.js +7 -7
  78. package/dist/esm/constants.native.js.map +1 -1
  79. package/dist/esm/context.mjs +22 -14
  80. package/dist/esm/context.mjs.map +1 -1
  81. package/dist/esm/context.native.js +30 -25
  82. package/dist/esm/context.native.js.map +1 -1
  83. package/dist/esm/index.js +2 -2
  84. package/dist/esm/index.js.map +1 -6
  85. package/dist/esm/useSelectBreakpointActive.mjs +1 -1
  86. package/dist/esm/useSelectBreakpointActive.mjs.map +1 -1
  87. package/dist/esm/useSelectBreakpointActive.native.js +1 -1
  88. package/dist/esm/useSelectBreakpointActive.native.js.map +1 -1
  89. package/dist/jsx/BubbleSelect.mjs +16 -13
  90. package/dist/jsx/BubbleSelect.mjs.map +1 -1
  91. package/dist/jsx/BubbleSelect.native.js +12 -10
  92. package/dist/jsx/BubbleSelect.native.js.map +1 -1
  93. package/dist/jsx/Select.mjs +356 -331
  94. package/dist/jsx/Select.mjs.map +1 -1
  95. package/dist/jsx/Select.native.js +428 -414
  96. package/dist/jsx/Select.native.js.map +1 -1
  97. package/dist/jsx/SelectContent.mjs +55 -39
  98. package/dist/jsx/SelectContent.mjs.map +1 -1
  99. package/dist/jsx/SelectContent.native.js +12 -10
  100. package/dist/jsx/SelectContent.native.js.map +1 -1
  101. package/dist/jsx/SelectImpl.mjs +208 -147
  102. package/dist/jsx/SelectImpl.mjs.map +1 -1
  103. package/dist/jsx/SelectImpl.native.js +21 -16
  104. package/dist/jsx/SelectImpl.native.js.map +1 -1
  105. package/dist/jsx/SelectItem.mjs +157 -107
  106. package/dist/jsx/SelectItem.mjs.map +1 -1
  107. package/dist/jsx/SelectItem.native.js +211 -164
  108. package/dist/jsx/SelectItem.native.js.map +1 -1
  109. package/dist/jsx/SelectItemText.mjs +50 -38
  110. package/dist/jsx/SelectItemText.mjs.map +1 -1
  111. package/dist/jsx/SelectItemText.native.js +81 -69
  112. package/dist/jsx/SelectItemText.native.js.map +1 -1
  113. package/dist/jsx/SelectScrollButton.mjs +74 -55
  114. package/dist/jsx/SelectScrollButton.mjs.map +1 -1
  115. package/dist/jsx/SelectScrollButton.native.js +17 -15
  116. package/dist/jsx/SelectScrollButton.native.js.map +1 -1
  117. package/dist/jsx/SelectTrigger.mjs +51 -49
  118. package/dist/jsx/SelectTrigger.mjs.map +1 -1
  119. package/dist/jsx/SelectTrigger.native.js +43 -40
  120. package/dist/jsx/SelectTrigger.native.js.map +1 -1
  121. package/dist/jsx/SelectViewport.mjs +108 -83
  122. package/dist/jsx/SelectViewport.mjs.map +1 -1
  123. package/dist/jsx/SelectViewport.native.js +39 -37
  124. package/dist/jsx/SelectViewport.native.js.map +1 -1
  125. package/dist/jsx/constants.mjs +7 -7
  126. package/dist/jsx/constants.mjs.map +1 -1
  127. package/dist/jsx/constants.native.js +19 -17
  128. package/dist/jsx/constants.native.js.map +1 -1
  129. package/dist/jsx/context.mjs +22 -14
  130. package/dist/jsx/context.mjs.map +1 -1
  131. package/dist/jsx/context.native.js +46 -38
  132. package/dist/jsx/context.native.js.map +1 -1
  133. package/dist/jsx/index.js +2 -2
  134. package/dist/jsx/index.js.map +1 -6
  135. package/dist/jsx/index.native.js +7 -5
  136. package/dist/jsx/types.native.js +7 -5
  137. package/dist/jsx/useSelectBreakpointActive.mjs +1 -1
  138. package/dist/jsx/useSelectBreakpointActive.mjs.map +1 -1
  139. package/dist/jsx/useSelectBreakpointActive.native.js +17 -15
  140. package/dist/jsx/useSelectBreakpointActive.native.js.map +1 -1
  141. package/package.json +31 -35
  142. package/src/Select.tsx +16 -1
  143. package/src/SelectContent.tsx +47 -36
  144. package/src/SelectImpl.tsx +51 -49
  145. package/src/SelectItem.tsx +17 -7
  146. package/src/SelectScrollButton.tsx +1 -1
  147. package/src/SelectTrigger.tsx +1 -1
  148. package/src/SelectViewport.tsx +42 -22
  149. package/src/context.tsx +4 -0
  150. package/src/types.tsx +44 -4
  151. package/types/Select.d.ts +2 -2
  152. package/types/Select.d.ts.map +1 -1
  153. package/types/SelectContent.d.ts +1 -1
  154. package/types/SelectContent.d.ts.map +1 -1
  155. package/types/SelectImpl.d.ts.map +1 -1
  156. package/types/SelectItem.d.ts.map +1 -1
  157. package/types/SelectTrigger.d.ts +1 -1
  158. package/types/SelectViewport.d.ts.map +1 -1
  159. package/types/context.d.ts +1 -0
  160. package/types/context.d.ts.map +1 -1
  161. package/types/types.d.ts +33 -3
  162. package/types/types.d.ts.map +1 -1
  163. package/dist/cjs/BubbleSelect.js +0 -34
  164. package/dist/cjs/BubbleSelect.js.map +0 -6
  165. package/dist/cjs/Select.js +0 -402
  166. package/dist/cjs/Select.js.map +0 -6
  167. package/dist/cjs/SelectContent.js +0 -57
  168. package/dist/cjs/SelectContent.js.map +0 -6
  169. package/dist/cjs/SelectImpl.js +0 -222
  170. package/dist/cjs/SelectImpl.js.map +0 -6
  171. package/dist/cjs/SelectItem.js +0 -166
  172. package/dist/cjs/SelectItem.js.map +0 -6
  173. package/dist/cjs/SelectItemText.js +0 -64
  174. package/dist/cjs/SelectItemText.js.map +0 -6
  175. package/dist/cjs/SelectScrollButton.js +0 -105
  176. package/dist/cjs/SelectScrollButton.js.map +0 -6
  177. package/dist/cjs/SelectTrigger.js +0 -81
  178. package/dist/cjs/SelectTrigger.js.map +0 -6
  179. package/dist/cjs/SelectViewport.js +0 -114
  180. package/dist/cjs/SelectViewport.js.map +0 -6
  181. package/dist/cjs/constants.js +0 -27
  182. package/dist/cjs/constants.js.map +0 -6
  183. package/dist/cjs/context.js +0 -33
  184. package/dist/cjs/context.js.map +0 -6
  185. package/dist/cjs/index.js +0 -16
  186. package/dist/cjs/index.js.map +0 -6
  187. package/dist/cjs/types.js +0 -14
  188. package/dist/cjs/types.js.map +0 -6
  189. package/dist/cjs/useSelectBreakpointActive.js +0 -25
  190. package/dist/cjs/useSelectBreakpointActive.js.map +0 -6
  191. package/dist/esm/BubbleSelect.js +0 -17
  192. package/dist/esm/BubbleSelect.js.map +0 -6
  193. package/dist/esm/Select.js +0 -412
  194. package/dist/esm/Select.js.map +0 -6
  195. package/dist/esm/SelectContent.js +0 -39
  196. package/dist/esm/SelectContent.js.map +0 -6
  197. package/dist/esm/SelectImpl.js +0 -223
  198. package/dist/esm/SelectImpl.js.map +0 -6
  199. package/dist/esm/SelectItem.js +0 -148
  200. package/dist/esm/SelectItem.js.map +0 -6
  201. package/dist/esm/SelectItemText.js +0 -46
  202. package/dist/esm/SelectItemText.js.map +0 -6
  203. package/dist/esm/SelectScrollButton.js +0 -87
  204. package/dist/esm/SelectScrollButton.js.map +0 -6
  205. package/dist/esm/SelectTrigger.js +0 -61
  206. package/dist/esm/SelectTrigger.js.map +0 -6
  207. package/dist/esm/SelectViewport.js +0 -112
  208. package/dist/esm/SelectViewport.js.map +0 -6
  209. package/dist/esm/constants.js +0 -11
  210. package/dist/esm/constants.js.map +0 -6
  211. package/dist/esm/context.js +0 -19
  212. package/dist/esm/context.js.map +0 -6
  213. package/dist/esm/types.js +0 -1
  214. package/dist/esm/types.js.map +0 -6
  215. package/dist/esm/useSelectBreakpointActive.js +0 -9
  216. package/dist/esm/useSelectBreakpointActive.js.map +0 -6
  217. package/dist/jsx/BubbleSelect.js +0 -17
  218. package/dist/jsx/BubbleSelect.js.map +0 -6
  219. package/dist/jsx/Select.js +0 -412
  220. package/dist/jsx/Select.js.map +0 -6
  221. package/dist/jsx/SelectContent.js +0 -39
  222. package/dist/jsx/SelectContent.js.map +0 -6
  223. package/dist/jsx/SelectImpl.js +0 -223
  224. package/dist/jsx/SelectImpl.js.map +0 -6
  225. package/dist/jsx/SelectItem.js +0 -148
  226. package/dist/jsx/SelectItem.js.map +0 -6
  227. package/dist/jsx/SelectItemText.js +0 -46
  228. package/dist/jsx/SelectItemText.js.map +0 -6
  229. package/dist/jsx/SelectScrollButton.js +0 -87
  230. package/dist/jsx/SelectScrollButton.js.map +0 -6
  231. package/dist/jsx/SelectTrigger.js +0 -61
  232. package/dist/jsx/SelectTrigger.js.map +0 -6
  233. package/dist/jsx/SelectViewport.js +0 -112
  234. package/dist/jsx/SelectViewport.js.map +0 -6
  235. package/dist/jsx/constants.js +0 -11
  236. package/dist/jsx/constants.js.map +0 -6
  237. package/dist/jsx/context.js +0 -19
  238. package/dist/jsx/context.js.map +0 -6
  239. package/dist/jsx/types.js +0 -1
  240. package/dist/jsx/types.js.map +0 -6
  241. package/dist/jsx/useSelectBreakpointActive.js +0 -9
  242. package/dist/jsx/useSelectBreakpointActive.js.map +0 -6
@@ -2,33 +2,35 @@ var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf,
6
- __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
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, {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ 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, {
15
16
  get: () => from[key],
16
17
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
18
  });
18
- return to;
19
- };
19
+ }
20
+ return to;
21
+ };
20
22
  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);
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
+ value: mod,
29
+ enumerable: true
30
+ }) : target, mod));
31
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
+ value: true
33
+ }), mod);
32
34
  var SelectItem_exports = {};
33
35
  __export(SelectItem_exports, {
34
36
  SelectItem: () => SelectItem,
@@ -36,140 +38,190 @@ __export(SelectItem_exports, {
36
38
  useSelectItemContext: () => useSelectItemContext
37
39
  });
38
40
  module.exports = __toCommonJS(SelectItem_exports);
39
- var import_compose_refs = require("@tamagui/compose-refs"),
40
- import_constants = require("@tamagui/constants"),
41
- import_core = require("@tamagui/core"),
42
- import_list_item = require("@tamagui/list-item"),
43
- React = __toESM(require("react"), 1),
44
- import_context = require("./context.cjs"),
45
- import_jsx_runtime = require("react/jsx-runtime");
46
- const ITEM_NAME = "SelectItem",
47
- {
48
- Provider: SelectItemContextProvider,
49
- useStyledContext: useSelectItemContext
50
- } = (0, import_core.createStyledContext)(null, ITEM_NAME),
51
- SelectItem = import_list_item.ListItem.Frame.styleable(function (props, forwardedRef) {
52
- const {
53
- scope,
54
- value,
55
- disabled = !1,
56
- textValue: textValueProp,
57
- index,
58
- ...restProps
59
- } = props,
60
- context = (0, import_context.useSelectItemParentContext)(scope),
61
- {
62
- setSelectedIndex,
63
- listRef,
64
- setOpen,
65
- onChange,
66
- activeIndexSubscribe,
67
- valueSubscribe,
68
- allowMouseUpRef,
69
- allowSelectRef,
70
- setValueAtIndex,
71
- selectTimeoutRef,
72
- dataRef,
73
- interactions,
74
- shouldRenderWebNative,
75
- size,
76
- onActiveChange,
77
- initialValue,
78
- setActiveIndexFast
79
- } = context,
80
- [isSelected, setSelected] = React.useState(initialValue === value);
81
- (0, import_constants.useIsomorphicLayoutEffect)(() => {
82
- initialValue === value && setSelectedIndex(index);
83
- }, []), React.useEffect(() => activeIndexSubscribe(i => {
84
- index === i && (onActiveChange(value, index), import_constants.isWeb && listRef?.current[index]?.focus());
85
- }), [index]), React.useEffect(() => valueSubscribe(val => {
41
+ var import_compose_refs = require("@tamagui/compose-refs");
42
+ var import_constants = require("@tamagui/constants");
43
+ var import_core = require("@tamagui/core");
44
+ var import_list_item = require("@tamagui/list-item");
45
+ var React = __toESM(require("react"), 1);
46
+ var import_context = require("./context.cjs");
47
+ var import_jsx_runtime = require("react/jsx-runtime");
48
+ const ITEM_NAME = "SelectItem";
49
+ const {
50
+ Provider: SelectItemContextProvider,
51
+ useStyledContext: useSelectItemContext
52
+ } = (0, import_core.createStyledContext)(null, ITEM_NAME);
53
+ const SelectItem = import_list_item.ListItem.Frame.styleable(function SelectItem2(props, forwardedRef) {
54
+ const {
55
+ scope,
56
+ value,
57
+ disabled = false,
58
+ textValue: textValueProp,
59
+ index,
60
+ ...restProps
61
+ } = props;
62
+ const context = (0, import_context.useSelectItemParentContext)(scope);
63
+ const {
64
+ setSelectedIndex,
65
+ listRef,
66
+ setOpen,
67
+ onChange,
68
+ activeIndexSubscribe,
69
+ activeIndexRef,
70
+ valueSubscribe,
71
+ allowMouseUpRef,
72
+ allowSelectRef,
73
+ setValueAtIndex,
74
+ selectTimeoutRef,
75
+ dataRef,
76
+ interactions,
77
+ shouldRenderWebNative,
78
+ size,
79
+ onActiveChange,
80
+ initialValue,
81
+ setActiveIndexFast
82
+ } = context;
83
+ const [isSelected, setSelected] = React.useState(initialValue === value);
84
+ (0, import_constants.useIsomorphicLayoutEffect)(() => {
85
+ if (initialValue === value) {
86
+ setSelectedIndex(index);
87
+ }
88
+ }, []);
89
+ React.useEffect(() => {
90
+ const handleActiveIndex = i => {
91
+ if (index === i) {
92
+ onActiveChange(value, index);
93
+ if (import_constants.isWeb) {
94
+ requestAnimationFrame(() => {
95
+ listRef?.current[index]?.focus();
96
+ });
97
+ }
98
+ }
99
+ };
100
+ const currentActiveIndex = activeIndexRef?.current;
101
+ if (currentActiveIndex !== null && currentActiveIndex !== void 0) {
102
+ handleActiveIndex(currentActiveIndex);
103
+ }
104
+ return activeIndexSubscribe(handleActiveIndex);
105
+ }, [index]);
106
+ React.useEffect(() => {
107
+ return valueSubscribe(val => {
86
108
  setSelected(val === value);
87
- }), [value]);
88
- const textId = React.useId(),
89
- refCallback = React.useCallback(node => {
90
- import_constants.isWeb && node instanceof HTMLElement && listRef && (listRef.current[index] = node);
91
- }, [index, listRef]),
92
- composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, refCallback);
93
- (0, import_constants.useIsomorphicLayoutEffect)(() => {
94
- setValueAtIndex(index, value);
95
- }, [index, setValueAtIndex, value]);
96
- function handleSelect() {
97
- setSelectedIndex(index), onChange(value), setOpen(!1);
109
+ });
110
+ }, [value]);
111
+ const textId = React.useId();
112
+ const refCallback = React.useCallback(node => {
113
+ if (!import_constants.isWeb) return;
114
+ if (node instanceof HTMLElement) {
115
+ if (listRef) {
116
+ listRef.current[index] = node;
117
+ }
98
118
  }
99
- const selectItemProps = React.useMemo(() => interactions ? interactions.getItemProps({
119
+ }, [index, listRef]);
120
+ const composedRefs = (0, import_compose_refs.useComposedRefs)(forwardedRef, refCallback);
121
+ (0, import_constants.useIsomorphicLayoutEffect)(() => {
122
+ setValueAtIndex(index, value);
123
+ }, [index, setValueAtIndex, value]);
124
+ function handleSelect() {
125
+ setSelectedIndex(index);
126
+ onChange(value);
127
+ setOpen(false);
128
+ }
129
+ const selectItemProps = React.useMemo(() => {
130
+ return interactions ? interactions.getItemProps({
100
131
  onTouchMove() {
101
- allowSelectRef.current = !0, allowMouseUpRef.current = !1;
132
+ allowSelectRef.current = true;
133
+ allowMouseUpRef.current = false;
102
134
  },
103
135
  onTouchEnd() {
104
- allowSelectRef.current = !1, allowMouseUpRef.current = !0;
136
+ allowSelectRef.current = false;
137
+ allowMouseUpRef.current = true;
105
138
  },
106
139
  onKeyDown(event) {
107
- if (event.key === "Enter" || event.key === " " && !dataRef?.current.typing) event.preventDefault(), handleSelect();else if (event.key === "ArrowDown" || event.key === "ArrowUp") {
108
- event.preventDefault(), event.stopPropagation();
140
+ if (event.key === "Enter" || event.key === " " && !dataRef?.current.typing) {
141
+ event.preventDefault();
142
+ handleSelect();
143
+ } else if (event.key === "ArrowDown" || event.key === "ArrowUp") {
144
+ event.preventDefault();
145
+ event.stopPropagation();
109
146
  const itemCount = listRef?.current.length ?? 0;
110
147
  if (itemCount === 0) return;
111
148
  let nextIndex;
112
- event.key === "ArrowDown" ? nextIndex = index + 1 >= itemCount ? 0 : index + 1 : nextIndex = index - 1 < 0 ? itemCount - 1 : index - 1, setActiveIndexFast?.(nextIndex);
113
- } else allowSelectRef.current = !0;
149
+ if (event.key === "ArrowDown") {
150
+ nextIndex = index + 1 >= itemCount ? 0 : index + 1;
151
+ } else {
152
+ nextIndex = index - 1 < 0 ? itemCount - 1 : index - 1;
153
+ }
154
+ setActiveIndexFast?.(nextIndex);
155
+ } else {
156
+ allowSelectRef.current = true;
157
+ }
114
158
  },
115
159
  onClick() {
116
- allowSelectRef.current && handleSelect();
160
+ if (allowSelectRef.current) {
161
+ handleSelect();
162
+ }
117
163
  },
118
164
  onMouseUp() {
119
165
  if (!allowMouseUpRef.current) {
120
- allowMouseUpRef.current = !0, allowSelectRef.current = !0;
166
+ allowMouseUpRef.current = true;
167
+ allowSelectRef.current = true;
121
168
  return;
122
169
  }
123
- allowSelectRef.current && handleSelect(), clearTimeout(selectTimeoutRef.current), selectTimeoutRef.current = setTimeout(() => {
124
- allowSelectRef.current = !0;
170
+ if (allowSelectRef.current) {
171
+ handleSelect();
172
+ }
173
+ clearTimeout(selectTimeoutRef.current);
174
+ selectTimeoutRef.current = setTimeout(() => {
175
+ allowSelectRef.current = true;
125
176
  });
126
177
  }
127
178
  }) : {
128
179
  onPress: handleSelect
129
- }, [handleSelect, index, listRef, setActiveIndexFast]);
130
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(SelectItemContextProvider, {
131
- scope,
180
+ };
181
+ }, [handleSelect, index, listRef, setActiveIndexFast]);
182
+ return /* @__PURE__ */(0, import_jsx_runtime.jsx)(SelectItemContextProvider, {
183
+ scope,
184
+ value,
185
+ textId: textId || "",
186
+ isSelected,
187
+ children: shouldRenderWebNative ? /* @__PURE__ */(0, import_jsx_runtime.jsx)("option", {
132
188
  value,
133
- textId: textId || "",
134
- isSelected,
135
- children: shouldRenderWebNative ? /* @__PURE__ */(0, import_jsx_runtime.jsx)("option", {
136
- value,
137
- children: props.children
138
- }) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_list_item.ListItem.Frame, {
139
- render: "div",
140
- componentName: ITEM_NAME,
141
- ref: composedRefs,
142
- role: "option",
143
- "aria-labelledby": textId,
144
- "aria-selected": isSelected,
145
- "data-state": isSelected ? "active" : "inactive",
146
- "aria-disabled": disabled || void 0,
147
- "data-disabled": disabled ? "" : void 0,
148
- tabIndex: disabled ? void 0 : -1,
149
- ...(!props.unstyled && {
150
- cursor: "default",
151
- size,
152
- outlineOffset: -0.5,
153
- zIndex: 100,
154
- hoverStyle: {
155
- backgroundColor: "$backgroundHover"
156
- },
157
- pressStyle: {
158
- backgroundColor: "$backgroundPress"
159
- },
160
- focusStyle: {
161
- backgroundColor: "$backgroundFocus"
162
- },
163
- focusVisibleStyle: {
164
- outlineColor: "$outlineColor",
165
- outlineWidth: 1,
166
- outlineStyle: "solid"
167
- }
168
- }),
169
- ...restProps,
170
- ...selectItemProps
171
- })
172
- });
173
- }, {
174
- disableTheme: !0
175
- });
189
+ children: props.children
190
+ }) : /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_list_item.ListItem.Frame, {
191
+ render: "div",
192
+ componentName: ITEM_NAME,
193
+ ref: composedRefs,
194
+ role: "option",
195
+ "aria-labelledby": textId,
196
+ "aria-selected": isSelected,
197
+ "data-state": isSelected ? "active" : "inactive",
198
+ "aria-disabled": disabled || void 0,
199
+ "data-disabled": disabled ? "" : void 0,
200
+ tabIndex: disabled ? void 0 : -1,
201
+ ...(!props.unstyled && {
202
+ cursor: "default",
203
+ size,
204
+ outlineOffset: -0.5,
205
+ zIndex: 100,
206
+ hoverStyle: {
207
+ backgroundColor: "$backgroundHover"
208
+ },
209
+ pressStyle: {
210
+ backgroundColor: "$backgroundPress"
211
+ },
212
+ focusStyle: {
213
+ backgroundColor: "$backgroundFocus"
214
+ },
215
+ focusVisibleStyle: {
216
+ outlineColor: "$outlineColor",
217
+ outlineWidth: 1,
218
+ outlineStyle: "solid"
219
+ }
220
+ }),
221
+ ...restProps,
222
+ ...selectItemProps
223
+ })
224
+ });
225
+ }, {
226
+ disableTheme: true
227
+ });