@12-apps/ui 6.18.0 → 6.19.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 (710) hide show
  1. package/NATIVE.md +10 -2
  2. package/components-catalog.md +8 -4
  3. package/dist/_internal/components/data-display/Alert/Alert.base.js +1 -0
  4. package/dist/_internal/components/data-display/Alert/Alert.base.js.map +1 -0
  5. package/dist/_internal/components/data-display/Alert/Alert.helpers.js +16 -0
  6. package/dist/_internal/components/data-display/Alert/Alert.helpers.js.map +1 -0
  7. package/dist/_internal/components/data-display/Alert/Alert.js +9 -2
  8. package/dist/_internal/components/data-display/Alert/Alert.metrics.js +78 -0
  9. package/dist/_internal/components/data-display/Alert/Alert.metrics.js.map +1 -0
  10. package/dist/_internal/components/data-display/Alert/Alert.styles.js +7 -1
  11. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +12 -5
  12. package/dist/_internal/components/data-display/Badge/Badge.js +2 -2
  13. package/dist/_internal/components/data-display/CardKit/CardKebab.js +3 -3
  14. package/dist/_internal/components/data-display/CardKit/card-actions-context.js +10 -3
  15. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +10 -8
  16. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +4 -4
  17. package/dist/_internal/components/data-display/Carousel/Carousel.js +3 -3
  18. package/dist/_internal/components/data-display/Chart/Chart.js +4 -4
  19. package/dist/_internal/components/data-display/Chart/SpecChart.js +7 -7
  20. package/dist/_internal/components/data-display/Chart/chart-context.js +2 -2
  21. package/dist/_internal/components/data-display/Chart/chart-renderers.js +3 -3
  22. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +3 -3
  23. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +38 -38
  24. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +53 -51
  25. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +3 -3
  26. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +5 -5
  27. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +5 -5
  28. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +3 -3
  29. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +1 -1
  30. package/dist/_internal/components/data-display/DataViews/base-list-card.js +5 -5
  31. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +10 -10
  32. package/dist/_internal/components/data-display/DataViews/data-views-columns.js +4 -4
  33. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +4 -4
  34. package/dist/_internal/components/data-display/DataViews/data-views-empty.js +3 -3
  35. package/dist/_internal/components/data-display/DataViews/data-views-export.js +3 -3
  36. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +11 -11
  37. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +9 -9
  38. package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +3 -3
  39. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +35 -35
  40. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +15 -15
  41. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +1 -1
  42. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +4 -4
  43. package/dist/_internal/components/data-display/DataViews/data-views-pagination.js +3 -3
  44. package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +3 -3
  45. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +9 -9
  46. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +14 -12
  47. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +8 -8
  48. package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +3 -3
  49. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +1 -1
  50. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +6 -6
  51. package/dist/_internal/components/data-display/DataViews/use-saved-views-controller.js +2 -2
  52. package/dist/_internal/components/data-display/EmptyState/EmptyState.base.js +1 -0
  53. package/dist/_internal/components/data-display/EmptyState/EmptyState.base.js.map +1 -0
  54. package/dist/_internal/components/data-display/EmptyState/EmptyState.helpers.js +10 -0
  55. package/dist/_internal/components/data-display/EmptyState/EmptyState.helpers.js.map +1 -0
  56. package/dist/_internal/components/data-display/EmptyState/EmptyState.js +4 -1
  57. package/dist/_internal/components/data-display/EmptyState/EmptyState.metrics.js +44 -0
  58. package/dist/_internal/components/data-display/EmptyState/EmptyState.metrics.js.map +1 -0
  59. package/dist/_internal/components/data-display/ErrorState/ErrorState.base.js +1 -0
  60. package/dist/_internal/components/data-display/ErrorState/ErrorState.base.js.map +1 -0
  61. package/dist/_internal/components/data-display/ErrorState/ErrorState.js +3 -1
  62. package/dist/_internal/components/data-display/ErrorState/ErrorState.metrics.js +32 -0
  63. package/dist/_internal/components/data-display/ErrorState/ErrorState.metrics.js.map +1 -0
  64. package/dist/_internal/components/data-display/HoverCard/HoverCard.js +2 -2
  65. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +6 -6
  66. package/dist/_internal/components/data-display/LoadingState/LoadingState.base.js +1 -0
  67. package/dist/_internal/components/data-display/LoadingState/LoadingState.base.js.map +1 -0
  68. package/dist/_internal/components/data-display/LoadingState/LoadingState.helpers.js +6 -2
  69. package/dist/_internal/components/data-display/LoadingState/LoadingState.js +6 -2
  70. package/dist/_internal/components/data-display/LoadingState/LoadingState.metrics.js +34 -0
  71. package/dist/_internal/components/data-display/LoadingState/LoadingState.metrics.js.map +1 -0
  72. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +2 -2
  73. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +4 -4
  74. package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +5 -2
  75. package/dist/_internal/components/data-display/Sheet/Sheet.js +2 -2
  76. package/dist/_internal/components/data-display/Table/Table.js +3 -3
  77. package/dist/_internal/components/data-display/index.js +52 -46
  78. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +3 -3
  79. package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +2 -2
  80. package/dist/_internal/components/feedback/index.js +8 -8
  81. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +4 -4
  82. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +9 -9
  83. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +3 -3
  84. package/dist/_internal/components/form/Button/Button.js +2 -2
  85. package/dist/_internal/components/form/Calendar/Calendar.hooks.js +2 -2
  86. package/dist/_internal/components/form/Calendar/Calendar.js +6 -6
  87. package/dist/_internal/components/form/Calendar/CalendarDayCell.js +2 -2
  88. package/dist/_internal/components/form/Calendar/CalendarMonth.js +3 -3
  89. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +5 -5
  90. package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +3 -3
  91. package/dist/_internal/components/form/CategorySelect/CategoryRows.js +2 -2
  92. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +8 -8
  93. package/dist/_internal/components/form/CepField/CepField.js +3 -3
  94. package/dist/_internal/components/form/CodeEditor/CodeEditor.js +1 -1
  95. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +9 -9
  96. package/dist/_internal/components/form/Input/Input.js +2 -2
  97. package/dist/_internal/components/form/Menubar/Menubar.js +2 -2
  98. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +2 -2
  99. package/dist/_internal/components/form/index.js +28 -28
  100. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +9 -9
  101. package/dist/_internal/components/form/total-form/Fields/CepField.js +4 -4
  102. package/dist/_internal/components/form/total-form/Fields/TextField.js +3 -3
  103. package/dist/_internal/components/form/total-form/Fields/index.js +19 -19
  104. package/dist/_internal/components/form/total-form/SubmitButton.js +3 -3
  105. package/dist/_internal/components/index.js +111 -101
  106. package/dist/_internal/components/layout/Container/Container.base.js +1 -0
  107. package/dist/_internal/components/layout/Container/Container.base.js.map +1 -0
  108. package/dist/_internal/components/layout/Container/Container.js +3 -1
  109. package/dist/_internal/components/layout/Container/Container.metrics.js +26 -0
  110. package/dist/_internal/components/layout/Container/Container.metrics.js.map +1 -0
  111. package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +2 -2
  112. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +4 -4
  113. package/dist/_internal/components/layout/SettingsLayout/SettingsPanel.js +2 -2
  114. package/dist/_internal/components/layout/Spacer/Spacer.base.js +1 -0
  115. package/dist/_internal/components/layout/Spacer/Spacer.base.js.map +1 -0
  116. package/dist/_internal/components/layout/Spacer/Spacer.js +3 -1
  117. package/dist/_internal/components/layout/Spacer/Spacer.metrics.js +18 -0
  118. package/dist/_internal/components/layout/Spacer/Spacer.metrics.js.map +1 -0
  119. package/dist/_internal/components/layout/index.js +10 -7
  120. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +5 -5
  121. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +2 -2
  122. package/dist/_internal/components/navigation/Pagination/Pagination.js +2 -2
  123. package/dist/_internal/components/navigation/Tabs/Tabs.js +2 -2
  124. package/dist/_internal/components/navigation/index.js +14 -14
  125. package/dist/_internal/components/typography/Heading/Heading.base.js +1 -0
  126. package/dist/_internal/components/typography/Heading/Heading.base.js.map +1 -0
  127. package/dist/_internal/components/typography/Heading/Heading.js +7 -2
  128. package/dist/_internal/components/typography/Heading/Heading.metrics.js +32 -0
  129. package/dist/_internal/components/typography/Heading/Heading.metrics.js.map +1 -0
  130. package/dist/_internal/components/typography/Heading/Heading.styles.js +5 -1
  131. package/dist/_internal/components/typography/Paragraph/Paragraph.base.js +1 -0
  132. package/dist/_internal/components/typography/Paragraph/Paragraph.base.js.map +1 -0
  133. package/dist/_internal/components/typography/Paragraph/Paragraph.js +7 -1
  134. package/dist/_internal/components/typography/Paragraph/Paragraph.metrics.js +24 -0
  135. package/dist/_internal/components/typography/Paragraph/Paragraph.metrics.js.map +1 -0
  136. package/dist/_internal/components/typography/index.js +5 -3
  137. package/dist/_internal/components/utility/InstallPrompt/InstallPrompt.js +1 -1
  138. package/dist/_internal/components/utility/index.js +1 -1
  139. package/dist/_internal/platform/aria.js +11 -0
  140. package/dist/_internal/platform/aria.js.map +1 -0
  141. package/dist/_internal/platform/text-children.js +37 -0
  142. package/dist/_internal/platform/text-children.js.map +1 -0
  143. package/dist/_internal/social-login-button/social-login-button.js +6 -5
  144. package/dist/_internal/tokens/mui-type.js +25 -0
  145. package/dist/_internal/tokens/mui-type.js.map +1 -0
  146. package/dist/_internal/user-avatar/user-avatar.js +3 -3
  147. package/dist/charts.js +13 -13
  148. package/dist/chunk-3N6EK6K5.js +57 -0
  149. package/dist/chunk-3N6EK6K5.js.map +1 -0
  150. package/dist/{chunk-77GA5YHQ.js → chunk-43NEBUV3.js} +2 -2
  151. package/dist/{chunk-4WK2RTVY.js → chunk-4FRZDSRD.js} +3 -3
  152. package/dist/{chunk-2EKALM6P.js → chunk-4SXZSSVV.js} +3 -3
  153. package/dist/{chunk-SKZHOWTS.js → chunk-5SYD23V4.js} +4 -4
  154. package/dist/chunk-6D5WEZ2L.js +219 -0
  155. package/dist/chunk-6D5WEZ2L.js.map +1 -0
  156. package/dist/{chunk-7RZ4WOQW.js → chunk-6DXYCXH4.js} +2 -2
  157. package/dist/{chunk-IJIT5HQP.js → chunk-72UYVJBQ.js} +2 -2
  158. package/dist/{chunk-KVN3K4J3.js → chunk-7DFEKTT7.js} +12 -16
  159. package/dist/chunk-7DFEKTT7.js.map +1 -0
  160. package/dist/{chunk-VNEEXUWA.js → chunk-7WL24VNI.js} +4 -4
  161. package/dist/{chunk-J54WH74M.js → chunk-AP4FLCLA.js} +4 -4
  162. package/dist/chunk-B2Y3BABA.js +136 -0
  163. package/dist/chunk-B2Y3BABA.js.map +1 -0
  164. package/dist/{chunk-IE7ISTLQ.js → chunk-B443IIQG.js} +4 -4
  165. package/dist/{chunk-EPNCYUQ7.js → chunk-BPYPUEM5.js} +5 -5
  166. package/dist/{chunk-V662PA6T.js → chunk-BUDXR3EV.js} +5 -5
  167. package/dist/{chunk-EW7ZNSWU.js → chunk-BVZVH3ZN.js} +6 -6
  168. package/dist/{chunk-U7RULTSH.js → chunk-C6XESZ3R.js} +6 -6
  169. package/dist/{chunk-WUPVHIMD.js → chunk-CLNTJM3F.js} +2 -2
  170. package/dist/{chunk-YNQGXSDD.js → chunk-CRNQVWIT.js} +7 -7
  171. package/dist/{chunk-7EESF76V.js → chunk-DLFOEXUP.js} +2 -2
  172. package/dist/{chunk-6YLAVHV4.js → chunk-DTKMBI7B.js} +4 -4
  173. package/dist/{chunk-BBC4KT5G.js → chunk-DZN3JF5E.js} +4 -4
  174. package/dist/{chunk-5ERH4OIK.js → chunk-E27Y7FF2.js} +92 -76
  175. package/dist/chunk-E27Y7FF2.js.map +1 -0
  176. package/dist/{chunk-P5YYVDAD.js → chunk-E5ZHW4I5.js} +4 -4
  177. package/dist/{chunk-OH3YGJT5.js → chunk-EMNGIYH6.js} +5 -5
  178. package/dist/{chunk-UQHJQ26Y.js → chunk-ES2RN7YV.js} +2 -2
  179. package/dist/{chunk-EGRFMPGD.js → chunk-EXJBPKGW.js} +4 -4
  180. package/dist/{chunk-BILE3A7F.js → chunk-FWCUELBU.js} +2 -2
  181. package/dist/{chunk-4R2CDZOQ.js → chunk-GBFGZJB5.js} +4 -4
  182. package/dist/{chunk-67LDIJQZ.js → chunk-GCJLMX63.js} +2 -2
  183. package/dist/{chunk-BLBOYCOV.js → chunk-HKV4MQ2W.js} +5 -5
  184. package/dist/{chunk-L5ZZJ4XE.js → chunk-HKZHEK3Z.js} +2 -2
  185. package/dist/{chunk-IPS55KWK.js → chunk-HP2ODXNA.js} +2 -2
  186. package/dist/{chunk-3AOOI2NR.js → chunk-HR7YTBR7.js} +4 -4
  187. package/dist/{chunk-O6J4CKS5.js → chunk-IIOEQRXX.js} +30 -13
  188. package/dist/chunk-IIOEQRXX.js.map +1 -0
  189. package/dist/{chunk-PUBPZOQJ.js → chunk-IPE5FFFD.js} +2 -2
  190. package/dist/{chunk-C52BELLW.js → chunk-ISSJNFJV.js} +2 -2
  191. package/dist/{chunk-2ZRZTGWP.js → chunk-ISW5K72V.js} +5 -5
  192. package/dist/{chunk-X24P3ZYW.js → chunk-J4W4TQPC.js} +6 -6
  193. package/dist/chunk-JZT5XP23.js +48 -0
  194. package/dist/chunk-JZT5XP23.js.map +1 -0
  195. package/dist/{chunk-LZRURORY.js → chunk-KADJNWTQ.js} +3 -3
  196. package/dist/{chunk-3AFUWDYS.js → chunk-KKYW3LU7.js} +3 -3
  197. package/dist/{chunk-NHSMLVNC.js → chunk-KSF7TLXH.js} +6 -6
  198. package/dist/{chunk-FP4R47TM.js → chunk-L65LF6LN.js} +2 -2
  199. package/dist/{chunk-FH4VARZ7.js → chunk-L6KEVPXN.js} +7 -7
  200. package/dist/{chunk-X5BHPSAC.js → chunk-LDE4ELB5.js} +7 -7
  201. package/dist/{chunk-NETZMGQP.js → chunk-LIOVN5IM.js} +2 -2
  202. package/dist/{chunk-NBNLGTRB.js → chunk-LLABVZM3.js} +21 -29
  203. package/dist/chunk-LLABVZM3.js.map +1 -0
  204. package/dist/{chunk-OQXOYHIV.js → chunk-M3RIC6JI.js} +4 -4
  205. package/dist/{chunk-MY5VNNSP.js → chunk-MCRIT46W.js} +4 -4
  206. package/dist/{chunk-WO52KYSU.js → chunk-MHFJBNDP.js} +8 -8
  207. package/dist/chunk-MWFSIB6K.js +47 -0
  208. package/dist/chunk-MWFSIB6K.js.map +1 -0
  209. package/dist/chunk-N3QUEBNS.js +32 -0
  210. package/dist/chunk-N3QUEBNS.js.map +1 -0
  211. package/dist/{chunk-WBVHRLIS.js → chunk-N4WANJI3.js} +4 -4
  212. package/dist/chunk-N7MJ6CNC.js +30 -0
  213. package/dist/chunk-N7MJ6CNC.js.map +1 -0
  214. package/dist/{chunk-XKMFIH27.js → chunk-NECUCG2S.js} +14 -14
  215. package/dist/{chunk-IH4CX43Q.js → chunk-NFHS77NE.js} +2 -2
  216. package/dist/{chunk-E67PUPFJ.js → chunk-NQC6H7GY.js} +73 -57
  217. package/dist/chunk-NQC6H7GY.js.map +1 -0
  218. package/dist/{chunk-74KMXBG3.js → chunk-OAXAF4VY.js} +9 -9
  219. package/dist/{chunk-4EJSUL62.js → chunk-OR7UH2ZQ.js} +3 -3
  220. package/dist/{chunk-3ZFORMNT.js → chunk-OZWQNFG6.js} +4 -4
  221. package/dist/{chunk-23FCBIUN.js → chunk-P7FQUGED.js} +8 -8
  222. package/dist/{chunk-PC5FFEIY.js → chunk-PC3ZFERM.js} +2 -2
  223. package/dist/{chunk-XSJWN3WH.js → chunk-PMS3H3OO.js} +10 -10
  224. package/dist/{chunk-CGQI4XE5.js → chunk-PWR7K5OP.js} +16 -16
  225. package/dist/chunk-PWR7K5OP.js.map +1 -0
  226. package/dist/{chunk-KQ74QU55.js → chunk-QJJUTBKZ.js} +2 -2
  227. package/dist/chunk-QKLGH3RZ.js +29 -0
  228. package/dist/chunk-QKLGH3RZ.js.map +1 -0
  229. package/dist/{chunk-VEFDL77X.js → chunk-QZPNQWS2.js} +2 -2
  230. package/dist/{chunk-DWZ7FLA7.js → chunk-RBGOGTT2.js} +4 -4
  231. package/dist/chunk-RKCS6K36.js +48 -0
  232. package/dist/chunk-RKCS6K36.js.map +1 -0
  233. package/dist/{chunk-MZQTHSLN.js → chunk-S7HRED4D.js} +2 -2
  234. package/dist/{chunk-LUMF63BM.js → chunk-SFAP5EH5.js} +4 -4
  235. package/dist/{chunk-ZEBJT5JZ.js → chunk-SG6VULKS.js} +3 -3
  236. package/dist/{chunk-GJQYM3PM.js → chunk-SHQWIDD5.js} +4 -4
  237. package/dist/{chunk-24BUCMQA.js → chunk-SL4NFGOL.js} +4 -4
  238. package/dist/{chunk-PHCSPHDH.js → chunk-SOHDPFOB.js} +2 -2
  239. package/dist/chunk-TLGGVE56.js +37 -0
  240. package/dist/chunk-TLGGVE56.js.map +1 -0
  241. package/dist/{chunk-K2T2CQSZ.js → chunk-UF27D35R.js} +2 -2
  242. package/dist/{chunk-7M5BACFQ.js → chunk-UXQW6ZIN.js} +45 -57
  243. package/dist/chunk-UXQW6ZIN.js.map +1 -0
  244. package/dist/{chunk-A2GGT4OC.js → chunk-V3SBJ3PB.js} +54 -30
  245. package/dist/chunk-V3SBJ3PB.js.map +1 -0
  246. package/dist/chunk-VJK5FBNK.js +46 -0
  247. package/dist/chunk-VJK5FBNK.js.map +1 -0
  248. package/dist/{chunk-B7BZAIHL.js → chunk-VOOPGAQO.js} +2 -2
  249. package/dist/{chunk-GSTRPZS4.js → chunk-WEH5TCPE.js} +8 -8
  250. package/dist/{chunk-MUVJD26L.js → chunk-WPR2HS5B.js} +8 -8
  251. package/dist/{chunk-KT6HWAEN.js → chunk-WZUNBSS7.js} +2 -2
  252. package/dist/{chunk-3JYYPJFD.js → chunk-X2J6MRJW.js} +2 -2
  253. package/dist/{chunk-HEG7JIBM.js → chunk-X5MPHXG5.js} +4 -4
  254. package/dist/{chunk-NFAKRI4S.js → chunk-XELVDPKL.js} +4 -4
  255. package/dist/{chunk-EPNUVSNK.js → chunk-XFUNJYFT.js} +7 -7
  256. package/dist/{chunk-4G3FGCWX.js → chunk-XXJRT6BP.js} +2 -2
  257. package/dist/{chunk-QRX5BYUQ.js → chunk-Y6KPZQPI.js} +4 -4
  258. package/dist/{chunk-KZSKI2R3.js → chunk-YLDS5FOQ.js} +2 -2
  259. package/dist/chunk-YSTHOE66.js +51 -0
  260. package/dist/chunk-YSTHOE66.js.map +1 -0
  261. package/dist/{chunk-NYLXHOMR.js → chunk-Z7JNCB5Q.js} +26 -13
  262. package/dist/chunk-Z7JNCB5Q.js.map +1 -0
  263. package/dist/{chunk-WX7VWW3W.js → chunk-ZBOFBRZC.js} +2 -2
  264. package/dist/{chunk-HSAH5QUQ.js → chunk-ZIOCRSHU.js} +3 -3
  265. package/dist/{chunk-HOJL2GKW.js → chunk-ZOUWHGV3.js} +7 -7
  266. package/dist/{chunk-2ZDTGI5V.js → chunk-ZRFRU545.js} +7 -7
  267. package/dist/data-display/Alert.js +9 -2
  268. package/dist/data-display/AsyncStateContainer.js +12 -5
  269. package/dist/data-display/Badge.js +2 -2
  270. package/dist/data-display/CardKit.js +14 -12
  271. package/dist/data-display/Carousel.js +3 -3
  272. package/dist/data-display/Chart.js +13 -13
  273. package/dist/data-display/DataGrid.js +3 -3
  274. package/dist/data-display/DataViews.js +62 -60
  275. package/dist/data-display/EmptyState.js +4 -1
  276. package/dist/data-display/ErrorState.js +3 -1
  277. package/dist/data-display/HoverCard.js +2 -2
  278. package/dist/data-display/Lightbox.js +6 -6
  279. package/dist/data-display/LoadingState.js +6 -2
  280. package/dist/data-display/MapPreview.js +4 -4
  281. package/dist/data-display/SectionOnboarding.js +5 -2
  282. package/dist/data-display/Sheet.js +2 -2
  283. package/dist/data-display/Table.js +3 -3
  284. package/dist/feedback/ConfirmAction.js +6 -6
  285. package/dist/feedback/TutorialOverlay.js +2 -2
  286. package/dist/form/AddressAutocomplete.js +9 -9
  287. package/dist/form/Button.js +2 -2
  288. package/dist/form/Calendar.js +6 -6
  289. package/dist/form/CategorySelect.js +10 -10
  290. package/dist/form/CepField.js +3 -3
  291. package/dist/form/CodeEditor.js +1 -1
  292. package/dist/form/DateRangePicker.js +9 -9
  293. package/dist/form/Input.js +2 -2
  294. package/dist/form/Menubar.js +2 -2
  295. package/dist/form/RichTextEditor.js +2 -2
  296. package/dist/form/total-form.js +25 -25
  297. package/dist/layout/Container.js +3 -1
  298. package/dist/layout/ContentToolbar.js +3 -3
  299. package/dist/layout/ScrollArea.js +2 -2
  300. package/dist/layout/SettingsLayout.js +6 -6
  301. package/dist/layout/Spacer.js +3 -1
  302. package/dist/native/chunks/chunk-4NK5ZQZ3.js +10 -0
  303. package/dist/native/chunks/chunk-4NK5ZQZ3.js.map +1 -0
  304. package/dist/native/chunks/chunk-5GJ5OG5R.js +36 -0
  305. package/dist/native/chunks/chunk-5GJ5OG5R.js.map +1 -0
  306. package/dist/native/chunks/{chunk-QZ233LRH.js → chunk-EKKNUEA6.js} +2 -2
  307. package/dist/native/chunks/{chunk-L2UUNK2M.js → chunk-P3PL4WBO.js} +2 -1
  308. package/dist/native/chunks/chunk-UKCCYP52.js +318 -0
  309. package/dist/native/chunks/chunk-UKCCYP52.js.map +1 -0
  310. package/dist/native/chunks/chunk-V4DQTC5L.js +24 -0
  311. package/dist/native/chunks/chunk-V4DQTC5L.js.map +1 -0
  312. package/dist/native/chunks/chunk-YQGNMAJN.js +108 -0
  313. package/dist/native/chunks/chunk-YQGNMAJN.js.map +1 -0
  314. package/dist/native/chunks/{chunk-VGBKUL6D.js → chunk-YTHR4Y5P.js} +2 -2
  315. package/dist/native/data-display/Alert.js +372 -0
  316. package/dist/native/data-display/Alert.js.map +1 -0
  317. package/dist/native/data-display/EmptyState.js +293 -0
  318. package/dist/native/data-display/EmptyState.js.map +1 -0
  319. package/dist/native/data-display/ErrorState.js +188 -0
  320. package/dist/native/data-display/ErrorState.js.map +1 -0
  321. package/dist/native/data-display/LoadingState.js +205 -0
  322. package/dist/native/data-display/LoadingState.js.map +1 -0
  323. package/dist/native/form/Button.js +6 -316
  324. package/dist/native/form/Button.js.map +1 -1
  325. package/dist/native/icons.js +10 -99
  326. package/dist/native/icons.js.map +1 -1
  327. package/dist/native/layout/Box.js +3 -3
  328. package/dist/native/layout/Container.js +87 -0
  329. package/dist/native/layout/Container.js.map +1 -0
  330. package/dist/native/layout/Spacer.js +80 -0
  331. package/dist/native/layout/Spacer.js.map +1 -0
  332. package/dist/native/layout/Stack.js +3 -3
  333. package/dist/native/provider.js +2 -2
  334. package/dist/native/tokens.js +1 -1
  335. package/dist/native/typography/Heading.js +110 -0
  336. package/dist/native/typography/Heading.js.map +1 -0
  337. package/dist/native/typography/Paragraph.js +86 -0
  338. package/dist/native/typography/Paragraph.js.map +1 -0
  339. package/dist/native/typography/Text.js +2 -2
  340. package/dist/navigation/AppHeader.js +9 -9
  341. package/dist/navigation/NavigationMenu.js +2 -2
  342. package/dist/navigation/Pagination.js +2 -2
  343. package/dist/navigation/Tabs.js +2 -2
  344. package/dist/social-login-button.js +6 -5
  345. package/dist/types/components/data-display/Alert/Alert.base.d.ts +92 -0
  346. package/dist/types/components/data-display/Alert/Alert.base.d.ts.map +1 -0
  347. package/dist/types/components/data-display/Alert/Alert.d.ts.map +1 -1
  348. package/dist/types/components/data-display/Alert/Alert.helpers.d.ts +23 -0
  349. package/dist/types/components/data-display/Alert/Alert.helpers.d.ts.map +1 -0
  350. package/dist/types/components/data-display/Alert/Alert.metrics.d.ts +181 -0
  351. package/dist/types/components/data-display/Alert/Alert.metrics.d.ts.map +1 -0
  352. package/dist/types/components/data-display/Alert/Alert.styles.d.ts +3 -10
  353. package/dist/types/components/data-display/Alert/Alert.styles.d.ts.map +1 -1
  354. package/dist/types/components/data-display/Alert/Alert.types.d.ts +5 -79
  355. package/dist/types/components/data-display/Alert/Alert.types.d.ts.map +1 -1
  356. package/dist/types/components/data-display/Alert/index.d.ts +1 -1
  357. package/dist/types/components/data-display/Alert/index.d.ts.map +1 -1
  358. package/dist/types/components/data-display/EmptyState/EmptyState.base.d.ts +51 -0
  359. package/dist/types/components/data-display/EmptyState/EmptyState.base.d.ts.map +1 -0
  360. package/dist/types/components/data-display/EmptyState/EmptyState.d.ts.map +1 -1
  361. package/dist/types/components/data-display/EmptyState/EmptyState.helpers.d.ts +13 -0
  362. package/dist/types/components/data-display/EmptyState/EmptyState.helpers.d.ts.map +1 -0
  363. package/dist/types/components/data-display/EmptyState/EmptyState.metrics.d.ts +57 -0
  364. package/dist/types/components/data-display/EmptyState/EmptyState.metrics.d.ts.map +1 -0
  365. package/dist/types/components/data-display/EmptyState/EmptyState.types.d.ts +3 -39
  366. package/dist/types/components/data-display/EmptyState/EmptyState.types.d.ts.map +1 -1
  367. package/dist/types/components/data-display/EmptyState/index.d.ts +1 -1
  368. package/dist/types/components/data-display/EmptyState/index.d.ts.map +1 -1
  369. package/dist/types/components/data-display/ErrorState/ErrorState.base.d.ts +43 -0
  370. package/dist/types/components/data-display/ErrorState/ErrorState.base.d.ts.map +1 -0
  371. package/dist/types/components/data-display/ErrorState/ErrorState.d.ts.map +1 -1
  372. package/dist/types/components/data-display/ErrorState/ErrorState.metrics.d.ts +37 -0
  373. package/dist/types/components/data-display/ErrorState/ErrorState.metrics.d.ts.map +1 -0
  374. package/dist/types/components/data-display/ErrorState/ErrorState.types.d.ts +3 -32
  375. package/dist/types/components/data-display/ErrorState/ErrorState.types.d.ts.map +1 -1
  376. package/dist/types/components/data-display/ErrorState/index.d.ts +1 -1
  377. package/dist/types/components/data-display/ErrorState/index.d.ts.map +1 -1
  378. package/dist/types/components/data-display/LoadingState/LoadingState.base.d.ts +37 -0
  379. package/dist/types/components/data-display/LoadingState/LoadingState.base.d.ts.map +1 -0
  380. package/dist/types/components/data-display/LoadingState/LoadingState.d.ts.map +1 -1
  381. package/dist/types/components/data-display/LoadingState/LoadingState.helpers.d.ts +12 -6
  382. package/dist/types/components/data-display/LoadingState/LoadingState.helpers.d.ts.map +1 -1
  383. package/dist/types/components/data-display/LoadingState/LoadingState.metrics.d.ts +43 -0
  384. package/dist/types/components/data-display/LoadingState/LoadingState.metrics.d.ts.map +1 -0
  385. package/dist/types/components/data-display/LoadingState/LoadingState.types.d.ts +3 -27
  386. package/dist/types/components/data-display/LoadingState/LoadingState.types.d.ts.map +1 -1
  387. package/dist/types/components/data-display/LoadingState/index.d.ts +1 -1
  388. package/dist/types/components/data-display/LoadingState/index.d.ts.map +1 -1
  389. package/dist/types/components/layout/Container/Container.base.d.ts +31 -0
  390. package/dist/types/components/layout/Container/Container.base.d.ts.map +1 -0
  391. package/dist/types/components/layout/Container/Container.d.ts.map +1 -1
  392. package/dist/types/components/layout/Container/Container.metrics.d.ts +51 -0
  393. package/dist/types/components/layout/Container/Container.metrics.d.ts.map +1 -0
  394. package/dist/types/components/layout/Container/Container.types.d.ts +4 -8
  395. package/dist/types/components/layout/Container/Container.types.d.ts.map +1 -1
  396. package/dist/types/components/layout/Container/index.d.ts +1 -1
  397. package/dist/types/components/layout/Container/index.d.ts.map +1 -1
  398. package/dist/types/components/layout/Spacer/Spacer.base.d.ts +30 -0
  399. package/dist/types/components/layout/Spacer/Spacer.base.d.ts.map +1 -0
  400. package/dist/types/components/layout/Spacer/Spacer.d.ts.map +1 -1
  401. package/dist/types/components/layout/Spacer/Spacer.metrics.d.ts +36 -0
  402. package/dist/types/components/layout/Spacer/Spacer.metrics.d.ts.map +1 -0
  403. package/dist/types/components/layout/Spacer/Spacer.types.d.ts +4 -9
  404. package/dist/types/components/layout/Spacer/Spacer.types.d.ts.map +1 -1
  405. package/dist/types/components/layout/Spacer/index.d.ts +1 -1
  406. package/dist/types/components/layout/Spacer/index.d.ts.map +1 -1
  407. package/dist/types/components/typography/Heading/Heading.base.d.ts +52 -0
  408. package/dist/types/components/typography/Heading/Heading.base.d.ts.map +1 -0
  409. package/dist/types/components/typography/Heading/Heading.d.ts +9 -6
  410. package/dist/types/components/typography/Heading/Heading.d.ts.map +1 -1
  411. package/dist/types/components/typography/Heading/Heading.metrics.d.ts +52 -0
  412. package/dist/types/components/typography/Heading/Heading.metrics.d.ts.map +1 -0
  413. package/dist/types/components/typography/Heading/Heading.styles.d.ts.map +1 -1
  414. package/dist/types/components/typography/Heading/Heading.types.d.ts +8 -38
  415. package/dist/types/components/typography/Heading/Heading.types.d.ts.map +1 -1
  416. package/dist/types/components/typography/Heading/index.d.ts +1 -1
  417. package/dist/types/components/typography/Heading/index.d.ts.map +1 -1
  418. package/dist/types/components/typography/Paragraph/Paragraph.base.d.ts +23 -0
  419. package/dist/types/components/typography/Paragraph/Paragraph.base.d.ts.map +1 -0
  420. package/dist/types/components/typography/Paragraph/Paragraph.d.ts.map +1 -1
  421. package/dist/types/components/typography/Paragraph/Paragraph.metrics.d.ts +30 -0
  422. package/dist/types/components/typography/Paragraph/Paragraph.metrics.d.ts.map +1 -0
  423. package/dist/types/components/typography/Paragraph/Paragraph.types.d.ts +4 -7
  424. package/dist/types/components/typography/Paragraph/Paragraph.types.d.ts.map +1 -1
  425. package/dist/types/components/typography/Paragraph/index.d.ts +1 -1
  426. package/dist/types/components/typography/Paragraph/index.d.ts.map +1 -1
  427. package/dist/types/platform/aria.d.ts +29 -0
  428. package/dist/types/platform/aria.d.ts.map +1 -0
  429. package/dist/types/platform/text-children.d.ts +6 -0
  430. package/dist/types/platform/text-children.d.ts.map +1 -0
  431. package/dist/types/tokens/mui-type.d.ts +42 -0
  432. package/dist/types/tokens/mui-type.d.ts.map +1 -0
  433. package/dist/types-native/components/data-display/Alert/Alert.base.d.ts +92 -0
  434. package/dist/types-native/components/data-display/Alert/Alert.base.d.ts.map +1 -0
  435. package/dist/types-native/components/data-display/Alert/Alert.helpers.d.ts +23 -0
  436. package/dist/types-native/components/data-display/Alert/Alert.helpers.d.ts.map +1 -0
  437. package/dist/types-native/components/data-display/Alert/Alert.look.native.d.ts +46 -0
  438. package/dist/types-native/components/data-display/Alert/Alert.look.native.d.ts.map +1 -0
  439. package/dist/types-native/components/data-display/Alert/Alert.metrics.d.ts +181 -0
  440. package/dist/types-native/components/data-display/Alert/Alert.metrics.d.ts.map +1 -0
  441. package/dist/types-native/components/data-display/Alert/Alert.native.d.ts +5 -0
  442. package/dist/types-native/components/data-display/Alert/Alert.native.d.ts.map +1 -0
  443. package/dist/types-native/components/data-display/Alert/Alert.types.native.d.ts +8 -0
  444. package/dist/types-native/components/data-display/Alert/Alert.types.native.d.ts.map +1 -0
  445. package/dist/types-native/components/data-display/Alert/index.native.d.ts +3 -0
  446. package/dist/types-native/components/data-display/Alert/index.native.d.ts.map +1 -0
  447. package/dist/types-native/components/data-display/EmptyState/EmptyState.base.d.ts +51 -0
  448. package/dist/types-native/components/data-display/EmptyState/EmptyState.base.d.ts.map +1 -0
  449. package/dist/types-native/components/data-display/EmptyState/EmptyState.helpers.d.ts +13 -0
  450. package/dist/types-native/components/data-display/EmptyState/EmptyState.helpers.d.ts.map +1 -0
  451. package/dist/types-native/components/data-display/EmptyState/EmptyState.metrics.d.ts +57 -0
  452. package/dist/types-native/components/data-display/EmptyState/EmptyState.metrics.d.ts.map +1 -0
  453. package/dist/types-native/components/data-display/EmptyState/EmptyState.native.d.ts +22 -0
  454. package/dist/types-native/components/data-display/EmptyState/EmptyState.native.d.ts.map +1 -0
  455. package/dist/types-native/components/data-display/EmptyState/EmptyState.types.native.d.ts +8 -0
  456. package/dist/types-native/components/data-display/EmptyState/EmptyState.types.native.d.ts.map +1 -0
  457. package/dist/types-native/components/data-display/EmptyState/index.native.d.ts +3 -0
  458. package/dist/types-native/components/data-display/EmptyState/index.native.d.ts.map +1 -0
  459. package/dist/types-native/components/data-display/ErrorState/ErrorState.base.d.ts +43 -0
  460. package/dist/types-native/components/data-display/ErrorState/ErrorState.base.d.ts.map +1 -0
  461. package/dist/types-native/components/data-display/ErrorState/ErrorState.metrics.d.ts +37 -0
  462. package/dist/types-native/components/data-display/ErrorState/ErrorState.metrics.d.ts.map +1 -0
  463. package/dist/types-native/components/data-display/ErrorState/ErrorState.native.d.ts +14 -0
  464. package/dist/types-native/components/data-display/ErrorState/ErrorState.native.d.ts.map +1 -0
  465. package/dist/types-native/components/data-display/ErrorState/ErrorState.types.native.d.ts +8 -0
  466. package/dist/types-native/components/data-display/ErrorState/ErrorState.types.native.d.ts.map +1 -0
  467. package/dist/types-native/components/data-display/ErrorState/index.native.d.ts +3 -0
  468. package/dist/types-native/components/data-display/ErrorState/index.native.d.ts.map +1 -0
  469. package/dist/types-native/components/data-display/LoadingState/LoadingState.base.d.ts +37 -0
  470. package/dist/types-native/components/data-display/LoadingState/LoadingState.base.d.ts.map +1 -0
  471. package/dist/types-native/components/data-display/LoadingState/LoadingState.helpers.d.ts +27 -0
  472. package/dist/types-native/components/data-display/LoadingState/LoadingState.helpers.d.ts.map +1 -0
  473. package/dist/types-native/components/data-display/LoadingState/LoadingState.metrics.d.ts +43 -0
  474. package/dist/types-native/components/data-display/LoadingState/LoadingState.metrics.d.ts.map +1 -0
  475. package/dist/types-native/components/data-display/LoadingState/LoadingState.native.d.ts +10 -0
  476. package/dist/types-native/components/data-display/LoadingState/LoadingState.native.d.ts.map +1 -0
  477. package/dist/types-native/components/data-display/LoadingState/LoadingState.types.native.d.ts +8 -0
  478. package/dist/types-native/components/data-display/LoadingState/LoadingState.types.native.d.ts.map +1 -0
  479. package/dist/types-native/components/data-display/LoadingState/index.native.d.ts +3 -0
  480. package/dist/types-native/components/data-display/LoadingState/index.native.d.ts.map +1 -0
  481. package/dist/types-native/components/form/Button/Button.native.d.ts +1 -1
  482. package/dist/types-native/components/form/Button/Button.native.d.ts.map +1 -1
  483. package/dist/types-native/components/layout/Container/Container.base.d.ts +31 -0
  484. package/dist/types-native/components/layout/Container/Container.base.d.ts.map +1 -0
  485. package/dist/types-native/components/layout/Container/Container.metrics.d.ts +51 -0
  486. package/dist/types-native/components/layout/Container/Container.metrics.d.ts.map +1 -0
  487. package/dist/types-native/components/layout/Container/Container.native.d.ts +30 -0
  488. package/dist/types-native/components/layout/Container/Container.native.d.ts.map +1 -0
  489. package/dist/types-native/components/layout/Container/Container.types.native.d.ts +8 -0
  490. package/dist/types-native/components/layout/Container/Container.types.native.d.ts.map +1 -0
  491. package/dist/types-native/components/layout/Container/index.native.d.ts +3 -0
  492. package/dist/types-native/components/layout/Container/index.native.d.ts.map +1 -0
  493. package/dist/types-native/components/layout/Spacer/Spacer.base.d.ts +30 -0
  494. package/dist/types-native/components/layout/Spacer/Spacer.base.d.ts.map +1 -0
  495. package/dist/types-native/components/layout/Spacer/Spacer.metrics.d.ts +36 -0
  496. package/dist/types-native/components/layout/Spacer/Spacer.metrics.d.ts.map +1 -0
  497. package/dist/types-native/components/layout/Spacer/Spacer.native.d.ts +21 -0
  498. package/dist/types-native/components/layout/Spacer/Spacer.native.d.ts.map +1 -0
  499. package/dist/types-native/components/layout/Spacer/Spacer.types.native.d.ts +8 -0
  500. package/dist/types-native/components/layout/Spacer/Spacer.types.native.d.ts.map +1 -0
  501. package/dist/types-native/components/layout/Spacer/index.native.d.ts +3 -0
  502. package/dist/types-native/components/layout/Spacer/index.native.d.ts.map +1 -0
  503. package/dist/types-native/components/typography/Heading/Heading.base.d.ts +52 -0
  504. package/dist/types-native/components/typography/Heading/Heading.base.d.ts.map +1 -0
  505. package/dist/types-native/components/typography/Heading/Heading.metrics.d.ts +52 -0
  506. package/dist/types-native/components/typography/Heading/Heading.metrics.d.ts.map +1 -0
  507. package/dist/types-native/components/typography/Heading/Heading.native.d.ts +30 -0
  508. package/dist/types-native/components/typography/Heading/Heading.native.d.ts.map +1 -0
  509. package/dist/types-native/components/typography/Heading/Heading.types.native.d.ts +14 -0
  510. package/dist/types-native/components/typography/Heading/Heading.types.native.d.ts.map +1 -0
  511. package/dist/types-native/components/typography/Heading/index.native.d.ts +3 -0
  512. package/dist/types-native/components/typography/Heading/index.native.d.ts.map +1 -0
  513. package/dist/types-native/components/typography/Paragraph/Paragraph.base.d.ts +23 -0
  514. package/dist/types-native/components/typography/Paragraph/Paragraph.base.d.ts.map +1 -0
  515. package/dist/types-native/components/typography/Paragraph/Paragraph.metrics.d.ts +30 -0
  516. package/dist/types-native/components/typography/Paragraph/Paragraph.metrics.d.ts.map +1 -0
  517. package/dist/types-native/components/typography/Paragraph/Paragraph.native.d.ts +23 -0
  518. package/dist/types-native/components/typography/Paragraph/Paragraph.native.d.ts.map +1 -0
  519. package/dist/types-native/components/typography/Paragraph/Paragraph.types.native.d.ts +14 -0
  520. package/dist/types-native/components/typography/Paragraph/Paragraph.types.native.d.ts.map +1 -0
  521. package/dist/types-native/components/typography/Paragraph/index.native.d.ts +3 -0
  522. package/dist/types-native/components/typography/Paragraph/index.native.d.ts.map +1 -0
  523. package/dist/types-native/platform/aria.d.ts +29 -0
  524. package/dist/types-native/platform/aria.d.ts.map +1 -0
  525. package/dist/types-native/platform/text-children.d.ts +6 -0
  526. package/dist/types-native/platform/text-children.d.ts.map +1 -0
  527. package/dist/types-native/tokens/mui-type.d.ts +42 -0
  528. package/dist/types-native/tokens/mui-type.d.ts.map +1 -0
  529. package/dist/typography/Heading.js +7 -2
  530. package/dist/typography/Paragraph.js +7 -1
  531. package/dist/user-avatar.js +3 -3
  532. package/dist/utility/InstallPrompt.js +1 -1
  533. package/package.json +33 -1
  534. package/src/components/data-display/Alert/Alert.base.ts +105 -0
  535. package/src/components/data-display/Alert/Alert.helpers.ts +54 -0
  536. package/src/components/data-display/Alert/Alert.look.native.ts +131 -0
  537. package/src/components/data-display/Alert/Alert.metrics.ts +166 -0
  538. package/src/components/data-display/Alert/Alert.native.tsx +239 -0
  539. package/src/components/data-display/Alert/Alert.styles.tsx +162 -134
  540. package/src/components/data-display/Alert/Alert.tsx +136 -121
  541. package/src/components/data-display/Alert/Alert.types.native.ts +12 -0
  542. package/src/components/data-display/Alert/Alert.types.ts +7 -85
  543. package/src/components/data-display/Alert/NATIVE-NOTES.md +10 -0
  544. package/src/components/data-display/Alert/index.native.ts +2 -0
  545. package/src/components/data-display/Alert/index.ts +1 -1
  546. package/src/components/data-display/EmptyState/EmptyState.base.ts +54 -0
  547. package/src/components/data-display/EmptyState/EmptyState.helpers.ts +66 -0
  548. package/src/components/data-display/EmptyState/EmptyState.metrics.ts +54 -0
  549. package/src/components/data-display/EmptyState/EmptyState.native.tsx +277 -0
  550. package/src/components/data-display/EmptyState/EmptyState.tsx +42 -79
  551. package/src/components/data-display/EmptyState/EmptyState.types.native.ts +16 -0
  552. package/src/components/data-display/EmptyState/EmptyState.types.ts +11 -30
  553. package/src/components/data-display/EmptyState/NATIVE-NOTES.md +7 -0
  554. package/src/components/data-display/EmptyState/index.native.ts +8 -0
  555. package/src/components/data-display/EmptyState/index.ts +7 -1
  556. package/src/components/data-display/ErrorState/ErrorState.base.ts +51 -0
  557. package/src/components/data-display/ErrorState/ErrorState.metrics.ts +44 -0
  558. package/src/components/data-display/ErrorState/ErrorState.native.tsx +193 -0
  559. package/src/components/data-display/ErrorState/ErrorState.tsx +68 -53
  560. package/src/components/data-display/ErrorState/ErrorState.types.native.ts +11 -0
  561. package/src/components/data-display/ErrorState/ErrorState.types.ts +3 -38
  562. package/src/components/data-display/ErrorState/NATIVE-NOTES.md +6 -0
  563. package/src/components/data-display/ErrorState/index.native.ts +2 -0
  564. package/src/components/data-display/ErrorState/index.ts +1 -1
  565. package/src/components/data-display/LoadingState/LoadingState.base.ts +43 -0
  566. package/src/components/data-display/LoadingState/LoadingState.helpers.ts +27 -28
  567. package/src/components/data-display/LoadingState/LoadingState.metrics.ts +67 -0
  568. package/src/components/data-display/LoadingState/LoadingState.native.tsx +175 -0
  569. package/src/components/data-display/LoadingState/LoadingState.tsx +25 -11
  570. package/src/components/data-display/LoadingState/LoadingState.types.native.ts +11 -0
  571. package/src/components/data-display/LoadingState/LoadingState.types.ts +3 -31
  572. package/src/components/data-display/LoadingState/NATIVE-NOTES.md +7 -0
  573. package/src/components/data-display/LoadingState/index.native.ts +7 -0
  574. package/src/components/data-display/LoadingState/index.ts +6 -1
  575. package/src/components/form/Button/Button.native.tsx +2 -18
  576. package/src/components/layout/Container/Container.base.ts +32 -0
  577. package/src/components/layout/Container/Container.md +14 -0
  578. package/src/components/layout/Container/Container.metrics.ts +87 -0
  579. package/src/components/layout/Container/Container.native.tsx +71 -0
  580. package/src/components/layout/Container/Container.tsx +21 -30
  581. package/src/components/layout/Container/Container.types.native.ts +11 -0
  582. package/src/components/layout/Container/Container.types.ts +8 -9
  583. package/src/components/layout/Container/NATIVE-NOTES.md +5 -0
  584. package/src/components/layout/Container/index.native.ts +8 -0
  585. package/src/components/layout/Container/index.ts +7 -1
  586. package/src/components/layout/Spacer/Spacer.base.ts +32 -0
  587. package/src/components/layout/Spacer/Spacer.md +13 -1
  588. package/src/components/layout/Spacer/Spacer.metrics.ts +55 -0
  589. package/src/components/layout/Spacer/Spacer.native.tsx +68 -0
  590. package/src/components/layout/Spacer/Spacer.tsx +11 -41
  591. package/src/components/layout/Spacer/Spacer.types.native.ts +11 -0
  592. package/src/components/layout/Spacer/Spacer.types.ts +5 -9
  593. package/src/components/layout/Spacer/index.native.ts +2 -0
  594. package/src/components/layout/Spacer/index.ts +1 -1
  595. package/src/components/typography/Heading/Heading.base.ts +55 -0
  596. package/src/components/typography/Heading/Heading.md +13 -0
  597. package/src/components/typography/Heading/Heading.metrics.ts +84 -0
  598. package/src/components/typography/Heading/Heading.native.tsx +105 -0
  599. package/src/components/typography/Heading/Heading.styles.ts +19 -21
  600. package/src/components/typography/Heading/Heading.tsx +26 -23
  601. package/src/components/typography/Heading/Heading.types.native.ts +17 -0
  602. package/src/components/typography/Heading/Heading.types.ts +11 -39
  603. package/src/components/typography/Heading/NATIVE-NOTES.md +3 -0
  604. package/src/components/typography/Heading/index.native.ts +2 -0
  605. package/src/components/typography/Heading/index.ts +1 -1
  606. package/src/components/typography/Paragraph/Paragraph.base.ts +25 -0
  607. package/src/components/typography/Paragraph/Paragraph.md +11 -0
  608. package/src/components/typography/Paragraph/Paragraph.metrics.ts +41 -0
  609. package/src/components/typography/Paragraph/Paragraph.native.tsx +100 -0
  610. package/src/components/typography/Paragraph/Paragraph.tsx +53 -30
  611. package/src/components/typography/Paragraph/Paragraph.types.native.ts +17 -0
  612. package/src/components/typography/Paragraph/Paragraph.types.ts +7 -8
  613. package/src/components/typography/Paragraph/index.native.ts +2 -0
  614. package/src/components/typography/Paragraph/index.ts +1 -1
  615. package/src/platform/aria.ts +32 -0
  616. package/src/platform/text-children.tsx +68 -0
  617. package/src/tokens/mui-type.ts +64 -0
  618. package/dist/chunk-5ERH4OIK.js.map +0 -1
  619. package/dist/chunk-7M5BACFQ.js.map +0 -1
  620. package/dist/chunk-A2GGT4OC.js.map +0 -1
  621. package/dist/chunk-C6AZDXEE.js +0 -207
  622. package/dist/chunk-C6AZDXEE.js.map +0 -1
  623. package/dist/chunk-CGQI4XE5.js.map +0 -1
  624. package/dist/chunk-DTO7GKLA.js +0 -65
  625. package/dist/chunk-DTO7GKLA.js.map +0 -1
  626. package/dist/chunk-E67PUPFJ.js.map +0 -1
  627. package/dist/chunk-KVN3K4J3.js.map +0 -1
  628. package/dist/chunk-NBNLGTRB.js.map +0 -1
  629. package/dist/chunk-NYLXHOMR.js.map +0 -1
  630. package/dist/chunk-O6J4CKS5.js.map +0 -1
  631. /package/dist/{chunk-77GA5YHQ.js.map → chunk-43NEBUV3.js.map} +0 -0
  632. /package/dist/{chunk-4WK2RTVY.js.map → chunk-4FRZDSRD.js.map} +0 -0
  633. /package/dist/{chunk-2EKALM6P.js.map → chunk-4SXZSSVV.js.map} +0 -0
  634. /package/dist/{chunk-SKZHOWTS.js.map → chunk-5SYD23V4.js.map} +0 -0
  635. /package/dist/{chunk-7RZ4WOQW.js.map → chunk-6DXYCXH4.js.map} +0 -0
  636. /package/dist/{chunk-IJIT5HQP.js.map → chunk-72UYVJBQ.js.map} +0 -0
  637. /package/dist/{chunk-VNEEXUWA.js.map → chunk-7WL24VNI.js.map} +0 -0
  638. /package/dist/{chunk-J54WH74M.js.map → chunk-AP4FLCLA.js.map} +0 -0
  639. /package/dist/{chunk-IE7ISTLQ.js.map → chunk-B443IIQG.js.map} +0 -0
  640. /package/dist/{chunk-EPNCYUQ7.js.map → chunk-BPYPUEM5.js.map} +0 -0
  641. /package/dist/{chunk-V662PA6T.js.map → chunk-BUDXR3EV.js.map} +0 -0
  642. /package/dist/{chunk-EW7ZNSWU.js.map → chunk-BVZVH3ZN.js.map} +0 -0
  643. /package/dist/{chunk-U7RULTSH.js.map → chunk-C6XESZ3R.js.map} +0 -0
  644. /package/dist/{chunk-WUPVHIMD.js.map → chunk-CLNTJM3F.js.map} +0 -0
  645. /package/dist/{chunk-YNQGXSDD.js.map → chunk-CRNQVWIT.js.map} +0 -0
  646. /package/dist/{chunk-7EESF76V.js.map → chunk-DLFOEXUP.js.map} +0 -0
  647. /package/dist/{chunk-6YLAVHV4.js.map → chunk-DTKMBI7B.js.map} +0 -0
  648. /package/dist/{chunk-BBC4KT5G.js.map → chunk-DZN3JF5E.js.map} +0 -0
  649. /package/dist/{chunk-P5YYVDAD.js.map → chunk-E5ZHW4I5.js.map} +0 -0
  650. /package/dist/{chunk-OH3YGJT5.js.map → chunk-EMNGIYH6.js.map} +0 -0
  651. /package/dist/{chunk-UQHJQ26Y.js.map → chunk-ES2RN7YV.js.map} +0 -0
  652. /package/dist/{chunk-EGRFMPGD.js.map → chunk-EXJBPKGW.js.map} +0 -0
  653. /package/dist/{chunk-BILE3A7F.js.map → chunk-FWCUELBU.js.map} +0 -0
  654. /package/dist/{chunk-4R2CDZOQ.js.map → chunk-GBFGZJB5.js.map} +0 -0
  655. /package/dist/{chunk-67LDIJQZ.js.map → chunk-GCJLMX63.js.map} +0 -0
  656. /package/dist/{chunk-BLBOYCOV.js.map → chunk-HKV4MQ2W.js.map} +0 -0
  657. /package/dist/{chunk-L5ZZJ4XE.js.map → chunk-HKZHEK3Z.js.map} +0 -0
  658. /package/dist/{chunk-IPS55KWK.js.map → chunk-HP2ODXNA.js.map} +0 -0
  659. /package/dist/{chunk-3AOOI2NR.js.map → chunk-HR7YTBR7.js.map} +0 -0
  660. /package/dist/{chunk-PUBPZOQJ.js.map → chunk-IPE5FFFD.js.map} +0 -0
  661. /package/dist/{chunk-C52BELLW.js.map → chunk-ISSJNFJV.js.map} +0 -0
  662. /package/dist/{chunk-2ZRZTGWP.js.map → chunk-ISW5K72V.js.map} +0 -0
  663. /package/dist/{chunk-X24P3ZYW.js.map → chunk-J4W4TQPC.js.map} +0 -0
  664. /package/dist/{chunk-LZRURORY.js.map → chunk-KADJNWTQ.js.map} +0 -0
  665. /package/dist/{chunk-3AFUWDYS.js.map → chunk-KKYW3LU7.js.map} +0 -0
  666. /package/dist/{chunk-NHSMLVNC.js.map → chunk-KSF7TLXH.js.map} +0 -0
  667. /package/dist/{chunk-FP4R47TM.js.map → chunk-L65LF6LN.js.map} +0 -0
  668. /package/dist/{chunk-FH4VARZ7.js.map → chunk-L6KEVPXN.js.map} +0 -0
  669. /package/dist/{chunk-X5BHPSAC.js.map → chunk-LDE4ELB5.js.map} +0 -0
  670. /package/dist/{chunk-NETZMGQP.js.map → chunk-LIOVN5IM.js.map} +0 -0
  671. /package/dist/{chunk-OQXOYHIV.js.map → chunk-M3RIC6JI.js.map} +0 -0
  672. /package/dist/{chunk-MY5VNNSP.js.map → chunk-MCRIT46W.js.map} +0 -0
  673. /package/dist/{chunk-WO52KYSU.js.map → chunk-MHFJBNDP.js.map} +0 -0
  674. /package/dist/{chunk-WBVHRLIS.js.map → chunk-N4WANJI3.js.map} +0 -0
  675. /package/dist/{chunk-XKMFIH27.js.map → chunk-NECUCG2S.js.map} +0 -0
  676. /package/dist/{chunk-IH4CX43Q.js.map → chunk-NFHS77NE.js.map} +0 -0
  677. /package/dist/{chunk-74KMXBG3.js.map → chunk-OAXAF4VY.js.map} +0 -0
  678. /package/dist/{chunk-4EJSUL62.js.map → chunk-OR7UH2ZQ.js.map} +0 -0
  679. /package/dist/{chunk-3ZFORMNT.js.map → chunk-OZWQNFG6.js.map} +0 -0
  680. /package/dist/{chunk-23FCBIUN.js.map → chunk-P7FQUGED.js.map} +0 -0
  681. /package/dist/{chunk-PC5FFEIY.js.map → chunk-PC3ZFERM.js.map} +0 -0
  682. /package/dist/{chunk-XSJWN3WH.js.map → chunk-PMS3H3OO.js.map} +0 -0
  683. /package/dist/{chunk-KQ74QU55.js.map → chunk-QJJUTBKZ.js.map} +0 -0
  684. /package/dist/{chunk-VEFDL77X.js.map → chunk-QZPNQWS2.js.map} +0 -0
  685. /package/dist/{chunk-DWZ7FLA7.js.map → chunk-RBGOGTT2.js.map} +0 -0
  686. /package/dist/{chunk-MZQTHSLN.js.map → chunk-S7HRED4D.js.map} +0 -0
  687. /package/dist/{chunk-LUMF63BM.js.map → chunk-SFAP5EH5.js.map} +0 -0
  688. /package/dist/{chunk-ZEBJT5JZ.js.map → chunk-SG6VULKS.js.map} +0 -0
  689. /package/dist/{chunk-GJQYM3PM.js.map → chunk-SHQWIDD5.js.map} +0 -0
  690. /package/dist/{chunk-24BUCMQA.js.map → chunk-SL4NFGOL.js.map} +0 -0
  691. /package/dist/{chunk-PHCSPHDH.js.map → chunk-SOHDPFOB.js.map} +0 -0
  692. /package/dist/{chunk-K2T2CQSZ.js.map → chunk-UF27D35R.js.map} +0 -0
  693. /package/dist/{chunk-B7BZAIHL.js.map → chunk-VOOPGAQO.js.map} +0 -0
  694. /package/dist/{chunk-GSTRPZS4.js.map → chunk-WEH5TCPE.js.map} +0 -0
  695. /package/dist/{chunk-MUVJD26L.js.map → chunk-WPR2HS5B.js.map} +0 -0
  696. /package/dist/{chunk-KT6HWAEN.js.map → chunk-WZUNBSS7.js.map} +0 -0
  697. /package/dist/{chunk-3JYYPJFD.js.map → chunk-X2J6MRJW.js.map} +0 -0
  698. /package/dist/{chunk-HEG7JIBM.js.map → chunk-X5MPHXG5.js.map} +0 -0
  699. /package/dist/{chunk-NFAKRI4S.js.map → chunk-XELVDPKL.js.map} +0 -0
  700. /package/dist/{chunk-EPNUVSNK.js.map → chunk-XFUNJYFT.js.map} +0 -0
  701. /package/dist/{chunk-4G3FGCWX.js.map → chunk-XXJRT6BP.js.map} +0 -0
  702. /package/dist/{chunk-QRX5BYUQ.js.map → chunk-Y6KPZQPI.js.map} +0 -0
  703. /package/dist/{chunk-KZSKI2R3.js.map → chunk-YLDS5FOQ.js.map} +0 -0
  704. /package/dist/{chunk-WX7VWW3W.js.map → chunk-ZBOFBRZC.js.map} +0 -0
  705. /package/dist/{chunk-HSAH5QUQ.js.map → chunk-ZIOCRSHU.js.map} +0 -0
  706. /package/dist/{chunk-HOJL2GKW.js.map → chunk-ZOUWHGV3.js.map} +0 -0
  707. /package/dist/{chunk-2ZDTGI5V.js.map → chunk-ZRFRU545.js.map} +0 -0
  708. /package/dist/native/chunks/{chunk-QZ233LRH.js.map → chunk-EKKNUEA6.js.map} +0 -0
  709. /package/dist/native/chunks/{chunk-L2UUNK2M.js.map → chunk-P3PL4WBO.js.map} +0 -0
  710. /package/dist/native/chunks/{chunk-VGBKUL6D.js.map → chunk-YTHR4Y5P.js.map} +0 -0
@@ -3,7 +3,14 @@ import { useTheme } from '@mui/material/styles/index.js';
3
3
  import type { SxProps, Theme } from '@mui/material/styles/index.js';
4
4
  import React from 'react';
5
5
 
6
+ import {
7
+ CONTAINER_COMPACT_PADDING_UNITS,
8
+ CONTAINER_PADDED_VERTICAL_UNITS,
9
+ containerPaddingUnits,
10
+ resolveContainerMaxWidth,
11
+ } from './Container.metrics';
6
12
  import type { ContainerProps } from './Container.types';
13
+ import { resolveTestId, withoutTestIdProps } from '../../../platform/test-id';
7
14
 
8
15
  export const Container: React.FC<ContainerProps> = ({
9
16
  children,
@@ -11,34 +18,18 @@ export const Container: React.FC<ContainerProps> = ({
11
18
  variant = 'default',
12
19
  padding = 'md',
13
20
  responsive = true,
14
- dataTestId,
15
21
  sx,
16
- ...props
22
+ ...others
17
23
  }) => {
18
24
  const theme = useTheme();
25
+ // `testID` and `dataTestId` are the shared contract's spellings; the DOM
26
+ // wants `data-testid`, and must not see the other two as attributes.
27
+ const testId = resolveTestId(others, 'container');
28
+ const props = withoutTestIdProps(others);
19
29
 
20
- const getPadding = () => {
21
- const paddingMap = {
22
- none: 0,
23
- xs: theme.spacing(1),
24
- sm: theme.spacing(2),
25
- md: theme.spacing(3),
26
- lg: theme.spacing(4),
27
- xl: theme.spacing(6),
28
- };
29
- return paddingMap[padding] || theme.spacing(3);
30
- };
31
-
32
- const getMaxWidth = (): 'xs' | 'sm' | 'md' | 'lg' | 'xl' | false => {
33
- if (variant === 'fluid') return false;
34
- if (variant === 'centered') return 'md';
35
- if (typeof maxWidth === 'string' && ['xs', 'sm', 'md', 'lg', 'xl'].includes(maxWidth)) {
36
- return maxWidth as 'xs' | 'sm' | 'md' | 'lg' | 'xl';
37
- }
38
- if (maxWidth === false) return false;
39
- return 'lg'; // default fallback
40
- };
41
-
30
+ // From the shared metrics, not tables of our own: the native `Container`
31
+ // reads the same units and the same max-width rule, so the two renderers
32
+ // cannot disagree on an inset or a column width.
42
33
  const containerStyles: SxProps<Theme> = {
43
34
  ...(variant === 'centered' && {
44
35
  display: 'flex',
@@ -48,13 +39,13 @@ export const Container: React.FC<ContainerProps> = ({
48
39
  minHeight: '100vh',
49
40
  }),
50
41
  ...(variant === 'padded' && {
51
- paddingTop: theme.spacing(8),
52
- paddingBottom: theme.spacing(8),
42
+ paddingTop: theme.spacing(CONTAINER_PADDED_VERTICAL_UNITS),
43
+ paddingBottom: theme.spacing(CONTAINER_PADDED_VERTICAL_UNITS),
53
44
  }),
54
- padding: getPadding(),
45
+ padding: theme.spacing(containerPaddingUnits(padding, false)),
55
46
  ...(responsive && {
56
47
  [theme.breakpoints.down('sm')]: {
57
- padding: theme.spacing(2),
48
+ padding: theme.spacing(CONTAINER_COMPACT_PADDING_UNITS),
58
49
  },
59
50
  }),
60
51
  ...(sx || {}),
@@ -62,9 +53,9 @@ export const Container: React.FC<ContainerProps> = ({
62
53
 
63
54
  return (
64
55
  <MuiContainer
65
- maxWidth={getMaxWidth()}
56
+ maxWidth={resolveContainerMaxWidth(variant, maxWidth)}
66
57
  sx={containerStyles}
67
- data-testid={dataTestId || 'container'}
58
+ data-testid={testId}
68
59
  {...props}
69
60
  >
70
61
  {children}
@@ -0,0 +1,11 @@
1
+ import type { StyleProp, ViewProps, ViewStyle } from 'react-native';
2
+
3
+ import type { ContainerBaseProps } from './Container.base';
4
+
5
+ export type { ContainerBaseProps, ContainerMaxWidth, ContainerPadding, ContainerVariant } from './Container.base';
6
+
7
+ /** The native `Container`: the shared contract, plus a `View`'s own props where they do not overlap. */
8
+ export type ContainerProps = ContainerBaseProps &
9
+ Omit<ViewProps, keyof ContainerBaseProps | 'style'> & {
10
+ style?: StyleProp<ViewStyle>;
11
+ };
@@ -1,11 +1,10 @@
1
1
  import type { ContainerProps as MuiContainerProps } from '@mui/material/Container/index.js';
2
- import type { ReactNode } from 'react';
3
2
 
4
- export interface ContainerProps extends Omit<MuiContainerProps, 'maxWidth'> {
5
- children: ReactNode;
6
- maxWidth?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | false | string;
7
- variant?: 'default' | 'fluid' | 'centered' | 'padded';
8
- padding?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
9
- responsive?: boolean;
10
- dataTestId?: string;
11
- }
3
+ import type { ContainerBaseProps } from './Container.base';
4
+
5
+ export type { ContainerBaseProps, ContainerMaxWidth, ContainerPadding, ContainerVariant } from './Container.base';
6
+
7
+ /** The web `Container`: the shared contract, plus whatever MUI's `Container` accepts that it does not already name. */
8
+ export interface ContainerProps
9
+ extends ContainerBaseProps,
10
+ Omit<MuiContainerProps, keyof ContainerBaseProps> {}
@@ -0,0 +1,5 @@
1
+ # Container on React Native — known gaps
2
+
3
+ - `variant="padded"` adds no vertical padding on either renderer: the web declares its 64px above and below BEFORE the `padding` shorthand, which overrides them, and native paints the same insets so the two agree. The fix is a web change (`Container.tsx` order) plus `containerPaddingUnits`, made together.
4
+ - `padding="none"` paints the `md` inset on either renderer: the web reads its map with `||`, so `none`'s 0 falls through to the default. Same one-place fix.
5
+ - `responsive` reads `useWindowDimensions().width < 600` in place of MUI's `sm` media query, and `centered` reads the window height in place of `100vh`; both track the window, as CSS would, but a container inside a narrower parent still measures the window, not the parent.
@@ -0,0 +1,8 @@
1
+ export { Container, containerStyle } from './Container.native';
2
+ export type {
3
+ ContainerBaseProps,
4
+ ContainerMaxWidth,
5
+ ContainerPadding,
6
+ ContainerProps,
7
+ ContainerVariant,
8
+ } from './Container.types.native';
@@ -1,2 +1,8 @@
1
1
  export { Container } from './Container';
2
- export type { ContainerProps } from './Container.types';
2
+ export type {
3
+ ContainerBaseProps,
4
+ ContainerMaxWidth,
5
+ ContainerPadding,
6
+ ContainerProps,
7
+ ContainerVariant,
8
+ } from './Container.types';
@@ -0,0 +1,32 @@
1
+ import type { SizeValue } from '../../../tokens/vocabulary';
2
+
3
+ /**
4
+ * THE CONTRACT BOTH `Spacer` RENDERERS HONOUR — and nothing else.
5
+ *
6
+ * No MUI and no react-native here, on purpose: this file ships in both
7
+ * declaration outputs (`dist/types` and `dist/types-native`), and a native
8
+ * consumer has no `@mui/material` to resolve a type import against.
9
+ */
10
+ export type SpacerSize = SizeValue;
11
+ export type SpacerDirection = 'horizontal' | 'vertical' | 'both';
12
+
13
+ /**
14
+ * An explicit dimension: a px number, a percentage, `auto`, or any CSS length.
15
+ * The web hands a string to the DOM as it is; the native renderer reads the CSS
16
+ * lengths it can (`rem`, `em`, `px`) against a 16px root and ignores the rest.
17
+ */
18
+ export type SpacerDimension = number | string;
19
+
20
+ export interface SpacerBaseProps {
21
+ /** A step of the house scale, in spacing units — see `SPACER_SIZE_UNITS`. */
22
+ size?: SpacerSize;
23
+ /** Which axes the step applies to; the other keeps whatever `width`/`height` says. */
24
+ direction?: SpacerDirection;
25
+ /** Overrides the step on that axis, whatever `direction` is. */
26
+ width?: SpacerDimension;
27
+ height?: SpacerDimension;
28
+ /** Grow to fill the free space in a flex row or column. */
29
+ flex?: boolean;
30
+ testID?: string;
31
+ dataTestId?: string;
32
+ }
@@ -13,7 +13,8 @@ The Spacer component creates consistent spacing between elements in layouts. It'
13
13
  | width | number \| string | - | Custom width value (overrides size when provided) |
14
14
  | height | number \| string | - | Custom height value (overrides size when provided) |
15
15
  | flex | boolean | false | When true, spacer flexes to fill available space |
16
- | className | string | - | Additional CSS class for custom styling |
16
+ | className | string | - | Additional CSS class for custom styling (web only) |
17
+ | testID / dataTestId | string | - | Test id, on both renderers (`data-testid` on the web) |
17
18
 
18
19
  ## Usage Examples
19
20
 
@@ -57,6 +58,17 @@ The Spacer component creates consistent spacing between elements in layouts. It'
57
58
  <Spacer direction="vertical" size="sm" />
58
59
  ```
59
60
 
61
+ ## React Native
62
+
63
+ The same import renders natively (`@12-apps/ui/layout/Spacer` resolves to
64
+ `Spacer.native.tsx` under Metro): an empty `View` sized from the same
65
+ `SPACER_SIZE_UNITS` the web hands to `theme.spacing`, so an `md` spacer is 16
66
+ wide on both sides. `width`/`height` take a number, a percentage or `auto` on
67
+ both renderers; a CSS length string (`2rem`, `20px`) is read against the 16px
68
+ root on native, and anything else (`calc()`, `vw`) yields to the size step.
69
+ `testID`, `dataTestId` and `data-testid` all name the element. See
70
+ [NATIVE.md](../../../../NATIVE.md).
71
+
60
72
  ## Accessibility Notes
61
73
 
62
74
  - The Spacer component is purely presentational and has `aria-hidden="true"` to prevent screen readers from announcing it
@@ -0,0 +1,55 @@
1
+ import type { SpacerDirection, SpacerSize } from './Spacer.base';
2
+
3
+ /**
4
+ * THE NUMBERS BOTH `Spacer` RENDERERS DRAW WITH.
5
+ *
6
+ * `Spacer.tsx` used to hold the size steps as a `switch` over
7
+ * `theme.spacing(…)` calls, and `Spacer.native.tsx` would have held them again
8
+ * as a second table. Now there is one, in SPACING UNITS, and each renderer
9
+ * multiplies it out through its own `theme.spacing` — `'16px'` on the web,
10
+ * `16` on native — so an `md` spacer is 16 wide on both sides by construction.
11
+ */
12
+ export const SPACER_SIZE_UNITS: Record<SpacerSize, number> = {
13
+ xs: 0.5,
14
+ sm: 1,
15
+ md: 2,
16
+ lg: 3,
17
+ xl: 4,
18
+ };
19
+
20
+ export const SPACER_DEFAULT_SIZE: SpacerSize = 'md';
21
+ export const SPACER_DEFAULT_DIRECTION: SpacerDirection = 'both';
22
+
23
+ /** `flex` grows the spacer by one share of the free space; every spacer refuses to shrink. */
24
+ export const SPACER_FLEX_GROW = 1;
25
+ export const SPACER_FLEX_SHRINK = 0;
26
+
27
+ /** The geometry props, with the dimension type left to the renderer. */
28
+ export interface SpacerGeometry<Dimension> {
29
+ size?: SpacerSize;
30
+ direction?: SpacerDirection;
31
+ width?: Dimension;
32
+ height?: Dimension;
33
+ }
34
+
35
+ /**
36
+ * The width and height a spacer occupies, on either renderer.
37
+ *
38
+ * An explicit `width`/`height` wins on its axis whatever `direction` says; the
39
+ * step fills only the axes `direction` names. `spacing` is the renderer's own
40
+ * `theme.spacing`, so the same units come out as `'16px'` on the web and `16`
41
+ * on native — the one resolver is what keeps the two from disagreeing.
42
+ */
43
+ export function spacerDimensions<Dimension, Spacing>(
44
+ geometry: SpacerGeometry<Dimension>,
45
+ spacing: (units: number) => Spacing,
46
+ ): { width: Dimension | Spacing | undefined; height: Dimension | Spacing | undefined } {
47
+ const { size = SPACER_DEFAULT_SIZE, direction = SPACER_DEFAULT_DIRECTION, width, height } = geometry;
48
+ // A size outside the vocabulary (a story control, an untyped caller) draws `md`,
49
+ // exactly as the old `switch` did in its `default` arm.
50
+ const step = spacing(SPACER_SIZE_UNITS[size] ?? SPACER_SIZE_UNITS[SPACER_DEFAULT_SIZE]);
51
+ return {
52
+ width: direction === 'vertical' ? width : (width ?? step),
53
+ height: direction === 'horizontal' ? height : (height ?? step),
54
+ };
55
+ }
@@ -0,0 +1,68 @@
1
+ import * as React from 'react';
2
+ import { View, type ViewStyle } from 'react-native';
3
+
4
+ import { SPACER_FLEX_GROW, SPACER_FLEX_SHRINK, spacerDimensions } from './Spacer.metrics';
5
+ import type { SpacerDimension, SpacerProps } from './Spacer.types.native';
6
+ import { resolveTestId, withoutTestIdProps } from '../../../platform/test-id';
7
+ import { useUiTheme } from '../../../provider/use-ui-theme.native';
8
+ import { cssLengthToPx } from '../../../tokens/css-units';
9
+ import type { BoxDimension } from '../Box/Box.base';
10
+
11
+ const PERCENTAGE = /^-?\d+(\.\d+)?%$/;
12
+ /** The lengths a 16px root can resolve. `vw`, `vh`, `ch`, `pt` and `calc()` cannot. */
13
+ const RESOLVABLE_LENGTH = /^-?\d+(\.\d+)?(px|rem|em)$/;
14
+
15
+ /**
16
+ * A caller's dimension as React Native can take it. Numbers, percentages and
17
+ * `auto` pass through; a CSS length (`2rem`, `1.5em`, `20px`) is read against
18
+ * the 16px root the web would use, so the same string measures the same on
19
+ * both sides. Anything else (`calc()`, `vw`) is not a length React Native has,
20
+ * and yields to the size step — the same fallback an unset dimension takes.
21
+ */
22
+ export function toNativeDimension(value: SpacerDimension | undefined): BoxDimension | undefined {
23
+ if (typeof value === 'number') return value;
24
+ if (typeof value !== 'string') return undefined;
25
+ if (value === 'auto') return 'auto';
26
+ if (PERCENTAGE.test(value)) return value as `${number}%`;
27
+ // Matched before conversion, because `cssLengthToPx` reads any string
28
+ // `parseFloat` can start — `50vw` would silently become 50 px.
29
+ if (!RESOLVABLE_LENGTH.test(value)) return undefined;
30
+ const px = cssLengthToPx(value, Number.NaN);
31
+ return Number.isNaN(px) ? undefined : px;
32
+ }
33
+
34
+ /**
35
+ * The native `Spacer`: an empty `View` sized from the same metrics the web
36
+ * puts in `sx`. Hidden from assistive technology and deaf to touches, as the
37
+ * web one is to the pointer.
38
+ */
39
+ export const Spacer = React.forwardRef<View, SpacerProps>(
40
+ ({ size, direction, width, height, flex = false, style, ...others }, ref) => {
41
+ const theme = useUiTheme();
42
+ const dimensions = spacerDimensions(
43
+ { size, direction, width: toNativeDimension(width), height: toNativeDimension(height) },
44
+ theme.spacing,
45
+ );
46
+ // `userSelect` is the one web declaration with no View equivalent: a
47
+ // React Native view holds no text to select.
48
+ const resolved: ViewStyle = {
49
+ width: dimensions.width,
50
+ height: dimensions.height,
51
+ flex: flex ? SPACER_FLEX_GROW : undefined,
52
+ flexShrink: SPACER_FLEX_SHRINK,
53
+ pointerEvents: 'none',
54
+ };
55
+
56
+ return (
57
+ <View
58
+ ref={ref}
59
+ aria-hidden
60
+ style={[resolved, style]}
61
+ testID={resolveTestId(others)}
62
+ {...withoutTestIdProps(others)}
63
+ />
64
+ );
65
+ },
66
+ );
67
+
68
+ Spacer.displayName = 'Spacer';
@@ -2,64 +2,34 @@ import Box from '@mui/material/Box/index.js';
2
2
  import { useTheme } from '@mui/material/styles/index.js';
3
3
  import React from 'react';
4
4
 
5
+ import { SPACER_FLEX_GROW, SPACER_FLEX_SHRINK, spacerDimensions } from './Spacer.metrics';
5
6
  import type { SpacerProps } from './Spacer.types';
7
+ import { resolveTestId } from '../../../platform/test-id';
6
8
 
7
9
  export const Spacer: React.FC<SpacerProps> = ({
8
- size = 'md',
9
- direction = 'both',
10
+ size,
11
+ direction,
10
12
  width,
11
13
  height,
12
14
  flex = false,
13
15
  className,
14
- 'data-testid': dataTestId,
16
+ ...testIdProps
15
17
  }) => {
16
18
  const theme = useTheme();
17
19
 
18
- const getSpacing = () => {
19
- switch (size) {
20
- case 'xs':
21
- return theme.spacing(0.5);
22
- case 'sm':
23
- return theme.spacing(1);
24
- case 'md':
25
- return theme.spacing(2);
26
- case 'lg':
27
- return theme.spacing(3);
28
- case 'xl':
29
- return theme.spacing(4);
30
- default:
31
- return theme.spacing(2);
32
- }
33
- };
34
-
35
- const getDimensions = () => {
36
- const spacing = getSpacing();
37
-
38
- let finalWidth = width;
39
- let finalHeight = height;
40
-
41
- if (direction === 'horizontal' || direction === 'both') {
42
- finalWidth = width ?? spacing;
43
- }
44
-
45
- if (direction === 'vertical' || direction === 'both') {
46
- finalHeight = height ?? spacing;
47
- }
48
-
49
- return { width: finalWidth, height: finalHeight };
50
- };
51
-
52
- const dimensions = getDimensions();
20
+ // From the shared metrics, not a table of our own: the native `Spacer` reads
21
+ // the same units, so the two renderers cannot disagree on a step.
22
+ const dimensions = spacerDimensions({ size, direction, width, height }, (units) => theme.spacing(units));
53
23
 
54
24
  return (
55
25
  <Box
56
26
  className={className}
57
- data-testid={dataTestId}
27
+ data-testid={resolveTestId(testIdProps)}
58
28
  sx={{
59
29
  width: dimensions.width,
60
30
  height: dimensions.height,
61
- flex: flex ? 1 : undefined,
62
- flexShrink: 0,
31
+ flex: flex ? SPACER_FLEX_GROW : undefined,
32
+ flexShrink: SPACER_FLEX_SHRINK,
63
33
  pointerEvents: 'none',
64
34
  userSelect: 'none',
65
35
  }}
@@ -0,0 +1,11 @@
1
+ import type { StyleProp, ViewProps, ViewStyle } from 'react-native';
2
+
3
+ import type { SpacerBaseProps } from './Spacer.base';
4
+
5
+ export type { SpacerBaseProps, SpacerDimension, SpacerDirection, SpacerSize } from './Spacer.base';
6
+
7
+ /** The native `Spacer`: the shared contract, plus a `View`'s own props where they do not overlap. */
8
+ export type SpacerProps = SpacerBaseProps &
9
+ Omit<ViewProps, keyof SpacerBaseProps | 'style'> & {
10
+ style?: StyleProp<ViewStyle>;
11
+ };
@@ -1,13 +1,9 @@
1
- import type { SizeValue } from '../../../tokens/scales';
2
- export type SpacerSize = SizeValue;
3
- export type SpacerDirection = 'horizontal' | 'vertical' | 'both';
1
+ import type { SpacerBaseProps } from './Spacer.base';
4
2
 
5
- export interface SpacerProps {
6
- size?: SpacerSize;
7
- direction?: SpacerDirection;
8
- width?: number | string;
9
- height?: number | string;
10
- flex?: boolean;
3
+ export type { SpacerBaseProps, SpacerDimension, SpacerDirection, SpacerSize } from './Spacer.base';
4
+
5
+ /** The web `Spacer`: the shared contract, plus the DOM's class hook and its own test-id spelling. */
6
+ export interface SpacerProps extends SpacerBaseProps {
11
7
  className?: string;
12
8
  'data-testid'?: string;
13
9
  }
@@ -0,0 +1,2 @@
1
+ export { Spacer } from './Spacer.native';
2
+ export type { SpacerBaseProps, SpacerDimension, SpacerDirection, SpacerProps, SpacerSize } from './Spacer.types.native';
@@ -1,2 +1,2 @@
1
1
  export { Spacer } from './Spacer';
2
- export type { SpacerProps } from './Spacer.types';
2
+ export type { SpacerBaseProps, SpacerDimension, SpacerDirection, SpacerProps, SpacerSize } from './Spacer.types';
@@ -0,0 +1,55 @@
1
+ import type React from 'react';
2
+
3
+ import type { HeadingLevel } from '../../../tokens/heading-scale';
4
+ import type { ColorValue } from '../../../tokens/vocabulary';
5
+
6
+ /**
7
+ * THE CONTRACT BOTH `Heading` RENDERERS HONOUR — and nothing else.
8
+ *
9
+ * No MUI and no react-native here, on purpose: this file ships in both
10
+ * declaration outputs (`dist/types` and `dist/types-native`), and a native
11
+ * consumer has no `@mui/material` to resolve a type import against. The web
12
+ * adds a heading element's attributes in `Heading.types.ts`; the native side
13
+ * adds a react-native `Text`'s props in `Heading.types.native.ts`.
14
+ */
15
+ export type { HeadingLevel };
16
+
17
+ export type HeadingWeight = 'light' | 'normal' | 'medium' | 'semibold' | 'bold';
18
+
19
+ export interface HeadingBaseProps {
20
+ /**
21
+ * The heading's RANK — which tag it renders (`aria-level` on native) and
22
+ * where it sits in the document outline. Not its size; see {@link HeadingBaseProps.size}.
23
+ */
24
+ level?: HeadingLevel;
25
+ /**
26
+ * The step of the type scale to DRAW, when it differs from the rank. Defaults
27
+ * to `level`, so every call written before this prop existed renders exactly
28
+ * as it did.
29
+ *
30
+ * It exists because `level` used to do three jobs at once — pick the tag, set
31
+ * the outline rank, set the font size — with no way to separate them. A page
32
+ * title is an `h1` to a screen reader whatever it looks like, and a dense
33
+ * screen may not want it drawn at the rank's size. Before this the only way to
34
+ * say that was to override the component's CSS from outside, which each
35
+ * consuming app ended up doing in its own dialect.
36
+ *
37
+ * ```tsx
38
+ * <Heading level="h1" size="h3">Visão geral</Heading>
39
+ * ```
40
+ *
41
+ * Reach for it when the two genuinely differ for ONE heading. If a whole
42
+ * product wants a different scale, set `typography.headingScale` on the theme
43
+ * instead — that is the knob for "our headings are smaller", and this is the
44
+ * one for "this heading is".
45
+ */
46
+ size?: HeadingLevel;
47
+ color?: ColorValue;
48
+ /** `normal` is the weight the step was designed to carry, not body text's 400. */
49
+ weight?: HeadingWeight;
50
+ /** Paint the glyphs with the colour's two-stop gradient (the first stop, flat, on native). */
51
+ gradient?: boolean;
52
+ children: React.ReactNode;
53
+ testID?: string;
54
+ dataTestId?: string;
55
+ }
@@ -164,6 +164,19 @@ Gradient text uses CSS `background-clip: text` with fallback support:
164
164
  - **Danger**: Linear gradient from error.light to error.dark
165
165
  - **Default**: Primary to secondary gradient
166
166
 
167
+ ## React Native
168
+
169
+ The same import renders natively (`@12-apps/ui/typography/Heading` resolves
170
+ to `Heading.native.tsx` under Metro): a react-native `Text` with
171
+ `role="heading"` and `aria-level` set from `level` (`display` announces 1),
172
+ drawn at `size ?? level` from the theme's heading scale
173
+ (`UiTheme.typography.heading`, `HEADING_SCALE` unless the host built its own)
174
+ with the same weights and colour mapping. `gradient` paints the gradient's
175
+ first stop as a flat colour — React Native has no `background-clip: text`
176
+ (see `NATIVE-NOTES.md`). `testID`, `dataTestId` and `data-testid` all name the
177
+ element; `onClick` and `onPress` both fire. See
178
+ [NATIVE.md](../../../../NATIVE.md).
179
+
167
180
  ## Accessibility
168
181
 
169
182
  - Maintains proper semantic heading hierarchy
@@ -0,0 +1,84 @@
1
+ import type { HeadingWeight } from './Heading.base';
2
+ import { HEADING_SCALE, type HeadingLevel } from '../../../tokens/heading-scale';
3
+ import { FONT_WEIGHTS, type UiTheme } from '../../../tokens/theme';
4
+ import type { ColorValue } from '../../../tokens/vocabulary';
5
+
6
+ /**
7
+ * THE NUMBERS BOTH `Heading` RENDERERS DRAW WITH.
8
+ *
9
+ * The type scale itself is `HEADING_SCALE` in `tokens/heading-scale.ts` (the
10
+ * web reads it through the MUI theme's `headingScale` overrides, native
11
+ * through `UiTheme.typography.heading`). What lives here is everything ELSE
12
+ * `Heading.styles.ts` used to declare inline: the weight table, the defaults,
13
+ * the rank each level announces, and the gradient's angle and stops.
14
+ */
15
+ export const HEADING_WEIGHTS: Record<HeadingWeight, number> = FONT_WEIGHTS;
16
+
17
+ export const HEADING_DEFAULT_LEVEL: HeadingLevel = 'h2';
18
+ export const HEADING_DEFAULT_WEIGHT: HeadingWeight = 'bold';
19
+ export const HEADING_DEFAULT_COLOR: ColorValue = 'neutral';
20
+
21
+ export type HeadingRank = 1 | 2 | 3 | 4 | 5 | 6;
22
+
23
+ /**
24
+ * The outline rank each level announces — the tag on the web, `aria-level` on
25
+ * native. `display` is a SIZE, not a rank, so it is an h1: the document still
26
+ * gets one level-one heading rather than an unnamed tag outside the outline.
27
+ */
28
+ export const HEADING_RANK: Record<HeadingLevel, HeadingRank> = {
29
+ display: 1,
30
+ h1: 1,
31
+ h2: 2,
32
+ h3: 3,
33
+ h4: 4,
34
+ h5: 5,
35
+ h6: 6,
36
+ };
37
+
38
+ /** A step name the scale actually has, or the documented default (`h2`). */
39
+ export const stepOf = (value: string | undefined): HeadingLevel =>
40
+ value !== undefined && value in HEADING_SCALE ? (value as HeadingLevel) : HEADING_DEFAULT_LEVEL;
41
+
42
+ const isHeadingWeight = (value: string): value is HeadingWeight => value in HEADING_WEIGHTS;
43
+
44
+ /**
45
+ * The weight a heading draws: `normal` is the weight the step was designed to
46
+ * carry (heavier as the step gets larger), anything else its table entry, and
47
+ * a name outside the vocabulary the default — as `Heading.styles.ts` has
48
+ * always fallen back.
49
+ */
50
+ export function headingWeight(weight: string, normalWeight: number): number {
51
+ if (weight === 'normal') return normalWeight;
52
+ return HEADING_WEIGHTS[isHeadingWeight(weight) ? weight : HEADING_DEFAULT_WEIGHT];
53
+ }
54
+
55
+ /** The gradient runs corner to corner. */
56
+ export const HEADING_GRADIENT_ANGLE = 135;
57
+
58
+ /**
59
+ * `neutral` has no light/dark pair, so its gradient runs between two steps of
60
+ * the grey ramp.
61
+ */
62
+ export const NEUTRAL_GRADIENT_STEPS = { from: 500, to: 900 } as const;
63
+
64
+ /** The CSS the web paints the glyphs with, from the two stops. */
65
+ export const headingGradient = (from: string, to: string): string =>
66
+ `linear-gradient(${HEADING_GRADIENT_ANGLE}deg, ${from} 0%, ${to} 100%)`;
67
+
68
+ /**
69
+ * The two stops each colour paints its glyphs with, read off a `UiTheme`. The
70
+ * web's `Heading.styles.ts` keeps its MUI-typed twin of this table; the pairs
71
+ * are the same, and `Heading.native.test.tsx` asserts as much.
72
+ */
73
+ export function headingGradientStops(theme: UiTheme, color: ColorValue): [string, string] {
74
+ switch (color) {
75
+ case 'primary':
76
+ return [theme.palette.primary.main, theme.palette.secondary.main];
77
+ case 'secondary':
78
+ return [theme.palette.secondary.main, theme.palette.primary.main];
79
+ case 'neutral':
80
+ return [theme.palette.grey[NEUTRAL_GRADIENT_STEPS.from], theme.palette.grey[NEUTRAL_GRADIENT_STEPS.to]];
81
+ default:
82
+ return [theme.palette[color].light, theme.palette[color].dark];
83
+ }
84
+ }