@sincpro/mobile-ui 0.7.2 → 1.1.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 (313) hide show
  1. package/README.md +575 -230
  2. package/dist/Actions/Actions.Button.d.ts +98 -93
  3. package/dist/Actions/Actions.Button.js +58 -52
  4. package/dist/Actions/Actions.FAB.d.ts +3 -1
  5. package/dist/Actions/Actions.FAB.js +12 -8
  6. package/dist/Actions/Actions.FilterButton.d.ts +10 -2
  7. package/dist/Actions/Actions.FilterButton.js +23 -8
  8. package/dist/Actions/Actions.IconButton.d.ts +36 -33
  9. package/dist/Actions/Actions.IconButton.js +10 -6
  10. package/dist/Actions/index.d.ts +12 -12
  11. package/dist/Actions/index.js +6 -6
  12. package/dist/Dialog/BottomSheet/BottomSheet.Root.js +1 -1
  13. package/dist/Dialog/BottomSheet/index.d.ts +1 -1
  14. package/dist/Dialog/BottomSheet/index.js +1 -1
  15. package/dist/Dialog/Confirmation.context.js +3 -3
  16. package/dist/Dialog/Dialog.ActionSheet.d.ts +2 -1
  17. package/dist/Dialog/Dialog.ActionSheet.js +19 -9
  18. package/dist/Dialog/Dialog.Confirmation.js +7 -7
  19. package/dist/Dialog/Dialog.EditValue.js +4 -4
  20. package/dist/Dialog/Dialog.NativeSheet.d.ts +10 -0
  21. package/dist/Dialog/Dialog.NativeSheet.js +21 -0
  22. package/dist/Dialog/Dialog.Sheet.d.ts +5 -1
  23. package/dist/Dialog/Dialog.Sheet.js +19 -11
  24. package/dist/Dialog/index.d.ts +5 -5
  25. package/dist/Dialog/index.js +5 -5
  26. package/dist/Display/Display.Accordion.js +5 -5
  27. package/dist/Display/Display.Avatar.d.ts +30 -30
  28. package/dist/Display/Display.Avatar.js +2 -2
  29. package/dist/Display/Display.AvatarGroup.js +3 -3
  30. package/dist/Display/Display.Badge.d.ts +3 -3
  31. package/dist/Display/Display.Badge.js +1 -1
  32. package/dist/Display/Display.Card.d.ts +15 -15
  33. package/dist/Display/Display.Card.js +4 -4
  34. package/dist/Display/Display.Carousel.js +2 -2
  35. package/dist/Display/Display.Chip.d.ts +3 -3
  36. package/dist/Display/Display.Chip.js +12 -12
  37. package/dist/Display/Display.CircleButton.d.ts +1 -1
  38. package/dist/Display/Display.CircleButton.js +3 -3
  39. package/dist/Display/Display.CopyableText.d.ts +9 -2
  40. package/dist/Display/Display.CopyableText.js +76 -8
  41. package/dist/Display/Display.CountRecords.js +2 -2
  42. package/dist/Display/Display.DataTable.js +2 -2
  43. package/dist/Display/Display.Date.d.ts +1 -1
  44. package/dist/Display/Display.Date.js +5 -5
  45. package/dist/Display/Display.Divider.d.ts +24 -24
  46. package/dist/Display/Display.Divider.js +1 -1
  47. package/dist/Display/Display.GradientSurface.d.ts +58 -39
  48. package/dist/Display/Display.GradientSurface.js +31 -15
  49. package/dist/Display/Display.Icon.d.ts +1 -1
  50. package/dist/Display/Display.Icon.js +2 -1
  51. package/dist/Display/Display.IconBadge.js +3 -3
  52. package/dist/Display/Display.Image.js +4 -4
  53. package/dist/Display/Display.KeyValue.d.ts +11 -4
  54. package/dist/Display/Display.KeyValue.js +8 -6
  55. package/dist/Display/Display.ListGroup.d.ts +23 -0
  56. package/dist/Display/Display.ListGroup.js +17 -0
  57. package/dist/Display/Display.ListItem.d.ts +16 -2
  58. package/dist/Display/Display.ListItem.js +29 -12
  59. package/dist/Display/Display.Logo.d.ts +3 -3
  60. package/dist/Display/Display.Logo.js +2 -2
  61. package/dist/Display/Display.MediaCard.js +4 -4
  62. package/dist/Display/Display.MediaEmbed.js +7 -7
  63. package/dist/Display/Display.MenuButton.d.ts +4 -4
  64. package/dist/Display/Display.MenuButton.js +6 -6
  65. package/dist/Display/Display.MenuCard.d.ts +1 -1
  66. package/dist/Display/Display.MenuCard.js +3 -3
  67. package/dist/Display/Display.MenuGrid.d.ts +1 -1
  68. package/dist/Display/Display.MenuGrid.js +1 -1
  69. package/dist/Display/Display.Monetary.d.ts +1 -1
  70. package/dist/Display/Display.Monetary.js +2 -2
  71. package/dist/Display/Display.Pattern.d.ts +33 -12
  72. package/dist/Display/Display.Pattern.js +60 -14
  73. package/dist/Display/Display.PriceTag.js +2 -2
  74. package/dist/Display/Display.ProductCard.js +7 -7
  75. package/dist/Display/Display.Rating.js +3 -3
  76. package/dist/Display/Display.SearchHistory.js +6 -6
  77. package/dist/Display/Display.SectionHeader.d.ts +11 -1
  78. package/dist/Display/Display.SectionHeader.js +14 -5
  79. package/dist/Display/Display.Stat.js +2 -2
  80. package/dist/Display/Display.StatCard.js +4 -4
  81. package/dist/Display/Display.StatusDot.js +3 -3
  82. package/dist/Display/Display.Story.js +3 -3
  83. package/dist/Display/Display.StoryTray.js +5 -5
  84. package/dist/Display/Display.StoryViewer.js +4 -4
  85. package/dist/Display/Display.SwipeableRow.d.ts +3 -1
  86. package/dist/Display/Display.SwipeableRow.js +7 -7
  87. package/dist/Display/Display.Tag.js +2 -2
  88. package/dist/Display/Display.Timeline.js +4 -4
  89. package/dist/Display/Display.Tooltip.js +3 -3
  90. package/dist/Display/index.d.ts +49 -45
  91. package/dist/Display/index.js +44 -42
  92. package/dist/Feedback/ErrorBoundary.d.ts +1 -1
  93. package/dist/Feedback/ErrorBoundary.js +1 -1
  94. package/dist/Feedback/Feedback.Banner.d.ts +3 -3
  95. package/dist/Feedback/Feedback.Banner.js +6 -6
  96. package/dist/Feedback/Feedback.DomainSplashScreen.js +5 -4
  97. package/dist/Feedback/Feedback.Empty.js +3 -3
  98. package/dist/Feedback/Feedback.EmptyState.d.ts +2 -1
  99. package/dist/Feedback/Feedback.EmptyState.js +7 -7
  100. package/dist/Feedback/Feedback.Error.d.ts +3 -1
  101. package/dist/Feedback/Feedback.Error.js +7 -6
  102. package/dist/Feedback/Feedback.Loading.d.ts +1 -1
  103. package/dist/Feedback/Feedback.Loading.js +2 -2
  104. package/dist/Feedback/Feedback.PermissionCard.js +5 -5
  105. package/dist/Feedback/Feedback.Progress.js +2 -2
  106. package/dist/Feedback/Feedback.ProgressCircle.js +1 -1
  107. package/dist/Feedback/Feedback.Skeleton.js +2 -2
  108. package/dist/Feedback/Feedback.Spinner.js +3 -3
  109. package/dist/Feedback/Feedback.Splash.d.ts +1 -1
  110. package/dist/Feedback/Feedback.Splash.js +7 -6
  111. package/dist/Feedback/Toast.context.js +7 -7
  112. package/dist/Feedback/index.d.ts +13 -13
  113. package/dist/Feedback/index.js +13 -13
  114. package/dist/Form/Form.Button.d.ts +2 -2
  115. package/dist/Form/Form.Button.js +1 -1
  116. package/dist/Form/Form.Checkbox.d.ts +4 -1
  117. package/dist/Form/Form.Checkbox.js +5 -5
  118. package/dist/Form/Form.ControlledCheckbox.js +1 -1
  119. package/dist/Form/Form.ControlledInput.js +1 -1
  120. package/dist/Form/Form.ControlledMonetaryInput.js +1 -1
  121. package/dist/Form/Form.ControlledRadioButton.js +1 -1
  122. package/dist/Form/Form.DatePicker.d.ts +2 -1
  123. package/dist/Form/Form.DatePicker.js +8 -7
  124. package/dist/Form/Form.Dropdown.js +7 -7
  125. package/dist/Form/Form.FAB.d.ts +2 -2
  126. package/dist/Form/Form.FAB.js +1 -1
  127. package/dist/Form/Form.FilterButton.d.ts +2 -2
  128. package/dist/Form/Form.FilterButton.js +1 -1
  129. package/dist/Form/Form.FractionalQuantityInput.js +4 -4
  130. package/dist/Form/Form.IconButton.d.ts +2 -2
  131. package/dist/Form/Form.IconButton.js +1 -1
  132. package/dist/Form/Form.Input.d.ts +5 -3
  133. package/dist/Form/Form.Input.js +5 -5
  134. package/dist/Form/Form.InputField.d.ts +1 -1
  135. package/dist/Form/Form.InputField.js +3 -3
  136. package/dist/Form/Form.KeyboardForm.d.ts +11 -0
  137. package/dist/Form/Form.KeyboardForm.js +9 -0
  138. package/dist/Form/Form.KeyboardToolbar.d.ts +21 -0
  139. package/dist/Form/Form.KeyboardToolbar.js +70 -0
  140. package/dist/Form/Form.MonetaryInput.js +5 -4
  141. package/dist/Form/Form.PasswordInput.d.ts +1 -1
  142. package/dist/Form/Form.PasswordInput.js +3 -3
  143. package/dist/Form/Form.PinInput.js +5 -5
  144. package/dist/Form/Form.QuantitySelector.js +3 -3
  145. package/dist/Form/Form.RadioButton.js +4 -4
  146. package/dist/Form/Form.SearchBar.js +4 -4
  147. package/dist/Form/Form.Select.d.ts +3 -1
  148. package/dist/Form/Form.Select.js +27 -14
  149. package/dist/Form/Form.Slider.js +3 -3
  150. package/dist/Form/Form.Switch.js +4 -4
  151. package/dist/Form/Form.TextInput.js +3 -3
  152. package/dist/Form/index.d.ts +33 -27
  153. package/dist/Form/index.js +29 -25
  154. package/dist/Navigation/Navigation.AppBar.d.ts +11 -6
  155. package/dist/Navigation/Navigation.AppBar.js +16 -16
  156. package/dist/Navigation/Navigation.BottomNav.d.ts +4 -2
  157. package/dist/Navigation/Navigation.BottomNav.js +34 -21
  158. package/dist/Navigation/Navigation.CollapsingHeader.d.ts +1 -1
  159. package/dist/Navigation/Navigation.CollapsingHeader.js +3 -3
  160. package/dist/Navigation/Navigation.FloatingBar.js +2 -2
  161. package/dist/Navigation/Navigation.Header.js +6 -6
  162. package/dist/Navigation/Navigation.HeaderToolbar.js +5 -5
  163. package/dist/Navigation/Navigation.Menu.js +6 -6
  164. package/dist/Navigation/Navigation.MenuSection.js +2 -2
  165. package/dist/Navigation/Navigation.RowItem.d.ts +2 -2
  166. package/dist/Navigation/Navigation.RowItem.js +4 -4
  167. package/dist/Navigation/Navigation.SearchBar.d.ts +6 -1
  168. package/dist/Navigation/Navigation.SearchBar.js +33 -12
  169. package/dist/Navigation/Navigation.SearchSuggestions.d.ts +14 -0
  170. package/dist/Navigation/Navigation.SearchSuggestions.js +7 -0
  171. package/dist/Navigation/Navigation.SegmentedControl.d.ts +3 -1
  172. package/dist/Navigation/Navigation.SegmentedControl.js +6 -5
  173. package/dist/Navigation/Navigation.Steps.js +5 -5
  174. package/dist/Navigation/Navigation.TabIcon.js +2 -2
  175. package/dist/Navigation/Navigation.TabItem.js +2 -2
  176. package/dist/Navigation/Navigation.Tabs.js +5 -5
  177. package/dist/Navigation/index.d.ts +23 -19
  178. package/dist/Navigation/index.js +17 -15
  179. package/dist/Typography/Typography.Heading.d.ts +1 -1
  180. package/dist/Typography/Typography.Heading.js +2 -2
  181. package/dist/Typography/Typography.SelectableText.d.ts +10 -0
  182. package/dist/Typography/Typography.SelectableText.js +16 -0
  183. package/dist/Typography/Typography.Text.d.ts +2 -2
  184. package/dist/Typography/Typography.Text.js +5 -19
  185. package/dist/Typography/index.d.ts +5 -2
  186. package/dist/Typography/index.js +5 -2
  187. package/dist/branding.d.ts +22 -0
  188. package/dist/branding.js +20 -3
  189. package/dist/icons/AddItemIcon.d.ts +1 -1
  190. package/dist/icons/ArrangeCircle.d.ts +1 -1
  191. package/dist/icons/ArrowDownIcon.d.ts +1 -1
  192. package/dist/icons/ArrowUpIcon.d.ts +1 -1
  193. package/dist/icons/BoxIcon.d.ts +1 -1
  194. package/dist/icons/BoxTimeIcon.d.ts +1 -1
  195. package/dist/icons/CalendarIcon.d.ts +1 -1
  196. package/dist/icons/CardIcon.d.ts +1 -1
  197. package/dist/icons/CashierIcon.d.ts +1 -1
  198. package/dist/icons/DuoIcon.d.ts +1 -1
  199. package/dist/icons/HomeIcon.d.ts +1 -1
  200. package/dist/icons/HomeIconOutlined.d.ts +1 -1
  201. package/dist/icons/LogoIcon.d.ts +1 -1
  202. package/dist/icons/MoneyReceiveIcon.d.ts +1 -1
  203. package/dist/icons/PinIcon.d.ts +1 -1
  204. package/dist/icons/PrinterIcon.d.ts +1 -1
  205. package/dist/icons/ProfileIcon.d.ts +1 -1
  206. package/dist/icons/SettingsIcon.d.ts +1 -1
  207. package/dist/icons/SinpeIcon.d.ts +1 -1
  208. package/dist/icons/ToggleOffIcon.d.ts +1 -1
  209. package/dist/icons/WalletMoneyIcon.d.ts +1 -1
  210. package/dist/index.d.ts +24 -23
  211. package/dist/index.js +26 -24
  212. package/dist/layouts/AuthContainer.d.ts +9 -3
  213. package/dist/layouts/AuthContainer.js +8 -8
  214. package/dist/layouts/Container.js +1 -1
  215. package/dist/layouts/GradientContainer.js +1 -1
  216. package/dist/layouts/ScrollContainer.js +1 -1
  217. package/dist/layouts/TabNavigatorLayout.js +4 -4
  218. package/dist/primitives/AspectRatio.js +1 -1
  219. package/dist/primitives/BaseButton.d.ts +92 -87
  220. package/dist/primitives/BaseButton.js +52 -54
  221. package/dist/primitives/Box.js +1 -1
  222. package/dist/primitives/Pressable.js +1 -1
  223. package/dist/primitives/Row.js +1 -1
  224. package/dist/primitives/Stack.js +1 -1
  225. package/dist/primitives/index.d.ts +6 -6
  226. package/dist/primitives/index.js +6 -6
  227. package/dist/theme/active.d.ts +1 -1
  228. package/dist/theme/active.js +14 -1
  229. package/dist/theme/build.d.ts +33 -0
  230. package/dist/theme/build.js +118 -0
  231. package/dist/theme/color.d.ts +26 -0
  232. package/dist/theme/color.js +109 -0
  233. package/dist/theme/components/index.d.ts +1 -1
  234. package/dist/theme/components/index.js +1 -1
  235. package/dist/theme/contrast.d.ts +29 -0
  236. package/dist/theme/contrast.js +57 -0
  237. package/dist/theme/css-vars.d.ts +3 -1
  238. package/dist/theme/css-vars.js +29 -3
  239. package/dist/theme/dark.d.ts +3 -4
  240. package/dist/theme/dark.js +91 -48
  241. package/dist/theme/default.d.ts +5 -1
  242. package/dist/theme/default.js +89 -41
  243. package/dist/theme/define.d.ts +4 -1
  244. package/dist/theme/define.js +4 -1
  245. package/dist/theme/globals.css +61 -46
  246. package/dist/theme/index.d.ts +14 -10
  247. package/dist/theme/index.js +13 -9
  248. package/dist/theme/theme.d.ts +1 -1
  249. package/dist/theme/theme.js +2 -2
  250. package/dist/theme/types.d.ts +77 -16
  251. package/dist/theme/types.js +13 -3
  252. package/dist/theme/typography.d.ts +19 -4
  253. package/dist/theme/typography.js +45 -28
  254. package/dist/theme/useTheme.d.ts +1 -1
  255. package/dist/theme/useTheme.js +1 -1
  256. package/dist/theme/validate.d.ts +16 -0
  257. package/dist/theme/validate.js +200 -0
  258. package/dist/tokens/index.d.ts +2 -2
  259. package/dist/tokens/index.js +2 -2
  260. package/dist/utils/criteria.d.ts +56 -0
  261. package/dist/utils/criteria.js +99 -0
  262. package/dist/utils/reorder.d.ts +4 -0
  263. package/dist/utils/reorder.js +32 -0
  264. package/dist/views/AppSplashView.d.ts +2 -2
  265. package/dist/views/AppSplashView.js +3 -3
  266. package/dist/views/AuthFormView.d.ts +5 -2
  267. package/dist/views/AuthFormView.js +5 -5
  268. package/dist/views/FormViewV2.d.ts +9 -4
  269. package/dist/views/FormViewV2.js +44 -25
  270. package/dist/views/ListViewV2.d.ts +12 -9
  271. package/dist/views/ListViewV2.js +49 -36
  272. package/dist/views/Wizard/Wizard.context.js +1 -1
  273. package/dist/views/Wizard/Wizard.d.ts +1 -1
  274. package/dist/views/Wizard/Wizard.js +1 -1
  275. package/dist/views/Wizard/index.d.ts +4 -4
  276. package/dist/views/Wizard/index.js +2 -2
  277. package/dist/views/types/IFormView.d.ts +1 -1
  278. package/dist/views/types/IListView.d.ts +1 -1
  279. package/dist/widgets/CircleButton.d.ts +2 -2
  280. package/dist/widgets/CircleButton.js +1 -1
  281. package/dist/widgets/CollectionOptions.d.ts +15 -0
  282. package/dist/widgets/CollectionOptions.js +127 -0
  283. package/dist/widgets/FilterBar.d.ts +21 -0
  284. package/dist/widgets/FilterBar.js +14 -0
  285. package/dist/widgets/FilterBuilder.d.ts +10 -0
  286. package/dist/widgets/FilterBuilder.js +115 -0
  287. package/dist/widgets/GeoPermissionCard.js +3 -3
  288. package/dist/widgets/HomeHeader.js +3 -3
  289. package/dist/widgets/JSONViewer.js +2 -2
  290. package/dist/widgets/MenuCard.d.ts +2 -2
  291. package/dist/widgets/MenuCard.js +1 -1
  292. package/dist/widgets/MenuGrid.d.ts +3 -3
  293. package/dist/widgets/MenuGrid.js +1 -1
  294. package/dist/widgets/MenuSection.d.ts +2 -2
  295. package/dist/widgets/MenuSection.js +1 -1
  296. package/dist/widgets/PromoBanner.js +3 -3
  297. package/dist/widgets/PromoModal.js +3 -3
  298. package/dist/widgets/QueryChoice.d.ts +10 -0
  299. package/dist/widgets/QueryChoice.js +13 -0
  300. package/dist/widgets/QuickActions.js +3 -3
  301. package/dist/widgets/ReorderableList.d.ts +51 -0
  302. package/dist/widgets/ReorderableList.js +138 -0
  303. package/dist/widgets/ScreenHeader.js +2 -2
  304. package/dist/widgets/TimeZoneSelector.d.ts +1 -1
  305. package/dist/widgets/TimeZoneSelector.js +4 -4
  306. package/dist/widgets/TimeZoneSelectorModal.d.ts +1 -1
  307. package/dist/widgets/TimeZoneSelectorModal.js +5 -5
  308. package/dist/widgets/index.d.ts +20 -16
  309. package/dist/widgets/index.js +13 -10
  310. package/package.json +70 -50
  311. package/tailwind.preset.js +19 -0
  312. package/dist/icons/icon_getters.d.ts +0 -6
  313. package/dist/icons/icon_getters.js +0 -23
@@ -1,64 +1,108 @@
1
+ import { containerPair } from "./color.js";
2
+ import { resolveOnColor } from "./contrast.js";
3
+ /** Web UI light palette. Gold is a fill, never a border or a label. */
4
+ const PRIMARY = "#2A4A85";
5
+ const SECONDARY = "#1C3765";
6
+ const ACCENT = "#C89B3C";
7
+ const SUCCESS = "#2F6B3C";
8
+ const WARNING = "#7E5E12";
9
+ const DANGER = "#9B3B30";
10
+ const INFO = "#0F5C6E";
11
+ const INK = "#1A1714";
12
+ const MUTED = "#6B6459";
13
+ const primaryC = containerPair(PRIMARY, "light");
14
+ const secondaryC = containerPair(SECONDARY, "light");
15
+ const accentC = containerPair(ACCENT, "light");
16
+ const successC = containerPair(SUCCESS, "light");
17
+ const warningC = containerPair(WARNING, "light");
18
+ const dangerC = containerPair(DANGER, "light");
19
+ const infoC = containerPair(INFO, "light");
20
+ /**
21
+ * Default light theme. Sample values — not the framework identity.
22
+ * Prefer `buildThemeFromBrand` or `extendTheme` at app boot.
23
+ */
1
24
  export const DEFAULT_THEME = {
2
- name: "default",
3
- primary: "#2563EB",
4
- secondary: "#64748B",
5
- accent: "#F59E0B",
25
+ name: "default-light",
26
+ primary: PRIMARY,
27
+ secondary: SECONDARY,
28
+ accent: ACCENT,
6
29
  bg: {
7
- page: "#F0F1F3",
30
+ page: "#FAF9F7",
8
31
  card: "#FFFFFF",
9
32
  popover: "#FFFFFF",
10
- muted: "#F3F4F6",
11
- accent: "#EFF6FF",
12
- hover: "#F3F4F6",
13
- disabled: "#F3F4F6",
14
- inverse: "#0E1714",
33
+ muted: "#F3F0EA",
34
+ accent: primaryC.container,
35
+ hover: "#EBE6DE",
36
+ disabled: "#E4DFD7",
37
+ inverse: "#181614",
38
+ containerLowest: "#FAF9F7",
39
+ container: "#F3F0EA",
40
+ containerHigh: "#E4DFD7",
15
41
  },
16
42
  text: {
17
- primary: "#0F172A",
18
- secondary: "#475569",
19
- tertiary: "#94A3B8",
20
- muted: "#64748B",
21
- accent: "#1E40AF",
43
+ primary: INK,
44
+ secondary: MUTED,
45
+ tertiary: "#A39B90",
46
+ muted: MUTED,
47
+ accent: PRIMARY,
22
48
  inverse: "#FFFFFF",
23
- disabled: "#94A3B8",
49
+ disabled: "#A39B90",
24
50
  onPrimary: "#FFFFFF",
25
51
  onSecondary: "#FFFFFF",
26
- onAccent: "#FFFFFF",
27
- onDanger: "#FFFFFF",
28
- onSuccess: "#FFFFFF",
52
+ onAccent: "#1A1714",
53
+ onDanger: resolveOnColor(DANGER),
54
+ onSuccess: resolveOnColor(SUCCESS),
29
55
  },
30
56
  icon: {
31
- primary: "#0F172A",
32
- secondary: "#64748B",
33
- tertiary: "#94A3B8",
57
+ primary: INK,
58
+ secondary: MUTED,
59
+ tertiary: "#A39B90",
34
60
  inverse: "#FFFFFF",
35
- disabled: "#CBD5E1",
61
+ disabled: "#A39B90",
36
62
  },
37
63
  border: {
38
- default: "#E5E7EB",
39
- light: "#F3F4F6",
40
- strong: "#D1D5DB",
41
- focus: "#2563EB",
64
+ default: "#E4DFD7",
65
+ light: "#F3F0EA",
66
+ strong: "#D5CEC2",
67
+ focus: PRIMARY,
42
68
  },
43
- success: "#16A34A",
44
- warning: "#F59E0B",
45
- danger: "#DC2626",
46
- info: "#2563EB",
47
- successLight: "#DCFCE7",
48
- warningLight: "#FEF3C7",
49
- dangerLight: "#FEE2E2",
50
- infoLight: "#DBEAFE",
51
- ring: "#2563EB",
52
- input: "#E5E7EB",
69
+ success: SUCCESS,
70
+ warning: WARNING,
71
+ danger: DANGER,
72
+ info: INFO,
73
+ successLight: successC.container,
74
+ warningLight: warningC.container,
75
+ dangerLight: dangerC.container,
76
+ infoLight: infoC.container,
77
+ container: {
78
+ primary: primaryC.container,
79
+ onPrimary: primaryC.onContainer,
80
+ secondary: secondaryC.container,
81
+ onSecondary: secondaryC.onContainer,
82
+ accent: accentC.container,
83
+ onAccent: accentC.onContainer,
84
+ success: successC.container,
85
+ onSuccess: successC.onContainer,
86
+ warning: warningC.container,
87
+ onWarning: warningC.onContainer,
88
+ danger: dangerC.container,
89
+ onDanger: dangerC.onContainer,
90
+ info: infoC.container,
91
+ onInfo: infoC.onContainer,
92
+ },
93
+ state: { hover: 0.08, press: 0.12, focus: 0.12, drag: 0.16 },
94
+ material: { blur: 24, opacity: 0.78, borderOpacity: 0.18 },
95
+ ring: PRIMARY,
96
+ input: "#E4DFD7",
53
97
  gradient: {
54
- primary: ["#2563EB", "#1E40AF"],
55
- accent: ["#F59E0B", "#D97706"],
98
+ primary: [SECONDARY, PRIMARY],
99
+ accent: ["#B88A2E", ACCENT],
56
100
  },
57
101
  shadow: {
58
102
  sm: {
59
103
  shadowColor: "#000000",
60
104
  shadowOffset: { width: 0, height: 1 },
61
- shadowOpacity: 0.05,
105
+ shadowOpacity: 0.06,
62
106
  shadowRadius: 2,
63
107
  elevation: 1,
64
108
  },
@@ -72,9 +116,13 @@ export const DEFAULT_THEME = {
72
116
  lg: {
73
117
  shadowColor: "#000000",
74
118
  shadowOffset: { width: 0, height: 10 },
75
- shadowOpacity: 0.1,
119
+ shadowOpacity: 0.14,
76
120
  shadowRadius: 15,
77
121
  elevation: 5,
78
122
  },
79
123
  },
124
+ pattern: {
125
+ mode: "light-pattern",
126
+ size: 56,
127
+ },
80
128
  };
@@ -1,10 +1,13 @@
1
- import type { ThemeTokens } from "../theme/types";
1
+ import type { ThemeTokens } from "./types.js";
2
2
  export type DeepPartial<T> = {
3
3
  [K in keyof T]?: T[K] extends readonly unknown[] ? T[K] : T[K] extends object ? DeepPartial<T[K]> : T[K];
4
4
  };
5
5
  /**
6
6
  * Defines a complete, typed theme (powerful API: the framework parametrizes
7
7
  * every token explicitly).
8
+ *
9
+ * Tip for brand palettes: set on-colors with `resolveOnColor` from
10
+ * `@sincpro/mobile-ui/theme` so light and dark brand fills both stay WCAG AA.
8
11
  */
9
12
  export declare function defineTheme(tokens: ThemeTokens): ThemeTokens;
10
13
  /**
@@ -1,4 +1,4 @@
1
- import { DEFAULT_THEME } from "../theme/default";
1
+ import { DEFAULT_THEME } from "./default.js";
2
2
  function isPlainObject(v) {
3
3
  return typeof v === "object" && v !== null && !Array.isArray(v);
4
4
  }
@@ -15,6 +15,9 @@ function deepMerge(base, override) {
15
15
  /**
16
16
  * Defines a complete, typed theme (powerful API: the framework parametrizes
17
17
  * every token explicitly).
18
+ *
19
+ * Tip for brand palettes: set on-colors with `resolveOnColor` from
20
+ * `@sincpro/mobile-ui/theme` so light and dark brand fills both stay WCAG AA.
18
21
  */
19
22
  export function defineTheme(tokens) {
20
23
  return tokens;
@@ -1,67 +1,82 @@
1
- /**
2
- * AUTO-GENERATED from apk/domains/index.ts
3
- * Active Domain: distribution
4
- */
5
-
6
1
  @tailwind base;
7
2
  @tailwind components;
8
3
  @tailwind utilities;
9
4
 
10
5
  :root {
11
- /* Primary Colors */
12
- --primary: 37 99 235;
13
- --secondary: 107 114 128;
14
- --accent: 249 115 22;
6
+ /* Fallback CSS vars — runtime source of truth is themeToVars(activeTheme). */
7
+ --primary: 42 74 133;
8
+ --secondary: 28 55 101;
9
+ --accent: 200 155 60;
15
10
 
16
- /* Backgrounds */
17
- --bg-page: 249 250 251;
11
+ --bg-page: 250 249 247;
18
12
  --bg-card: 255 255 255;
19
13
  --bg-popover: 255 255 255;
20
- --bg-muted: 243 244 246;
21
- --bg-accent: 219 234 254;
22
- --bg-hover: 243 244 246;
23
- --bg-disabled: 249 250 251;
14
+ --bg-muted: 243 240 234;
15
+ --bg-accent: 232 236 245;
16
+ --bg-hover: 235 230 222;
17
+ --bg-disabled: 228 223 215;
18
+ --bg-container-lowest: 250 249 247;
19
+ --bg-container: 243 240 234;
20
+ --bg-container-high: 228 223 215;
24
21
 
25
- /* Text */
26
- --text-primary: 17 24 39;
27
- --text-secondary: 107 114 128;
28
- --text-tertiary: 156 163 175;
29
- --text-muted: 107 114 128;
30
- --text-accent: 30 64 175;
22
+ --text-primary: 26 23 20;
23
+ --text-secondary: 107 100 89;
24
+ --text-tertiary: 163 155 144;
25
+ --text-muted: 107 100 89;
26
+ --text-accent: 42 74 133;
31
27
  --text-inverse: 255 255 255;
32
- --text-disabled: 209 213 219;
28
+ --text-disabled: 163 155 144;
33
29
  --text-on-primary: 255 255 255;
34
30
  --text-on-secondary: 255 255 255;
35
- --text-on-accent: 255 255 255;
31
+ --text-on-accent: 26 23 20;
36
32
  --text-on-danger: 255 255 255;
37
33
  --text-on-success: 255 255 255;
38
34
 
39
- /* Icons */
40
- --icon-primary: 17 24 39;
41
- --icon-secondary: 107 114 128;
42
- --icon-tertiary: 156 163 175;
35
+ --icon-primary: 26 23 20;
36
+ --icon-secondary: 107 100 89;
37
+ --icon-tertiary: 163 155 144;
43
38
  --icon-inverse: 255 255 255;
44
- --icon-disabled: 209 213 219;
39
+ --icon-disabled: 163 155 144;
40
+
41
+ --border-default: 228 223 215;
42
+ --border-light: 243 240 234;
43
+ --border-strong: 213 206 194;
44
+ --border-focus: 42 74 133;
45
+
46
+ --ring: 42 74 133;
47
+ --input: 228 223 215;
48
+
49
+ --success: 47 107 60;
50
+ --warning: 126 94 18;
51
+ --danger: 155 59 48;
52
+ --info: 15 92 110;
45
53
 
46
- /* Borders */
47
- --border-default: 229 231 235;
48
- --border-light: 243 244 246;
49
- --border-strong: 209 213 219;
50
- --border-focus: 37 99 235;
54
+ --success-light: 232 240 234;
55
+ --warning-light: 245 236 214;
56
+ --danger-light: 246 232 229;
57
+ --info-light: 226 238 241;
51
58
 
52
- /* Focus & Input */
53
- --ring: 37 99 235;
54
- --input: 229 231 235;
59
+ --container-primary: 232 236 245;
60
+ --container-on-primary: 28 55 101;
61
+ --container-secondary: 226 232 242;
62
+ --container-on-secondary: 26 23 20;
63
+ --container-accent: 248 240 220;
64
+ --container-on-accent: 26 23 20;
65
+ --container-success: 232 240 234;
66
+ --container-on-success: 47 107 60;
67
+ --container-warning: 245 236 214;
68
+ --container-on-warning: 126 94 18;
69
+ --container-danger: 246 232 229;
70
+ --container-on-danger: 155 59 48;
71
+ --container-info: 226 238 241;
72
+ --container-on-info: 15 92 110;
55
73
 
56
- /* Semantic */
57
- --success: 16 185 129;
58
- --warning: 249 115 22;
59
- --danger: 239 68 68;
60
- --info: 37 99 235;
74
+ --state-hover: 0.08;
75
+ --state-press: 0.12;
76
+ --state-focus: 0.12;
77
+ --state-drag: 0.16;
61
78
 
62
- /* Semantic Light */
63
- --success-light: 209 250 229;
64
- --warning-light: 255 237 213;
65
- --danger-light: 254 226 226;
66
- --info-light: 219 234 254;
79
+ --material-blur: 24;
80
+ --material-opacity: 0.78;
81
+ --material-border-opacity: 0.18;
67
82
  }
@@ -1,10 +1,14 @@
1
- export { getActiveTheme, setActiveTheme, subscribeTheme, } from "../theme/active";
2
- export { ThemedActivityIndicator } from "../theme/components";
3
- export { themeToVars } from "../theme/css-vars";
4
- export { DEFAULT_DARK_THEME } from "../theme/dark";
5
- export { DEFAULT_THEME } from "../theme/default";
6
- export { type DeepPartial, defineTheme, extendTheme, mergeTheme, } from "../theme/define";
7
- export { theme } from "../theme/theme";
8
- export type { ShadowStyle, ThemeTokens } from "../theme/types";
9
- export { configureFonts, fontFamilies, type FontRole, resetFonts, useAppFonts, variantFontRole, } from "../theme/typography";
10
- export { useTheme } from "../theme/useTheme";
1
+ export { getActiveTheme, setActiveTheme, subscribeTheme, } from "./active.js";
2
+ export { type BrandThemeMode, buildThemeFromBrand, type BuildThemeFromBrandOptions, } from "./build.js";
3
+ export { containerPair, hexToHsl, hexToRgb, type Hsl, hslToHex, mixHex, rgbToHex, shiftLightness, } from "./color.js";
4
+ export { ThemedActivityIndicator } from "./components/index.js";
5
+ export { contrastRatio, relativeLuminance, resolveOnColor, type ResolveOnColorOptions, } from "./contrast.js";
6
+ export { themeToVars } from "./css-vars.js";
7
+ export { DEFAULT_DARK_THEME } from "./dark.js";
8
+ export { DEFAULT_THEME } from "./default.js";
9
+ export { type DeepPartial, defineTheme, extendTheme, mergeTheme, } from "./define.js";
10
+ export { theme } from "./theme.js";
11
+ export type { PatternMode, ShadowStyle, ThemeTokens } from "./types.js";
12
+ export { configureFonts, fontFamilies, type FontRole, resetFonts, useAppFonts, variantFontRole, } from "./typography.js";
13
+ export { useTheme } from "./useTheme.js";
14
+ export { validateTheme } from "./validate.js";
@@ -1,9 +1,13 @@
1
- export { getActiveTheme, setActiveTheme, subscribeTheme, } from "../theme/active";
2
- export { ThemedActivityIndicator } from "../theme/components";
3
- export { themeToVars } from "../theme/css-vars";
4
- export { DEFAULT_DARK_THEME } from "../theme/dark";
5
- export { DEFAULT_THEME } from "../theme/default";
6
- export { defineTheme, extendTheme, mergeTheme, } from "../theme/define";
7
- export { theme } from "../theme/theme";
8
- export { configureFonts, fontFamilies, resetFonts, useAppFonts, variantFontRole, } from "../theme/typography";
9
- export { useTheme } from "../theme/useTheme";
1
+ export { getActiveTheme, setActiveTheme, subscribeTheme, } from "./active.js";
2
+ export { buildThemeFromBrand, } from "./build.js";
3
+ export { containerPair, hexToHsl, hexToRgb, hslToHex, mixHex, rgbToHex, shiftLightness, } from "./color.js";
4
+ export { ThemedActivityIndicator } from "./components/index.js";
5
+ export { contrastRatio, relativeLuminance, resolveOnColor, } from "./contrast.js";
6
+ export { themeToVars } from "./css-vars.js";
7
+ export { DEFAULT_DARK_THEME } from "./dark.js";
8
+ export { DEFAULT_THEME } from "./default.js";
9
+ export { defineTheme, extendTheme, mergeTheme, } from "./define.js";
10
+ export { theme } from "./theme.js";
11
+ export { configureFonts, fontFamilies, resetFonts, useAppFonts, variantFontRole, } from "./typography.js";
12
+ export { useTheme } from "./useTheme.js";
13
+ export { validateTheme } from "./validate.js";
@@ -7,7 +7,7 @@
7
7
  * SOLO usar cuando className no es suficiente (RefreshControl, placeholderColor, etc.)
8
8
  *
9
9
  * @example
10
- * import { theme } from "../theme";
10
+ * import { theme } from "./index.js";
11
11
  * const color = theme.primary;
12
12
  */
13
13
  export declare const theme: import("./types").ThemeTokens;
@@ -7,8 +7,8 @@
7
7
  * SOLO usar cuando className no es suficiente (RefreshControl, placeholderColor, etc.)
8
8
  *
9
9
  * @example
10
- * import { theme } from "../theme";
10
+ * import { theme } from "./index.js";
11
11
  * const color = theme.primary;
12
12
  */
13
- import { getActiveTheme } from "../theme/active";
13
+ import { getActiveTheme } from "./active.js";
14
14
  export const theme = getActiveTheme();
@@ -1,11 +1,22 @@
1
1
  /**
2
2
  * ============================================================================
3
- * THEME SYSTEM - SIMPLE & SEMANTIC
3
+ * THEME SYSTEM — semantic + container (M3-era) tokens
4
4
  * ============================================================================
5
5
  *
6
- * Simplified theming system without hooks or context.
7
- * Tokens are read directly from the active theme.
6
+ * Layers (framework contract, mid-2026):
7
+ * 1. Semantic fills — `primary` / `accent` / `secondary` / state hues (chrome, CTAs).
8
+ * 2. Containers — soft tonal surfaces + `on*` ink (badges, chips, tonal buttons).
9
+ * 3. Surfaces — `bg.*` including tonal `containerLowest|container|containerHigh`.
10
+ * 4. State layers — opacity overlays for press/hover/focus (Material state layers).
11
+ * 5. Material — nav-chrome hints for Liquid Glass / blur peers (optional usage).
12
+ *
13
+ * Color roles:
14
+ * - Fills/borders/tracks → `primary` / `accent` (never body text).
15
+ * - Brand text/links → `text.accent` (AA on `bg.page` / `bg.card`).
16
+ * - Ink on filled brand → `text.onPrimary` via `resolveOnColor`.
17
+ * - Ink on soft containers → `container.onPrimary` / `container.onSuccess` / …
8
18
  */
19
+ import type { ImageSourcePropType } from "react-native";
9
20
  export interface ShadowStyle {
10
21
  shadowColor: string;
11
22
  shadowOffset: {
@@ -17,15 +28,13 @@ export interface ShadowStyle {
17
28
  elevation: number;
18
29
  }
19
30
  export interface ThemeTokens {
20
- /** Theme name */
21
31
  name: string;
22
- /** Primary color - main buttons, links, active states */
32
+ /** Primary fill — CTA surfaces, active tracks, decorative borders. Not for body text. */
23
33
  primary: string;
24
- /** Secondary color - secondary buttons, low-profile elements (gray) */
34
+ /** Secondary fill — low-profile surfaces and secondary actions. */
25
35
  secondary: string;
26
- /** Accent color - highlights, important badges, secondary CTAs (orange/indigo) */
36
+ /** Accent fill — highlights, secondary CTAs, decorative chrome. Not for body text. */
27
37
  accent: string;
28
- /** Backgrounds */
29
38
  bg: {
30
39
  page: string;
31
40
  card: string;
@@ -34,9 +43,16 @@ export interface ThemeTokens {
34
43
  accent: string;
35
44
  hover: string;
36
45
  disabled: string;
46
+ /** Opposite / hero surface (AppBar tone="dark"). Light themes: dark; dark themes: light. */
37
47
  inverse?: string;
48
+ /**
49
+ * Tonal elevation ladder (M3 surfaceContainer*). Prefer these over stacking
50
+ * shadows for hierarchy on mobile.
51
+ */
52
+ containerLowest: string;
53
+ container: string;
54
+ containerHigh: string;
38
55
  };
39
- /** Text */
40
56
  text: {
41
57
  primary: string;
42
58
  secondary: string;
@@ -51,7 +67,6 @@ export interface ThemeTokens {
51
67
  onDanger: string;
52
68
  onSuccess: string;
53
69
  };
54
- /** Icons */
55
70
  icon: {
56
71
  primary: string;
57
72
  secondary: string;
@@ -59,35 +74,81 @@ export interface ThemeTokens {
59
74
  inverse: string;
60
75
  disabled: string;
61
76
  };
62
- /** Borders */
63
77
  border: {
64
78
  default: string;
65
79
  light: string;
66
80
  strong: string;
67
81
  focus: string;
68
82
  };
69
- /** Semantic states */
70
83
  success: string;
71
84
  warning: string;
72
85
  danger: string;
73
86
  info: string;
74
- /** Semantic states - light variants */
87
+ /**
88
+ * @deprecated Prefer `container.success`. Kept for NativeWind `bg-success-light`
89
+ * back-compat; defaults stay in sync with container fills.
90
+ */
75
91
  successLight: string;
92
+ /** @deprecated Prefer `container.warning`. */
76
93
  warningLight: string;
94
+ /** @deprecated Prefer `container.danger`. */
77
95
  dangerLight: string;
96
+ /** @deprecated Prefer `container.info`. */
78
97
  infoLight: string;
79
- /** Focus & Input */
98
+ /**
99
+ * Soft tonal fills + on-colors — badges, chips, tonal CTAs, selected rows.
100
+ * Prefer these over saturated `success` + white for body-sized labels.
101
+ */
102
+ container: {
103
+ primary: string;
104
+ onPrimary: string;
105
+ secondary: string;
106
+ onSecondary: string;
107
+ accent: string;
108
+ onAccent: string;
109
+ success: string;
110
+ onSuccess: string;
111
+ warning: string;
112
+ onWarning: string;
113
+ danger: string;
114
+ onDanger: string;
115
+ info: string;
116
+ onInfo: string;
117
+ };
118
+ /**
119
+ * State-layer opacities (Material 3). Overlay brand/on-surface at this alpha
120
+ * for press/hover/focus — do not invent per-component opacities.
121
+ */
122
+ state: {
123
+ hover: number;
124
+ press: number;
125
+ focus: number;
126
+ drag: number;
127
+ };
128
+ /**
129
+ * Nav-chrome material hints (iOS Liquid Glass / frosted bars). Opt-in peers
130
+ * (`expo-glass-effect`) read these; content layers stay solid `bg.*`.
131
+ */
132
+ material: {
133
+ blur: number;
134
+ opacity: number;
135
+ borderOpacity: number;
136
+ };
80
137
  ring: string;
81
138
  input: string;
82
- /** Gradients (for LinearGradient) */
83
139
  gradient: {
84
140
  primary: readonly [string, string];
85
141
  accent: readonly [string, string];
86
142
  };
87
- /** Shadows (React Native) */
88
143
  shadow: {
89
144
  sm: ShadowStyle;
90
145
  md: ShadowStyle;
91
146
  lg: ShadowStyle;
92
147
  };
148
+ pattern?: {
149
+ mode: PatternMode;
150
+ size: number;
151
+ source?: ImageSourcePropType;
152
+ };
93
153
  }
154
+ export type PatternMode = "light-pattern" | "dark-pattern" | "dark-full";
@@ -1,9 +1,19 @@
1
1
  /**
2
2
  * ============================================================================
3
- * THEME SYSTEM - SIMPLE & SEMANTIC
3
+ * THEME SYSTEM — semantic + container (M3-era) tokens
4
4
  * ============================================================================
5
5
  *
6
- * Simplified theming system without hooks or context.
7
- * Tokens are read directly from the active theme.
6
+ * Layers (framework contract, mid-2026):
7
+ * 1. Semantic fills — `primary` / `accent` / `secondary` / state hues (chrome, CTAs).
8
+ * 2. Containers — soft tonal surfaces + `on*` ink (badges, chips, tonal buttons).
9
+ * 3. Surfaces — `bg.*` including tonal `containerLowest|container|containerHigh`.
10
+ * 4. State layers — opacity overlays for press/hover/focus (Material state layers).
11
+ * 5. Material — nav-chrome hints for Liquid Glass / blur peers (optional usage).
12
+ *
13
+ * Color roles:
14
+ * - Fills/borders/tracks → `primary` / `accent` (never body text).
15
+ * - Brand text/links → `text.accent` (AA on `bg.page` / `bg.card`).
16
+ * - Ink on filled brand → `text.onPrimary` via `resolveOnColor`.
17
+ * - Ink on soft containers → `container.onPrimary` / `container.onSuccess` / …
8
18
  */
9
19
  export {};
@@ -1,15 +1,16 @@
1
- import { useFonts } from "@expo-google-fonts/inter";
1
+ import { useFonts } from "@expo-google-fonts/ibm-plex-sans";
2
2
  import type { TextStyle } from "react-native";
3
3
  export type FontRole = "light" | "regular" | "medium" | "semiBold" | "extraBold" | "mono" | "monoMedium" | "titleRegular" | "titleMedium" | "title" | "titleBlack";
4
4
  export declare const fontFamilies: Record<FontRole, string>;
5
5
  /**
6
6
  * Override DS font family names (role → already-loaded family name).
7
7
  * Mutates the singleton in-place so components pick up the change at render time.
8
- * Example: `configureFonts({ title: "Satoshi-Bold", titleBlack: "Satoshi-Black" })`.
8
+ * Example: `configureFonts({ title: "YourBrandTitle-Bold", titleBlack: "YourBrandDisplay-Black" })`.
9
9
  */
10
10
  export declare function configureFonts(overrides: Partial<Record<FontRole, string>>): void;
11
- /** Reset all font roles to the defaults (Inter + Fira Code). Useful in tests and stories. */
11
+ /** Reset all font roles to the defaults (IBM Plex Sans + IBM Plex Mono). Useful in tests and stories. */
12
12
  export declare function resetFonts(): void;
13
+ export declare function resolveTextFontFamily(variant: keyof typeof typographyVariants, bold?: boolean, semibold?: boolean): string;
13
14
  export declare const fontWeights: {
14
15
  readonly light: "300";
15
16
  readonly regular: "400";
@@ -103,6 +104,13 @@ export declare const typographyVariants: {
103
104
  readonly lineHeight: number;
104
105
  readonly letterSpacing: 0;
105
106
  };
107
+ readonly bodyReadable: {
108
+ readonly fontSize: 17;
109
+ readonly fontFamily: string;
110
+ readonly fontWeight: "400";
111
+ readonly lineHeight: number;
112
+ readonly letterSpacing: 0;
113
+ };
106
114
  readonly bodyLarge: {
107
115
  readonly fontSize: 16;
108
116
  readonly fontFamily: string;
@@ -314,6 +322,13 @@ export declare const Typography: {
314
322
  readonly lineHeight: number;
315
323
  readonly letterSpacing: 0;
316
324
  };
325
+ readonly bodyReadable: {
326
+ readonly fontSize: 17;
327
+ readonly fontFamily: string;
328
+ readonly fontWeight: "400";
329
+ readonly lineHeight: number;
330
+ readonly letterSpacing: 0;
331
+ };
317
332
  readonly bodyLarge: {
318
333
  readonly fontSize: 16;
319
334
  readonly fontFamily: string;
@@ -421,7 +436,7 @@ export declare const Typography: {
421
436
  readonly letterSpacing: 0;
422
437
  };
423
438
  };
424
- readonly variantFontRole: Record<"button" | "title" | "display" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "bodyLarge" | "body" | "bodySmall" | "label" | "labelSmall" | "data" | "dataLarge" | "overline" | "caption" | "captionSmall" | "buttonSmall" | "buttonLarge" | "subtitle", FontRole>;
439
+ readonly variantFontRole: Record<"label" | "button" | "title" | "display" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "bodyReadable" | "bodyLarge" | "body" | "bodySmall" | "labelSmall" | "data" | "dataLarge" | "overline" | "caption" | "captionSmall" | "buttonSmall" | "buttonLarge" | "subtitle", FontRole>;
425
440
  readonly createTextStyle: (variant: keyof typeof typographyVariants, overrides?: Partial<TextStyle>) => TextStyle;
426
441
  readonly createCustomTextStyle: (fontSize: keyof typeof fontSizes, fontFamily: keyof typeof fontFamilies, options?: {
427
442
  lineHeight?: keyof typeof lineHeights;