@sincpro/mobile-ui 3.0.1 → 3.2.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 (314) hide show
  1. package/dist/Actions/Actions.Button.d.ts +6 -6
  2. package/dist/Actions/Actions.Button.js +650 -180
  3. package/dist/Actions/Actions.Dock.d.ts +1 -1
  4. package/dist/Actions/Actions.Dock.js +297 -18
  5. package/dist/Actions/Actions.FAB.js +100 -12
  6. package/dist/Actions/Actions.FilterButton.d.ts +17 -0
  7. package/dist/Actions/Actions.FilterButton.js +263 -33
  8. package/dist/Actions/Actions.IconButton.d.ts +1 -0
  9. package/dist/Actions/Actions.IconButton.js +196 -33
  10. package/dist/Actions/index.js +13 -13
  11. package/dist/Dialog/Confirmation.context.js +82 -16
  12. package/dist/Dialog/Dialog.ActionSheet.js +200 -41
  13. package/dist/Dialog/Dialog.Confirmation.js +168 -31
  14. package/dist/Dialog/Dialog.EditValue.js +437 -62
  15. package/dist/Dialog/Dialog.Sheet.d.ts +7 -3
  16. package/dist/Dialog/Dialog.Sheet.js +267 -15
  17. package/dist/Dialog/OverlayHost.d.ts +24 -0
  18. package/dist/Dialog/OverlayHost.js +230 -0
  19. package/dist/Dialog/SheetSurface.d.ts +43 -0
  20. package/dist/Dialog/SheetSurface.js +495 -0
  21. package/dist/Dialog/dialog-actions.d.ts +17 -0
  22. package/dist/Dialog/dialog-actions.js +59 -0
  23. package/dist/Dialog/index.d.ts +4 -1
  24. package/dist/Dialog/index.js +8 -7
  25. package/dist/Dialog/overlay.store.d.ts +24 -0
  26. package/dist/Dialog/overlay.store.js +59 -0
  27. package/dist/Dialog/requestConfirmation.js +20 -10
  28. package/dist/Display/Display.Accordion.js +185 -13
  29. package/dist/Display/Display.AmountSummary.js +206 -15
  30. package/dist/Display/Display.Avatar.js +93 -31
  31. package/dist/Display/Display.AvatarGroup.js +132 -17
  32. package/dist/Display/Display.Badge.d.ts +18 -2
  33. package/dist/Display/Display.Badge.js +117 -49
  34. package/dist/Display/Display.Card.js +163 -26
  35. package/dist/Display/Display.Carousel.js +459 -105
  36. package/dist/Display/Display.Chip.d.ts +4 -1
  37. package/dist/Display/Display.Chip.js +165 -31
  38. package/dist/Display/Display.CircleButton.d.ts +1 -0
  39. package/dist/Display/Display.CircleButton.js +86 -27
  40. package/dist/Display/Display.CopyableText.js +289 -66
  41. package/dist/Display/Display.CountRecords.js +60 -3
  42. package/dist/Display/Display.DataTable.js +123 -13
  43. package/dist/Display/Display.Date.js +243 -33
  44. package/dist/Display/Display.Divider.d.ts +10 -10
  45. package/dist/Display/Display.Divider.js +67 -20
  46. package/dist/Display/Display.ExpoImage.js +97 -8
  47. package/dist/Display/Display.GradientSurface.d.ts +9 -4
  48. package/dist/Display/Display.GradientSurface.js +196 -46
  49. package/dist/Display/Display.Icon.js +129 -15
  50. package/dist/Display/Display.IconBadge.js +95 -25
  51. package/dist/Display/Display.Image.d.ts +7 -1
  52. package/dist/Display/Display.Image.js +344 -39
  53. package/dist/Display/Display.KeyValue.js +90 -5
  54. package/dist/Display/Display.ListGroup.js +181 -9
  55. package/dist/Display/Display.ListItem.js +324 -28
  56. package/dist/Display/Display.Logo.js +84 -29
  57. package/dist/Display/Display.MediaCard.js +125 -4
  58. package/dist/Display/Display.MediaEmbed.d.ts +0 -5
  59. package/dist/Display/Display.MediaEmbed.js +170 -26
  60. package/dist/Display/Display.MenuButton.d.ts +2 -2
  61. package/dist/Display/Display.MenuButton.js +380 -94
  62. package/dist/Display/Display.MenuCard.js +122 -18
  63. package/dist/Display/Display.MenuGrid.js +43 -3
  64. package/dist/Display/Display.Monetary.js +90 -5
  65. package/dist/Display/Display.Pattern.js +306 -47
  66. package/dist/Display/Display.PriceTag.js +117 -14
  67. package/dist/Display/Display.ProductCard.js +154 -4
  68. package/dist/Display/Display.Rating.js +92 -11
  69. package/dist/Display/Display.SearchHistory.js +132 -6
  70. package/dist/Display/Display.SectionHeader.d.ts +5 -1
  71. package/dist/Display/Display.SectionHeader.js +125 -12
  72. package/dist/Display/Display.Stat.js +62 -3
  73. package/dist/Display/Display.StatCard.js +131 -7
  74. package/dist/Display/Display.StatusBadge.d.ts +29 -0
  75. package/dist/Display/Display.StatusBadge.js +68 -0
  76. package/dist/Display/Display.StatusDot.js +93 -18
  77. package/dist/Display/Display.Story.js +285 -35
  78. package/dist/Display/Display.StoryTray.js +354 -34
  79. package/dist/Display/Display.StoryViewer.js +571 -72
  80. package/dist/Display/Display.SwipeableRow.js +148 -20
  81. package/dist/Display/Display.Tag.d.ts +4 -1
  82. package/dist/Display/Display.Tag.js +66 -4
  83. package/dist/Display/Display.Timeline.js +102 -13
  84. package/dist/Display/Display.Tooltip.js +122 -26
  85. package/dist/Display/chevron.d.ts +6 -0
  86. package/dist/Display/chevron.js +32 -0
  87. package/dist/Display/count-badge.d.ts +21 -0
  88. package/dist/Display/count-badge.js +124 -0
  89. package/dist/Display/group-title.d.ts +10 -0
  90. package/dist/Display/group-title.js +53 -0
  91. package/dist/Display/icon-font.d.ts +3 -0
  92. package/dist/Display/icon-font.ios.d.ts +3 -0
  93. package/dist/Display/icon-font.ios.js +4 -0
  94. package/dist/Display/icon-font.js +7 -0
  95. package/dist/Display/icon-glyphs.d.ts +2 -0
  96. package/dist/Display/icon-glyphs.js +87 -0
  97. package/dist/Display/icon-map.d.ts +15 -11
  98. package/dist/Display/icon-map.js +344 -84
  99. package/dist/Display/icon-registry.d.ts +21 -0
  100. package/dist/Display/icon-registry.js +21 -0
  101. package/dist/Display/index.d.ts +6 -1
  102. package/dist/Display/index.js +53 -48
  103. package/dist/Display/pill.d.ts +16 -0
  104. package/dist/Display/pill.js +47 -0
  105. package/dist/Feedback/ErrorBoundary.js +35 -23
  106. package/dist/Feedback/Feedback.Banner.js +202 -24
  107. package/dist/Feedback/Feedback.DomainSplashScreen.js +246 -70
  108. package/dist/Feedback/Feedback.Empty.js +54 -3
  109. package/dist/Feedback/Feedback.EmptyState.js +114 -5
  110. package/dist/Feedback/Feedback.Error.d.ts +1 -1
  111. package/dist/Feedback/Feedback.Error.js +130 -5
  112. package/dist/Feedback/Feedback.Loading.d.ts +1 -1
  113. package/dist/Feedback/Feedback.Loading.js +70 -3
  114. package/dist/Feedback/Feedback.PermissionCard.js +161 -5
  115. package/dist/Feedback/Feedback.Progress.js +199 -41
  116. package/dist/Feedback/Feedback.ProgressCircle.js +184 -12
  117. package/dist/Feedback/Feedback.Skeleton.js +149 -36
  118. package/dist/Feedback/Feedback.Spinner.js +407 -79
  119. package/dist/Feedback/Feedback.Splash.js +240 -33
  120. package/dist/Feedback/Feedback.State.d.ts +17 -0
  121. package/dist/Feedback/Feedback.State.js +104 -0
  122. package/dist/Feedback/Toast.context.js +883 -167
  123. package/dist/Feedback/index.d.ts +3 -0
  124. package/dist/Feedback/index.js +15 -13
  125. package/dist/Form/Form.Checkbox.js +212 -22
  126. package/dist/Form/Form.ControlledCheckbox.d.ts +1 -1
  127. package/dist/Form/Form.ControlledCheckbox.js +46 -4
  128. package/dist/Form/Form.ControlledDropdown.d.ts +1 -1
  129. package/dist/Form/Form.ControlledDropdown.js +62 -4
  130. package/dist/Form/Form.ControlledInput.d.ts +4 -3
  131. package/dist/Form/Form.ControlledInput.js +72 -4
  132. package/dist/Form/Form.ControlledMonetaryInput.d.ts +6 -3
  133. package/dist/Form/Form.ControlledMonetaryInput.js +50 -4
  134. package/dist/Form/Form.ControlledRadioButton.d.ts +2 -2
  135. package/dist/Form/Form.ControlledRadioButton.js +45 -4
  136. package/dist/Form/Form.DatePicker.js +507 -107
  137. package/dist/Form/Form.Dropdown.js +303 -52
  138. package/dist/Form/Form.ErrorSummary.js +236 -44
  139. package/dist/Form/Form.Field.d.ts +24 -0
  140. package/dist/Form/Form.Field.js +55 -0
  141. package/dist/Form/Form.FractionalQuantityInput.js +508 -96
  142. package/dist/Form/Form.Input.d.ts +17 -3
  143. package/dist/Form/Form.Input.js +497 -29
  144. package/dist/Form/Form.KeyboardForm.d.ts +22 -8
  145. package/dist/Form/Form.KeyboardForm.js +83 -8
  146. package/dist/Form/Form.KeyboardToolbarHost.d.ts +14 -0
  147. package/dist/Form/Form.KeyboardToolbarHost.js +223 -0
  148. package/dist/Form/Form.MonetaryInput.js +164 -17
  149. package/dist/Form/Form.PickerField.d.ts +31 -0
  150. package/dist/Form/Form.PickerField.js +539 -0
  151. package/dist/Form/Form.PinInput.js +150 -15
  152. package/dist/Form/Form.QuantitySelector.js +229 -25
  153. package/dist/Form/Form.RadioButton.d.ts +1 -0
  154. package/dist/Form/Form.RadioButton.js +26 -29
  155. package/dist/Form/Form.Select.d.ts +2 -1
  156. package/dist/Form/Form.Select.js +388 -60
  157. package/dist/Form/Form.Slider.js +133 -10
  158. package/dist/Form/Form.Switch.js +99 -4
  159. package/dist/Form/choice-row.d.ts +15 -0
  160. package/dist/Form/choice-row.js +236 -0
  161. package/dist/Form/index.d.ts +11 -6
  162. package/dist/Form/index.js +26 -27
  163. package/dist/Form/input-text.d.ts +7 -0
  164. package/dist/Form/input-text.js +18 -0
  165. package/dist/Navigation/Navigation.AppBar.d.ts +3 -4
  166. package/dist/Navigation/Navigation.AppBar.js +535 -99
  167. package/dist/Navigation/Navigation.BottomNav.js +363 -98
  168. package/dist/Navigation/Navigation.CollapsingHeader.d.ts +28 -13
  169. package/dist/Navigation/Navigation.CollapsingHeader.js +369 -36
  170. package/dist/Navigation/Navigation.FloatingBar.js +71 -11
  171. package/dist/Navigation/Navigation.Menu.js +309 -95
  172. package/dist/Navigation/Navigation.MenuSection.js +80 -11
  173. package/dist/Navigation/Navigation.RowItem.d.ts +4 -2
  174. package/dist/Navigation/Navigation.RowItem.js +93 -8
  175. package/dist/Navigation/Navigation.Search.js +241 -27
  176. package/dist/Navigation/Navigation.SearchBar.d.ts +7 -1
  177. package/dist/Navigation/Navigation.SearchBar.js +218 -29
  178. package/dist/Navigation/Navigation.SearchSuggestions.js +77 -3
  179. package/dist/Navigation/Navigation.SegmentedControl.js +152 -14
  180. package/dist/Navigation/Navigation.Steps.js +105 -11
  181. package/dist/Navigation/Navigation.Tabs.js +449 -41
  182. package/dist/Navigation/index.d.ts +9 -4
  183. package/dist/Navigation/index.js +13 -13
  184. package/dist/Typography/Typography.Heading.js +33 -3
  185. package/dist/Typography/Typography.SelectableText.js +95 -7
  186. package/dist/Typography/Typography.Text.d.ts +4 -2
  187. package/dist/Typography/Typography.Text.js +217 -7
  188. package/dist/Typography/index.js +3 -3
  189. package/dist/branding.js +29 -13
  190. package/dist/icons/AddItemIcon.js +76 -2
  191. package/dist/icons/ArrangeCircle.js +82 -2
  192. package/dist/icons/ArrowDownIcon.js +63 -3
  193. package/dist/icons/ArrowUpIcon.js +63 -3
  194. package/dist/icons/BoxIcon.js +64 -2
  195. package/dist/icons/BoxTimeIcon.js +63 -2
  196. package/dist/icons/CalendarIcon.js +145 -2
  197. package/dist/icons/CardIcon.js +80 -2
  198. package/dist/icons/CashierIcon.js +39 -2
  199. package/dist/icons/CreditIcon.js +76 -3
  200. package/dist/icons/DuoIcon.js +75 -2
  201. package/dist/icons/HomeIcon.js +39 -2
  202. package/dist/icons/HomeIconOutlined.js +53 -2
  203. package/dist/icons/LogoIcon.js +87 -2
  204. package/dist/icons/MoneyReceiveIcon.js +86 -2
  205. package/dist/icons/PinIcon.js +39 -2
  206. package/dist/icons/ProfileIcon.js +47 -2
  207. package/dist/icons/SettingsIcon.js +114 -2
  208. package/dist/icons/SinpeIcon.js +60 -2
  209. package/dist/icons/ToggleOffIcon.js +53 -2
  210. package/dist/icons/WalletMoneyIcon.js +81 -2
  211. package/dist/index.d.ts +1 -0
  212. package/dist/index.js +8 -2
  213. package/dist/layouts/AuthContainer.d.ts +4 -5
  214. package/dist/layouts/AuthContainer.js +231 -7
  215. package/dist/layouts/BottomInset.js +4 -1
  216. package/dist/layouts/Container.d.ts +2 -2
  217. package/dist/layouts/Container.js +45 -3
  218. package/dist/layouts/GradientContainer.js +37 -5
  219. package/dist/layouts/PlainLayout.js +19 -3
  220. package/dist/layouts/ScrollContainer.d.ts +14 -9
  221. package/dist/layouts/ScrollContainer.js +125 -4
  222. package/dist/layouts/edges.d.ts +2 -0
  223. package/dist/layouts/edges.js +1 -0
  224. package/dist/primitives/AspectRatio.js +75 -3
  225. package/dist/primitives/Box.js +45 -3
  226. package/dist/primitives/Pressable.js +95 -5
  227. package/dist/primitives/Row.js +84 -13
  228. package/dist/primitives/Spacer.js +42 -5
  229. package/dist/primitives/Stack.js +66 -7
  230. package/dist/primitives/index.js +1 -1
  231. package/dist/theme/active.d.ts +2 -0
  232. package/dist/theme/active.js +33 -18
  233. package/dist/theme/build.js +118 -87
  234. package/dist/theme/color.js +87 -87
  235. package/dist/theme/components/ThemedActivityIndicator.d.ts +2 -15
  236. package/dist/theme/components/ThemedActivityIndicator.js +35 -3
  237. package/dist/theme/components/index.js +1 -0
  238. package/dist/theme/contrast.js +32 -33
  239. package/dist/theme/css-vars.js +71 -75
  240. package/dist/theme/dark.js +116 -97
  241. package/dist/theme/default.js +116 -97
  242. package/dist/theme/define.js +16 -12
  243. package/dist/theme/index.d.ts +1 -0
  244. package/dist/theme/index.js +7 -6
  245. package/dist/theme/on-dark-surface.d.ts +12 -0
  246. package/dist/theme/on-dark-surface.js +13 -0
  247. package/dist/theme/theme.js +1 -0
  248. package/dist/theme/tw.js +3 -1
  249. package/dist/theme/types.js +0 -18
  250. package/dist/theme/typography.d.ts +1 -1
  251. package/dist/theme/typography.js +337 -303
  252. package/dist/theme/useTheme.d.ts +4 -0
  253. package/dist/theme/useTheme.js +7 -3
  254. package/dist/theme/useThemeVars.d.ts +9 -0
  255. package/dist/theme/useThemeVars.js +23 -0
  256. package/dist/theme/validate.js +175 -166
  257. package/dist/tokens/index.js +1 -1
  258. package/dist/tokens/motion.js +30 -13
  259. package/dist/utils/async.d.ts +14 -0
  260. package/dist/utils/async.js +22 -0
  261. package/dist/utils/criteria.js +66 -85
  262. package/dist/utils/date.d.ts +8 -2
  263. package/dist/utils/date.js +63 -50
  264. package/dist/utils/image.js +8 -8
  265. package/dist/utils/intl.d.ts +1 -0
  266. package/dist/utils/intl.js +13 -0
  267. package/dist/utils/keys.js +3 -5
  268. package/dist/utils/monetary.d.ts +1 -0
  269. package/dist/utils/monetary.js +28 -24
  270. package/dist/utils/progress.js +2 -3
  271. package/dist/utils/quantity.js +25 -26
  272. package/dist/utils/reorder.js +11 -20
  273. package/dist/utils/search.d.ts +4 -0
  274. package/dist/utils/search.js +12 -0
  275. package/dist/utils/serializer.js +38 -38
  276. package/dist/utils/useReducedMotion.js +32 -30
  277. package/dist/views/AppSplashView.js +117 -3
  278. package/dist/views/AuthFormView.d.ts +4 -5
  279. package/dist/views/AuthFormView.js +119 -11
  280. package/dist/views/FormViewV2.context.js +75 -23
  281. package/dist/views/FormViewV2.d.ts +4 -5
  282. package/dist/views/FormViewV2.js +658 -92
  283. package/dist/views/ListViewV2.context.js +91 -47
  284. package/dist/views/ListViewV2.d.ts +84 -43
  285. package/dist/views/ListViewV2.js +1350 -200
  286. package/dist/views/Wizard/Wizard.context.js +248 -84
  287. package/dist/views/Wizard/Wizard.js +260 -67
  288. package/dist/views/types/IListView.js +34 -31
  289. package/dist/widgets/CollectionOptions.js +557 -138
  290. package/dist/widgets/FilterBar.js +159 -7
  291. package/dist/widgets/FilterBuilder.js +375 -102
  292. package/dist/widgets/JSONViewer.js +275 -129
  293. package/dist/widgets/PromoBanner.js +336 -42
  294. package/dist/widgets/PromoModal.d.ts +2 -2
  295. package/dist/widgets/PromoModal.js +389 -62
  296. package/dist/widgets/QueryChoice.js +150 -8
  297. package/dist/widgets/QuickActions.js +120 -31
  298. package/dist/widgets/ReorderableList.js +399 -128
  299. package/dist/widgets/TimeZoneSelectorModal.js +458 -51
  300. package/dist/widgets/index.js +3 -3
  301. package/package.json +6 -1
  302. package/tailwind.preset.js +7 -5
  303. package/dist/Form/Form.InputField.d.ts +0 -10
  304. package/dist/Form/Form.InputField.js +0 -38
  305. package/dist/Form/Form.KeyboardToolbar.d.ts +0 -22
  306. package/dist/Form/Form.KeyboardToolbar.js +0 -66
  307. package/dist/Form/Form.PasswordInput.d.ts +0 -9
  308. package/dist/Form/Form.PasswordInput.js +0 -17
  309. package/dist/Form/Form.TextInput.d.ts +0 -8
  310. package/dist/Form/Form.TextInput.js +0 -8
  311. package/dist/primitives/BaseButton.d.ts +0 -150
  312. package/dist/primitives/BaseButton.js +0 -229
  313. package/dist/utils/useSheetTranslation.d.ts +0 -5
  314. package/dist/utils/useSheetTranslation.js +0 -23
@@ -1,10 +1,105 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "nativewind/jsx-runtime";
1
+ import { c as _c } from "react/compiler-runtime";
2
2
  import { useTheme } from "../theme/index.js";
3
3
  import { cn } from "../theme/tw.js";
4
4
  import { Typography } from "../Typography/index.js";
5
5
  import { Switch as RNSwitch, View } from "react-native";
6
- function Switch({ value, onValueChange, label, disabled = false, className, testID, }) {
7
- const theme = useTheme();
8
- return (_jsxs(View, { className: cn("flex-row items-center justify-between gap-3", className), children: [label ? (_jsx(Typography.Text, { className: cn("flex-1 text-text-primary", disabled && "text-text-disabled"), children: label })) : null, _jsx(RNSwitch, { accessibilityLabel: label, accessibilityRole: "switch", accessibilityState: { checked: value, disabled }, disabled: disabled, ios_backgroundColor: theme.bg.muted, onValueChange: onValueChange, testID: testID, thumbColor: theme.bg.card, trackColor: { false: theme.bg.muted, true: theme.primary }, value: value })] }));
6
+ import { jsx as _jsx, jsxs as _jsxs } from "nativewind/jsx-runtime";
7
+ function Switch(t0) {
8
+ const $ = _c(25);
9
+ const {
10
+ value,
11
+ onValueChange,
12
+ label,
13
+ disabled: t1,
14
+ className,
15
+ testID
16
+ } = t0;
17
+ const disabled = t1 === undefined ? false : t1;
18
+ const theme = useTheme();
19
+ let t2;
20
+ if ($[0] !== className) {
21
+ t2 = cn("flex-row items-center justify-between gap-3", className);
22
+ $[0] = className;
23
+ $[1] = t2;
24
+ } else {
25
+ t2 = $[1];
26
+ }
27
+ let t3;
28
+ if ($[2] !== disabled || $[3] !== label) {
29
+ t3 = label ? _jsx(Typography.Text, {
30
+ className: cn("flex-1 text-text-primary", disabled && "text-text-disabled"),
31
+ children: label
32
+ }) : null;
33
+ $[2] = disabled;
34
+ $[3] = label;
35
+ $[4] = t3;
36
+ } else {
37
+ t3 = $[4];
38
+ }
39
+ let t4;
40
+ if ($[5] !== disabled || $[6] !== value) {
41
+ t4 = {
42
+ checked: value,
43
+ disabled
44
+ };
45
+ $[5] = disabled;
46
+ $[6] = value;
47
+ $[7] = t4;
48
+ } else {
49
+ t4 = $[7];
50
+ }
51
+ let t5;
52
+ if ($[8] !== theme.bg.muted || $[9] !== theme.primary) {
53
+ t5 = {
54
+ false: theme.bg.muted,
55
+ true: theme.primary
56
+ };
57
+ $[8] = theme.bg.muted;
58
+ $[9] = theme.primary;
59
+ $[10] = t5;
60
+ } else {
61
+ t5 = $[10];
62
+ }
63
+ let t6;
64
+ if ($[11] !== disabled || $[12] !== label || $[13] !== onValueChange || $[14] !== t4 || $[15] !== t5 || $[16] !== testID || $[17] !== theme.bg.card || $[18] !== theme.bg.muted || $[19] !== value) {
65
+ t6 = _jsx(RNSwitch, {
66
+ accessibilityLabel: label,
67
+ accessibilityRole: "switch",
68
+ accessibilityState: t4,
69
+ disabled: disabled,
70
+ ios_backgroundColor: theme.bg.muted,
71
+ onValueChange: onValueChange,
72
+ testID: testID,
73
+ thumbColor: theme.bg.card,
74
+ trackColor: t5,
75
+ value: value
76
+ });
77
+ $[11] = disabled;
78
+ $[12] = label;
79
+ $[13] = onValueChange;
80
+ $[14] = t4;
81
+ $[15] = t5;
82
+ $[16] = testID;
83
+ $[17] = theme.bg.card;
84
+ $[18] = theme.bg.muted;
85
+ $[19] = value;
86
+ $[20] = t6;
87
+ } else {
88
+ t6 = $[20];
89
+ }
90
+ let t7;
91
+ if ($[21] !== t2 || $[22] !== t3 || $[23] !== t6) {
92
+ t7 = _jsxs(View, {
93
+ className: t2,
94
+ children: [t3, t6]
95
+ });
96
+ $[21] = t2;
97
+ $[22] = t3;
98
+ $[23] = t6;
99
+ $[24] = t7;
100
+ } else {
101
+ t7 = $[24];
102
+ }
103
+ return t7;
9
104
  }
10
105
  export default Switch;
@@ -0,0 +1,15 @@
1
+ export interface ChoiceRowProps {
2
+ label: string;
3
+ /** Secondary line, e.g. a client's document number. */
4
+ description?: string;
5
+ selected: boolean;
6
+ onPress: () => void;
7
+ disabled?: boolean;
8
+ look?: "card" | "list";
9
+ testID?: string;
10
+ }
11
+ /**
12
+ * The single-choice row of the DS: the same radio mark, 48-point target, wrapping label and
13
+ * `radio` semantics on Android and iOS, whether it lists two options or two thousand.
14
+ */
15
+ export declare function ChoiceRow({ label, description, selected, onPress, disabled, look, testID, }: ChoiceRowProps): import("react").JSX.Element;
@@ -0,0 +1,236 @@
1
+ import { c as _c } from "react/compiler-runtime";
2
+ import Pressable from "../primitives/Pressable.js";
3
+ import { tv } from "../theme/tw.js";
4
+ import { Typography } from "../Typography/index.js";
5
+ import { View } from "react-native";
6
+ import { jsx as _jsx, jsxs as _jsxs } from "nativewind/jsx-runtime";
7
+ const choice = tv({
8
+ slots: {
9
+ row: "flex-row items-center gap-3",
10
+ mark: "w-[18px] h-[18px] rounded-full border-2 items-center justify-center",
11
+ dot: "w-[9px] h-[9px] rounded-full bg-primary"
12
+ },
13
+ variants: {
14
+ look: {
15
+ // Few options, each a bordered card (RadioButton, Select).
16
+ card: {
17
+ row: "rounded-lg border px-3 bg-bg-card"
18
+ },
19
+ // Long or virtualized lists (PickerField, EditValue).
20
+ list: {
21
+ row: "border-b border-border-light py-3"
22
+ }
23
+ },
24
+ selected: {
25
+ true: {
26
+ mark: "border-primary"
27
+ },
28
+ false: {
29
+ mark: "border-border-default"
30
+ }
31
+ }
32
+ },
33
+ compoundVariants: [{
34
+ look: "card",
35
+ selected: true,
36
+ className: {
37
+ row: "border-primary bg-primary/10"
38
+ }
39
+ }, {
40
+ look: "card",
41
+ selected: false,
42
+ className: {
43
+ row: "border-border-default"
44
+ }
45
+ }],
46
+ defaultVariants: {
47
+ look: "card",
48
+ selected: false
49
+ }
50
+ });
51
+ /**
52
+ * The single-choice row of the DS: the same radio mark, 48-point target, wrapping label and
53
+ * `radio` semantics on Android and iOS, whether it lists two options or two thousand.
54
+ */
55
+ export function ChoiceRow(t0) {
56
+ const $ = _c(49);
57
+ const {
58
+ label,
59
+ description,
60
+ selected,
61
+ onPress,
62
+ disabled: t1,
63
+ look: t2,
64
+ testID
65
+ } = t0;
66
+ const disabled = t1 === undefined ? false : t1;
67
+ const look = t2 === undefined ? "card" : t2;
68
+ let T0;
69
+ let T1;
70
+ let t10;
71
+ let t11;
72
+ let t12;
73
+ let t13;
74
+ let t3;
75
+ let t4;
76
+ let t5;
77
+ let t6;
78
+ let t7;
79
+ let t8;
80
+ let t9;
81
+ if ($[0] !== disabled || $[1] !== label || $[2] !== look || $[3] !== onPress || $[4] !== selected || $[5] !== testID) {
82
+ const styles = choice({
83
+ look,
84
+ selected
85
+ });
86
+ T1 = Pressable;
87
+ t5 = label;
88
+ t6 = "radio";
89
+ if ($[19] !== disabled || $[20] !== selected) {
90
+ t7 = {
91
+ checked: selected,
92
+ selected,
93
+ disabled
94
+ };
95
+ $[19] = disabled;
96
+ $[20] = selected;
97
+ $[21] = t7;
98
+ } else {
99
+ t7 = $[21];
100
+ }
101
+ t8 = styles.row();
102
+ t9 = disabled;
103
+ t10 = 0;
104
+ t11 = onPress;
105
+ if ($[22] === Symbol.for("react.memo_cache_sentinel")) {
106
+ t12 = {
107
+ minHeight: 48
108
+ };
109
+ $[22] = t12;
110
+ } else {
111
+ t12 = $[22];
112
+ }
113
+ t13 = testID;
114
+ T0 = View;
115
+ t3 = styles.mark();
116
+ t4 = selected ? _jsx(View, {
117
+ className: styles.dot()
118
+ }) : null;
119
+ $[0] = disabled;
120
+ $[1] = label;
121
+ $[2] = look;
122
+ $[3] = onPress;
123
+ $[4] = selected;
124
+ $[5] = testID;
125
+ $[6] = T0;
126
+ $[7] = T1;
127
+ $[8] = t10;
128
+ $[9] = t11;
129
+ $[10] = t12;
130
+ $[11] = t13;
131
+ $[12] = t3;
132
+ $[13] = t4;
133
+ $[14] = t5;
134
+ $[15] = t6;
135
+ $[16] = t7;
136
+ $[17] = t8;
137
+ $[18] = t9;
138
+ } else {
139
+ T0 = $[6];
140
+ T1 = $[7];
141
+ t10 = $[8];
142
+ t11 = $[9];
143
+ t12 = $[10];
144
+ t13 = $[11];
145
+ t3 = $[12];
146
+ t4 = $[13];
147
+ t5 = $[14];
148
+ t6 = $[15];
149
+ t7 = $[16];
150
+ t8 = $[17];
151
+ t9 = $[18];
152
+ }
153
+ let t14;
154
+ if ($[23] !== T0 || $[24] !== t3 || $[25] !== t4) {
155
+ t14 = _jsx(T0, {
156
+ className: t3,
157
+ children: t4
158
+ });
159
+ $[23] = T0;
160
+ $[24] = t3;
161
+ $[25] = t4;
162
+ $[26] = t14;
163
+ } else {
164
+ t14 = $[26];
165
+ }
166
+ const t15 = disabled ? "text-text-disabled" : "text-text-primary";
167
+ let t16;
168
+ if ($[27] !== label || $[28] !== selected || $[29] !== t15) {
169
+ t16 = _jsx(Typography.Text, {
170
+ className: t15,
171
+ semibold: selected,
172
+ children: label
173
+ });
174
+ $[27] = label;
175
+ $[28] = selected;
176
+ $[29] = t15;
177
+ $[30] = t16;
178
+ } else {
179
+ t16 = $[30];
180
+ }
181
+ let t17;
182
+ if ($[31] !== description) {
183
+ t17 = description ? _jsx(Typography.Text, {
184
+ className: "text-text-tertiary",
185
+ variant: "bodySmall",
186
+ children: description
187
+ }) : null;
188
+ $[31] = description;
189
+ $[32] = t17;
190
+ } else {
191
+ t17 = $[32];
192
+ }
193
+ let t18;
194
+ if ($[33] !== t16 || $[34] !== t17) {
195
+ t18 = _jsxs(View, {
196
+ className: "flex-1 py-2",
197
+ children: [t16, t17]
198
+ });
199
+ $[33] = t16;
200
+ $[34] = t17;
201
+ $[35] = t18;
202
+ } else {
203
+ t18 = $[35];
204
+ }
205
+ let t19;
206
+ if ($[36] !== T1 || $[37] !== t10 || $[38] !== t11 || $[39] !== t12 || $[40] !== t13 || $[41] !== t14 || $[42] !== t18 || $[43] !== t5 || $[44] !== t6 || $[45] !== t7 || $[46] !== t8 || $[47] !== t9) {
207
+ t19 = _jsxs(T1, {
208
+ accessibilityLabel: t5,
209
+ accessibilityRole: t6,
210
+ accessibilityState: t7,
211
+ className: t8,
212
+ disabled: t9,
213
+ hitSlop: t10,
214
+ onPress: t11,
215
+ style: t12,
216
+ testID: t13,
217
+ children: [t14, t18]
218
+ });
219
+ $[36] = T1;
220
+ $[37] = t10;
221
+ $[38] = t11;
222
+ $[39] = t12;
223
+ $[40] = t13;
224
+ $[41] = t14;
225
+ $[42] = t18;
226
+ $[43] = t5;
227
+ $[44] = t6;
228
+ $[45] = t7;
229
+ $[46] = t8;
230
+ $[47] = t9;
231
+ $[48] = t19;
232
+ } else {
233
+ t19 = $[48];
234
+ }
235
+ return t19;
236
+ }
@@ -7,11 +7,13 @@ import ControlledRadioButton from "./Form.ControlledRadioButton.js";
7
7
  import DatePicker from "./Form.DatePicker.js";
8
8
  import Dropdown from "./Form.Dropdown.js";
9
9
  import ErrorSummary from "./Form.ErrorSummary.js";
10
+ import Field from "./Form.Field.js";
10
11
  import FractionalQuantityInput from "./Form.FractionalQuantityInput.js";
11
12
  import Input from "./Form.Input.js";
12
13
  import KeyboardForm from "./Form.KeyboardForm.js";
13
- import KeyboardToolbar from "./Form.KeyboardToolbar.js";
14
+ import KeyboardToolbarHost from "./Form.KeyboardToolbarHost.js";
14
15
  import MonetaryInput from "./Form.MonetaryInput.js";
16
+ import PickerField from "./Form.PickerField.js";
15
17
  import PinInput from "./Form.PinInput.js";
16
18
  import QuantitySelector from "./Form.QuantitySelector.js";
17
19
  import RadioButton from "./Form.RadioButton.js";
@@ -19,13 +21,11 @@ import Select from "./Form.Select.js";
19
21
  import Slider from "./Form.Slider.js";
20
22
  import Switch from "./Form.Switch.js";
21
23
  export declare const Form: {
22
- TextInput: import("react").FC<import("./Form.TextInput.js").TextInputFProps>;
24
+ Field: typeof Field;
23
25
  Input: typeof Input;
24
- InputField: import("react").FC<import("./Form.InputField.js").InputFieldProps>;
25
26
  KeyboardForm: typeof KeyboardForm;
26
- KeyboardToolbar: typeof KeyboardToolbar;
27
+ KeyboardToolbarHost: typeof KeyboardToolbarHost;
27
28
  ErrorSummary: typeof ErrorSummary;
28
- PasswordInput: import("react").FC<import("./Form.PasswordInput.js").PasswordFieldProps>;
29
29
  QuantitySelector: typeof QuantitySelector;
30
30
  FractionalQuantityInput: typeof FractionalQuantityInput;
31
31
  RadioButton: typeof RadioButton;
@@ -33,6 +33,7 @@ export declare const Form: {
33
33
  Switch: typeof Switch;
34
34
  Select: typeof Select;
35
35
  PinInput: typeof PinInput;
36
+ PickerField: typeof PickerField;
36
37
  Slider: typeof Slider;
37
38
  DatePicker: typeof DatePicker;
38
39
  Dropdown: typeof Dropdown;
@@ -47,8 +48,12 @@ export type { ControlledDropdownProps } from "./Form.ControlledDropdown.js";
47
48
  export type { DatePickerProps } from "./Form.DatePicker.js";
48
49
  export type { DropdownButtonProps, DropdownOption, } from "./Form.Dropdown.js";
49
50
  export type { ErrorSummaryItem, ErrorSummaryProps, } from "./Form.ErrorSummary.js";
51
+ export type { FieldProps, FieldRenderProps, FieldRules, } from "./Form.Field.js";
52
+ export type { FormInputProps } from "./Form.Input.js";
50
53
  export type { KeyboardFormProps } from "./Form.KeyboardForm.js";
51
- export type { KeyboardToolbarAction, KeyboardToolbarProps, } from "./Form.KeyboardToolbar.js";
54
+ export type { KeyboardToolbarHostProps } from "./Form.KeyboardToolbarHost.js";
55
+ export { useKeyboardToolbarInset } from "./Form.KeyboardToolbarHost.js";
56
+ export type { PickerFieldProps, PickerOption, } from "./Form.PickerField.js";
52
57
  export type { SelectOption, SelectProps } from "./Form.Select.js";
53
58
  export type { SliderProps } from "./Form.Slider.js";
54
59
  export default Form;
@@ -7,43 +7,42 @@ import ControlledRadioButton from "./Form.ControlledRadioButton.js";
7
7
  import DatePicker from "./Form.DatePicker.js";
8
8
  import Dropdown from "./Form.Dropdown.js";
9
9
  import ErrorSummary from "./Form.ErrorSummary.js";
10
+ import Field from "./Form.Field.js";
10
11
  import FractionalQuantityInput from "./Form.FractionalQuantityInput.js";
11
12
  import Input from "./Form.Input.js";
12
- import InputField from "./Form.InputField.js";
13
13
  import KeyboardForm from "./Form.KeyboardForm.js";
14
- import KeyboardToolbar from "./Form.KeyboardToolbar.js";
14
+ import KeyboardToolbarHost from "./Form.KeyboardToolbarHost.js";
15
15
  import MonetaryInput from "./Form.MonetaryInput.js";
16
- import PasswordInput from "./Form.PasswordInput.js";
16
+ import PickerField from "./Form.PickerField.js";
17
17
  import PinInput from "./Form.PinInput.js";
18
18
  import QuantitySelector from "./Form.QuantitySelector.js";
19
19
  import RadioButton from "./Form.RadioButton.js";
20
20
  import Select from "./Form.Select.js";
21
21
  import Slider from "./Form.Slider.js";
22
22
  import Switch from "./Form.Switch.js";
23
- import TextInput from "./Form.TextInput.js";
24
23
  export const Form = {
25
- TextInput,
26
- Input,
27
- InputField,
28
- KeyboardForm,
29
- KeyboardToolbar,
30
- ErrorSummary,
31
- PasswordInput,
32
- QuantitySelector,
33
- FractionalQuantityInput,
34
- RadioButton,
35
- Checkbox,
36
- Switch,
37
- Select,
38
- PinInput,
39
- Slider,
40
- DatePicker,
41
- Dropdown,
42
- MonetaryInput,
43
- ControlledInput,
44
- ControlledRadioButton,
45
- ControlledCheckbox,
46
- ControlledDropdown,
47
- ControlledMonetaryInput,
24
+ Field,
25
+ Input,
26
+ KeyboardForm,
27
+ KeyboardToolbarHost,
28
+ ErrorSummary,
29
+ QuantitySelector,
30
+ FractionalQuantityInput,
31
+ RadioButton,
32
+ Checkbox,
33
+ Switch,
34
+ Select,
35
+ PinInput,
36
+ PickerField,
37
+ Slider,
38
+ DatePicker,
39
+ Dropdown,
40
+ MonetaryInput,
41
+ ControlledInput,
42
+ ControlledRadioButton,
43
+ ControlledCheckbox,
44
+ ControlledDropdown,
45
+ ControlledMonetaryInput
48
46
  };
47
+ export { useKeyboardToolbarInset } from "./Form.KeyboardToolbarHost.js";
49
48
  export default Form;
@@ -0,0 +1,7 @@
1
+ import type { TextStyle } from "react-native";
2
+ /**
3
+ * What the user types in any DS field: the `body` face and size of the configured fonts.
4
+ * Without it a TextInput falls back to the system font. No line height: on iOS it pushes
5
+ * single-line text off center.
6
+ */
7
+ export declare function inputTextStyle(): TextStyle;
@@ -0,0 +1,18 @@
1
+ import { appliedTextStyle } from "../theme/typography.js";
2
+ /**
3
+ * What the user types in any DS field: the `body` face and size of the configured fonts.
4
+ * Without it a TextInput falls back to the system font. No line height: on iOS it pushes
5
+ * single-line text off center.
6
+ */
7
+ export function inputTextStyle() {
8
+ const {
9
+ fontFamily,
10
+ fontSize,
11
+ fontWeight
12
+ } = appliedTextStyle("body");
13
+ return {
14
+ fontFamily,
15
+ fontSize,
16
+ fontWeight
17
+ };
18
+ }
@@ -1,7 +1,6 @@
1
1
  import type { IconName } from "../Display/index.js";
2
- import { type GradientPreset } from "../Display/Display.GradientSurface.js";
2
+ import { type GradientPoint, type GradientPreset } from "../Display/Display.GradientSurface.js";
3
3
  import { type PatternKind } from "../Display/Display.Pattern.js";
4
- import type { LinearGradientPoint } from "expo-linear-gradient";
5
4
  import type { ReactNode } from "react";
6
5
  export interface AppBarActionProps {
7
6
  /** Ionicon name. Optional when `label` is set (text-only CTA). */
@@ -85,9 +84,9 @@ export interface AppBarBackground {
85
84
  /** Custom color stops — overrides `surface`. Minimum 2 colors. */
86
85
  colors?: readonly [string, string, ...string[]];
87
86
  /** Gradient start point. Default: top-left `{ x: 0, y: 0 }`. */
88
- start?: LinearGradientPoint;
87
+ start?: GradientPoint;
89
88
  /** Gradient end point. Default: bottom-right `{ x: 1, y: 1 }`. */
90
- end?: LinearGradientPoint;
89
+ end?: GradientPoint;
91
90
  /** SVG texture overlay kind. */
92
91
  pattern?: PatternKind;
93
92
  /** Texture opacity (0–1). Default 0.18. */