react-native-terra-ui 0.5.1 → 0.7.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 (359) hide show
  1. package/CHANGELOG.md +86 -0
  2. package/lib/module/components/avatar/Avatar.js +60 -60
  3. package/lib/module/components/avatar/Avatar.js.map +1 -1
  4. package/lib/module/components/box/Box.js +2 -2
  5. package/lib/module/components/box/Box.js.map +1 -1
  6. package/lib/module/components/box/utils.js +19 -19
  7. package/lib/module/components/box/utils.js.map +1 -1
  8. package/lib/module/components/button/Button.js +54 -48
  9. package/lib/module/components/button/Button.js.map +1 -1
  10. package/lib/module/components/chip/Chip.js +94 -94
  11. package/lib/module/components/chip/Chip.js.map +1 -1
  12. package/lib/module/components/chip/utils.js +3 -3
  13. package/lib/module/components/empty-state/EmptyState.js +40 -40
  14. package/lib/module/components/empty-state/EmptyState.js.map +1 -1
  15. package/lib/module/components/header/header-buttons.js +5 -5
  16. package/lib/module/components/header/header-buttons.js.map +1 -1
  17. package/lib/module/components/header/parts/HeaderGradientOverlay.js +82 -12
  18. package/lib/module/components/header/parts/HeaderGradientOverlay.js.map +1 -1
  19. package/lib/module/components/header/variants/LargeTitleHeader/index.js +64 -60
  20. package/lib/module/components/header/variants/LargeTitleHeader/index.js.map +1 -1
  21. package/lib/module/components/header/variants/TitleHeader/index.js +33 -29
  22. package/lib/module/components/header/variants/TitleHeader/index.js.map +1 -1
  23. package/lib/module/components/icon/Icon.js +6 -6
  24. package/lib/module/components/icon/Icon.js.map +1 -1
  25. package/lib/module/components/image/Image.js +6 -6
  26. package/lib/module/components/image/Image.js.map +1 -1
  27. package/lib/module/components/page-indicator/PageIndicator.js +1 -1
  28. package/lib/module/components/page-indicator/PageIndicatorRoot.js.map +1 -1
  29. package/lib/module/components/page-indicator/hooks/use-page-indicator-colors.js +8 -8
  30. package/lib/module/components/page-indicator/hooks/use-page-indicator-colors.js.map +1 -1
  31. package/lib/module/components/page-indicator/hooks/use-page-indicator-core.js.map +1 -1
  32. package/lib/module/components/page-indicator/hooks/use-page-indicator-progress.js +6 -6
  33. package/lib/module/components/page-indicator/hooks/use-page-indicator-progress.js.map +1 -1
  34. package/lib/module/components/page-indicator/utils.js +8 -8
  35. package/lib/module/components/page-indicator/utils.js.map +1 -1
  36. package/lib/module/components/page-indicator/variants/DotIndicator/InactiveDot.js +2 -2
  37. package/lib/module/components/page-indicator/variants/DotIndicator/InactiveDot.js.map +1 -1
  38. package/lib/module/components/page-indicator/variants/DotIndicator/LoadingOrbit.js +9 -9
  39. package/lib/module/components/page-indicator/variants/DotIndicator/LoadingOrbit.js.map +1 -1
  40. package/lib/module/components/page-indicator/variants/DotIndicator/TravelingPill.js +2 -2
  41. package/lib/module/components/page-indicator/variants/DotIndicator/TravelingPill.js.map +1 -1
  42. package/lib/module/components/page-indicator/variants/DotIndicator/index.js +3 -3
  43. package/lib/module/components/page-indicator/variants/DotIndicator/index.js.map +1 -1
  44. package/lib/module/components/page-indicator/variants/DotIndicator/utils.js +1 -1
  45. package/lib/module/components/page-indicator/variants/DotIndicator/utils.js.map +1 -1
  46. package/lib/module/components/page-indicator/variants/PillIndicator/PillIndicatorDot.js +1 -1
  47. package/lib/module/components/page-indicator/variants/PillIndicator/PillIndicatorDot.js.map +1 -1
  48. package/lib/module/components/page-indicator/variants/PillIndicator/index.js +5 -5
  49. package/lib/module/components/page-indicator/variants/PillIndicator/index.js.map +1 -1
  50. package/lib/module/components/page-indicator/variants/PillIndicator/utils.js +3 -3
  51. package/lib/module/components/portal/Portal.js +1 -1
  52. package/lib/module/components/portal/PortalContext.js +1 -1
  53. package/lib/module/components/portal/PortalHost.js +1 -1
  54. package/lib/module/components/portal/PortalProvider.js +1 -1
  55. package/lib/module/components/portal/PortalProvider.js.map +1 -1
  56. package/lib/module/components/screen/Screen.js +8 -8
  57. package/lib/module/components/screen/Screen.js.map +1 -1
  58. package/lib/module/components/screen/ScreenContext.js +6 -6
  59. package/lib/module/components/screen/ScreenContext.js.map +1 -1
  60. package/lib/module/components/screen/ScreenFlatList.js +3 -3
  61. package/lib/module/components/screen/ScreenFlatList.js.map +1 -1
  62. package/lib/module/components/screen/ScreenList.js +5 -5
  63. package/lib/module/components/screen/ScreenList.js.map +1 -1
  64. package/lib/module/components/screen/ScreenScrollView.js +6 -6
  65. package/lib/module/components/screen/ScreenScrollView.js.map +1 -1
  66. package/lib/module/components/screen/parts/BottomSafeArea.js +1 -1
  67. package/lib/module/components/screen/parts/BottomSafeArea.js.map +1 -1
  68. package/lib/module/components/screen/parts/ScreenPlaceholder.js +3 -3
  69. package/lib/module/components/screen/parts/ScreenPlaceholder.js.map +1 -1
  70. package/lib/module/components/screen/utils.js +3 -3
  71. package/lib/module/components/screen/utils.js.map +1 -1
  72. package/lib/module/components/slot/Slot.js +2 -2
  73. package/lib/module/components/slot/Slot.js.map +1 -1
  74. package/lib/module/components/slot/utils.js +3 -3
  75. package/lib/module/components/slot/utils.js.map +1 -1
  76. package/lib/module/components/spinner/Spinner.js +10 -10
  77. package/lib/module/components/spinner/Spinner.js.map +1 -1
  78. package/lib/module/components/surface/Surface.js +14 -14
  79. package/lib/module/components/surface/Surface.js.map +1 -1
  80. package/lib/module/components/text/Text.js +13 -13
  81. package/lib/module/components/text/Text.js.map +1 -1
  82. package/lib/module/components/toast/Toast.js +46 -46
  83. package/lib/module/components/toast/Toast.js.map +1 -1
  84. package/lib/module/components/toast/ToastProvider.js +32 -32
  85. package/lib/module/components/toast/ToastProvider.js.map +1 -1
  86. package/lib/module/components/toast/parts/ToastAnimatedItem.js +10 -10
  87. package/lib/module/components/toast/parts/ToastAnimatedItem.js.map +1 -1
  88. package/lib/module/components/toast/utils/controller.js +2 -2
  89. package/lib/module/components/toast/utils/controller.js.map +1 -1
  90. package/lib/module/components/toolbar/Toolbar.js +103 -33
  91. package/lib/module/components/toolbar/Toolbar.js.map +1 -1
  92. package/lib/module/context/ThemeProvider.js +5 -5
  93. package/lib/module/context/ThemeProvider.js.map +1 -1
  94. package/lib/module/theme/breakpoints.js.map +1 -1
  95. package/lib/module/theme/defaults/icons.js +11 -11
  96. package/lib/module/theme/defaults/icons.js.map +1 -1
  97. package/lib/module/theme/defaults/image.js +7 -7
  98. package/lib/module/theme/defaults/image.js.map +1 -1
  99. package/lib/module/theme/registry.js +11 -11
  100. package/lib/module/theme/registry.js.map +1 -1
  101. package/lib/module/theme/runtime.js +3 -3
  102. package/lib/module/theme/runtime.js.map +1 -1
  103. package/lib/module/theme/theme.js +9 -9
  104. package/lib/module/theme/theme.js.map +1 -1
  105. package/lib/module/theme/tokens/dark.js +67 -67
  106. package/lib/module/theme/tokens/dark.js.map +1 -1
  107. package/lib/module/theme/tokens/light.js +67 -67
  108. package/lib/module/theme/tokens/primitives.js +417 -417
  109. package/lib/module/utils/accent-utils.js +16 -16
  110. package/lib/module/utils/accent-utils.js.map +1 -1
  111. package/lib/module/utils/color-utils.js +3 -3
  112. package/lib/module/utils/deep-merge.js +1 -1
  113. package/lib/module/utils/resolve-theme-color.js +2 -2
  114. package/lib/module/utils/resolve-theme-color.js.map +1 -1
  115. package/lib/module/utils/typography.js +5 -5
  116. package/lib/module/utils/typography.js.map +1 -1
  117. package/lib/module/utils/unflatten.js +2 -2
  118. package/lib/typescript/src/components/avatar/Avatar.d.ts +1 -1
  119. package/lib/typescript/src/components/avatar/Avatar.d.ts.map +1 -1
  120. package/lib/typescript/src/components/avatar/index.d.ts +2 -2
  121. package/lib/typescript/src/components/avatar/types.d.ts +7 -7
  122. package/lib/typescript/src/components/avatar/types.d.ts.map +1 -1
  123. package/lib/typescript/src/components/box/Box.d.ts +2 -2
  124. package/lib/typescript/src/components/box/Box.d.ts.map +1 -1
  125. package/lib/typescript/src/components/box/index.d.ts +3 -3
  126. package/lib/typescript/src/components/box/utils.d.ts +7 -7
  127. package/lib/typescript/src/components/box/utils.d.ts.map +1 -1
  128. package/lib/typescript/src/components/button/Button.d.ts +15 -8
  129. package/lib/typescript/src/components/button/Button.d.ts.map +1 -1
  130. package/lib/typescript/src/components/button/index.d.ts +2 -2
  131. package/lib/typescript/src/components/chip/Chip.d.ts +5 -5
  132. package/lib/typescript/src/components/chip/Chip.d.ts.map +1 -1
  133. package/lib/typescript/src/components/chip/index.d.ts +3 -3
  134. package/lib/typescript/src/components/chip/types.d.ts +3 -3
  135. package/lib/typescript/src/components/chip/utils.d.ts +1 -1
  136. package/lib/typescript/src/components/empty-state/EmptyState.d.ts +5 -5
  137. package/lib/typescript/src/components/empty-state/EmptyState.d.ts.map +1 -1
  138. package/lib/typescript/src/components/empty-state/index.d.ts +3 -3
  139. package/lib/typescript/src/components/empty-state/types.d.ts +1 -1
  140. package/lib/typescript/src/components/header/Header.d.ts +2 -2
  141. package/lib/typescript/src/components/header/header-buttons.d.ts +3 -3
  142. package/lib/typescript/src/components/header/header-buttons.d.ts.map +1 -1
  143. package/lib/typescript/src/components/header/index.d.ts +6 -6
  144. package/lib/typescript/src/components/header/parts/HeaderGradientOverlay.d.ts +19 -2
  145. package/lib/typescript/src/components/header/parts/HeaderGradientOverlay.d.ts.map +1 -1
  146. package/lib/typescript/src/components/header/variants/LargeTitleHeader/index.d.ts +1 -1
  147. package/lib/typescript/src/components/header/variants/LargeTitleHeader/index.d.ts.map +1 -1
  148. package/lib/typescript/src/components/header/variants/TitleHeader/index.d.ts +4 -4
  149. package/lib/typescript/src/components/header/variants/TitleHeader/index.d.ts.map +1 -1
  150. package/lib/typescript/src/components/icon/Icon.d.ts +3 -3
  151. package/lib/typescript/src/components/icon/Icon.d.ts.map +1 -1
  152. package/lib/typescript/src/components/icon/index.d.ts +2 -2
  153. package/lib/typescript/src/components/image/Image.d.ts +1 -1
  154. package/lib/typescript/src/components/image/Image.d.ts.map +1 -1
  155. package/lib/typescript/src/components/image/index.d.ts +2 -2
  156. package/lib/typescript/src/components/image/types.d.ts +1 -1
  157. package/lib/typescript/src/components/index.d.ts +17 -17
  158. package/lib/typescript/src/components/page-indicator/PageIndicator.d.ts +10 -10
  159. package/lib/typescript/src/components/page-indicator/PageIndicatorRoot.d.ts +2 -2
  160. package/lib/typescript/src/components/page-indicator/PageIndicatorRoot.d.ts.map +1 -1
  161. package/lib/typescript/src/components/page-indicator/hooks/use-page-indicator-colors.d.ts +1 -1
  162. package/lib/typescript/src/components/page-indicator/hooks/use-page-indicator-colors.d.ts.map +1 -1
  163. package/lib/typescript/src/components/page-indicator/hooks/use-page-indicator-core.d.ts +3 -3
  164. package/lib/typescript/src/components/page-indicator/hooks/use-page-indicator-core.d.ts.map +1 -1
  165. package/lib/typescript/src/components/page-indicator/hooks/use-page-indicator-progress.d.ts +2 -2
  166. package/lib/typescript/src/components/page-indicator/hooks/use-page-indicator-progress.d.ts.map +1 -1
  167. package/lib/typescript/src/components/page-indicator/index.d.ts +3 -3
  168. package/lib/typescript/src/components/page-indicator/utils.d.ts +2 -2
  169. package/lib/typescript/src/components/page-indicator/utils.d.ts.map +1 -1
  170. package/lib/typescript/src/components/page-indicator/variants/DotIndicator/InactiveDot.d.ts +1 -1
  171. package/lib/typescript/src/components/page-indicator/variants/DotIndicator/InactiveDot.d.ts.map +1 -1
  172. package/lib/typescript/src/components/page-indicator/variants/DotIndicator/LoadingOrbit.d.ts +2 -2
  173. package/lib/typescript/src/components/page-indicator/variants/DotIndicator/LoadingOrbit.d.ts.map +1 -1
  174. package/lib/typescript/src/components/page-indicator/variants/DotIndicator/TravelingPill.d.ts +2 -2
  175. package/lib/typescript/src/components/page-indicator/variants/DotIndicator/TravelingPill.d.ts.map +1 -1
  176. package/lib/typescript/src/components/page-indicator/variants/DotIndicator/index.d.ts +3 -3
  177. package/lib/typescript/src/components/page-indicator/variants/DotIndicator/index.d.ts.map +1 -1
  178. package/lib/typescript/src/components/page-indicator/variants/DotIndicator/utils.d.ts.map +1 -1
  179. package/lib/typescript/src/components/page-indicator/variants/PillIndicator/PillIndicatorDot.d.ts +2 -2
  180. package/lib/typescript/src/components/page-indicator/variants/PillIndicator/PillIndicatorDot.d.ts.map +1 -1
  181. package/lib/typescript/src/components/page-indicator/variants/PillIndicator/index.d.ts +3 -3
  182. package/lib/typescript/src/components/page-indicator/variants/PillIndicator/index.d.ts.map +1 -1
  183. package/lib/typescript/src/components/page-indicator/variants/PillIndicator/utils.d.ts +1 -1
  184. package/lib/typescript/src/components/portal/Portal.d.ts +3 -3
  185. package/lib/typescript/src/components/portal/PortalContext.d.ts +1 -1
  186. package/lib/typescript/src/components/portal/PortalHost.d.ts +2 -2
  187. package/lib/typescript/src/components/portal/PortalProvider.d.ts +1 -1
  188. package/lib/typescript/src/components/portal/PortalProvider.d.ts.map +1 -1
  189. package/lib/typescript/src/components/portal/index.d.ts +7 -7
  190. package/lib/typescript/src/components/screen/Screen.d.ts +10 -10
  191. package/lib/typescript/src/components/screen/Screen.d.ts.map +1 -1
  192. package/lib/typescript/src/components/screen/ScreenContext.d.ts +3 -3
  193. package/lib/typescript/src/components/screen/ScreenContext.d.ts.map +1 -1
  194. package/lib/typescript/src/components/screen/ScreenFlatList.d.ts +3 -3
  195. package/lib/typescript/src/components/screen/ScreenFlatList.d.ts.map +1 -1
  196. package/lib/typescript/src/components/screen/ScreenList.d.ts +5 -5
  197. package/lib/typescript/src/components/screen/ScreenList.d.ts.map +1 -1
  198. package/lib/typescript/src/components/screen/ScreenScrollView.d.ts +5 -5
  199. package/lib/typescript/src/components/screen/ScreenScrollView.d.ts.map +1 -1
  200. package/lib/typescript/src/components/screen/index.d.ts +11 -11
  201. package/lib/typescript/src/components/screen/parts/BottomSafeArea.d.ts.map +1 -1
  202. package/lib/typescript/src/components/screen/parts/ScreenPlaceholder.d.ts +3 -3
  203. package/lib/typescript/src/components/screen/parts/ScreenPlaceholder.d.ts.map +1 -1
  204. package/lib/typescript/src/components/screen/types.d.ts +2 -2
  205. package/lib/typescript/src/components/screen/utils.d.ts +2 -2
  206. package/lib/typescript/src/components/screen/utils.d.ts.map +1 -1
  207. package/lib/typescript/src/components/slot/Slot.d.ts +2 -2
  208. package/lib/typescript/src/components/slot/Slot.d.ts.map +1 -1
  209. package/lib/typescript/src/components/slot/index.d.ts +3 -3
  210. package/lib/typescript/src/components/slot/utils.d.ts +1 -1
  211. package/lib/typescript/src/components/slot/utils.d.ts.map +1 -1
  212. package/lib/typescript/src/components/spinner/Spinner.d.ts +2 -2
  213. package/lib/typescript/src/components/spinner/Spinner.d.ts.map +1 -1
  214. package/lib/typescript/src/components/spinner/index.d.ts +2 -2
  215. package/lib/typescript/src/components/surface/Surface.d.ts +4 -4
  216. package/lib/typescript/src/components/surface/Surface.d.ts.map +1 -1
  217. package/lib/typescript/src/components/surface/index.d.ts +2 -2
  218. package/lib/typescript/src/components/text/Text.d.ts +4 -4
  219. package/lib/typescript/src/components/text/Text.d.ts.map +1 -1
  220. package/lib/typescript/src/components/text/index.d.ts +2 -2
  221. package/lib/typescript/src/components/toast/Toast.d.ts +18 -18
  222. package/lib/typescript/src/components/toast/Toast.d.ts.map +1 -1
  223. package/lib/typescript/src/components/toast/ToastProvider.d.ts +1 -1
  224. package/lib/typescript/src/components/toast/ToastProvider.d.ts.map +1 -1
  225. package/lib/typescript/src/components/toast/index.d.ts +4 -4
  226. package/lib/typescript/src/components/toast/parts/ToastAnimatedItem.d.ts +3 -3
  227. package/lib/typescript/src/components/toast/parts/ToastAnimatedItem.d.ts.map +1 -1
  228. package/lib/typescript/src/components/toast/types.d.ts +10 -10
  229. package/lib/typescript/src/components/toast/types.d.ts.map +1 -1
  230. package/lib/typescript/src/components/toast/utils/controller.d.ts +2 -2
  231. package/lib/typescript/src/components/toast/utils/controller.d.ts.map +1 -1
  232. package/lib/typescript/src/components/toolbar/Toolbar.d.ts +5 -5
  233. package/lib/typescript/src/components/toolbar/Toolbar.d.ts.map +1 -1
  234. package/lib/typescript/src/components/toolbar/index.d.ts +2 -2
  235. package/lib/typescript/src/context/ThemeProvider.d.ts +3 -3
  236. package/lib/typescript/src/context/ThemeProvider.d.ts.map +1 -1
  237. package/lib/typescript/src/context/index.d.ts +2 -2
  238. package/lib/typescript/src/index.d.ts +3 -3
  239. package/lib/typescript/src/theme/breakpoints.d.ts +2 -2
  240. package/lib/typescript/src/theme/breakpoints.d.ts.map +1 -1
  241. package/lib/typescript/src/theme/defaults/icons.d.ts +1 -1
  242. package/lib/typescript/src/theme/defaults/icons.d.ts.map +1 -1
  243. package/lib/typescript/src/theme/defaults/image.d.ts +1 -1
  244. package/lib/typescript/src/theme/defaults/image.d.ts.map +1 -1
  245. package/lib/typescript/src/theme/index.d.ts +14 -14
  246. package/lib/typescript/src/theme/registry.d.ts +2 -2
  247. package/lib/typescript/src/theme/registry.d.ts.map +1 -1
  248. package/lib/typescript/src/theme/runtime.d.ts +1 -1
  249. package/lib/typescript/src/theme/runtime.d.ts.map +1 -1
  250. package/lib/typescript/src/theme/screen-margin.d.ts +2 -2
  251. package/lib/typescript/src/theme/theme.d.ts +2 -2
  252. package/lib/typescript/src/theme/theme.d.ts.map +1 -1
  253. package/lib/typescript/src/theme/tokens/dark.d.ts +67 -67
  254. package/lib/typescript/src/theme/tokens/light.d.ts +67 -67
  255. package/lib/typescript/src/theme/tokens/primitives.d.ts +417 -417
  256. package/lib/typescript/src/theme/types.d.ts +84 -84
  257. package/lib/typescript/src/theme/types.d.ts.map +1 -1
  258. package/lib/typescript/src/utils/accent-utils.d.ts +1 -1
  259. package/lib/typescript/src/utils/accent-utils.d.ts.map +1 -1
  260. package/lib/typescript/src/utils/resolve-theme-color.d.ts +1 -1
  261. package/lib/typescript/src/utils/resolve-theme-color.d.ts.map +1 -1
  262. package/lib/typescript/src/utils/typography.d.ts +2 -2
  263. package/lib/typescript/src/utils/typography.d.ts.map +1 -1
  264. package/package.json +1 -1
  265. package/src/components/avatar/Avatar.tsx +66 -71
  266. package/src/components/avatar/index.ts +2 -2
  267. package/src/components/avatar/types.ts +7 -12
  268. package/src/components/box/Box.tsx +7 -18
  269. package/src/components/box/index.ts +3 -3
  270. package/src/components/box/utils.ts +59 -81
  271. package/src/components/button/Button.tsx +119 -144
  272. package/src/components/button/index.ts +2 -2
  273. package/src/components/chip/Chip.tsx +107 -143
  274. package/src/components/chip/index.ts +3 -3
  275. package/src/components/chip/types.ts +7 -7
  276. package/src/components/chip/utils.ts +5 -5
  277. package/src/components/empty-state/EmptyState.tsx +44 -60
  278. package/src/components/empty-state/index.ts +3 -3
  279. package/src/components/empty-state/types.ts +1 -1
  280. package/src/components/header/Header.ts +2 -2
  281. package/src/components/header/header-buttons.tsx +10 -18
  282. package/src/components/header/index.ts +6 -6
  283. package/src/components/header/parts/HeaderGradientOverlay.tsx +77 -11
  284. package/src/components/header/variants/LargeTitleHeader/index.tsx +79 -142
  285. package/src/components/header/variants/TitleHeader/index.tsx +45 -63
  286. package/src/components/icon/Icon.tsx +31 -39
  287. package/src/components/icon/index.ts +2 -2
  288. package/src/components/image/Image.tsx +12 -10
  289. package/src/components/image/index.ts +2 -2
  290. package/src/components/image/types.ts +1 -1
  291. package/src/components/index.ts +17 -17
  292. package/src/components/page-indicator/PageIndicator.tsx +14 -14
  293. package/src/components/page-indicator/PageIndicatorRoot.tsx +4 -12
  294. package/src/components/page-indicator/hooks/use-page-indicator-colors.ts +17 -35
  295. package/src/components/page-indicator/hooks/use-page-indicator-core.ts +6 -8
  296. package/src/components/page-indicator/hooks/use-page-indicator-progress.ts +10 -30
  297. package/src/components/page-indicator/index.ts +3 -3
  298. package/src/components/page-indicator/utils.ts +20 -48
  299. package/src/components/page-indicator/variants/DotIndicator/InactiveDot.tsx +5 -16
  300. package/src/components/page-indicator/variants/DotIndicator/LoadingOrbit.tsx +21 -63
  301. package/src/components/page-indicator/variants/DotIndicator/TravelingPill.tsx +6 -16
  302. package/src/components/page-indicator/variants/DotIndicator/index.tsx +20 -38
  303. package/src/components/page-indicator/variants/DotIndicator/utils.ts +2 -6
  304. package/src/components/page-indicator/variants/PillIndicator/PillIndicatorDot.tsx +12 -50
  305. package/src/components/page-indicator/variants/PillIndicator/index.tsx +19 -41
  306. package/src/components/page-indicator/variants/PillIndicator/utils.ts +4 -4
  307. package/src/components/portal/Portal.tsx +4 -4
  308. package/src/components/portal/PortalContext.tsx +1 -1
  309. package/src/components/portal/PortalHost.tsx +4 -4
  310. package/src/components/portal/PortalProvider.tsx +24 -35
  311. package/src/components/portal/index.ts +7 -7
  312. package/src/components/screen/Screen.tsx +45 -52
  313. package/src/components/screen/ScreenContext.tsx +8 -17
  314. package/src/components/screen/ScreenFlatList.tsx +17 -36
  315. package/src/components/screen/ScreenList.tsx +31 -63
  316. package/src/components/screen/ScreenScrollView.tsx +17 -30
  317. package/src/components/screen/index.ts +11 -11
  318. package/src/components/screen/parts/BottomSafeArea.tsx +5 -6
  319. package/src/components/screen/parts/ScreenPlaceholder.tsx +9 -14
  320. package/src/components/screen/types.ts +2 -2
  321. package/src/components/screen/utils.ts +6 -19
  322. package/src/components/slot/Slot.tsx +5 -20
  323. package/src/components/slot/index.ts +3 -3
  324. package/src/components/slot/utils.ts +5 -8
  325. package/src/components/spinner/Spinner.tsx +19 -52
  326. package/src/components/spinner/index.ts +2 -2
  327. package/src/components/surface/Surface.tsx +34 -43
  328. package/src/components/surface/index.ts +2 -2
  329. package/src/components/text/Text.tsx +75 -85
  330. package/src/components/text/index.ts +2 -2
  331. package/src/components/toast/Toast.tsx +195 -251
  332. package/src/components/toast/ToastProvider.tsx +61 -136
  333. package/src/components/toast/index.ts +4 -4
  334. package/src/components/toast/parts/ToastAnimatedItem.tsx +14 -22
  335. package/src/components/toast/types.ts +11 -14
  336. package/src/components/toast/utils/controller.ts +4 -6
  337. package/src/components/toolbar/Toolbar.tsx +117 -72
  338. package/src/components/toolbar/index.ts +2 -2
  339. package/src/context/ThemeProvider.tsx +13 -28
  340. package/src/context/index.ts +2 -2
  341. package/src/index.tsx +3 -3
  342. package/src/theme/breakpoints.ts +3 -5
  343. package/src/theme/defaults/icons.tsx +15 -30
  344. package/src/theme/defaults/image.tsx +9 -14
  345. package/src/theme/index.ts +14 -14
  346. package/src/theme/registry.ts +30 -49
  347. package/src/theme/runtime.ts +6 -7
  348. package/src/theme/screen-margin.ts +3 -3
  349. package/src/theme/theme.ts +39 -60
  350. package/src/theme/tokens/dark.ts +67 -67
  351. package/src/theme/tokens/light.ts +67 -67
  352. package/src/theme/tokens/primitives.ts +417 -417
  353. package/src/theme/types.ts +123 -135
  354. package/src/utils/accent-utils.ts +21 -30
  355. package/src/utils/color-utils.ts +3 -3
  356. package/src/utils/deep-merge.ts +1 -1
  357. package/src/utils/resolve-theme-color.ts +8 -11
  358. package/src/utils/typography.ts +7 -10
  359. package/src/utils/unflatten.ts +2 -2
@@ -4,55 +4,45 @@
4
4
  * untyped (Figma-generated); these types describe the runtime theme that the
5
5
  * data is unflattened into, plus the public configuration surface.
6
6
  */
7
- import type { ComponentType } from 'react';
8
- import type { ImageStyle, StyleProp } from 'react-native';
7
+ import type { ComponentType } from "react";
8
+ import type { ImageStyle, StyleProp } from "react-native";
9
9
 
10
- import type { DeepPartial } from '#utils/deep-merge';
11
-
12
- import type { BreakpointName } from './breakpoints';
10
+ import type { DeepPartial } from "#utils/deep-merge";
11
+ import type { BreakpointName } from "./breakpoints";
13
12
 
14
13
  // ─── Scale keys (declared explicitly; token data is untyped) ────────────────
15
14
 
16
15
  /** Spacing scale keys (dp, 4dp base unit). Read as `gap={3}` → string '3'. */
17
16
  export type SpacingKey =
18
- | '0'
19
- | '1'
20
- | '2'
21
- | '3'
22
- | '4'
23
- | '5'
24
- | '6'
25
- | '7'
26
- | '8'
27
- | '9'
28
- | '10'
29
- | '12'
30
- | '14'
31
- | '16'
32
- | '20'
33
- | '24'
34
- | '32';
17
+ | "0"
18
+ | "1"
19
+ | "2"
20
+ | "3"
21
+ | "4"
22
+ | "5"
23
+ | "6"
24
+ | "7"
25
+ | "8"
26
+ | "9"
27
+ | "10"
28
+ | "12"
29
+ | "14"
30
+ | "16"
31
+ | "20"
32
+ | "24"
33
+ | "32";
35
34
 
36
35
  /** Border-radius scale keys. */
37
- export type RadiusKey =
38
- | 'none'
39
- | 'xs'
40
- | 'sm'
41
- | 'md'
42
- | 'lg'
43
- | 'xl'
44
- | '2xl'
45
- | '3xl'
46
- | 'full';
36
+ export type RadiusKey = "none" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "full";
47
37
 
48
38
  /**
49
39
  * The radius tokens offered as a component default. Excludes the extreme/rare
50
40
  * steps (`xs`, `2xl`, `3xl`).
51
41
  */
52
- export type DefaultRadiusToken = 'sm' | 'md' | 'lg' | 'xl' | 'full';
42
+ export type DefaultRadiusToken = "sm" | "md" | "lg" | "xl" | "full";
53
43
 
54
44
  /** Components whose default appearance can be configured. */
55
- export type RadiusComponent = 'button' | 'surface';
45
+ export type RadiusComponent = "button" | "surface";
56
46
 
57
47
  // ─── Elevation ──────────────────────────────────────────────────────────────
58
48
 
@@ -66,35 +56,35 @@ export interface ElevationStyle {
66
56
  elevation: number;
67
57
  }
68
58
 
69
- export type ElevationKey = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
59
+ export type ElevationKey = "none" | "xs" | "sm" | "md" | "lg" | "xl";
70
60
 
71
61
  export type ElevationScale = Record<ElevationKey, ElevationStyle>;
72
62
 
73
63
  // ─── Typography ──────────────────────────────────────────────────────────────
74
64
 
75
65
  export type RoleTextVariant =
76
- | 'display-lg'
77
- | 'display-md'
78
- | 'display-sm'
79
- | 'headline-lg'
80
- | 'headline-md'
81
- | 'headline-sm'
82
- | 'title-lg'
83
- | 'title-md'
84
- | 'title-sm'
85
- | 'body-lg'
86
- | 'body-md'
87
- | 'body-sm'
88
- | 'label-lg'
89
- | 'label-md'
90
- | 'label-sm'
91
- | 'caption';
92
-
93
- export type HeadingTextVariant = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
66
+ | "display-lg"
67
+ | "display-md"
68
+ | "display-sm"
69
+ | "headline-lg"
70
+ | "headline-md"
71
+ | "headline-sm"
72
+ | "title-lg"
73
+ | "title-md"
74
+ | "title-sm"
75
+ | "body-lg"
76
+ | "body-md"
77
+ | "body-sm"
78
+ | "label-lg"
79
+ | "label-md"
80
+ | "label-sm"
81
+ | "caption";
82
+
83
+ export type HeadingTextVariant = "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
94
84
 
95
85
  export type TextVariant = RoleTextVariant | HeadingTextVariant;
96
86
 
97
- export type FontWeightToken = 'regular' | 'medium' | 'semibold' | 'bold';
87
+ export type FontWeightToken = "regular" | "medium" | "semibold" | "bold";
98
88
 
99
89
  export interface TypeStyle {
100
90
  fontSize: number;
@@ -138,78 +128,78 @@ export interface ThemeColor {
138
128
  // shadow color (used as elevation.*.shadowColor)
139
129
  shadow: string;
140
130
  // surfaces
141
- 'surface.default': string;
142
- 'surface.raised': string;
143
- 'surface.sunken': string;
144
- 'surface.overlay': string;
145
- 'surface.accent': string;
146
- 'surface.accent.subtle': string;
131
+ "surface.default": string;
132
+ "surface.raised": string;
133
+ "surface.sunken": string;
134
+ "surface.overlay": string;
135
+ "surface.accent": string;
136
+ "surface.accent.subtle": string;
147
137
  // text / icons
148
- 'text.default': string;
149
- 'text.muted': string;
150
- 'text.subtle': string;
151
- 'text.disabled': string;
152
- 'text.inverse': string;
153
- 'text.link': string;
154
- 'text.accent': string;
155
- 'text.on-accent': string;
156
- 'text.on-accent-subtle': string;
138
+ "text.default": string;
139
+ "text.muted": string;
140
+ "text.subtle": string;
141
+ "text.disabled": string;
142
+ "text.inverse": string;
143
+ "text.link": string;
144
+ "text.accent": string;
145
+ "text.on-accent": string;
146
+ "text.on-accent-subtle": string;
157
147
  // borders
158
- 'border.subtle': string;
159
- 'border.default': string;
160
- 'border.strong': string;
161
- 'border.focus': string;
162
- 'border.accent': string;
148
+ "border.subtle": string;
149
+ "border.default": string;
150
+ "border.strong": string;
151
+ "border.focus": string;
152
+ "border.accent": string;
163
153
  // interactive actions
164
- 'action.bg.primary': string;
165
- 'action.bg.primary.hover': string;
166
- 'action.bg.primary.active': string;
167
- 'action.bg.primary.disabled': string;
168
- 'action.fg.primary': string;
169
- 'action.bg.primary.subtle': string;
170
- 'action.bg.primary.subtle.hover': string;
171
- 'action.bg.primary.subtle.active': string;
172
- 'action.bg.primary.subtle.disabled': string;
173
- 'action.fg.primary.subtle': string;
174
- 'action.bg.secondary': string;
175
- 'action.fg.secondary': string;
176
- 'action.bg.secondary.subtle': string;
177
- 'action.bg.secondary.subtle.hover': string;
178
- 'action.bg.secondary.subtle.active': string;
179
- 'action.bg.secondary.subtle.disabled': string;
180
- 'action.fg.secondary.subtle': string;
154
+ "action.bg.primary": string;
155
+ "action.bg.primary.hover": string;
156
+ "action.bg.primary.active": string;
157
+ "action.bg.primary.disabled": string;
158
+ "action.fg.primary": string;
159
+ "action.bg.primary.subtle": string;
160
+ "action.bg.primary.subtle.hover": string;
161
+ "action.bg.primary.subtle.active": string;
162
+ "action.bg.primary.subtle.disabled": string;
163
+ "action.fg.primary.subtle": string;
164
+ "action.bg.secondary": string;
165
+ "action.fg.secondary": string;
166
+ "action.bg.secondary.subtle": string;
167
+ "action.bg.secondary.subtle.hover": string;
168
+ "action.bg.secondary.subtle.active": string;
169
+ "action.bg.secondary.subtle.disabled": string;
170
+ "action.fg.secondary.subtle": string;
181
171
  // status — success
182
- 'status.success': string;
183
- 'status.success.bg': string;
184
- 'status.success.bg.subtle': string;
185
- 'status.success.border': string;
186
- 'status.success.border.subtle': string;
187
- 'status.success.fg': string;
188
- 'status.success.fg.subtle': string;
172
+ "status.success": string;
173
+ "status.success.bg": string;
174
+ "status.success.bg.subtle": string;
175
+ "status.success.border": string;
176
+ "status.success.border.subtle": string;
177
+ "status.success.fg": string;
178
+ "status.success.fg.subtle": string;
189
179
  // status — warning
190
- 'status.warning': string;
191
- 'status.warning.bg': string;
192
- 'status.warning.bg.subtle': string;
193
- 'status.warning.border': string;
194
- 'status.warning.border.subtle': string;
195
- 'status.warning.fg': string;
196
- 'status.warning.fg.subtle': string;
180
+ "status.warning": string;
181
+ "status.warning.bg": string;
182
+ "status.warning.bg.subtle": string;
183
+ "status.warning.border": string;
184
+ "status.warning.border.subtle": string;
185
+ "status.warning.fg": string;
186
+ "status.warning.fg.subtle": string;
197
187
  // status — danger
198
- 'status.danger': string;
199
- 'status.danger.bg': string;
200
- 'status.danger.bg.subtle': string;
201
- 'status.danger.border': string;
202
- 'status.danger.border.subtle': string;
203
- 'status.danger.fg': string;
204
- 'status.danger.fg.subtle': string;
188
+ "status.danger": string;
189
+ "status.danger.bg": string;
190
+ "status.danger.bg.subtle": string;
191
+ "status.danger.border": string;
192
+ "status.danger.border.subtle": string;
193
+ "status.danger.fg": string;
194
+ "status.danger.fg.subtle": string;
205
195
  // status — info
206
- 'status.info': string;
207
- 'status.info.bg': string;
208
- 'status.info.bg.subtle': string;
209
- 'status.info.border': string;
210
- 'status.info.border.subtle': string;
211
- 'status.info.fg': string;
212
- 'status.info.fg.subtle': string;
196
+ "status.info": string;
197
+ "status.info.bg": string;
198
+ "status.info.bg.subtle": string;
199
+ "status.info.border": string;
200
+ "status.info.border.subtle": string;
201
+ "status.info.fg": string;
202
+ "status.info.fg.subtle": string;
213
203
  }
214
204
 
215
205
  // ─── Full theme ──────────────────────────────────────────────────────────────
@@ -253,7 +243,7 @@ export interface TerraTheme {
253
243
 
254
244
  // ─── Color token paths (component prop surface) ──────────────────────────────
255
245
 
256
- export type BackgroundColorToken = 'background';
246
+ export type BackgroundColorToken = "background";
257
247
  export type SurfaceColorToken = Extract<keyof ThemeColor, `surface.${string}`>;
258
248
  export type TextColorToken = Extract<keyof ThemeColor, `text.${string}`>;
259
249
  export type BorderColorToken = Extract<keyof ThemeColor, `border.${string}`>;
@@ -280,7 +270,7 @@ export type ColorToken =
280
270
 
281
271
  // ─── Configuration / accents ─────────────────────────────────────────────────
282
272
 
283
- export type Scheme = 'light' | 'dark';
273
+ export type Scheme = "light" | "dark";
284
274
 
285
275
  /** A hue shorthand per scheme — expands to primary + accent token patches. */
286
276
  export interface AccentShorthand {
@@ -313,7 +303,7 @@ export type TerraIconComponent = ComponentType<TerraIconProps>;
313
303
 
314
304
  // ─── Image ───────────────────────────────────────────────────────────────────
315
305
 
316
- export type TerraImageContentFit = 'cover' | 'contain' | 'fill';
306
+ export type TerraImageContentFit = "cover" | "contain" | "fill";
317
307
 
318
308
  export interface TerraImageProps {
319
309
  source: { uri: string } | number;
@@ -351,20 +341,20 @@ declare global {
351
341
  export interface TerraIconRegistry extends TerraUI.IconRegistry {}
352
342
 
353
343
  export type TerraSemanticIconName =
354
- | 'navigation.back'
355
- | 'navigation.forward'
356
- | 'navigation.close'
357
- | 'status.info'
358
- | 'status.success'
359
- | 'status.warning'
360
- | 'status.danger'
361
- | 'person';
344
+ | "navigation.back"
345
+ | "navigation.forward"
346
+ | "navigation.close"
347
+ | "status.info"
348
+ | "status.success"
349
+ | "status.warning"
350
+ | "status.danger"
351
+ | "person";
362
352
 
363
353
  export type TerraConfiguredIconName = keyof TerraIconRegistry & string;
364
354
 
365
355
  export type TerraIconName = TerraSemanticIconName | TerraConfiguredIconName;
366
356
 
367
- export type ThemeRadiusOverride = DeepPartial<TerraTheme['radius']> & {
357
+ export type ThemeRadiusOverride = DeepPartial<TerraTheme["radius"]> & {
368
358
  /**
369
359
  * Base corner radius in dp — the `lg` (×1) step. The rest of the scale is
370
360
  * derived by fixed multipliers (`xs` ×0.25, `sm` ×0.5, `md` ×0.75,
@@ -374,7 +364,7 @@ export type ThemeRadiusOverride = DeepPartial<TerraTheme['radius']> & {
374
364
  base?: number;
375
365
  };
376
366
 
377
- export type ThemeSpacingOverride = DeepPartial<TerraTheme['spacing']> & {
367
+ export type ThemeSpacingOverride = DeepPartial<TerraTheme["spacing"]> & {
378
368
  /**
379
369
  * Base spacing unit in dp. Every step's value is its key multiplied by this
380
370
  * base (e.g. `'5'` → `5 × base`). Per-step spacing overrides still win over
@@ -384,9 +374,7 @@ export type ThemeSpacingOverride = DeepPartial<TerraTheme['spacing']> & {
384
374
  };
385
375
 
386
376
  /** Theme override accepted at configure time. */
387
- export type TerraThemeOverride = DeepPartial<
388
- Omit<TerraTheme, 'radius' | 'spacing'>
389
- > & {
377
+ export type TerraThemeOverride = DeepPartial<Omit<TerraTheme, "radius" | "spacing">> & {
390
378
  radius?: ThemeRadiusOverride;
391
379
  spacing?: ThemeSpacingOverride;
392
380
  };
@@ -1,16 +1,10 @@
1
- import type {
2
- Accent,
3
- AccentShorthand,
4
- NormalizedAccent,
5
- TerraTheme,
6
- } from '#theme/types';
7
-
8
- import { readableOn, shade, withAlpha } from './color-utils';
9
- import type { DeepPartial } from './deep-merge';
1
+ import type { Accent, AccentShorthand, NormalizedAccent, TerraTheme } from "#theme/types";
2
+ import { readableOn, shade, withAlpha } from "./color-utils";
3
+ import type { DeepPartial } from "./deep-merge";
10
4
 
11
5
  const isShorthand = (accent: Accent): accent is AccentShorthand =>
12
- typeof (accent as AccentShorthand).light === 'string' ||
13
- typeof (accent as AccentShorthand).dark === 'string';
6
+ typeof (accent as AccentShorthand).light === "string" ||
7
+ typeof (accent as AccentShorthand).dark === "string";
14
8
 
15
9
  /**
16
10
  * Expands a single hue into a fuller per-scheme patch so primary AND subtle
@@ -21,27 +15,24 @@ const isShorthand = (accent: Accent): accent is AccentShorthand =>
21
15
  *
22
16
  * On `light` the hover/active darken; on `dark` they lighten.
23
17
  */
24
- function hueToPartial(
25
- hue: string | undefined,
26
- scheme: 'light' | 'dark'
27
- ): DeepPartial<TerraTheme> {
18
+ function hueToPartial(hue: string | undefined, scheme: "light" | "dark"): DeepPartial<TerraTheme> {
28
19
  if (!hue) return {};
29
- const dir = scheme === 'light' ? -1 : 1;
30
- const isLight = scheme === 'light';
20
+ const dir = scheme === "light" ? -1 : 1;
21
+ const isLight = scheme === "light";
31
22
  const fg = readableOn(hue);
32
23
  // Flat color keys to patch — deepMerge replaces string leaves directly.
33
24
  const color = {
34
- 'action.bg.primary': hue,
35
- 'action.fg.primary': fg,
36
- 'action.bg.primary.hover': shade(hue, dir * 0.12),
37
- 'action.bg.primary.active': shade(hue, dir * 0.24),
38
- 'action.bg.primary.subtle': withAlpha(hue, isLight ? 0.12 : 0.2),
39
- 'action.fg.primary.subtle': hue,
40
- 'action.bg.primary.subtle.hover': withAlpha(hue, isLight ? 0.18 : 0.28),
41
- 'action.bg.primary.subtle.active': withAlpha(hue, isLight ? 0.24 : 0.36),
42
- 'text.accent': hue,
43
- 'text.link': hue,
44
- 'text.on-accent': fg,
25
+ "action.bg.primary": hue,
26
+ "action.fg.primary": fg,
27
+ "action.bg.primary.hover": shade(hue, dir * 0.12),
28
+ "action.bg.primary.active": shade(hue, dir * 0.24),
29
+ "action.bg.primary.subtle": withAlpha(hue, isLight ? 0.12 : 0.2),
30
+ "action.fg.primary.subtle": hue,
31
+ "action.bg.primary.subtle.hover": withAlpha(hue, isLight ? 0.18 : 0.28),
32
+ "action.bg.primary.subtle.active": withAlpha(hue, isLight ? 0.24 : 0.36),
33
+ "text.accent": hue,
34
+ "text.link": hue,
35
+ "text.on-accent": fg,
45
36
  };
46
37
  return { color } as unknown as DeepPartial<TerraTheme>;
47
38
  }
@@ -50,8 +41,8 @@ function hueToPartial(
50
41
  export function normalizeAccent(accent: Accent): NormalizedAccent {
51
42
  if (isShorthand(accent)) {
52
43
  return {
53
- light: hueToPartial(accent.light, 'light'),
54
- dark: hueToPartial(accent.dark, 'dark'),
44
+ light: hueToPartial(accent.light, "light"),
45
+ dark: hueToPartial(accent.dark, "dark"),
55
46
  };
56
47
  }
57
48
  return { light: accent.light ?? {}, dark: accent.dark ?? {} };
@@ -16,7 +16,7 @@ function parseHex(hex: string): RGB | null {
16
16
  }
17
17
 
18
18
  const toHex = ({ r, g, b }: RGB): string =>
19
- `#${[r, g, b].map((v) => clamp(v).toString(16).padStart(2, '0')).join('')}`;
19
+ `#${[r, g, b].map((v) => clamp(v).toString(16).padStart(2, "0")).join("")}`;
20
20
 
21
21
  /**
22
22
  * Shifts a hex color toward black (negative `amount`) or white (positive),
@@ -44,8 +44,8 @@ export function withAlpha(hex: string, alpha: number): string {
44
44
  /** Picks black or white for legible text/icons on top of `hex`. */
45
45
  export function readableOn(hex: string): string {
46
46
  const c = parseHex(hex);
47
- if (!c) return '#ffffff';
47
+ if (!c) return "#ffffff";
48
48
  // Perceived luminance (0–1).
49
49
  const luminance = (0.299 * c.r + 0.587 * c.g + 0.114 * c.b) / 255;
50
- return luminance > 0.6 ? '#000000' : '#ffffff';
50
+ return luminance > 0.6 ? "#000000" : "#ffffff";
51
51
  }
@@ -6,7 +6,7 @@ export type DeepPartial<T> = T extends (infer U)[]
6
6
  : T;
7
7
 
8
8
  const isPlainObject = (value: unknown): value is Record<string, unknown> =>
9
- typeof value === 'object' &&
9
+ typeof value === "object" &&
10
10
  value !== null &&
11
11
  !Array.isArray(value) &&
12
12
  Object.getPrototypeOf(value) === Object.prototype;
@@ -1,11 +1,11 @@
1
- import type { ColorToken, TerraTheme } from '#theme/types';
1
+ import type { ColorToken, TerraTheme } from "#theme/types";
2
2
 
3
3
  const isColorLiteral = (value: string): boolean =>
4
- value.startsWith('#') ||
5
- value.startsWith('rgb') ||
6
- value.startsWith('hsl') ||
7
- value === 'transparent' ||
8
- value === 'currentColor';
4
+ value.startsWith("#") ||
5
+ value.startsWith("rgb") ||
6
+ value.startsWith("hsl") ||
7
+ value === "transparent" ||
8
+ value === "currentColor";
9
9
 
10
10
  /**
11
11
  * Resolves a {@link ColorToken} to a concrete color string using the theme.
@@ -16,12 +16,9 @@ const isColorLiteral = (value: string): boolean =>
16
16
  * resolveThemeColor('action.bg.primary', theme) // → '#009966'
17
17
  * resolveThemeColor('#ff0000', theme) // → '#ff0000'
18
18
  */
19
- export function resolveThemeColor(
20
- token: ColorToken | undefined,
21
- theme: TerraTheme
22
- ): string | undefined {
19
+ export function resolveThemeColor(token: ColorToken | undefined, theme: TerraTheme): string | undefined {
23
20
  if (!token) return undefined;
24
21
  if (isColorLiteral(token)) return token;
25
22
  const value = (theme.color as unknown as Record<string, unknown>)[token];
26
- return typeof value === 'string' ? value : undefined;
23
+ return typeof value === "string" ? value : undefined;
27
24
  }
@@ -1,15 +1,12 @@
1
- import type { FontWeightToken } from '#theme/types';
1
+ import type { FontWeightToken } from "#theme/types";
2
2
 
3
3
  /** RN's sentinel for the platform default font (SF on iOS, Roboto on Android). */
4
- export const SYSTEM_FONT = 'System';
4
+ export const SYSTEM_FONT = "System";
5
5
 
6
6
  /** Numeric fontWeight applied when a weight token maps to the system font. */
7
- export const FONT_WEIGHT_VALUE: Record<
8
- FontWeightToken,
9
- '400' | '500' | '600' | '700'
10
- > = {
11
- regular: '400',
12
- medium: '500',
13
- semibold: '600',
14
- bold: '700',
7
+ export const FONT_WEIGHT_VALUE: Record<FontWeightToken, "400" | "500" | "600" | "700"> = {
8
+ regular: "400",
9
+ medium: "500",
10
+ semibold: "600",
11
+ bold: "700",
15
12
  };
@@ -12,14 +12,14 @@ export function unflatten<T = unknown>(flat: Record<string, unknown>): T {
12
12
  const root: Record<string, unknown> = {};
13
13
 
14
14
  for (const [path, value] of Object.entries(flat)) {
15
- const segments = path.split('.');
15
+ const segments = path.split(".");
16
16
  let node = root;
17
17
 
18
18
  for (let i = 0; i < segments.length - 1; i++) {
19
19
  const seg = segments[i];
20
20
  if (seg === undefined) continue;
21
21
  const next = node[seg];
22
- if (typeof next === 'object' && next !== null) {
22
+ if (typeof next === "object" && next !== null) {
23
23
  node = next as Record<string, unknown>;
24
24
  } else {
25
25
  const created: Record<string, unknown> = {};