@tamagui/select 2.7.7 → 3.0.0-beta.1091.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 +406 -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 +79 -79
  6. package/dist/cjs/SelectContent.native.cjs +29 -0
  7. package/dist/cjs/SelectContent.native.js +17 -22
  8. package/dist/cjs/SelectContent.native.js.map +1 -1
  9. package/dist/cjs/SelectImpl.cjs +305 -320
  10. package/dist/cjs/SelectImpl.native.cjs +29 -0
  11. package/dist/cjs/SelectImpl.native.js +16 -24
  12. package/dist/cjs/SelectImpl.native.js.map +1 -1
  13. package/dist/cjs/SelectItem.cjs +256 -205
  14. package/dist/cjs/SelectItem.native.cjs +288 -0
  15. package/dist/cjs/SelectItem.native.js +264 -213
  16. package/dist/cjs/SelectItem.native.js.map +1 -1
  17. package/dist/cjs/SelectItemText.cjs +48 -79
  18. package/dist/cjs/SelectItemText.native.cjs +73 -0
  19. package/dist/cjs/SelectItemText.native.js +49 -79
  20. package/dist/cjs/SelectItemText.native.js.map +1 -1
  21. package/dist/cjs/SelectScrollButton.cjs +110 -130
  22. package/dist/cjs/SelectScrollButton.native.cjs +37 -0
  23. package/dist/cjs/SelectScrollButton.native.js +24 -22
  24. package/dist/cjs/SelectScrollButton.native.js.map +1 -1
  25. package/dist/cjs/SelectTrigger.cjs +68 -84
  26. package/dist/cjs/SelectTrigger.native.cjs +90 -0
  27. package/dist/cjs/SelectTrigger.native.js +70 -66
  28. package/dist/cjs/SelectTrigger.native.js.map +1 -1
  29. package/dist/cjs/SelectViewport.cjs +121 -142
  30. package/dist/cjs/SelectViewport.native.cjs +72 -0
  31. package/dist/cjs/SelectViewport.native.js +53 -50
  32. package/dist/cjs/SelectViewport.native.js.map +1 -1
  33. package/dist/cjs/constants.cjs +20 -22
  34. package/dist/cjs/constants.native.cjs +40 -0
  35. package/dist/cjs/constants.native.js +20 -21
  36. package/dist/cjs/constants.native.js.map +1 -1
  37. package/dist/cjs/context.cjs +37 -48
  38. package/dist/cjs/context.native.cjs +57 -0
  39. package/dist/cjs/context.native.js +39 -49
  40. package/dist/cjs/context.native.js.map +1 -1
  41. package/dist/cjs/index.cjs +14 -11
  42. package/dist/cjs/index.native.cjs +26 -0
  43. package/dist/cjs/index.native.js +14 -10
  44. package/dist/cjs/index.native.js.map +1 -1
  45. package/dist/cjs/selectionController.cjs +343 -0
  46. package/dist/cjs/selectionController.native.cjs +407 -0
  47. package/dist/cjs/selectionController.native.js +409 -0
  48. package/dist/cjs/selectionController.native.js.map +1 -0
  49. package/dist/cjs/types.cjs +9 -11
  50. package/dist/cjs/types.native.cjs +18 -0
  51. package/dist/cjs/types.native.js +9 -10
  52. package/dist/cjs/types.native.js.map +1 -1
  53. package/dist/esm/Select.mjs +381 -443
  54. package/dist/esm/Select.mjs.map +1 -1
  55. package/dist/esm/Select.native.js +420 -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 +291 -295
  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 +240 -181
  66. package/dist/esm/SelectItem.mjs.map +1 -1
  67. package/dist/esm/SelectItem.native.js +249 -191
  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 +107 -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 +315 -0
  97. package/dist/esm/selectionController.mjs.map +1 -0
  98. package/dist/esm/selectionController.native.js +377 -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 +381 -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 +29 -0
  110. package/dist/jsx/SelectContent.native.js +17 -22
  111. package/dist/jsx/SelectContent.native.js.map +1 -1
  112. package/dist/jsx/SelectImpl.mjs +291 -295
  113. package/dist/jsx/SelectImpl.mjs.map +1 -1
  114. package/dist/jsx/SelectImpl.native.cjs +29 -0
  115. package/dist/jsx/SelectImpl.native.js +16 -24
  116. package/dist/jsx/SelectImpl.native.js.map +1 -1
  117. package/dist/jsx/SelectItem.mjs +240 -181
  118. package/dist/jsx/SelectItem.mjs.map +1 -1
  119. package/dist/jsx/SelectItem.native.cjs +288 -0
  120. package/dist/jsx/SelectItem.native.js +264 -213
  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 +73 -0
  125. package/dist/jsx/SelectItemText.native.js +49 -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 +37 -0
  130. package/dist/jsx/SelectScrollButton.native.js +24 -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 +90 -0
  135. package/dist/jsx/SelectTrigger.native.js +70 -66
  136. package/dist/jsx/SelectTrigger.native.js.map +1 -1
  137. package/dist/jsx/SelectViewport.mjs +107 -119
  138. package/dist/jsx/SelectViewport.mjs.map +1 -1
  139. package/dist/jsx/SelectViewport.native.cjs +72 -0
  140. package/dist/jsx/SelectViewport.native.js +53 -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 +40 -0
  145. package/dist/jsx/constants.native.js +20 -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 +57 -0
  150. package/dist/jsx/context.native.js +39 -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 +26 -0
  155. package/dist/jsx/index.native.js +14 -10
  156. package/dist/jsx/index.native.js.map +1 -1
  157. package/dist/jsx/selectionController.mjs +315 -0
  158. package/dist/jsx/selectionController.mjs.map +1 -0
  159. package/dist/jsx/selectionController.native.cjs +407 -0
  160. package/dist/jsx/selectionController.native.js +409 -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 +18 -0
  164. package/dist/jsx/types.native.js +9 -10
  165. package/dist/jsx/types.native.js.map +1 -1
  166. package/package.json +31 -30
  167. package/src/Select.tsx +478 -378
  168. package/src/SelectContent.tsx +46 -16
  169. package/src/SelectImpl.native.tsx +0 -8
  170. package/src/SelectImpl.tsx +149 -160
  171. package/src/SelectItem.tsx +280 -159
  172. package/src/SelectItemText.tsx +16 -33
  173. package/src/SelectScrollButton.native.tsx +13 -4
  174. package/src/SelectScrollButton.tsx +57 -42
  175. package/src/SelectTrigger.tsx +77 -53
  176. package/src/SelectViewport.native.tsx +42 -25
  177. package/src/SelectViewport.tsx +60 -60
  178. package/src/context.tsx +6 -2
  179. package/src/index.tsx +5 -2
  180. package/src/selectionController.ts +404 -0
  181. package/src/types.tsx +105 -59
  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 +90 -0
  210. package/types/selectionController.d.ts.map +1 -0
  211. package/types/types.d.ts +66 -50
  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,256 @@
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
8
  import { useSelectItemParentContext } from "./context.native.js";
8
- 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
- }
14
- }
9
+ import { getSelectOptionProps } from "./selectionController.native.js";
10
+
15
11
  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
12
+ var { Provider: SelectItemContextProvider, useStyledContext: useSelectItemContext } = createStyledContext(null, ITEM_NAME);
13
+ var SelectItemFrame = styled(View, {
14
+ displayName: ITEM_NAME,
15
+ alignItems: "center",
16
+ flexDirection: "row"
196
17
  });
197
- export { SelectItem, SelectItemContextProvider, useSelectItemContext };
18
+ var SelectItem = createStyledHOC(SelectItemFrame, function SelectItem2(props, forwardedRef) {
19
+ var { scope, value, disabled: disabledProp, "aria-disabled": ariaDisabled, textValue: textValueProp, ...restProps } = props;
20
+ var disabled = disabledProp !== null && disabledProp !== void 0 ? disabledProp : ariaDisabled === true;
21
+ var context = useSelectItemParentContext(scope);
22
+ var isAdapted = useAdaptIsActive(context.adaptScope);
23
+ var { registry, mode, selectedValues, selectValue, activeIndexSubscribe, activeIndexRef, allowMouseUpRef, allowSelectRef, selectTimeoutRef, getItemProps, shouldRenderWebNative, setActiveIndex, lastPointerRef, moveActive, search } = context;
24
+ var isSelected = selectedValues.includes(value);
25
+ var pendingMouseUpSelectionRef = React.useRef(false);
26
+ var itemNodeRef = React.useRef(null);
27
+ var registrationRef = React.useRef(null);
28
+ var initialRegistration = React.useRef({
29
+ value,
30
+ disabled,
31
+ textValue: textValueProp
32
+ });
33
+ useIsomorphicLayoutEffect(function() {
34
+ var registration = registry.registerItem(initialRegistration.current);
35
+ registrationRef.current = registration;
36
+ registration.setNode(itemNodeRef.current);
37
+ return function() {
38
+ registrationRef.current = null;
39
+ registration.unregister();
40
+ };
41
+ }, [registry]);
42
+ useIsomorphicLayoutEffect(function() {
43
+ var _registrationRef_current;
44
+ (_registrationRef_current = registrationRef.current) === null || _registrationRef_current === void 0 ? void 0 : _registrationRef_current.update({
45
+ value,
46
+ disabled,
47
+ textValue: textValueProp
48
+ });
49
+ }, [
50
+ disabled,
51
+ textValueProp,
52
+ value
53
+ ]);
54
+ useIsomorphicLayoutEffect(function() {
55
+ var _registrationRef_current;
56
+ (_registrationRef_current = registrationRef.current) === null || _registrationRef_current === void 0 ? void 0 : _registrationRef_current.setNode(itemNodeRef.current);
57
+ });
58
+ var [isActive, setIsActive] = React.useState(false);
59
+ var isActiveRef = React.useRef(false);
60
+ React.useEffect(function() {
61
+ var handleActiveIndex = function(i) {
62
+ var next = i != null && registry.getIndex(value) === i;
63
+ if (next !== isActiveRef.current) {
64
+ isActiveRef.current = next;
65
+ setIsActive(next);
66
+ }
67
+ if (next && isWeb) {
68
+ requestAnimationFrame(function() {
69
+ var _itemNodeRef_current_focus, _itemNodeRef_current;
70
+ (_itemNodeRef_current = itemNodeRef.current) === null || _itemNodeRef_current === void 0 ? void 0 : (_itemNodeRef_current_focus = _itemNodeRef_current.focus) === null || _itemNodeRef_current_focus === void 0 ? void 0 : _itemNodeRef_current_focus.call(_itemNodeRef_current);
71
+ });
72
+ }
73
+ };
74
+ var _activeIndexRef_current;
75
+ handleActiveIndex((_activeIndexRef_current = activeIndexRef === null || activeIndexRef === void 0 ? void 0 : activeIndexRef.current) !== null && _activeIndexRef_current !== void 0 ? _activeIndexRef_current : null);
76
+ return activeIndexSubscribe(handleActiveIndex);
77
+ }, [
78
+ activeIndexRef,
79
+ activeIndexSubscribe,
80
+ registry,
81
+ value
82
+ ]);
83
+ var textId = React.useId();
84
+ var refCallback = React.useCallback(function(node) {
85
+ var _registrationRef_current;
86
+ itemNodeRef.current = node;
87
+ (_registrationRef_current = registrationRef.current) === null || _registrationRef_current === void 0 ? void 0 : _registrationRef_current.setNode(node);
88
+ }, []);
89
+ var composedRefs = useComposedRefs(forwardedRef, refCallback);
90
+ var handleSelect = React.useCallback(function(event) {
91
+ var reason = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "item-press";
92
+ if (disabled) return;
93
+ var nativeEvent = (event === null || event === void 0 ? void 0 : event.nativeEvent) || event;
94
+ selectValue(value, createChangeEventDetails(reason, nativeEvent, event === null || event === void 0 ? void 0 : event.currentTarget));
95
+ }, [
96
+ disabled,
97
+ selectValue,
98
+ value
99
+ ]);
100
+ var handleMouseMove = React.useCallback(function(event) {
101
+ if (disabled) return;
102
+ var index = registry.getIndex(value);
103
+ if (index < 0) return;
104
+ var last = lastPointerRef.current;
105
+ if (event.clientX === last.x && event.clientY === last.y) return;
106
+ last.x = event.clientX;
107
+ last.y = event.clientY;
108
+ setActiveIndex(index, {
109
+ reason: "item-hover",
110
+ event: event.nativeEvent || event,
111
+ trigger: event.currentTarget,
112
+ index
113
+ });
114
+ }, [
115
+ disabled,
116
+ lastPointerRef,
117
+ registry,
118
+ setActiveIndex,
119
+ value
120
+ ]);
121
+ var handleKeyDown = React.useCallback(function(event) {
122
+ var _event_key;
123
+ if (disabled) return;
124
+ if (event.key === "Enter" || event.key === " ") {
125
+ event.preventDefault();
126
+ handleSelect(event, "keyboard");
127
+ return;
128
+ }
129
+ if (event.key === "ArrowDown" || event.key === "ArrowUp") {
130
+ event.preventDefault();
131
+ event.stopPropagation();
132
+ moveActive(event.key === "ArrowDown" ? 1 : -1, event.nativeEvent || event);
133
+ return;
134
+ }
135
+ if (!getItemProps && ((_event_key = event.key) === null || _event_key === void 0 ? void 0 : _event_key.length) === 1 && !event.metaKey && !event.ctrlKey) {
136
+ search(event.key, event.nativeEvent || event);
137
+ }
138
+ if (allowSelectRef) {
139
+ allowSelectRef.current = true;
140
+ }
141
+ }, [
142
+ allowSelectRef,
143
+ disabled,
144
+ handleSelect,
145
+ getItemProps,
146
+ moveActive,
147
+ search
148
+ ]);
149
+ var selectItemProps = React.useMemo(function() {
150
+ if (getItemProps) {
151
+ var { onTouchMove, onTouchEnd, onKeyDown, onClick, onMouseUp, onMouseMove, onPress, ...itemProps } = restProps;
152
+ var interactionProps = getItemProps({
153
+ ...itemProps,
154
+ onTouchMove() {
155
+ allowSelectRef.current = true;
156
+ allowMouseUpRef.current = false;
157
+ },
158
+ onTouchEnd() {
159
+ allowSelectRef.current = false;
160
+ allowMouseUpRef.current = true;
161
+ },
162
+ onMouseMove: handleMouseMove,
163
+ onKeyDown: handleKeyDown,
164
+ onClick(event) {
165
+ if (disabled) return;
166
+ var shouldSelect = pendingMouseUpSelectionRef.current || allowSelectRef.current;
167
+ pendingMouseUpSelectionRef.current = false;
168
+ clearTimeout(selectTimeoutRef.current);
169
+ allowSelectRef.current = true;
170
+ if (shouldSelect) {
171
+ handleSelect(event);
172
+ }
173
+ },
174
+ onMouseUp(event) {
175
+ if (disabled) return;
176
+ if (!allowMouseUpRef.current) {
177
+ allowMouseUpRef.current = true;
178
+ allowSelectRef.current = true;
179
+ return;
180
+ }
181
+ pendingMouseUpSelectionRef.current = allowSelectRef.current;
182
+ clearTimeout(selectTimeoutRef.current);
183
+ selectTimeoutRef.current = setTimeout(function() {
184
+ allowSelectRef.current = true;
185
+ if (pendingMouseUpSelectionRef.current) {
186
+ pendingMouseUpSelectionRef.current = false;
187
+ handleSelect(event);
188
+ }
189
+ });
190
+ }
191
+ });
192
+ return {
193
+ ...interactionProps,
194
+ onTouchMove: composeEventHandlers(onTouchMove, interactionProps.onTouchMove),
195
+ onTouchEnd: composeEventHandlers(onTouchEnd, interactionProps.onTouchEnd),
196
+ onKeyDown: composeEventHandlers(onKeyDown, interactionProps.onKeyDown),
197
+ onClick(event) {
198
+ var _interactionProps_onClick;
199
+ onClick === null || onClick === void 0 ? void 0 : onClick(event);
200
+ if (event.defaultPrevented) {
201
+ pendingMouseUpSelectionRef.current = false;
202
+ clearTimeout(selectTimeoutRef.current);
203
+ allowSelectRef.current = true;
204
+ return;
205
+ }
206
+ (_interactionProps_onClick = interactionProps.onClick) === null || _interactionProps_onClick === void 0 ? void 0 : _interactionProps_onClick.call(interactionProps, event);
207
+ },
208
+ onMouseUp: composeEventHandlers(onMouseUp, interactionProps.onMouseUp),
209
+ onMouseMove: composeEventHandlers(onMouseMove, interactionProps.onMouseMove),
210
+ onPress
211
+ };
212
+ }
213
+ return {
214
+ ...restProps,
215
+ onKeyDown: composeEventHandlers(restProps.onKeyDown, handleKeyDown),
216
+ onMouseMove: composeEventHandlers(restProps.onMouseMove, handleMouseMove),
217
+ onPress: composeEventHandlers(restProps.onPress, handleSelect)
218
+ };
219
+ }, [
220
+ allowMouseUpRef,
221
+ allowSelectRef,
222
+ disabled,
223
+ handleKeyDown,
224
+ handleMouseMove,
225
+ handleSelect,
226
+ getItemProps,
227
+ restProps,
228
+ selectTimeoutRef
229
+ ]);
230
+ var accessibilityProps = getSelectOptionProps(mode, isSelected, disabled, isWeb ? "web" : "native");
231
+ return /* @__PURE__ */ jsx(SelectItemContextProvider, {
232
+ scope,
233
+ value,
234
+ textId: textId || "",
235
+ textValue: textValueProp,
236
+ isSelected,
237
+ children: shouldRenderWebNative ? /* @__PURE__ */ jsx("option", {
238
+ value,
239
+ disabled,
240
+ children: props.children
241
+ }) : /* @__PURE__ */ jsx(SelectItemFrame, {
242
+ render: "div",
243
+ ref: composedRefs,
244
+ "aria-labelledby": textId,
245
+ "data-state": isSelected ? "active" : "inactive",
246
+ "data-disabled": disabled ? "" : void 0,
247
+ tabIndex: disabled ? void 0 : isWeb && isAdapted && (isActive || (activeIndexRef === null || activeIndexRef === void 0 ? void 0 : activeIndexRef.current) == null && isSelected) ? 0 : -1,
248
+ zIndex: 100,
249
+ ...selectItemProps,
250
+ ...accessibilityProps
251
+ })
252
+ });
253
+ }, { disableTheme: true });
254
+
255
+ export { SelectItem, SelectItemContextProvider, SelectItemFrame, useSelectItemContext };
198
256
  //# 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 { useSelectItemParentContext } from \"./context\";\nimport { getSelectOptionProps } from \"./selectionController\";\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 isAdapted = useAdaptIsActive(context.adaptScope);\n var { registry, mode, selectedValues, selectValue, activeIndexSubscribe, activeIndexRef, allowMouseUpRef, allowSelectRef, selectTimeoutRef, getItemProps, shouldRenderWebNative, setActiveIndex, lastPointerRef, moveActive, search } = context;\n var isSelected = selectedValues.includes(value);\n var pendingMouseUpSelectionRef = React.useRef(false);\n var itemNodeRef = React.useRef(null);\n var registrationRef = React.useRef(null);\n var initialRegistration = React.useRef({\n value,\n disabled,\n textValue: textValueProp\n });\n useIsomorphicLayoutEffect(function() {\n var registration = registry.registerItem(initialRegistration.current);\n registrationRef.current = registration;\n registration.setNode(itemNodeRef.current);\n return function() {\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 [isActive, setIsActive] = React.useState(false);\n var isActiveRef = React.useRef(false);\n React.useEffect(function() {\n var handleActiveIndex = function(i) {\n var next = i != null && registry.getIndex(value) === i;\n if (next !== isActiveRef.current) {\n isActiveRef.current = next;\n setIsActive(next);\n }\n if (next && isWeb) {\n requestAnimationFrame(function() {\n var _itemNodeRef_current_focus, _itemNodeRef_current;\n (_itemNodeRef_current = itemNodeRef.current) === null || _itemNodeRef_current === void 0 ? void 0 : (_itemNodeRef_current_focus = _itemNodeRef_current.focus) === null || _itemNodeRef_current_focus === void 0 ? void 0 : _itemNodeRef_current_focus.call(_itemNodeRef_current);\n });\n }\n };\n var _activeIndexRef_current;\n handleActiveIndex((_activeIndexRef_current = activeIndexRef === null || activeIndexRef === void 0 ? void 0 : activeIndexRef.current) !== null && _activeIndexRef_current !== void 0 ? _activeIndexRef_current : null);\n return activeIndexSubscribe(handleActiveIndex);\n }, [\n activeIndexRef,\n activeIndexSubscribe,\n registry,\n value\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 }, []);\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 handleMouseMove = React.useCallback(function(event) {\n if (disabled) return;\n var index = registry.getIndex(value);\n if (index < 0) return;\n var last = lastPointerRef.current;\n if (event.clientX === last.x && event.clientY === last.y) return;\n last.x = event.clientX;\n last.y = event.clientY;\n setActiveIndex(index, {\n reason: \"item-hover\",\n event: event.nativeEvent || event,\n trigger: event.currentTarget,\n index\n });\n }, [\n disabled,\n lastPointerRef,\n registry,\n setActiveIndex,\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 (!getItemProps && ((_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 getItemProps,\n moveActive,\n search\n ]);\n var selectItemProps = React.useMemo(function() {\n if (getItemProps) {\n var { onTouchMove, onTouchEnd, onKeyDown, onClick, onMouseUp, onMouseMove, onPress, ...itemProps } = restProps;\n var interactionProps = 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: handleMouseMove,\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, handleMouseMove),\n onPress: composeEventHandlers(restProps.onPress, handleSelect)\n };\n }, [\n allowMouseUpRef,\n allowSelectRef,\n disabled,\n handleKeyDown,\n handleMouseMove,\n handleSelect,\n getItemProps,\n restProps,\n selectTimeoutRef\n ]);\n var accessibilityProps = getSelectOptionProps(mode, isSelected, disabled, isWeb ? \"web\" : \"native\");\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 && (isActive || (activeIndexRef === null || activeIndexRef === void 0 ? void 0 : activeIndexRef.current) == null && isSelected) ? 0 : -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"}