@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,198 +1,284 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx } from "react/jsx-runtime";
2
2
  import { useComposedRefs } from "@tamagui/compose-refs";
3
+ import { useAdaptIsActive } from "@tamagui/adapt";
3
4
  import { isWeb, useIsomorphicLayoutEffect } from "@tamagui/constants";
4
- import { createStyledContext } from "@tamagui/core";
5
- import { ListItem } from "@tamagui/list-item";
5
+ import { View, createChangeEventDetails, createStyledContext, createStyledHOC, styled } from "@tamagui/core";
6
+ import { composeEventHandlers } from "@tamagui/helpers";
6
7
  import * as React from "react";
7
- import { useSelectItemParentContext } from "./context.native.js";
8
+ import { useSelectContext, useSelectItemParentContext } from "./context.native.js";
9
+ import { getSelectOptionProps } from "./selectionController.native.js";
10
+
8
11
  function _instanceof(left, right) {
9
- if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
10
- return !!right[Symbol.hasInstance](left);
11
- } else {
12
- return left instanceof right;
13
- }
12
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
13
+ return !!right[Symbol.hasInstance](left);
14
+ } else {
15
+ return left instanceof right;
16
+ }
14
17
  }
15
18
  var ITEM_NAME = "SelectItem";
16
- var {
17
- Provider: SelectItemContextProvider,
18
- useStyledContext: useSelectItemContext
19
- } = createStyledContext(null, ITEM_NAME);
20
- var SelectItem = ListItem.Frame.styleable(function SelectItem2(props, forwardedRef) {
21
- var {
22
- scope,
23
- value,
24
- disabled = false,
25
- textValue: textValueProp,
26
- index,
27
- ...restProps
28
- } = props;
29
- var context = useSelectItemParentContext(scope);
30
- var {
31
- setSelectedIndex,
32
- listRef,
33
- setOpen,
34
- onChange,
35
- activeIndexSubscribe,
36
- activeIndexRef,
37
- valueSubscribe,
38
- allowMouseUpRef,
39
- allowSelectRef,
40
- setValueAtIndex,
41
- selectTimeoutRef,
42
- dataRef,
43
- interactions,
44
- shouldRenderWebNative,
45
- size,
46
- onActiveChange,
47
- initialValue,
48
- setActiveIndexFast
49
- } = context;
50
- var [isSelected, setSelected] = React.useState(initialValue === value);
51
- useIsomorphicLayoutEffect(function () {
52
- if (initialValue === value) {
53
- setSelectedIndex(index);
54
- }
55
- }, []);
56
- React.useEffect(function () {
57
- var handleActiveIndex = function (i) {
58
- if (index === i) {
59
- onActiveChange(value, index);
60
- if (isWeb) {
61
- requestAnimationFrame(function () {
62
- var _listRef_current_index;
63
- 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();
64
- });
65
- }
66
- }
67
- };
68
- var currentActiveIndex = activeIndexRef === null || activeIndexRef === void 0 ? void 0 : activeIndexRef.current;
69
- if (currentActiveIndex !== null && currentActiveIndex !== void 0) {
70
- handleActiveIndex(currentActiveIndex);
71
- }
72
- return activeIndexSubscribe(handleActiveIndex);
73
- }, [index]);
74
- React.useEffect(function () {
75
- return valueSubscribe(function (val) {
76
- setSelected(val === value);
77
- });
78
- }, [value]);
79
- var textId = React.useId();
80
- var refCallback = React.useCallback(function (node) {
81
- if (!isWeb) return;
82
- if (_instanceof(node, HTMLElement)) {
83
- if (listRef) {
84
- listRef.current[index] = node;
85
- }
86
- }
87
- }, [index, listRef]);
88
- var composedRefs = useComposedRefs(forwardedRef, refCallback);
89
- useIsomorphicLayoutEffect(function () {
90
- setValueAtIndex(index, value);
91
- }, [index, setValueAtIndex, value]);
92
- function handleSelect() {
93
- setSelectedIndex(index);
94
- onChange(value);
95
- setOpen(false);
96
- }
97
- var selectItemProps = React.useMemo(function () {
98
- return interactions ? interactions.getItemProps({
99
- onTouchMove() {
100
- allowSelectRef.current = true;
101
- allowMouseUpRef.current = false;
102
- },
103
- onTouchEnd() {
104
- allowSelectRef.current = false;
105
- allowMouseUpRef.current = true;
106
- },
107
- onKeyDown(event) {
108
- if (event.key === "Enter" || event.key === " " && !(dataRef === null || dataRef === void 0 ? void 0 : dataRef.current.typing)) {
109
- event.preventDefault();
110
- handleSelect();
111
- } else if (event.key === "ArrowDown" || event.key === "ArrowUp") {
112
- event.preventDefault();
113
- event.stopPropagation();
114
- var _listRef_current_length;
115
- 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;
116
- if (itemCount === 0) return;
117
- var nextIndex;
118
- if (event.key === "ArrowDown") {
119
- nextIndex = index + 1 >= itemCount ? 0 : index + 1;
120
- } else {
121
- nextIndex = index - 1 < 0 ? itemCount - 1 : index - 1;
122
- }
123
- setActiveIndexFast === null || setActiveIndexFast === void 0 ? void 0 : setActiveIndexFast(nextIndex);
124
- } else {
125
- allowSelectRef.current = true;
126
- }
127
- },
128
- onClick() {
129
- if (allowSelectRef.current) {
130
- handleSelect();
131
- }
132
- },
133
- onMouseUp() {
134
- if (!allowMouseUpRef.current) {
135
- allowMouseUpRef.current = true;
136
- allowSelectRef.current = true;
137
- return;
138
- }
139
- if (allowSelectRef.current) {
140
- handleSelect();
141
- }
142
- clearTimeout(selectTimeoutRef.current);
143
- selectTimeoutRef.current = setTimeout(function () {
144
- allowSelectRef.current = true;
145
- });
146
- }
147
- }) : {
148
- onPress: handleSelect
149
- };
150
- }, [handleSelect, index, listRef, setActiveIndexFast]);
151
- return /* @__PURE__ */_jsx(SelectItemContextProvider, {
152
- scope,
153
- value,
154
- textId: textId || "",
155
- isSelected,
156
- children: shouldRenderWebNative ? /* @__PURE__ */_jsx("option", {
157
- value,
158
- children: props.children
159
- }) : /* @__PURE__ */_jsx(ListItem.Frame, {
160
- render: "div",
161
- componentName: ITEM_NAME,
162
- ref: composedRefs,
163
- role: "option",
164
- "aria-labelledby": textId,
165
- "aria-selected": isSelected,
166
- "data-state": isSelected ? "active" : "inactive",
167
- "aria-disabled": disabled || void 0,
168
- "data-disabled": disabled ? "" : void 0,
169
- tabIndex: disabled ? void 0 : -1,
170
- ...(!props.unstyled && {
171
- cursor: "default",
172
- size,
173
- outlineOffset: -0.5,
174
- zIndex: 100,
175
- hoverStyle: {
176
- backgroundColor: "$backgroundHover"
177
- },
178
- pressStyle: {
179
- backgroundColor: "$backgroundPress"
180
- },
181
- focusStyle: {
182
- backgroundColor: "$backgroundFocus"
183
- },
184
- focusVisibleStyle: {
185
- outlineColor: "$outlineColor",
186
- outlineWidth: 1,
187
- outlineStyle: "solid"
188
- }
189
- }),
190
- ...restProps,
191
- ...selectItemProps
192
- })
193
- });
194
- }, {
195
- disableTheme: true
19
+ var { Provider: SelectItemContextProvider, useStyledContext: useSelectItemContext } = createStyledContext(null, ITEM_NAME);
20
+ var SelectItemFrame = styled(View, {
21
+ displayName: ITEM_NAME,
22
+ alignItems: "center",
23
+ flexDirection: "row"
196
24
  });
197
- export { SelectItem, SelectItemContextProvider, useSelectItemContext };
25
+ var SelectItem = createStyledHOC(SelectItemFrame, function SelectItem2(props, forwardedRef) {
26
+ var { scope, value, disabled: disabledProp, "aria-disabled": ariaDisabled, textValue: textValueProp, ...restProps } = props;
27
+ var disabled = disabledProp !== null && disabledProp !== void 0 ? disabledProp : ariaDisabled === true;
28
+ var context = useSelectItemParentContext(scope);
29
+ var selectContext = useSelectContext(scope);
30
+ var isAdapted = useAdaptIsActive(selectContext.adaptScope);
31
+ var { listRef, registry, mode, selectedValues, selectValue, activeIndexSubscribe, activeIndexRef, allowMouseUpRef, allowSelectRef, selectTimeoutRef, interactions, shouldRenderWebNative, setActiveIndexFast, moveActive, search } = context;
32
+ var isSelected = selectedValues.includes(value);
33
+ var pendingMouseUpSelectionRef = React.useRef(false);
34
+ var itemNodeRef = React.useRef(null);
35
+ var [, rerenderRegistry] = React.useReducer(function(version) {
36
+ return version + 1;
37
+ }, 0);
38
+ var registrationRef = React.useRef(null);
39
+ var initialRegistration = React.useRef({
40
+ value,
41
+ disabled,
42
+ textValue: textValueProp
43
+ });
44
+ useIsomorphicLayoutEffect(function() {
45
+ return registry.subscribe(function() {
46
+ return rerenderRegistry();
47
+ });
48
+ }, [registry]);
49
+ useIsomorphicLayoutEffect(function() {
50
+ var registration = registry.registerItem(initialRegistration.current);
51
+ registrationRef.current = registration;
52
+ var registeredNode = itemNodeRef.current;
53
+ registration.setNode(registeredNode);
54
+ var registeredIndex = registry.getItems().findIndex(function(item) {
55
+ return item.id === registration.id;
56
+ });
57
+ if (isWeb && listRef && registeredIndex >= 0 && _instanceof(registeredNode, HTMLElement)) {
58
+ listRef.current[registeredIndex] = registeredNode;
59
+ }
60
+ return function() {
61
+ var currentIndex = registry.getItems().findIndex(function(item) {
62
+ return item.id === registration.id;
63
+ });
64
+ if (listRef && currentIndex >= 0 && listRef.current[currentIndex] === registeredNode) {
65
+ listRef.current[currentIndex] = null;
66
+ }
67
+ registrationRef.current = null;
68
+ registration.unregister();
69
+ };
70
+ }, [registry]);
71
+ useIsomorphicLayoutEffect(function() {
72
+ var _registrationRef_current;
73
+ (_registrationRef_current = registrationRef.current) === null || _registrationRef_current === void 0 ? void 0 : _registrationRef_current.update({
74
+ value,
75
+ disabled,
76
+ textValue: textValueProp
77
+ });
78
+ }, [
79
+ disabled,
80
+ textValueProp,
81
+ value
82
+ ]);
83
+ useIsomorphicLayoutEffect(function() {
84
+ var _registrationRef_current;
85
+ (_registrationRef_current = registrationRef.current) === null || _registrationRef_current === void 0 ? void 0 : _registrationRef_current.setNode(itemNodeRef.current);
86
+ });
87
+ var index = registry.getIndex(value);
88
+ React.useEffect(function() {
89
+ var handleActiveIndex = function(i) {
90
+ if (index === i) {
91
+ if (isWeb) {
92
+ requestAnimationFrame(function() {
93
+ var _listRef_current_index;
94
+ 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();
95
+ });
96
+ }
97
+ }
98
+ };
99
+ var currentActiveIndex = activeIndexRef === null || activeIndexRef === void 0 ? void 0 : activeIndexRef.current;
100
+ if (currentActiveIndex !== null && currentActiveIndex !== void 0) {
101
+ handleActiveIndex(currentActiveIndex);
102
+ }
103
+ return activeIndexSubscribe(handleActiveIndex);
104
+ }, [
105
+ activeIndexRef,
106
+ activeIndexSubscribe,
107
+ index,
108
+ listRef
109
+ ]);
110
+ var textId = React.useId();
111
+ var refCallback = React.useCallback(function(node) {
112
+ var _registrationRef_current;
113
+ itemNodeRef.current = node;
114
+ (_registrationRef_current = registrationRef.current) === null || _registrationRef_current === void 0 ? void 0 : _registrationRef_current.setNode(node);
115
+ if (!isWeb) return;
116
+ if (listRef && index >= 0) {
117
+ listRef.current[index] = _instanceof(node, HTMLElement) ? node : null;
118
+ }
119
+ }, [index, listRef]);
120
+ var composedRefs = useComposedRefs(forwardedRef, refCallback);
121
+ var handleSelect = React.useCallback(function(event) {
122
+ var reason = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "item-press";
123
+ if (disabled) return;
124
+ var nativeEvent = (event === null || event === void 0 ? void 0 : event.nativeEvent) || event;
125
+ selectValue(value, createChangeEventDetails(reason, nativeEvent, event === null || event === void 0 ? void 0 : event.currentTarget));
126
+ }, [
127
+ disabled,
128
+ selectValue,
129
+ value
130
+ ]);
131
+ var handleKeyDown = React.useCallback(function(event) {
132
+ var _event_key;
133
+ if (disabled) return;
134
+ if (event.key === "Enter" || event.key === " ") {
135
+ event.preventDefault();
136
+ handleSelect(event, "keyboard");
137
+ return;
138
+ }
139
+ if (event.key === "ArrowDown" || event.key === "ArrowUp") {
140
+ event.preventDefault();
141
+ event.stopPropagation();
142
+ moveActive(event.key === "ArrowDown" ? 1 : -1, event.nativeEvent || event);
143
+ return;
144
+ }
145
+ if (!interactions && ((_event_key = event.key) === null || _event_key === void 0 ? void 0 : _event_key.length) === 1 && !event.metaKey && !event.ctrlKey) {
146
+ search(event.key, event.nativeEvent || event);
147
+ }
148
+ if (allowSelectRef) {
149
+ allowSelectRef.current = true;
150
+ }
151
+ }, [
152
+ allowSelectRef,
153
+ disabled,
154
+ handleSelect,
155
+ interactions,
156
+ moveActive,
157
+ search
158
+ ]);
159
+ var selectItemProps = React.useMemo(function() {
160
+ if (interactions) {
161
+ var { onTouchMove, onTouchEnd, onKeyDown, onClick, onMouseUp, onMouseMove, onPress, ...itemProps } = restProps;
162
+ var interactionProps = interactions.getItemProps({
163
+ ...itemProps,
164
+ onTouchMove() {
165
+ allowSelectRef.current = true;
166
+ allowMouseUpRef.current = false;
167
+ },
168
+ onTouchEnd() {
169
+ allowSelectRef.current = false;
170
+ allowMouseUpRef.current = true;
171
+ },
172
+ onMouseMove(event) {
173
+ if (disabled || index < 0) return;
174
+ setActiveIndexFast === null || setActiveIndexFast === void 0 ? void 0 : setActiveIndexFast(index, {
175
+ reason: "item-hover",
176
+ event: event.nativeEvent || event,
177
+ trigger: event.currentTarget,
178
+ index
179
+ });
180
+ },
181
+ onKeyDown: handleKeyDown,
182
+ onClick(event) {
183
+ if (disabled) return;
184
+ var shouldSelect = pendingMouseUpSelectionRef.current || allowSelectRef.current;
185
+ pendingMouseUpSelectionRef.current = false;
186
+ clearTimeout(selectTimeoutRef.current);
187
+ allowSelectRef.current = true;
188
+ if (shouldSelect) {
189
+ handleSelect(event);
190
+ }
191
+ },
192
+ onMouseUp(event) {
193
+ if (disabled) return;
194
+ if (!allowMouseUpRef.current) {
195
+ allowMouseUpRef.current = true;
196
+ allowSelectRef.current = true;
197
+ return;
198
+ }
199
+ pendingMouseUpSelectionRef.current = allowSelectRef.current;
200
+ clearTimeout(selectTimeoutRef.current);
201
+ selectTimeoutRef.current = setTimeout(function() {
202
+ allowSelectRef.current = true;
203
+ if (pendingMouseUpSelectionRef.current) {
204
+ pendingMouseUpSelectionRef.current = false;
205
+ handleSelect(event);
206
+ }
207
+ });
208
+ }
209
+ });
210
+ return {
211
+ ...interactionProps,
212
+ onTouchMove: composeEventHandlers(onTouchMove, interactionProps.onTouchMove),
213
+ onTouchEnd: composeEventHandlers(onTouchEnd, interactionProps.onTouchEnd),
214
+ onKeyDown: composeEventHandlers(onKeyDown, interactionProps.onKeyDown),
215
+ onClick(event) {
216
+ var _interactionProps_onClick;
217
+ onClick === null || onClick === void 0 ? void 0 : onClick(event);
218
+ if (event.defaultPrevented) {
219
+ pendingMouseUpSelectionRef.current = false;
220
+ clearTimeout(selectTimeoutRef.current);
221
+ allowSelectRef.current = true;
222
+ return;
223
+ }
224
+ (_interactionProps_onClick = interactionProps.onClick) === null || _interactionProps_onClick === void 0 ? void 0 : _interactionProps_onClick.call(interactionProps, event);
225
+ },
226
+ onMouseUp: composeEventHandlers(onMouseUp, interactionProps.onMouseUp),
227
+ onMouseMove: composeEventHandlers(onMouseMove, interactionProps.onMouseMove),
228
+ onPress
229
+ };
230
+ }
231
+ return {
232
+ ...restProps,
233
+ onKeyDown: composeEventHandlers(restProps.onKeyDown, handleKeyDown),
234
+ onMouseMove: composeEventHandlers(restProps.onMouseMove, function(event) {
235
+ if (disabled || index < 0) return;
236
+ setActiveIndexFast === null || setActiveIndexFast === void 0 ? void 0 : setActiveIndexFast(index, {
237
+ reason: "item-hover",
238
+ event: event.nativeEvent || event,
239
+ trigger: event.currentTarget,
240
+ index
241
+ });
242
+ }),
243
+ onPress: composeEventHandlers(restProps.onPress, handleSelect)
244
+ };
245
+ }, [
246
+ allowMouseUpRef,
247
+ allowSelectRef,
248
+ disabled,
249
+ handleKeyDown,
250
+ handleSelect,
251
+ index,
252
+ interactions,
253
+ restProps,
254
+ selectTimeoutRef,
255
+ setActiveIndexFast
256
+ ]);
257
+ var accessibilityProps = getSelectOptionProps(mode, isSelected, disabled, isWeb ? "web" : "native");
258
+ var _selectContext_activeIndex;
259
+ return /* @__PURE__ */ jsx(SelectItemContextProvider, {
260
+ scope,
261
+ value,
262
+ textId: textId || "",
263
+ textValue: textValueProp,
264
+ isSelected,
265
+ children: shouldRenderWebNative ? /* @__PURE__ */ jsx("option", {
266
+ value,
267
+ disabled,
268
+ children: props.children
269
+ }) : /* @__PURE__ */ jsx(SelectItemFrame, {
270
+ render: "div",
271
+ ref: composedRefs,
272
+ "aria-labelledby": textId,
273
+ "data-state": isSelected ? "active" : "inactive",
274
+ "data-disabled": disabled ? "" : void 0,
275
+ tabIndex: disabled ? void 0 : isWeb && isAdapted ? index === ((_selectContext_activeIndex = selectContext.activeIndex) !== null && _selectContext_activeIndex !== void 0 ? _selectContext_activeIndex : selectContext.selectedIndex) ? 0 : -1 : -1,
276
+ zIndex: 100,
277
+ ...selectItemProps,
278
+ ...accessibilityProps
279
+ })
280
+ });
281
+ }, { disableTheme: true });
282
+
283
+ export { SelectItem, SelectItemContextProvider, SelectItemFrame, useSelectItemContext };
198
284
  //# sourceMappingURL=SelectItem.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","useComposedRefs","isWeb","useIsomorphicLayoutEffect","createStyledContext","ListItem","React","useSelectItemParentContext","_instanceof","left","right","Symbol","hasInstance","ITEM_NAME","Provider","SelectItemContextProvider","useStyledContext","useSelectItemContext","SelectItem","Frame","styleable","SelectItem2","props","forwardedRef","scope","value","disabled","textValue","textValueProp","index","restProps","context","setSelectedIndex","listRef","setOpen","onChange","activeIndexSubscribe","activeIndexRef","valueSubscribe","allowMouseUpRef","allowSelectRef","setValueAtIndex","selectTimeoutRef","dataRef","interactions","shouldRenderWebNative","size","onActiveChange","initialValue","setActiveIndexFast","isSelected","setSelected","useState","useEffect","handleActiveIndex","i","requestAnimationFrame","_listRef_current_index","current","focus","currentActiveIndex","val","textId","useId","refCallback","useCallback","node","HTMLElement","composedRefs","handleSelect","selectItemProps","useMemo","getItemProps","onTouchMove","onTouchEnd","onKeyDown","event","key","typing","preventDefault","stopPropagation","_listRef_current_length","itemCount","length","nextIndex","onClick","onMouseUp","clearTimeout","setTimeout","onPress","children","render","componentName","ref","role","tabIndex","unstyled","cursor","outlineOffset","zIndex","hoverStyle","backgroundColor","pressStyle","focusStyle","focusVisibleStyle","outlineColor","outlineWidth","outlineStyle","disableTheme"],"sources":["../../src/SelectItem.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SelectItem.native.js","names":[],"sources":["esm/SelectItem.native.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { useAdaptIsActive } from \"@tamagui/adapt\";\nimport { isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { createChangeEventDetails, createStyledHOC, createStyledContext, styled, View } from \"@tamagui/core\";\nimport { composeEventHandlers } from \"@tamagui/helpers\";\nimport * as React from \"react\";\nimport { useSelectContext, useSelectItemParentContext } from \"./context\";\nimport { getSelectOptionProps } from \"./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 } = createStyledContext(null, ITEM_NAME);\nvar SelectItemFrame = styled(View, {\n displayName: ITEM_NAME,\n alignItems: \"center\",\n flexDirection: \"row\"\n});\nvar SelectItem = 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 = useSelectItemParentContext(scope);\n var selectContext = useSelectContext(scope);\n var isAdapted = 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 useIsomorphicLayoutEffect(function() {\n return registry.subscribe(function() {\n return rerenderRegistry();\n });\n }, [\n registry\n ]);\n 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 (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 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 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 (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 (!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 = 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, 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: composeEventHandlers(onTouchMove, interactionProps.onTouchMove),\n onTouchEnd: composeEventHandlers(onTouchEnd, interactionProps.onTouchEnd),\n onKeyDown: 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: composeEventHandlers(onMouseUp, interactionProps.onMouseUp),\n onMouseMove: composeEventHandlers(onMouseMove, interactionProps.onMouseMove),\n onPress\n };\n }\n return {\n ...restProps,\n onKeyDown: composeEventHandlers(restProps.onKeyDown, handleKeyDown),\n onMouseMove: 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: 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 = getSelectOptionProps(mode, isSelected, disabled, isWeb ? \"web\" : \"native\");\n var _selectContext_activeIndex;\n return /* @__PURE__ */ _jsx(SelectItemContextProvider, {\n scope,\n value,\n textId: textId || \"\",\n textValue: textValueProp,\n isSelected,\n children: shouldRenderWebNative ? /* @__PURE__ */ _jsx(\"option\", {\n value,\n disabled,\n children: props.children\n }) : /* @__PURE__ */ _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 : 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});\nexport {\n SelectItem,\n SelectItemContextProvider,\n SelectItemFrame,\n useSelectItemContext\n};\n//# sourceMappingURL=SelectItem.js.map\n"],"mappings":"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"}
@@ -1,64 +1,42 @@
1
1
  import { useComposedRefs } from "@tamagui/compose-refs";
2
- import { styled, useIsomorphicLayoutEffect } from "@tamagui/core";
3
- import { SizableText } from "@tamagui/text";
2
+ import { Text, createStyledHOC, styled, useIsomorphicLayoutEffect } from "@tamagui/core";
4
3
  import * as React from "react";
5
4
  import { useSelectItemParentContext } from "./context.mjs";
5
+ import { getSelectLabelText } from "./selectionController.mjs";
6
6
  import { useSelectItemContext } from "./SelectItem.mjs";
7
7
  import { Fragment, jsx } from "react/jsx-runtime";
8
+
8
9
  const ITEM_TEXT_NAME = "SelectItemText";
9
- const SelectItemTextFrame = styled(SizableText, {
10
- name: ITEM_TEXT_NAME,
11
- variants: {
12
- unstyled: {
13
- false: {
14
- userSelect: "none",
15
- color: "$color",
16
- ellipsis: true
17
- }
18
- }
19
- },
20
- defaultVariants: {
21
- unstyled: process.env.TAMAGUI_HEADLESS === "1"
22
- }
23
- });
24
- const SelectItemText = SelectItemTextFrame.styleable(function SelectItemText2(props, forwardedRef) {
25
- const {
26
- scope,
27
- className,
28
- ...itemTextProps
29
- } = props;
30
- const itemParentContext = useSelectItemParentContext(scope);
31
- const ref = React.useRef(null);
32
- const composedRefs = useComposedRefs(forwardedRef, ref);
33
- const itemContext = useSelectItemContext(scope);
34
- const contents = React.useRef(null);
35
- contents.current = /* @__PURE__ */jsx(SelectItemTextFrame, {
36
- className,
37
- size: itemParentContext.size,
38
- id: itemContext.textId,
39
- ...itemTextProps,
40
- ref: composedRefs
41
- });
42
- useIsomorphicLayoutEffect(() => {
43
- if (itemParentContext.initialValue === itemContext.value) {
44
- itemParentContext.setSelectedItem(contents.current);
45
- }
46
- }, []);
47
- useIsomorphicLayoutEffect(() => {
48
- return itemParentContext.valueSubscribe(val => {
49
- if (val === itemContext.value) {
50
- itemParentContext.setSelectedItem(contents.current);
51
- }
52
- });
53
- }, [itemContext.value]);
54
- if (itemParentContext.shouldRenderWebNative) {
55
- return /* @__PURE__ */jsx(Fragment, {
56
- children: props.children
57
- });
58
- }
59
- return /* @__PURE__ */jsx(Fragment, {
60
- children: contents.current
61
- });
10
+ const SelectItemTextFrame = styled(Text, { displayName: ITEM_TEXT_NAME });
11
+ const SelectItemText = createStyledHOC(SelectItemTextFrame, function SelectItemText2(props, forwardedRef) {
12
+ const { scope, className, ...itemTextProps } = props;
13
+ const itemParentContext = useSelectItemParentContext(scope);
14
+ const ref = React.useRef(null);
15
+ const composedRefs = useComposedRefs(forwardedRef, ref);
16
+ const itemContext = useSelectItemContext(scope);
17
+ const contents = React.useRef(null);
18
+ const label = React.useRef(props.children);
19
+ label.current = props.children;
20
+ const labelText = getSelectLabelText(props.children);
21
+ contents.current = /* @__PURE__ */ jsx(SelectItemTextFrame, {
22
+ className,
23
+ id: itemContext.textId,
24
+ ...itemTextProps,
25
+ ref: composedRefs
26
+ });
27
+ useIsomorphicLayoutEffect(() => {
28
+ return itemParentContext.registry.registerLabel(itemContext.value, label.current, itemContext.textValue);
29
+ }, [
30
+ itemContext.textValue,
31
+ itemContext.value,
32
+ itemParentContext.registry,
33
+ labelText
34
+ ]);
35
+ if (itemParentContext.shouldRenderWebNative) {
36
+ return /* @__PURE__ */ jsx(Fragment, { children: props.children });
37
+ }
38
+ return /* @__PURE__ */ jsx(Fragment, { children: contents.current });
62
39
  });
40
+
63
41
  export { ITEM_TEXT_NAME, SelectItemText, SelectItemTextFrame };
64
42
  //# sourceMappingURL=SelectItemText.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["useComposedRefs","styled","useIsomorphicLayoutEffect","SizableText","React","useSelectItemParentContext","useSelectItemContext","Fragment","jsx","ITEM_TEXT_NAME","SelectItemTextFrame","name","variants","unstyled","false","userSelect","color","ellipsis","defaultVariants","process","env","TAMAGUI_HEADLESS","SelectItemText","styleable","props","forwardedRef","scope","className","itemTextProps","itemParentContext","ref","useRef","composedRefs","itemContext","contents","current","size","id","textId","initialValue","value","setSelectedItem","valueSubscribe","val","shouldRenderWebNative","children"],"sources":["../../src/SelectItemText.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,eAAA,QAAuB;AAEhC,SAASC,MAAA,EAAQC,yBAAA,QAAiC;AAClD,SAASC,WAAA,QAAmB;AAC5B,YAAYC,KAAA,MAAW;AAEvB,SAASC,0BAAA,QAAkC;AAC3C,SAASC,oBAAA,QAA4B;AA6C/B,SAwBOC,QAAA,EAxBPC,GAAA;AAtCC,MAAMC,cAAA,GAAiB;AAEvB,MAAMC,mBAAA,GAAsBT,MAAA,CAAOE,WAAA,EAAa;EACrDQ,IAAA,EAAMF,cAAA;EAENG,QAAA,EAAU;IACRC,QAAA,EAAU;MACRC,KAAA,EAAO;QACLC,UAAA,EAAY;QACZC,KAAA,EAAO;QACPC,QAAA,EAAU;MACZ;IACF;EACF;EAEAC,eAAA,EAAiB;IACfL,QAAA,EAAUM,OAAA,CAAQC,GAAA,CAAIC,gBAAA,KAAqB;EAC7C;AACF,CAAC;AAMM,MAAMC,cAAA,GAAiBZ,mBAAA,CAAoBa,SAAA,CAChD,SAASD,gBAAeE,KAAA,EAAOC,YAAA,EAAc;EAC3C,MAAM;IAAEC,KAAA;IAAOC,SAAA;IAAW,GAAGC;EAAc,IAAIJ,KAAA;EAG/C,MAAMK,iBAAA,GAAoBxB,0BAAA,CAA2BqB,KAAK;EAC1D,MAAMI,GAAA,GAAM1B,KAAA,CAAM2B,MAAA,CAAkC,IAAI;EACxD,MAAMC,YAAA,GAAehC,eAAA,CAAgByB,YAAA,EAAcK,GAAG;EACtD,MAAMG,WAAA,GAAc3B,oBAAA,CAAqBoB,KAAK;EAC9C,MAAMQ,QAAA,GAAW9B,KAAA,CAAM2B,MAAA,CAAwB,IAAI;EAInDG,QAAA,CAASC,OAAA,GACP,eAAA3B,GAAA,CAACE,mBAAA;IACCiB,SAAA;IACAS,IAAA,EAAMP,iBAAA,CAAkBO,IAAA;IACxBC,EAAA,EAAIJ,WAAA,CAAYK,MAAA;IACf,GAAGV,aAAA;IACJE,GAAA,EAAKE;EAAA,CACP;EAGF9B,yBAAA,CAA0B,MAAM;IAC9B,IAAI2B,iBAAA,CAAkBU,YAAA,KAAiBN,WAAA,CAAYO,KAAA,EAAO;MACxDX,iBAAA,CAAkBY,eAAA,CAAgBP,QAAA,CAASC,OAAO;IACpD;EACF,GAAG,EAAE;EAELjC,yBAAA,CAA0B,MAAM;IAC9B,OAAO2B,iBAAA,CAAkBa,cAAA,CAAgBC,GAAA,IAAQ;MAC/C,IAAIA,GAAA,KAAQV,WAAA,CAAYO,KAAA,EAAO;QAC7BX,iBAAA,CAAkBY,eAAA,CAAgBP,QAAA,CAASC,OAAO;MACpD;IACF,CAAC;EACH,GAAG,CAACF,WAAA,CAAYO,KAAK,CAAC;EAEtB,IAAIX,iBAAA,CAAkBe,qBAAA,EAAuB;IAC3C,OAAO,eAAApC,GAAA,CAAAD,QAAA;MAAGsC,QAAA,EAAArB,KAAA,CAAMqB;IAAA,CAAS;EAC3B;EAEA,OAAO,eAAArC,GAAA,CAAAD,QAAA;IAAGsC,QAAA,EAAAX,QAAA,CAASC;EAAA,CAAQ;AAC7B,CACF","ignoreList":[]}
1
+ {"version":3,"file":"SelectItemText.js","names":[],"sources":["esm/SelectItemText.js"],"sourcesContent":["import { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { createStyledHOC, styled, Text, useIsomorphicLayoutEffect } from \"@tamagui/core\";\nimport * as React from \"react\";\nimport { useSelectItemParentContext } from \"./context\";\nimport { getSelectLabelText } from \"./selectionController\";\nimport { useSelectItemContext } from \"./SelectItem\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nconst ITEM_TEXT_NAME = \"SelectItemText\";\nconst SelectItemTextFrame = styled(Text, {\n displayName: ITEM_TEXT_NAME\n});\nconst SelectItemText = createStyledHOC(\n SelectItemTextFrame,\n function SelectItemText2(props, forwardedRef) {\n const { scope, className, ...itemTextProps } = props;\n const itemParentContext = useSelectItemParentContext(scope);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n const itemContext = useSelectItemContext(scope);\n const contents = React.useRef(null);\n const label = React.useRef(props.children);\n label.current = props.children;\n const labelText = getSelectLabelText(props.children);\n contents.current = /* @__PURE__ */ jsx(\n SelectItemTextFrame,\n {\n className,\n id: itemContext.textId,\n ...itemTextProps,\n ref: composedRefs\n }\n );\n useIsomorphicLayoutEffect(() => {\n return itemParentContext.registry.registerLabel(\n itemContext.value,\n label.current,\n itemContext.textValue\n );\n }, [itemContext.textValue, itemContext.value, itemParentContext.registry, labelText]);\n if (itemParentContext.shouldRenderWebNative) {\n return /* @__PURE__ */ jsx(Fragment, { children: props.children });\n }\n return /* @__PURE__ */ jsx(Fragment, { children: contents.current });\n }\n);\nexport {\n ITEM_TEXT_NAME,\n SelectItemText,\n SelectItemTextFrame\n};\n//# sourceMappingURL=SelectItemText.js.map\n"],"mappings":";;;;;;;;;AAOA,MAAM,iBAAiB;AACvB,MAAM,sBAAsB,OAAO,MAAM,EACvC,aAAa,eACf,CAAC;AACD,MAAM,iBAAiB,gBACrB,qBACA,SAAS,gBAAgB,OAAO,cAAc;CAC5C,MAAM,EAAE,OAAO,WAAW,GAAG,kBAAkB;CAC/C,MAAM,oBAAoB,2BAA2B,KAAK;CAC1D,MAAM,MAAM,MAAM,OAAO,IAAI;CAC7B,MAAM,eAAe,gBAAgB,cAAc,GAAG;CACtD,MAAM,cAAc,qBAAqB,KAAK;CAC9C,MAAM,WAAW,MAAM,OAAO,IAAI;CAClC,MAAM,QAAQ,MAAM,OAAO,MAAM,QAAQ;CACzC,MAAM,UAAU,MAAM;CACtB,MAAM,YAAY,mBAAmB,MAAM,QAAQ;CACnD,SAAS,UAA0B,oBACjC,qBACA;EACE;EACA,IAAI,YAAY;EAChB,GAAG;EACH,KAAK;CACP,CACF;CACA,gCAAgC;EAC9B,OAAO,kBAAkB,SAAS,cAChC,YAAY,OACZ,MAAM,SACN,YAAY,SACd;CACF,GAAG;EAAC,YAAY;EAAW,YAAY;EAAO,kBAAkB;EAAU;CAAS,CAAC;CACpF,IAAI,kBAAkB,uBAAuB;EAC3C,OAAuB,oBAAI,UAAU,EAAE,UAAU,MAAM,SAAS,CAAC;CACnE;CACA,OAAuB,oBAAI,UAAU,EAAE,UAAU,SAAS,QAAQ,CAAC;AACrE,CACF"}