@vvedantb/native-ui 0.17.2 → 0.18.0

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 (220) hide show
  1. package/dist/AlertDialog.jsx +123 -0
  2. package/dist/AmbientBackground.jsx +73 -0
  3. package/dist/ArtifactList.jsx +59 -0
  4. package/dist/Avatar.jsx +285 -0
  5. package/dist/Badge.jsx +154 -0
  6. package/dist/BottomSheetContainer.jsx +208 -0
  7. package/dist/BulkActionBar.jsx +717 -0
  8. package/dist/Button.jsx +344 -0
  9. package/dist/CaptureButton.jsx +104 -0
  10. package/dist/Card.jsx +371 -0
  11. package/dist/Checkbox.jsx +177 -0
  12. package/dist/Chip.jsx +79 -0
  13. package/dist/ColorSwatches.jsx +159 -0
  14. package/dist/ConfirmDialog.jsx +157 -0
  15. package/dist/DateTimeField.jsx +204 -0
  16. package/dist/Dialog.jsx +614 -0
  17. package/dist/DividedList.jsx +120 -0
  18. package/dist/DropdownMenu.jsx +849 -0
  19. package/dist/EmptyState.jsx +434 -0
  20. package/dist/ExpoWebRoot.jsx +134 -0
  21. package/dist/FloatingFAB.jsx +95 -0
  22. package/dist/FloatingSurface.jsx +226 -0
  23. package/dist/FloatingTabBar.jsx +403 -0
  24. package/dist/HeaderIconButton.jsx +53 -0
  25. package/dist/IconButton.jsx +157 -0
  26. package/dist/Input.jsx +96 -0
  27. package/dist/Label.jsx +96 -0
  28. package/dist/LabeledSwitchRow.jsx +170 -0
  29. package/dist/LiquidGlass.jsx +2 -0
  30. package/dist/ListRow.jsx +281 -0
  31. package/dist/LoadingState.jsx +205 -0
  32. package/dist/PageIndicator.jsx +128 -0
  33. package/dist/PageTitle.jsx +205 -0
  34. package/dist/Pager.jsx +105 -0
  35. package/dist/PasswordInput.jsx +120 -0
  36. package/dist/PillTabs.jsx +300 -0
  37. package/dist/PinnedBotTile.jsx +212 -0
  38. package/dist/Progress.jsx +147 -0
  39. package/dist/SafeAreaContainer.jsx +38 -0
  40. package/dist/ScreenContainer.jsx +117 -0
  41. package/dist/SearchInput.jsx +150 -0
  42. package/dist/SectionLabel.jsx +128 -0
  43. package/dist/Select.jsx +223 -0
  44. package/dist/Separator.jsx +95 -0
  45. package/dist/Sheet.jsx +343 -0
  46. package/dist/SheetRow.jsx +198 -0
  47. package/dist/Skeleton.jsx +311 -0
  48. package/dist/Spinner.jsx +195 -0
  49. package/dist/StackPageHeader.jsx +160 -0
  50. package/dist/StatGrid.jsx +74 -0
  51. package/dist/StatusDot.jsx +129 -0
  52. package/dist/SurfaceRow.jsx +143 -0
  53. package/dist/SwipeableRow.jsx +50 -0
  54. package/dist/Switch.jsx +130 -0
  55. package/dist/Tabs.jsx +385 -0
  56. package/dist/Textarea.jsx +103 -0
  57. package/dist/ThemeToggle.jsx +78 -0
  58. package/dist/Toast.jsx +396 -0
  59. package/dist/ai/activity-step-detail.jsx +179 -0
  60. package/dist/ai/activity-step-label.js +816 -0
  61. package/dist/ai/activity-step-types.js +14 -0
  62. package/dist/ai/activity-step.jsx +98 -0
  63. package/dist/ai/activity-tasks-utils.js +172 -0
  64. package/dist/ai/activity-timeline.js +47 -0
  65. package/dist/ai/attachments.jsx +258 -0
  66. package/dist/ai/card-button.jsx +188 -0
  67. package/dist/ai/chain-of-thought.jsx +459 -0
  68. package/dist/ai/chat-jump-rail.jsx +57 -0
  69. package/dist/ai/chat-text.js +44 -0
  70. package/dist/ai/chat-thread.jsx +135 -0
  71. package/dist/ai/choice-question.jsx +925 -0
  72. package/dist/ai/code-block.jsx +574 -0
  73. package/dist/ai/collapsible.jsx +275 -0
  74. package/dist/ai/conversation.jsx +723 -0
  75. package/dist/ai/file-chip.jsx +198 -0
  76. package/dist/ai/icon-button.jsx +179 -0
  77. package/dist/ai/index.js +37 -0
  78. package/dist/ai/message-action-sheet.jsx +408 -0
  79. package/dist/ai/message-quote.jsx +241 -0
  80. package/dist/ai/message.jsx +739 -0
  81. package/dist/ai/prompt-input-menu.jsx +365 -0
  82. package/dist/ai/prompt-input.jsx +626 -0
  83. package/dist/ai/reasoning.jsx +446 -0
  84. package/dist/ai/reply-quote-chip.jsx +278 -0
  85. package/dist/ai/response-text.jsx +130 -0
  86. package/dist/ai/shimmer.jsx +149 -0
  87. package/dist/ai/sources.jsx +260 -0
  88. package/dist/ai/subagent-cards.jsx +645 -0
  89. package/dist/ai/suggestion.jsx +186 -0
  90. package/dist/ai/tool-approval-card.jsx +359 -0
  91. package/dist/ai/trace.jsx +728 -0
  92. package/dist/ai/unified-diff.jsx +280 -0
  93. package/dist/ai/use-streaming-disclosure.js +70 -0
  94. package/dist/auth/AuthProviders.jsx +27 -0
  95. package/dist/auth/AuthScreen.jsx +292 -0
  96. package/dist/auth/GoogleSignInButton.jsx +188 -0
  97. package/dist/auth/SecondFactorScreen.jsx +133 -0
  98. package/dist/auth/SignInScreen.jsx +482 -0
  99. package/dist/auth/authErrors.js +131 -0
  100. package/dist/auth/index.js +11 -0
  101. package/dist/auth/totp.js +378 -0
  102. package/dist/blur.js +36 -0
  103. package/dist/brand/AppIcons.jsx +118 -0
  104. package/dist/brand/AppMark.jsx +128 -0
  105. package/dist/brand/AppWordmark.jsx +138 -0
  106. package/dist/brand/GoogleMark.jsx +71 -0
  107. package/dist/brand/ProviderIcon.jsx +192 -0
  108. package/dist/brand/familyApps.js +33 -0
  109. package/dist/brand/index.js +11 -0
  110. package/dist/brand/svg.js +252 -0
  111. package/dist/brand/vProAppBenefits.js +19 -0
  112. package/dist/cn.js +5 -0
  113. package/dist/colors.js +15 -0
  114. package/dist/configureTheme.js +72 -0
  115. package/dist/controlStyles.js +520 -0
  116. package/dist/definiteSize.js +12 -0
  117. package/dist/dialogLayout.js +18 -0
  118. package/dist/entries/ai.js +4 -0
  119. package/dist/entries/ambient.js +3 -0
  120. package/dist/entries/auth.js +5 -0
  121. package/dist/entries/bottom-sheet.js +2 -0
  122. package/dist/entries/brand.js +2 -0
  123. package/dist/entries/button.js +2 -0
  124. package/dist/entries/date-time.js +3 -0
  125. package/dist/entries/expo-router.js +4 -0
  126. package/dist/entries/expo-web-root.js +3 -0
  127. package/dist/entries/floating.js +7 -0
  128. package/dist/entries/gesture-handler.js +4 -0
  129. package/dist/entries/keyboard-controller.js +4 -0
  130. package/dist/entries/layout.js +16 -0
  131. package/dist/entries/markdown.js +4 -0
  132. package/dist/entries/marketing.js +3 -0
  133. package/dist/entries/page-title.js +7 -0
  134. package/dist/entries/password-input.js +3 -0
  135. package/dist/entries/primitives.js +57 -0
  136. package/dist/entries/search-input.js +3 -0
  137. package/dist/entries/tab-bar.js +4 -0
  138. package/dist/entries/theme.js +7 -0
  139. package/dist/entries/toast.js +5 -0
  140. package/dist/entries/video.js +3 -0
  141. package/dist/entries/webview.js +4 -0
  142. package/dist/examples/AiChatGallery.jsx +509 -0
  143. package/dist/examples/ParityGallery.jsx +1307 -0
  144. package/dist/floating.js +62 -0
  145. package/dist/glassBlur.jsx +145 -0
  146. package/dist/gradient.js +17 -0
  147. package/dist/haptics.js +44 -0
  148. package/dist/highlight.js +382 -0
  149. package/dist/index.js +85 -0
  150. package/dist/initials.js +4 -0
  151. package/dist/loadingGrid.js +81 -0
  152. package/dist/markdown/Markdown.jsx +515 -0
  153. package/dist/markdown/MarkdownTable.jsx +443 -0
  154. package/dist/markdown/tableText.js +68 -0
  155. package/dist/marketing/PricingModal.jsx +608 -0
  156. package/dist/marketing/UpgradeToProCard.jsx +164 -0
  157. package/dist/marketing/pricing.js +34 -0
  158. package/dist/media/ImageGallery.jsx +580 -0
  159. package/dist/media/MediaCard.jsx +162 -0
  160. package/dist/media/imageGrid.js +54 -0
  161. package/dist/motion.js +33 -0
  162. package/dist/pagerSwipe.js +104 -0
  163. package/dist/palette.js +104 -0
  164. package/dist/primitives/button.jsx +127 -0
  165. package/dist/primitives/card.jsx +249 -0
  166. package/dist/primitives/icon.jsx +37 -0
  167. package/dist/primitives/input.jsx +56 -0
  168. package/dist/primitives/keyboard-controller.jsx +207 -0
  169. package/dist/primitives/keyboard-parts.jsx +75 -0
  170. package/dist/primitives/native-only-animated-view.jsx +68 -0
  171. package/dist/primitives/overlay.jsx +391 -0
  172. package/dist/primitives/pager-gesture.jsx +131 -0
  173. package/dist/primitives/select-host.jsx +103 -0
  174. package/dist/primitives/select.jsx +555 -0
  175. package/dist/primitives/sheet-drag.jsx +420 -0
  176. package/dist/primitives/sheet-gesture.jsx +219 -0
  177. package/dist/primitives/swipe-row-gesture.jsx +341 -0
  178. package/dist/primitives/switch.jsx +105 -0
  179. package/dist/primitives/text.jsx +145 -0
  180. package/dist/primitives/toast-drag-gesture.jsx +94 -0
  181. package/dist/primitives/use-controllable-state.js +40 -0
  182. package/dist/primitives/web-click-guard.js +69 -0
  183. package/dist/push.js +166 -0
  184. package/dist/relativeTime.js +70 -0
  185. package/dist/router/RouterStackPageHeader.jsx +53 -0
  186. package/dist/selectA11y.js +32 -0
  187. package/dist/settings/MoreFromProjectV.jsx +168 -0
  188. package/dist/settings/SettingsEmptyState.jsx +102 -0
  189. package/dist/settings/SettingsField.jsx +49 -0
  190. package/dist/settings/SettingsSection.jsx +101 -0
  191. package/dist/settings/SettingsStack.jsx +17 -0
  192. package/dist/settings/SettingsToggleRow.jsx +163 -0
  193. package/dist/settings/projectVMobileApps.js +126 -0
  194. package/dist/settings/relaxedSizeStyle.js +11 -0
  195. package/dist/sheetDrag.js +76 -0
  196. package/dist/svgA11y.js +46 -0
  197. package/dist/swipeRow.js +161 -0
  198. package/dist/tabBarRoutes.js +41 -0
  199. package/dist/tabIndicator.js +139 -0
  200. package/dist/tailwind-preset.cjs +255 -0
  201. package/dist/tailwind-preset.d.cts +55 -0
  202. package/dist/theme.jsx +62 -0
  203. package/dist/toastChrome.js +110 -0
  204. package/dist/toastDrag.js +51 -0
  205. package/dist/toastStore.js +54 -0
  206. package/dist/tokens.js +70 -0
  207. package/dist/typography.js +40 -0
  208. package/dist/useReduceMotion.js +32 -0
  209. package/dist/useReduceTransparency.js +27 -0
  210. package/dist/useScheme.js +15 -0
  211. package/dist/video/InlineVideo.jsx +115 -0
  212. package/dist/webview/HtmlView.jsx +169 -0
  213. package/dist/webview/HtmlView.web.jsx +63 -0
  214. package/dist/webview/htmlView.js +43 -0
  215. package/package.json +70 -33
  216. package/src/DropdownMenu.tsx +28 -16
  217. package/src/FloatingTabBar.tsx +78 -41
  218. package/src/ai/conversation.tsx +12 -8
  219. package/src/glassBlur.tsx +47 -22
  220. package/src/primitives/swipe-row-gesture.tsx +11 -2
@@ -0,0 +1,555 @@
1
+ import { c as _c } from "react/compiler-runtime";
2
+ import * as SelectPrimitive from "@rn-primitives/select";
3
+ // Tabler, not Lucide: a Lucide icon always sets `testID` on its `Svg`, which
4
+ // on web is a DOM `<svg>`, so React logs it as an unknown DOM prop.
5
+ import { IconCheck, IconChevronDown, IconChevronUp } from "@tabler/icons-react-native";
6
+ import * as React from "react";
7
+ import { Platform, ScrollView, StyleSheet, Text, View } from "react-native";
8
+ import { FadeIn, FadeOut } from "react-native-reanimated";
9
+ import { NativeOnlyAnimatedView } from "./native-only-animated-view";
10
+ import { SelectHost } from "./select-host";
11
+ import { TextClassContext } from "./text";
12
+ import { LiquidGlass } from "../LiquidGlass";
13
+ import { cn } from "../cn";
14
+ import { textStyle, typeStyle } from "../controlStyles";
15
+ import { tokens } from "../tokens";
16
+ import { useScheme } from "../useScheme";
17
+ import { useLargerText } from "../theme";
18
+ const Select = SelectPrimitive.Root;
19
+ const SelectGroup = SelectPrimitive.Group;
20
+ const SelectValue = React.forwardRef((t0, ref) => {
21
+ const $ = _c(18);
22
+ let className;
23
+ let props;
24
+ let style;
25
+ if ($[0] !== t0) {
26
+ ({
27
+ className,
28
+ style,
29
+ ...props
30
+ } = t0);
31
+ $[0] = t0;
32
+ $[1] = className;
33
+ $[2] = props;
34
+ $[3] = style;
35
+ } else {
36
+ className = $[1];
37
+ props = $[2];
38
+ style = $[3];
39
+ }
40
+ let t1;
41
+ if ($[4] !== className) {
42
+ t1 = cn("line-clamp-1 text-sm text-foreground", className);
43
+ $[4] = className;
44
+ $[5] = t1;
45
+ } else {
46
+ t1 = $[5];
47
+ }
48
+ const classes = t1;
49
+ if (Platform.OS === "web") {
50
+ let t2;
51
+ if ($[6] !== props || $[7] !== ref) {
52
+ t2 = <SelectPrimitive.Value ref={ref} {...props} />;
53
+ $[6] = props;
54
+ $[7] = ref;
55
+ $[8] = t2;
56
+ } else {
57
+ t2 = $[8];
58
+ }
59
+ let t3;
60
+ if ($[9] !== classes || $[10] !== style || $[11] !== t2) {
61
+ t3 = <Text className={classes} style={style}>{t2}</Text>;
62
+ $[9] = classes;
63
+ $[10] = style;
64
+ $[11] = t2;
65
+ $[12] = t3;
66
+ } else {
67
+ t3 = $[12];
68
+ }
69
+ return t3;
70
+ }
71
+ let t2;
72
+ if ($[13] !== classes || $[14] !== props || $[15] !== ref || $[16] !== style) {
73
+ t2 = <SelectPrimitive.Value ref={ref} className={classes} style={style} {...props} />;
74
+ $[13] = classes;
75
+ $[14] = props;
76
+ $[15] = ref;
77
+ $[16] = style;
78
+ $[17] = t2;
79
+ } else {
80
+ t2 = $[17];
81
+ }
82
+ return t2;
83
+ });
84
+ const SelectTrigger = React.forwardRef((t0, ref) => {
85
+ const $ = _c(21);
86
+ let children;
87
+ let className;
88
+ let disabled;
89
+ let props;
90
+ let t1;
91
+ if ($[0] !== t0) {
92
+ ({
93
+ className,
94
+ children,
95
+ size: t1,
96
+ disabled,
97
+ ...props
98
+ } = t0);
99
+ $[0] = t0;
100
+ $[1] = children;
101
+ $[2] = className;
102
+ $[3] = disabled;
103
+ $[4] = props;
104
+ $[5] = t1;
105
+ } else {
106
+ children = $[1];
107
+ className = $[2];
108
+ disabled = $[3];
109
+ props = $[4];
110
+ t1 = $[5];
111
+ }
112
+ const size = t1 === undefined ? "default" : t1;
113
+ const scheme = useScheme();
114
+ const t2 = size === "sm" && "h-8 py-1.5";
115
+ const t3 = disabled && "opacity-50";
116
+ let t4;
117
+ if ($[6] !== className || $[7] !== t2 || $[8] !== t3) {
118
+ t4 = cn("h-10 flex-row items-center justify-between gap-2 rounded-md border border-input bg-background px-3 py-2", t2, t3, className);
119
+ $[6] = className;
120
+ $[7] = t2;
121
+ $[8] = t3;
122
+ $[9] = t4;
123
+ } else {
124
+ t4 = $[9];
125
+ }
126
+ let t5;
127
+ if ($[10] !== children) {
128
+ t5 = <>{children}</>;
129
+ $[10] = children;
130
+ $[11] = t5;
131
+ } else {
132
+ t5 = $[11];
133
+ }
134
+ const t6 = tokens.color.muted[scheme];
135
+ let t7;
136
+ if ($[12] !== t6) {
137
+ t7 = <IconChevronDown size={16} color={t6} />;
138
+ $[12] = t6;
139
+ $[13] = t7;
140
+ } else {
141
+ t7 = $[13];
142
+ }
143
+ let t8;
144
+ if ($[14] !== disabled || $[15] !== props || $[16] !== ref || $[17] !== t4 || $[18] !== t5 || $[19] !== t7) {
145
+ t8 = <SelectPrimitive.Trigger ref={ref} disabled={disabled} className={t4} {...props}>{t5}{t7}</SelectPrimitive.Trigger>;
146
+ $[14] = disabled;
147
+ $[15] = props;
148
+ $[16] = ref;
149
+ $[17] = t4;
150
+ $[18] = t5;
151
+ $[19] = t7;
152
+ $[20] = t8;
153
+ } else {
154
+ t8 = $[20];
155
+ }
156
+ return t8;
157
+ });
158
+ const SelectContent = React.forwardRef((t0, ref) => {
159
+ const $ = _c(31);
160
+ let children;
161
+ let className;
162
+ let portalHost;
163
+ let props;
164
+ let t1;
165
+ if ($[0] !== t0) {
166
+ ({
167
+ className,
168
+ children,
169
+ position: t1,
170
+ portalHost,
171
+ ...props
172
+ } = t0);
173
+ $[0] = t0;
174
+ $[1] = children;
175
+ $[2] = className;
176
+ $[3] = portalHost;
177
+ $[4] = props;
178
+ $[5] = t1;
179
+ } else {
180
+ children = $[1];
181
+ className = $[2];
182
+ portalHost = $[3];
183
+ props = $[4];
184
+ t1 = $[5];
185
+ }
186
+ const position = t1 === undefined ? "popper" : t1;
187
+ let t2;
188
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
189
+ t2 = Platform.select({
190
+ native: StyleSheet.absoluteFill
191
+ });
192
+ $[6] = t2;
193
+ } else {
194
+ t2 = $[6];
195
+ }
196
+ const overlayFill = t2;
197
+ let t3;
198
+ if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
199
+ t3 = Platform.select({
200
+ native: "box-none"
201
+ });
202
+ $[7] = t3;
203
+ } else {
204
+ t3 = $[7];
205
+ }
206
+ let t4;
207
+ if ($[8] !== className) {
208
+ t4 = cn("z-50 min-w-[8rem] rounded-lg", Platform.select({
209
+ native: "p-1",
210
+ web: "max-h-52 overflow-hidden"
211
+ }), className);
212
+ $[8] = className;
213
+ $[9] = t4;
214
+ } else {
215
+ t4 = $[9];
216
+ }
217
+ let t5;
218
+ let t6;
219
+ if ($[10] === Symbol.for("react.memo_cache_sentinel")) {
220
+ t5 = <LiquidGlass pointerEvents="none" elevated={false} className="absolute inset-0 rounded-lg" />;
221
+ t6 = <SelectScrollUpButton />;
222
+ $[10] = t5;
223
+ $[11] = t6;
224
+ } else {
225
+ t5 = $[10];
226
+ t6 = $[11];
227
+ }
228
+ const t7 = position === "popper" && "w-full";
229
+ let t8;
230
+ if ($[12] !== t7) {
231
+ t8 = cn("p-1", t7);
232
+ $[12] = t7;
233
+ $[13] = t8;
234
+ } else {
235
+ t8 = $[13];
236
+ }
237
+ let t9;
238
+ if ($[14] !== children || $[15] !== t8) {
239
+ t9 = <SelectPrimitive.Viewport className={t8}>{children}</SelectPrimitive.Viewport>;
240
+ $[14] = children;
241
+ $[15] = t8;
242
+ $[16] = t9;
243
+ } else {
244
+ t9 = $[16];
245
+ }
246
+ let t10;
247
+ if ($[17] === Symbol.for("react.memo_cache_sentinel")) {
248
+ t10 = <SelectScrollDownButton />;
249
+ $[17] = t10;
250
+ } else {
251
+ t10 = $[17];
252
+ }
253
+ let t11;
254
+ if ($[18] !== position || $[19] !== props || $[20] !== ref || $[21] !== t4 || $[22] !== t9) {
255
+ t11 = <SelectPrimitive.Overlay style={overlayFill}><TextClassContext.Provider value="text-popover-foreground"><NativeOnlyAnimatedView entering={FadeIn} exiting={FadeOut} className="z-50" style={overlayFill} pointerEvents={t3}><SelectPrimitive.Content ref={ref} position={position} className={t4} {...props}>{t5}{t6}{t9}{t10}</SelectPrimitive.Content></NativeOnlyAnimatedView></TextClassContext.Provider></SelectPrimitive.Overlay>;
256
+ $[18] = position;
257
+ $[19] = props;
258
+ $[20] = ref;
259
+ $[21] = t4;
260
+ $[22] = t9;
261
+ $[23] = t11;
262
+ } else {
263
+ t11 = $[23];
264
+ }
265
+ const content = t11;
266
+ if (Platform.OS === "android") {
267
+ let t12;
268
+ if ($[24] !== content) {
269
+ t12 = <SelectHost>{content}</SelectHost>;
270
+ $[24] = content;
271
+ $[25] = t12;
272
+ } else {
273
+ t12 = $[25];
274
+ }
275
+ return t12;
276
+ }
277
+ let t12;
278
+ if ($[26] !== content) {
279
+ t12 = <SelectHost>{content}</SelectHost>;
280
+ $[26] = content;
281
+ $[27] = t12;
282
+ } else {
283
+ t12 = $[27];
284
+ }
285
+ let t13;
286
+ if ($[28] !== portalHost || $[29] !== t12) {
287
+ t13 = <SelectPrimitive.Portal hostName={portalHost}>{t12}</SelectPrimitive.Portal>;
288
+ $[28] = portalHost;
289
+ $[29] = t12;
290
+ $[30] = t13;
291
+ } else {
292
+ t13 = $[30];
293
+ }
294
+ return t13;
295
+ });
296
+ const SelectLabel = React.forwardRef((t0, ref) => {
297
+ const $ = _c(9);
298
+ let className;
299
+ let props;
300
+ if ($[0] !== t0) {
301
+ ({
302
+ className,
303
+ ...props
304
+ } = t0);
305
+ $[0] = t0;
306
+ $[1] = className;
307
+ $[2] = props;
308
+ } else {
309
+ className = $[1];
310
+ props = $[2];
311
+ }
312
+ let t1;
313
+ if ($[3] !== className) {
314
+ t1 = cn("px-2 py-2 text-xs text-muted-foreground", className);
315
+ $[3] = className;
316
+ $[4] = t1;
317
+ } else {
318
+ t1 = $[4];
319
+ }
320
+ let t2;
321
+ if ($[5] !== props || $[6] !== ref || $[7] !== t1) {
322
+ t2 = <SelectPrimitive.Label ref={ref} className={t1} {...props} />;
323
+ $[5] = props;
324
+ $[6] = ref;
325
+ $[7] = t1;
326
+ $[8] = t2;
327
+ } else {
328
+ t2 = $[8];
329
+ }
330
+ return t2;
331
+ });
332
+
333
+ /**
334
+ * On web `SelectPrimitive.Item` passes these props to a Radix DOM node, not a
335
+ * React Native view, so give it `aria-label` and `data-testid` there, not
336
+ * `accessibilityLabel` or `testID` (`selectItemA11yProps`).
337
+ */
338
+
339
+ const SelectItem = React.forwardRef((t0, ref) => {
340
+ const $ = _c(22);
341
+ let className;
342
+ let disabled;
343
+ let props;
344
+ if ($[0] !== t0) {
345
+ ({
346
+ className,
347
+ disabled,
348
+ ...props
349
+ } = t0);
350
+ $[0] = t0;
351
+ $[1] = className;
352
+ $[2] = disabled;
353
+ $[3] = props;
354
+ } else {
355
+ className = $[1];
356
+ disabled = $[2];
357
+ props = $[3];
358
+ }
359
+ const scheme = useScheme();
360
+ const largerText = useLargerText();
361
+ const t1 = largerText && "min-h-[56px]";
362
+ const t2 = disabled && "opacity-50";
363
+ let t3;
364
+ if ($[4] !== className || $[5] !== t1 || $[6] !== t2) {
365
+ t3 = cn("relative min-h-[44px] flex-row items-center gap-2 rounded-sm py-3 pl-2 pr-8 active:opacity-70", t1, t2, className);
366
+ $[4] = className;
367
+ $[5] = t1;
368
+ $[6] = t2;
369
+ $[7] = t3;
370
+ } else {
371
+ t3 = $[7];
372
+ }
373
+ const t4 = tokens.color.muted[scheme];
374
+ let t5;
375
+ if ($[8] !== t4) {
376
+ t5 = <View className="absolute right-2 size-3.5 items-center justify-center"><SelectPrimitive.ItemIndicator><IconCheck size={16} color={t4} /></SelectPrimitive.ItemIndicator></View>;
377
+ $[8] = t4;
378
+ $[9] = t5;
379
+ } else {
380
+ t5 = $[9];
381
+ }
382
+ let t6;
383
+ if ($[10] !== scheme) {
384
+ t6 = textStyle("foreground", scheme);
385
+ $[10] = scheme;
386
+ $[11] = t6;
387
+ } else {
388
+ t6 = $[11];
389
+ }
390
+ let t7;
391
+ if ($[12] === Symbol.for("react.memo_cache_sentinel")) {
392
+ t7 = typeStyle("medium");
393
+ $[12] = t7;
394
+ } else {
395
+ t7 = $[12];
396
+ }
397
+ let t8;
398
+ if ($[13] !== t6) {
399
+ t8 = <SelectPrimitive.ItemText className="select-none text-sm font-instrument-sans-medium" style={{
400
+ ...t6,
401
+ ...t7
402
+ }} />;
403
+ $[13] = t6;
404
+ $[14] = t8;
405
+ } else {
406
+ t8 = $[14];
407
+ }
408
+ let t9;
409
+ if ($[15] !== disabled || $[16] !== props || $[17] !== ref || $[18] !== t3 || $[19] !== t5 || $[20] !== t8) {
410
+ t9 = <SelectPrimitive.Item ref={ref} disabled={disabled} className={t3} {...props}>{t5}{t8}</SelectPrimitive.Item>;
411
+ $[15] = disabled;
412
+ $[16] = props;
413
+ $[17] = ref;
414
+ $[18] = t3;
415
+ $[19] = t5;
416
+ $[20] = t8;
417
+ $[21] = t9;
418
+ } else {
419
+ t9 = $[21];
420
+ }
421
+ return t9;
422
+ });
423
+ const SelectSeparator = React.forwardRef((t0, ref) => {
424
+ const $ = _c(9);
425
+ let className;
426
+ let props;
427
+ if ($[0] !== t0) {
428
+ ({
429
+ className,
430
+ ...props
431
+ } = t0);
432
+ $[0] = t0;
433
+ $[1] = className;
434
+ $[2] = props;
435
+ } else {
436
+ className = $[1];
437
+ props = $[2];
438
+ }
439
+ let t1;
440
+ if ($[3] !== className) {
441
+ t1 = cn("-mx-1 my-1 h-px bg-border", className);
442
+ $[3] = className;
443
+ $[4] = t1;
444
+ } else {
445
+ t1 = $[4];
446
+ }
447
+ let t2;
448
+ if ($[5] !== props || $[6] !== ref || $[7] !== t1) {
449
+ t2 = <SelectPrimitive.Separator ref={ref} className={t1} {...props} />;
450
+ $[5] = props;
451
+ $[6] = ref;
452
+ $[7] = t1;
453
+ $[8] = t2;
454
+ } else {
455
+ t2 = $[8];
456
+ }
457
+ return t2;
458
+ });
459
+ function SelectScrollUpButton(props) {
460
+ const $ = _c(3);
461
+ if (Platform.OS !== "web") {
462
+ return null;
463
+ }
464
+ let t0;
465
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
466
+ t0 = <IconChevronUp size={16} color="#737373" />;
467
+ $[0] = t0;
468
+ } else {
469
+ t0 = $[0];
470
+ }
471
+ let t1;
472
+ if ($[1] !== props) {
473
+ t1 = <SelectPrimitive.ScrollUpButton className="items-center justify-center py-1" {...props}>{t0}</SelectPrimitive.ScrollUpButton>;
474
+ $[1] = props;
475
+ $[2] = t1;
476
+ } else {
477
+ t1 = $[2];
478
+ }
479
+ return t1;
480
+ }
481
+ function SelectScrollDownButton(props) {
482
+ const $ = _c(3);
483
+ if (Platform.OS !== "web") {
484
+ return null;
485
+ }
486
+ let t0;
487
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
488
+ t0 = <IconChevronDown size={16} color="#737373" />;
489
+ $[0] = t0;
490
+ } else {
491
+ t0 = $[0];
492
+ }
493
+ let t1;
494
+ if ($[1] !== props) {
495
+ t1 = <SelectPrimitive.ScrollDownButton className="items-center justify-center py-1" {...props}>{t0}</SelectPrimitive.ScrollDownButton>;
496
+ $[1] = props;
497
+ $[2] = t1;
498
+ } else {
499
+ t1 = $[2];
500
+ }
501
+ return t1;
502
+ }
503
+ function NativeSelectScrollView(t0) {
504
+ const $ = _c(10);
505
+ let className;
506
+ let props;
507
+ if ($[0] !== t0) {
508
+ ({
509
+ className,
510
+ ...props
511
+ } = t0);
512
+ $[0] = t0;
513
+ $[1] = className;
514
+ $[2] = props;
515
+ } else {
516
+ className = $[1];
517
+ props = $[2];
518
+ }
519
+ if (Platform.OS === "web") {
520
+ let t1;
521
+ if ($[3] !== props.children) {
522
+ t1 = <>{props.children}</>;
523
+ $[3] = props.children;
524
+ $[4] = t1;
525
+ } else {
526
+ t1 = $[4];
527
+ }
528
+ return t1;
529
+ }
530
+ let t1;
531
+ if ($[5] !== className) {
532
+ t1 = cn("max-h-52", className);
533
+ $[5] = className;
534
+ $[6] = t1;
535
+ } else {
536
+ t1 = $[6];
537
+ }
538
+ let t2;
539
+ if ($[7] !== props || $[8] !== t1) {
540
+ t2 = <ScrollView className={t1} {...props} />;
541
+ $[7] = props;
542
+ $[8] = t1;
543
+ $[9] = t2;
544
+ } else {
545
+ t2 = $[9];
546
+ }
547
+ return t2;
548
+ }
549
+ SelectValue.displayName = "SelectValue";
550
+ SelectTrigger.displayName = "SelectTrigger";
551
+ SelectContent.displayName = "SelectContent";
552
+ SelectLabel.displayName = "SelectLabel";
553
+ SelectItem.displayName = "SelectItem";
554
+ SelectSeparator.displayName = "SelectSeparator";
555
+ export { NativeSelectScrollView, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue };