@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
@@ -0,0 +1,175 @@
1
+ import * as React from 'react';
2
+ import {
3
+ ActivityIndicator,
4
+ Platform,
5
+ StyleSheet,
6
+ Text as RNText,
7
+ View,
8
+ type StyleProp,
9
+ type TextStyle,
10
+ type ViewStyle,
11
+ } from 'react-native';
12
+
13
+ import { type LoadingStateTestIds, makeTestIds, resolveLoadingStateProps } from './LoadingState.helpers';
14
+ import {
15
+ IOS_LARGE_SPINNER_FROM,
16
+ MESSAGE_TYPE,
17
+ SKELETON_FULL_ROW_WIDTH,
18
+ SKELETON_LAST_ROW_WIDTH,
19
+ SKELETON_MESSAGE_MARGIN_TOP_UNITS,
20
+ SKELETON_PADDING_UNITS,
21
+ SKELETON_RADIUS,
22
+ SKELETON_ROW_GAP_UNITS,
23
+ SKELETON_ROW_HEIGHT,
24
+ SKELETON_TINT_ALPHA,
25
+ SPINNER_GAP_UNITS,
26
+ SPINNER_MIN_HEIGHT,
27
+ SPINNER_PADDING_UNITS,
28
+ SPINNER_SIZES,
29
+ } from './LoadingState.metrics';
30
+ import type { LoadingStateProps, LoadingStateSize } from './LoadingState.types.native';
31
+ import { resolveTestId, withoutTestIdProps } from '../../../platform/test-id';
32
+ import { useUiTheme } from '../../../provider/use-ui-theme.native';
33
+ import { alpha } from '../../../tokens/color';
34
+ import { muiTypeStyle } from '../../../tokens/mui-type';
35
+ import type { UiTheme } from '../../../tokens/theme';
36
+
37
+ /** The message's type: MUI's `body2`/`body1`/`h6` per size, in the muted ink, as the web's `Typography` sets it. */
38
+ export function messageStyle(theme: UiTheme, size: LoadingStateSize): TextStyle {
39
+ return { ...muiTypeStyle(theme, MESSAGE_TYPE[size]), color: theme.palette.text.secondary };
40
+ }
41
+
42
+ /** The skeleton rows' tint: the house `Skeleton`'s `medium` intensity. */
43
+ export const skeletonTint = (theme: UiTheme): string =>
44
+ alpha(theme.palette.text.primary, SKELETON_TINT_ALPHA);
45
+
46
+ /** iOS has two spinner sizes; everything else takes the px. */
47
+ function spinnerSize(px: number): number | 'small' | 'large' {
48
+ if (Platform.OS !== 'ios') return px;
49
+ return px >= IOS_LARGE_SPINNER_FROM ? 'large' : 'small';
50
+ }
51
+
52
+ interface ViewArgs {
53
+ message?: string;
54
+ size: LoadingStateSize;
55
+ skeletonRows: number;
56
+ testIds: LoadingStateTestIds;
57
+ style?: StyleProp<ViewStyle>;
58
+ rest: Omit<LoadingStateProps, keyof ViewArgs | 'variant' | 'testID' | 'dataTestId'>;
59
+ }
60
+
61
+ function LoadingMessage({
62
+ message,
63
+ size,
64
+ testIds,
65
+ style,
66
+ }: Pick<ViewArgs, 'message' | 'size' | 'testIds'> & { style?: TextStyle }): React.JSX.Element | null {
67
+ const theme = useUiTheme();
68
+ if (!message) return null;
69
+ return (
70
+ <RNText style={[messageStyle(theme, size), style]} testID={testIds.named('message')}>
71
+ {message}
72
+ </RNText>
73
+ );
74
+ }
75
+
76
+ function SkeletonRows({ size, skeletonRows, testIds }: Pick<ViewArgs, 'size' | 'skeletonRows' | 'testIds'>): React.JSX.Element {
77
+ const theme = useUiTheme();
78
+ const tint = skeletonTint(theme);
79
+ return (
80
+ <View style={{ gap: theme.spacing(SKELETON_ROW_GAP_UNITS) }}>
81
+ {Array.from({ length: skeletonRows }, (_, index) => (
82
+ <View
83
+ key={`skeleton-row-${index}`}
84
+ aria-hidden
85
+ testID={testIds.optional(`skeleton-${index}`)}
86
+ style={{
87
+ height: SKELETON_ROW_HEIGHT[size],
88
+ // The last row is short, so the block reads as a paragraph of text.
89
+ width: index === skeletonRows - 1 ? SKELETON_LAST_ROW_WIDTH : SKELETON_FULL_ROW_WIDTH,
90
+ borderRadius: SKELETON_RADIUS,
91
+ backgroundColor: tint,
92
+ }}
93
+ />
94
+ ))}
95
+ </View>
96
+ );
97
+ }
98
+
99
+ function SkeletonView({ message, size, skeletonRows, testIds, style, rest }: ViewArgs): React.JSX.Element {
100
+ const theme = useUiTheme();
101
+ return (
102
+ <View
103
+ role="status"
104
+ aria-busy
105
+ aria-label={message || 'Loading content'}
106
+ testID={testIds.base}
107
+ style={[styles.skeleton, { padding: theme.spacing(SKELETON_PADDING_UNITS) }, style]}
108
+ {...rest}
109
+ >
110
+ <SkeletonRows size={size} skeletonRows={skeletonRows} testIds={testIds} />
111
+ <LoadingMessage
112
+ message={message}
113
+ size={size}
114
+ testIds={testIds}
115
+ style={{ marginTop: theme.spacing(SKELETON_MESSAGE_MARGIN_TOP_UNITS), textAlign: 'center' }}
116
+ />
117
+ </View>
118
+ );
119
+ }
120
+
121
+ function SpinnerView({ message, size, testIds, style, rest }: ViewArgs): React.JSX.Element {
122
+ const theme = useUiTheme();
123
+ return (
124
+ <View
125
+ role="status"
126
+ aria-busy
127
+ aria-label={message || 'Loading'}
128
+ testID={testIds.base}
129
+ style={[
130
+ styles.spinner,
131
+ {
132
+ padding: theme.spacing(SPINNER_PADDING_UNITS),
133
+ minHeight: SPINNER_MIN_HEIGHT,
134
+ gap: theme.spacing(SPINNER_GAP_UNITS),
135
+ },
136
+ style,
137
+ ]}
138
+ {...rest}
139
+ >
140
+ <ActivityIndicator
141
+ size={spinnerSize(SPINNER_SIZES[size])}
142
+ color={theme.palette.primary.main}
143
+ testID={testIds.named('spinner')}
144
+ />
145
+ <LoadingMessage message={message} size={size} testIds={testIds} />
146
+ </View>
147
+ );
148
+ }
149
+
150
+ export const LoadingState: React.FC<LoadingStateProps> = React.memo(function LoadingState(rawProps) {
151
+ const resolved = resolveLoadingStateProps(rawProps);
152
+ const { variant, message, size, skeletonRows, style, ...others } = resolved;
153
+ const args: ViewArgs = {
154
+ message,
155
+ size,
156
+ skeletonRows,
157
+ style,
158
+ testIds: makeTestIds(resolveTestId(others)),
159
+ rest: withoutTestIdProps(others),
160
+ };
161
+
162
+ return variant === 'skeleton' ? <SkeletonView {...args} /> : <SpinnerView {...args} />;
163
+ });
164
+
165
+ LoadingState.displayName = 'LoadingState';
166
+
167
+ const styles = StyleSheet.create({
168
+ skeleton: {
169
+ width: '100%',
170
+ },
171
+ spinner: {
172
+ alignItems: 'center',
173
+ justifyContent: 'center',
174
+ },
175
+ });
@@ -13,7 +13,19 @@ import {
13
13
  SIZE_MAP,
14
14
  SKELETON_ROW_HEIGHT,
15
15
  } from './LoadingState.helpers';
16
+ import {
17
+ SKELETON_FULL_ROW_WIDTH,
18
+ SKELETON_LAST_ROW_WIDTH,
19
+ SKELETON_MESSAGE_MARGIN_TOP_UNITS,
20
+ SKELETON_PADDING_UNITS,
21
+ SKELETON_RADIUS,
22
+ SKELETON_ROW_GAP_UNITS,
23
+ SPINNER_GAP_UNITS,
24
+ SPINNER_MIN_HEIGHT,
25
+ SPINNER_PADDING_UNITS,
26
+ } from './LoadingState.metrics';
16
27
  import type { LoadingStateProps, LoadingStateSize } from './LoadingState.types';
28
+ import { resolveTestId } from '../../../platform/test-id';
17
29
 
18
30
  interface ViewProps {
19
31
  message?: string;
@@ -58,10 +70,10 @@ const SkeletonView: React.FC<ViewProps> = ({
58
70
  data-testid={testIds.base}
59
71
  sx={{
60
72
  width: '100%',
61
- padding: theme.spacing(3),
73
+ padding: theme.spacing(SKELETON_PADDING_UNITS),
62
74
  }}
63
75
  >
64
- <Stack spacing={2}>
76
+ <Stack spacing={SKELETON_ROW_GAP_UNITS}>
65
77
  {Array.from({ length: skeletonRows }).map((_, index) => (
66
78
  <Skeleton
67
79
  key={`skeleton-row-${index}`}
@@ -69,8 +81,8 @@ const SkeletonView: React.FC<ViewProps> = ({
69
81
  animation="wave"
70
82
  height={SKELETON_ROW_HEIGHT[size]}
71
83
  // The last row is short, so the block reads as a paragraph of text.
72
- width={index === skeletonRows - 1 ? '60%' : '100%'}
73
- borderRadius={4}
84
+ width={index === skeletonRows - 1 ? SKELETON_LAST_ROW_WIDTH : SKELETON_FULL_ROW_WIDTH}
85
+ borderRadius={SKELETON_RADIUS}
74
86
  data-testid={testIds.optional(`skeleton-${index}`)}
75
87
  />
76
88
  ))}
@@ -79,7 +91,7 @@ const SkeletonView: React.FC<ViewProps> = ({
79
91
  message={message}
80
92
  size={size}
81
93
  testIds={testIds}
82
- sx={{ mt: 2, textAlign: 'center' }}
94
+ sx={{ mt: SKELETON_MESSAGE_MARGIN_TOP_UNITS, textAlign: 'center' }}
83
95
  />
84
96
  </Box>
85
97
  );
@@ -100,9 +112,9 @@ const SpinnerView: React.FC<ViewProps> = ({ message, size, className, testIds })
100
112
  flexDirection: 'column',
101
113
  alignItems: 'center',
102
114
  justifyContent: 'center',
103
- padding: theme.spacing(6),
104
- minHeight: 200,
105
- gap: theme.spacing(2),
115
+ padding: theme.spacing(SPINNER_PADDING_UNITS),
116
+ minHeight: SPINNER_MIN_HEIGHT,
117
+ gap: theme.spacing(SPINNER_GAP_UNITS),
106
118
  }}
107
119
  >
108
120
  <CircularProgress
@@ -115,14 +127,16 @@ const SpinnerView: React.FC<ViewProps> = ({ message, size, className, testIds })
115
127
  };
116
128
 
117
129
  export const LoadingState: React.FC<LoadingStateProps> = React.memo((rawProps) => {
118
- const { variant, message, size, skeletonRows, className, dataTestId } =
119
- resolveLoadingStateProps(rawProps);
130
+ const resolved = resolveLoadingStateProps(rawProps);
131
+ const { variant, message, size, skeletonRows, className } = resolved;
120
132
  const viewProps: ViewProps = {
121
133
  message,
122
134
  size,
123
135
  skeletonRows,
124
136
  className,
125
- testIds: makeTestIds(dataTestId),
137
+ // `dataTestId` is the documented spelling; `testID`, the shared contract's
138
+ // other one, resolves to the same id.
139
+ testIds: makeTestIds(resolveTestId(resolved)),
126
140
  };
127
141
 
128
142
  return variant === 'skeleton' ? (
@@ -0,0 +1,11 @@
1
+ import type { StyleProp, ViewProps, ViewStyle } from 'react-native';
2
+
3
+ import type { LoadingStateBaseProps } from './LoadingState.base';
4
+
5
+ export type { LoadingStateBaseProps, LoadingStateSize, LoadingStateVariant } from './LoadingState.base';
6
+
7
+ /** The native `LoadingState`: the shared contract, plus a `View`'s own props. */
8
+ export type LoadingStateProps = LoadingStateBaseProps &
9
+ Omit<ViewProps, keyof LoadingStateBaseProps | 'style'> & {
10
+ style?: StyleProp<ViewStyle>;
11
+ };
@@ -1,38 +1,10 @@
1
- import type { SizeValue } from '../../../tokens/scales';
2
- export type LoadingStateVariant = 'spinner' | 'skeleton';
3
- export type LoadingStateSize = SizeValue;
1
+ import type { LoadingStateBaseProps } from './LoadingState.base';
4
2
 
5
- export interface LoadingStateProps {
6
- /**
7
- * The visual style of the loading indicator
8
- * @default 'spinner'
9
- */
10
- variant?: LoadingStateVariant;
11
-
12
- /**
13
- * Optional message to display below the loading indicator
14
- */
15
- message?: string;
16
-
17
- /**
18
- * Size of the loading indicator
19
- * @default 'md'
20
- */
21
- size?: LoadingStateSize;
22
-
23
- /**
24
- * Number of skeleton rows to display (only for skeleton variant)
25
- * @default 3
26
- */
27
- skeletonRows?: number;
3
+ export type { LoadingStateBaseProps, LoadingStateSize, LoadingStateVariant } from './LoadingState.base';
28
4
 
5
+ export interface LoadingStateProps extends LoadingStateBaseProps {
29
6
  /**
30
7
  * Custom className for the container
31
8
  */
32
9
  className?: string;
33
-
34
- /**
35
- * Test ID for component testing
36
- */
37
- dataTestId?: string;
38
10
  }
@@ -0,0 +1,7 @@
1
+ # LoadingState on React Native
2
+
3
+ Known rendering gaps, one bullet each; `pnpm native:ledger` reads them.
4
+
5
+ - The spinner is the platform's `ActivityIndicator`, not MUI's 3.6-unit arc: same diameter and primary colour, the platform's own stroke; on iOS the two built-in sizes stand in for the five (`md` and up draw `large`).
6
+ - The skeleton rows are the static tint (`alpha(text.primary, 0.13)`); MUI's `wave` sweep is a gradient pseudo-element React Native cannot draw.
7
+ - The message is set in MUI's default `body2`/`body1`/`h6` numbers; a host that re-themes MUI's typography variants moves the web only.
@@ -0,0 +1,7 @@
1
+ export { LoadingState } from './LoadingState.native';
2
+ export type {
3
+ LoadingStateBaseProps,
4
+ LoadingStateProps,
5
+ LoadingStateSize,
6
+ LoadingStateVariant,
7
+ } from './LoadingState.types.native';
@@ -1,2 +1,7 @@
1
1
  export { LoadingState } from './LoadingState';
2
- export type { LoadingStateProps, LoadingStateSize, LoadingStateVariant } from './LoadingState.types';
2
+ export type {
3
+ LoadingStateBaseProps,
4
+ LoadingStateProps,
5
+ LoadingStateSize,
6
+ LoadingStateVariant,
7
+ } from './LoadingState.types';
@@ -6,7 +6,6 @@ import {
6
6
  Platform,
7
7
  Pressable,
8
8
  StyleSheet,
9
- Text as RNText,
10
9
  View,
11
10
  type GestureResponderEvent,
12
11
  type PressableStateCallbackType,
@@ -38,6 +37,7 @@ import {
38
37
  quietInk,
39
38
  } from './Button.metrics';
40
39
  import type { ButtonProps, ButtonVariant } from './Button.types.native';
40
+ import { renderTextChildren } from '../../../platform/text-children';
41
41
  import { childTestId, resolveTestId, withoutTestIdProps } from '../../../platform/test-id';
42
42
  import { useUiTheme } from '../../../provider/use-ui-theme.native';
43
43
  import { alpha } from '../../../tokens/color';
@@ -192,22 +192,6 @@ function Pulse({ color, radius, testID }: { color: string; radius: number; testI
192
192
  );
193
193
  }
194
194
 
195
- /**
196
- * A string or number child is the label and gets the label style; anything
197
- * else is rendered as given. No test id of its own: the web puts none on the
198
- * label, and a shared story that counts `/perf-button-/` must count buttons.
199
- */
200
- function renderChildren(children: React.ReactNode, label: TextStyle): React.ReactNode {
201
- return React.Children.map(children, (child) =>
202
- typeof child === 'string' || typeof child === 'number' ? (
203
- <RNText style={label} numberOfLines={1}>
204
- {child}
205
- </RNText>
206
- ) : (
207
- child
208
- ),
209
- );
210
- }
211
195
 
212
196
  type ResolvedProps = ReturnType<typeof resolveButtonProps<ButtonProps>>;
213
197
 
@@ -316,7 +300,7 @@ export const Button = React.forwardRef<View, ButtonProps>((rawProps, ref) => {
316
300
  >
317
301
  {pulse && !look.inactive ? <Pulse color={look.palette.main} radius={look.radius} testID={idFor('pulse')} /> : null}
318
302
  {iconPosition === 'left' ? iconNode : null}
319
- {loading ? <Spinner color={look.label.color as string} testID={idFor('loading')} /> : renderChildren(children, look.label)}
303
+ {loading ? <Spinner color={look.label.color as string} testID={idFor('loading')} /> : renderTextChildren(children, look.label, 1)}
320
304
  {iconPosition === 'right' ? iconNode : null}
321
305
  </Pressable>
322
306
  );
@@ -0,0 +1,32 @@
1
+ import type React from 'react';
2
+
3
+ /**
4
+ * THE CONTRACT BOTH `Container` 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. The web
9
+ * adds MUI `Container`'s own props in `Container.types.ts`; the native side
10
+ * adds a `View`'s in `Container.types.native.ts`.
11
+ */
12
+ export type ContainerMaxWidth = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | false;
13
+ export type ContainerVariant = 'default' | 'fluid' | 'centered' | 'padded';
14
+ export type ContainerPadding = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
15
+
16
+ export interface ContainerBaseProps {
17
+ children: React.ReactNode;
18
+ /**
19
+ * The widest the content column gets, as one of MUI's breakpoints — see
20
+ * `CONTAINER_MAX_WIDTHS`. `false` removes the limit. Any other string is
21
+ * read as `lg`, as the web has always done.
22
+ */
23
+ maxWidth?: ContainerMaxWidth | string;
24
+ /** `fluid` drops the limit, `centered` centres the content in the viewport, `padded` is a main content area. */
25
+ variant?: ContainerVariant;
26
+ /** The inset on every side, on the spacing scale — see `CONTAINER_PADDING_UNITS`. */
27
+ padding?: ContainerPadding;
28
+ /** Tighten the inset under MUI's `sm` breakpoint (600px). */
29
+ responsive?: boolean;
30
+ testID?: string;
31
+ dataTestId?: string;
32
+ }
@@ -100,6 +100,20 @@ Adds extra vertical padding, useful for main content areas.
100
100
  - **lg**: 32px padding
101
101
  - **xl**: 48px padding
102
102
 
103
+ ## React Native
104
+
105
+ The same import renders natively (`@12-apps/ui/layout/Container` resolves to
106
+ `Container.native.tsx` under Metro): a `View` that is `width: 100%` between
107
+ auto margins, limited to the same MUI breakpoint widths
108
+ (`CONTAINER_MAX_WIDTHS`), inset from the same spacing units
109
+ (`CONTAINER_PADDING_UNITS`). The `responsive` media query becomes a
110
+ `useWindowDimensions().width < 600` test and `centered`'s `100vh` the window
111
+ height. `testID`, `dataTestId` and `data-testid` all name the element;
112
+ `container` is the default. Both renderers read one `containerPaddingUnits`,
113
+ which paints what the web paints today — including two quirks recorded in
114
+ `NATIVE-NOTES.md` (`padding="none"` and `variant="padded"` both paint the
115
+ default inset). See [NATIVE.md](../../../../NATIVE.md).
116
+
103
117
  ## Accessibility
104
118
 
105
119
  - The component maintains semantic HTML structure
@@ -0,0 +1,87 @@
1
+ import type { ContainerMaxWidth, ContainerPadding, ContainerVariant } from './Container.base';
2
+
3
+ /**
4
+ * THE NUMBERS BOTH `Container` RENDERERS DRAW WITH.
5
+ *
6
+ * `Container.tsx` used to hold these as `theme.spacing(…)` calls and MUI's
7
+ * breakpoint names inside the component; the native renderer has no MUI
8
+ * breakpoints to name, so the values live here in SPACING UNITS and px, and
9
+ * each renderer multiplies the units out through its own `theme.spacing`.
10
+ */
11
+ export type ContainerMaxWidthKey = Exclude<ContainerMaxWidth, false>;
12
+
13
+ /**
14
+ * MUI's default breakpoints, which its `Container` reads as `max-width`
15
+ * (`xs` is `Math.max(values.xs, 444)`). MUI applies each under
16
+ * `min-width: <breakpoint>`, but below it the column is `width: 100%` and
17
+ * narrower anyway, so a plain `maxWidth` paints the same.
18
+ */
19
+ export const CONTAINER_MAX_WIDTHS: Record<ContainerMaxWidthKey, number> = {
20
+ xs: 444,
21
+ sm: 600,
22
+ md: 900,
23
+ lg: 1200,
24
+ xl: 1536,
25
+ };
26
+
27
+ export const CONTAINER_DEFAULT_MAX_WIDTH: ContainerMaxWidthKey = 'lg';
28
+ /** The `centered` variant reads at `md`, whatever `maxWidth` says. */
29
+ export const CONTAINER_CENTERED_MAX_WIDTH: ContainerMaxWidthKey = 'md';
30
+
31
+ export const CONTAINER_PADDING_UNITS: Record<ContainerPadding, number> = {
32
+ none: 0,
33
+ xs: 1,
34
+ sm: 2,
35
+ md: 3,
36
+ lg: 4,
37
+ xl: 6,
38
+ };
39
+
40
+ export const CONTAINER_DEFAULT_PADDING: ContainerPadding = 'md';
41
+
42
+ /** What `variant="padded"` declares above and below, in spacing units. */
43
+ export const CONTAINER_PADDED_VERTICAL_UNITS = 8;
44
+
45
+ /** Under {@link CONTAINER_COMPACT_BELOW}, a `responsive` container tightens to this. */
46
+ export const CONTAINER_COMPACT_PADDING_UNITS = 2;
47
+
48
+ /** MUI's `sm` breakpoint: `theme.breakpoints.down('sm')` is `max-width: 599.95px`. */
49
+ export const CONTAINER_COMPACT_BELOW = 600;
50
+
51
+ const isMaxWidthKey = (value: string): value is ContainerMaxWidthKey => value in CONTAINER_MAX_WIDTHS;
52
+
53
+ /**
54
+ * The breakpoint the column is limited to, or `false` for none. `fluid` drops
55
+ * the limit, `centered` fixes it at `md`, and a string outside the vocabulary
56
+ * reads as the default — the rules `Container.tsx` has always applied.
57
+ */
58
+ export function resolveContainerMaxWidth(
59
+ variant: ContainerVariant,
60
+ maxWidth: ContainerMaxWidth | string,
61
+ ): ContainerMaxWidthKey | false {
62
+ if (variant === 'fluid') return false;
63
+ if (variant === 'centered') return CONTAINER_CENTERED_MAX_WIDTH;
64
+ if (typeof maxWidth === 'string' && isMaxWidthKey(maxWidth)) return maxWidth;
65
+ return maxWidth === false ? false : CONTAINER_DEFAULT_MAX_WIDTH;
66
+ }
67
+
68
+ /**
69
+ * The inset every side of the container is PAINTED with, in spacing units.
70
+ *
71
+ * This is the web's painted result, not its declared intent, and two of its
72
+ * rules are worth knowing before reaching for them:
73
+ *
74
+ * - `padding="none"` paints the default. The web reads its map with `||`, so
75
+ * `none`'s 0 falls through to `md`.
76
+ * - `variant="padded"` paints the same inset as `default`. The web declares its
77
+ * {@link CONTAINER_PADDED_VERTICAL_UNITS} above and below BEFORE the
78
+ * `padding` shorthand, which therefore overrides them.
79
+ *
80
+ * Both renderers read this one function so they agree today; either fix is a
81
+ * change to the web's emitted CSS and to this function, made together.
82
+ */
83
+ export function containerPaddingUnits(padding: ContainerPadding | string, compact: boolean): number {
84
+ if (compact) return CONTAINER_COMPACT_PADDING_UNITS;
85
+ const units = (CONTAINER_PADDING_UNITS as Record<string, number | undefined>)[padding];
86
+ return units || CONTAINER_PADDING_UNITS[CONTAINER_DEFAULT_PADDING];
87
+ }
@@ -0,0 +1,71 @@
1
+ import * as React from 'react';
2
+ import { View, useWindowDimensions, type ViewStyle } from 'react-native';
3
+
4
+ import {
5
+ CONTAINER_COMPACT_BELOW,
6
+ CONTAINER_MAX_WIDTHS,
7
+ containerPaddingUnits,
8
+ resolveContainerMaxWidth,
9
+ } from './Container.metrics';
10
+ import type { ContainerMaxWidth, ContainerPadding, ContainerProps, ContainerVariant } from './Container.types.native';
11
+ import { resolveTestId, withoutTestIdProps } from '../../../platform/test-id';
12
+ import { useUiTheme } from '../../../provider/use-ui-theme.native';
13
+ import type { UiTheme } from '../../../tokens/theme';
14
+
15
+ export interface ContainerStyleArgs {
16
+ variant: ContainerVariant;
17
+ maxWidth: ContainerMaxWidth | string;
18
+ padding: ContainerPadding;
19
+ responsive: boolean;
20
+ /** The window, for the two things CSS answers with a media query and `100vh`. */
21
+ window: { width: number; height: number };
22
+ }
23
+
24
+ /**
25
+ * The style MUI's `Container` plus the web `sx` paint, in absolute numbers.
26
+ *
27
+ * `width: 100%` between auto margins is MUI's own centring rule; `maxWidth` is
28
+ * the breakpoint the web applies under `min-width` (below it the column is
29
+ * narrower anyway); the `responsive` media query becomes a window-width test;
30
+ * `centered`'s `100vh` becomes the window height. `padded` and `padding="none"`
31
+ * paint what the web paints — see `containerPaddingUnits`.
32
+ */
33
+ export function containerStyle(theme: UiTheme, a: ContainerStyleArgs): ViewStyle {
34
+ const compact = a.responsive && a.window.width < CONTAINER_COMPACT_BELOW;
35
+ const limit = resolveContainerMaxWidth(a.variant, a.maxWidth);
36
+ return {
37
+ width: '100%',
38
+ marginLeft: 'auto',
39
+ marginRight: 'auto',
40
+ maxWidth: limit === false ? undefined : CONTAINER_MAX_WIDTHS[limit],
41
+ padding: theme.spacing(containerPaddingUnits(a.padding, compact)),
42
+ ...(a.variant === 'centered'
43
+ ? { alignItems: 'center', justifyContent: 'center', minHeight: a.window.height }
44
+ : null),
45
+ };
46
+ }
47
+
48
+ /** The native `Container`: a `View` sized by the same rules MUI's `Container` and the web `sx` apply. */
49
+ export const Container = React.forwardRef<View, ContainerProps>(
50
+ ({ children, maxWidth = 'lg', variant = 'default', padding = 'md', responsive = true, style, ...others }, ref) => {
51
+ const theme = useUiTheme();
52
+ const window = useWindowDimensions();
53
+ const resolved = React.useMemo(
54
+ () => containerStyle(theme, { variant, maxWidth, padding, responsive, window }),
55
+ [theme, variant, maxWidth, padding, responsive, window],
56
+ );
57
+
58
+ return (
59
+ <View
60
+ ref={ref}
61
+ style={[resolved, style]}
62
+ testID={resolveTestId(others, 'container')}
63
+ {...withoutTestIdProps(others)}
64
+ >
65
+ {children}
66
+ </View>
67
+ );
68
+ },
69
+ );
70
+
71
+ Container.displayName = 'Container';