@12-apps/ui 6.19.1 → 6.20.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 (677) hide show
  1. package/NATIVE.md +6 -1
  2. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +8 -7
  3. package/dist/_internal/components/data-display/Avatar/Avatar.base.js +1 -0
  4. package/dist/_internal/components/data-display/Avatar/Avatar.base.js.map +1 -0
  5. package/dist/_internal/components/data-display/Avatar/Avatar.helpers.js +14 -0
  6. package/dist/_internal/components/data-display/Avatar/Avatar.helpers.js.map +1 -0
  7. package/dist/_internal/components/data-display/Avatar/Avatar.js +8 -2
  8. package/dist/_internal/components/data-display/Avatar/Avatar.metrics.js +52 -0
  9. package/dist/_internal/components/data-display/Avatar/Avatar.metrics.js.map +1 -0
  10. package/dist/_internal/components/data-display/Avatar/Avatar.view.js +6 -1
  11. package/dist/_internal/components/data-display/Badge/Badge.animations.js +6 -1
  12. package/dist/_internal/components/data-display/Badge/Badge.base.js +1 -0
  13. package/dist/_internal/components/data-display/Badge/Badge.base.js.map +1 -0
  14. package/dist/_internal/components/data-display/Badge/Badge.helpers.js +3 -1
  15. package/dist/_internal/components/data-display/Badge/Badge.js +12 -6
  16. package/dist/_internal/components/data-display/Badge/Badge.metrics.js +64 -0
  17. package/dist/_internal/components/data-display/Badge/Badge.metrics.js.map +1 -0
  18. package/dist/_internal/components/data-display/Badge/Badge.styles.js +8 -3
  19. package/dist/_internal/components/data-display/Badge/Badge.variants.js +6 -1
  20. package/dist/_internal/components/data-display/Badge/BadgeContent.js +9 -4
  21. package/dist/_internal/components/data-display/CardKit/CardKebab.js +3 -3
  22. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +4 -4
  23. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +4 -4
  24. package/dist/_internal/components/data-display/Carousel/Carousel.js +2 -2
  25. package/dist/_internal/components/data-display/Chart/Chart.js +3 -3
  26. package/dist/_internal/components/data-display/Chart/SpecChart.js +6 -6
  27. package/dist/_internal/components/data-display/Chart/chart-renderers.js +2 -2
  28. package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
  29. package/dist/_internal/components/data-display/Chip/Chip.base.js +1 -0
  30. package/dist/_internal/components/data-display/Chip/Chip.base.js.map +1 -0
  31. package/dist/_internal/components/data-display/Chip/Chip.helpers.js +3 -9
  32. package/dist/_internal/components/data-display/Chip/Chip.js +4 -2
  33. package/dist/_internal/components/data-display/Chip/Chip.metrics.js +32 -0
  34. package/dist/_internal/components/data-display/Chip/Chip.metrics.js.map +1 -0
  35. package/dist/_internal/components/data-display/Chip/Chip.styles.js +16 -0
  36. package/dist/_internal/components/data-display/Chip/Chip.styles.js.map +1 -0
  37. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +3 -3
  38. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +43 -43
  39. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +54 -54
  40. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +3 -3
  41. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +5 -5
  42. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +5 -5
  43. package/dist/_internal/components/data-display/DataViews/base-card.js +4 -3
  44. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +5 -4
  45. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +1 -1
  46. package/dist/_internal/components/data-display/DataViews/base-list-card.js +7 -6
  47. package/dist/_internal/components/data-display/DataViews/card-surface.js +7 -2
  48. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +15 -15
  49. package/dist/_internal/components/data-display/DataViews/data-views-columns.js +4 -4
  50. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +4 -4
  51. package/dist/_internal/components/data-display/DataViews/data-views-empty.js +3 -3
  52. package/dist/_internal/components/data-display/DataViews/data-views-export.js +3 -3
  53. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +16 -16
  54. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +9 -9
  55. package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +3 -3
  56. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +40 -40
  57. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +20 -20
  58. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +4 -4
  59. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +7 -7
  60. package/dist/_internal/components/data-display/DataViews/data-views-pagination.js +3 -3
  61. package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +3 -3
  62. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +12 -12
  63. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +13 -13
  64. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +11 -11
  65. package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +3 -3
  66. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +1 -1
  67. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +6 -6
  68. package/dist/_internal/components/data-display/DataViews/use-saved-views-controller.js +2 -2
  69. package/dist/_internal/components/data-display/EmptyState/EmptyState.js +2 -2
  70. package/dist/_internal/components/data-display/HoverCard/HoverCard.js +3 -3
  71. package/dist/_internal/components/data-display/LazyImage/LazyImage.js +6 -4
  72. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +5 -5
  73. package/dist/_internal/components/data-display/LoadingState/LoadingState.js +5 -4
  74. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +2 -2
  75. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +4 -4
  76. package/dist/_internal/components/data-display/Progress/Progress.base.js +1 -0
  77. package/dist/_internal/components/data-display/Progress/Progress.base.js.map +1 -0
  78. package/dist/_internal/components/data-display/Progress/Progress.helpers.js +5 -1
  79. package/dist/_internal/components/data-display/Progress/Progress.js +8 -3
  80. package/dist/_internal/components/data-display/Progress/Progress.metrics.js +52 -0
  81. package/dist/_internal/components/data-display/Progress/Progress.metrics.js.map +1 -0
  82. package/dist/_internal/components/data-display/Progress/Progress.styles.js +6 -1
  83. package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +3 -3
  84. package/dist/_internal/components/data-display/Sheet/Sheet.js +2 -2
  85. package/dist/_internal/components/data-display/StatCard/StatCard.js +6 -4
  86. package/dist/_internal/components/data-display/Table/Table.js +3 -3
  87. package/dist/_internal/components/data-display/index.js +63 -56
  88. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +3 -3
  89. package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +2 -2
  90. package/dist/_internal/components/feedback/index.js +8 -8
  91. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +3 -3
  92. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +7 -7
  93. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +3 -3
  94. package/dist/_internal/components/form/Autocomplete/Autocomplete.js +2 -2
  95. package/dist/_internal/components/form/Button/Button.js +2 -2
  96. package/dist/_internal/components/form/Calendar/Calendar.js +4 -4
  97. package/dist/_internal/components/form/Calendar/CalendarDayCell.js +2 -2
  98. package/dist/_internal/components/form/Calendar/CalendarMonth.js +3 -3
  99. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +5 -5
  100. package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +3 -3
  101. package/dist/_internal/components/form/CategorySelect/CategoryRows.js +2 -2
  102. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +10 -10
  103. package/dist/_internal/components/form/CepField/CepField.js +3 -3
  104. package/dist/_internal/components/form/CodeEditor/CodeEditor.js +3 -3
  105. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +7 -7
  106. package/dist/_internal/components/form/Input/Input.js +2 -2
  107. package/dist/_internal/components/form/Menubar/Menubar.js +2 -2
  108. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +2 -2
  109. package/dist/_internal/components/form/index.js +28 -28
  110. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +11 -11
  111. package/dist/_internal/components/form/total-form/Fields/CepField.js +4 -4
  112. package/dist/_internal/components/form/total-form/Fields/TextField.js +3 -3
  113. package/dist/_internal/components/form/total-form/Fields/index.js +21 -21
  114. package/dist/_internal/components/form/total-form/SubmitButton.js +3 -3
  115. package/dist/_internal/components/index.js +123 -116
  116. package/dist/_internal/components/layout/ScrollArea/ScrollArea.js +2 -2
  117. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +4 -4
  118. package/dist/_internal/components/layout/SettingsLayout/SettingsPanel.js +2 -2
  119. package/dist/_internal/components/layout/Skeleton/Skeleton.base.js +1 -0
  120. package/dist/_internal/components/layout/Skeleton/Skeleton.base.js.map +1 -0
  121. package/dist/_internal/components/layout/Skeleton/Skeleton.helpers.js +5 -3
  122. package/dist/_internal/components/layout/Skeleton/Skeleton.js +5 -3
  123. package/dist/_internal/components/layout/Skeleton/Skeleton.metrics.js +36 -0
  124. package/dist/_internal/components/layout/Skeleton/Skeleton.metrics.js.map +1 -0
  125. package/dist/_internal/components/layout/Skeleton/Skeleton.styles.js +2 -1
  126. package/dist/_internal/components/layout/index.js +16 -15
  127. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +5 -5
  128. package/dist/_internal/components/navigation/NavigationMenu/NavigationMegaSection.js +2 -2
  129. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +4 -4
  130. package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +2 -2
  131. package/dist/_internal/components/navigation/Pagination/Pagination.js +2 -2
  132. package/dist/_internal/components/navigation/Tabs/Tabs.js +2 -2
  133. package/dist/_internal/components/navigation/index.js +16 -16
  134. package/dist/_internal/components/utility/InstallPrompt/InstallPrompt.js +2 -2
  135. package/dist/_internal/components/utility/index.js +2 -2
  136. package/dist/_internal/icons/Icon.js +2 -2
  137. package/dist/_internal/icons/paths.generated.js +1 -1
  138. package/dist/_internal/platform/animation.js +31 -0
  139. package/dist/_internal/platform/animation.js.map +1 -0
  140. package/dist/_internal/platform/web-keys.js +10 -0
  141. package/dist/_internal/platform/web-keys.js.map +1 -0
  142. package/dist/_internal/social-login-button/social-login-button.js +3 -3
  143. package/dist/_internal/tokens/mui-type.js +2 -1
  144. package/dist/_internal/tokens/mui-type.js.map +1 -1
  145. package/dist/_internal/user-avatar/user-avatar.js +7 -5
  146. package/dist/charts.js +11 -11
  147. package/dist/{chunk-P7FQUGED.js → chunk-23FCBIUN.js} +8 -8
  148. package/dist/{chunk-SL4NFGOL.js → chunk-24BUCMQA.js} +4 -4
  149. package/dist/{chunk-4SXZSSVV.js → chunk-2EKALM6P.js} +3 -3
  150. package/dist/{chunk-ZRFRU545.js → chunk-2ZDTGI5V.js} +7 -7
  151. package/dist/{chunk-HR7YTBR7.js → chunk-3AOOI2NR.js} +4 -4
  152. package/dist/chunk-3ZVUNSFF.js +32 -0
  153. package/dist/chunk-3ZVUNSFF.js.map +1 -0
  154. package/dist/{chunk-KKYW3LU7.js → chunk-47UD6DZ4.js} +2 -2
  155. package/dist/{chunk-ZOUWHGV3.js → chunk-4MGFUPQT.js} +4 -4
  156. package/dist/{chunk-LYNJJV2X.js → chunk-4SQFO4GW.js} +58 -40
  157. package/dist/chunk-4SQFO4GW.js.map +1 -0
  158. package/dist/{chunk-4FRZDSRD.js → chunk-4WK2RTVY.js} +3 -3
  159. package/dist/{chunk-HAFE43QJ.js → chunk-5JEOLUWJ.js} +6 -2
  160. package/dist/chunk-5JEOLUWJ.js.map +1 -0
  161. package/dist/{chunk-LDE4ELB5.js → chunk-5ZF3VASA.js} +7 -7
  162. package/dist/{chunk-JE6RZ5L6.js → chunk-5ZOJLYD2.js} +4 -4
  163. package/dist/{chunk-MMZAGB64.js → chunk-6C5D6O3D.js} +4 -2
  164. package/dist/chunk-6C5D6O3D.js.map +1 -0
  165. package/dist/{chunk-E5ZHW4I5.js → chunk-6IUTT6BK.js} +3 -3
  166. package/dist/{chunk-WPR2HS5B.js → chunk-74EZ565M.js} +8 -8
  167. package/dist/{chunk-BVZVH3ZN.js → chunk-74OZ5KVR.js} +5 -5
  168. package/dist/{chunk-PMS3H3OO.js → chunk-76GZ55IC.js} +7 -7
  169. package/dist/{chunk-QIV73V2X.js → chunk-7BYFC2MR.js} +36 -28
  170. package/dist/chunk-7BYFC2MR.js.map +1 -0
  171. package/dist/{chunk-DLFOEXUP.js → chunk-7EESF76V.js} +2 -2
  172. package/dist/{chunk-HKZHEK3Z.js → chunk-7JWXLDRH.js} +3 -3
  173. package/dist/{chunk-OR7UH2ZQ.js → chunk-7P2HZLEG.js} +3 -3
  174. package/dist/{chunk-6DXYCXH4.js → chunk-7RZ4WOQW.js} +2 -2
  175. package/dist/{chunk-EMNGIYH6.js → chunk-7TZ6OC5T.js} +5 -5
  176. package/dist/{chunk-HXYXDQ7U.js → chunk-7WDPC46N.js} +4 -2
  177. package/dist/chunk-7WDPC46N.js.map +1 -0
  178. package/dist/{chunk-CDJPDZCA.js → chunk-AEGX66N7.js} +2 -2
  179. package/dist/{chunk-65DLYC4S.js → chunk-AVGTTWTE.js} +4 -4
  180. package/dist/{chunk-C6XESZ3R.js → chunk-B2A4DG77.js} +6 -6
  181. package/dist/{chunk-VOOPGAQO.js → chunk-B7BZAIHL.js} +2 -2
  182. package/dist/{chunk-DZN3JF5E.js → chunk-BBC4KT5G.js} +4 -4
  183. package/dist/chunk-BF4FYOAR.js +23 -0
  184. package/dist/chunk-BF4FYOAR.js.map +1 -0
  185. package/dist/{chunk-FWCUELBU.js → chunk-BILE3A7F.js} +2 -2
  186. package/dist/{chunk-UEJQQVP2.js → chunk-BLT5ZBVL.js} +4 -4
  187. package/dist/chunk-BRMGHMYB.js +45 -0
  188. package/dist/chunk-BRMGHMYB.js.map +1 -0
  189. package/dist/{chunk-ISSJNFJV.js → chunk-C52BELLW.js} +2 -2
  190. package/dist/{chunk-BPYPUEM5.js → chunk-CZJLWCEG.js} +2 -2
  191. package/dist/{chunk-WZUNBSS7.js → chunk-DVUPIVI2.js} +4 -4
  192. package/dist/chunk-E46PG577.js +78 -0
  193. package/dist/chunk-E46PG577.js.map +1 -0
  194. package/dist/{chunk-L6KEVPXN.js → chunk-E4FGKZID.js} +20 -9
  195. package/dist/chunk-E4FGKZID.js.map +1 -0
  196. package/dist/{chunk-EXJBPKGW.js → chunk-EGRFMPGD.js} +4 -4
  197. package/dist/{chunk-XFUNJYFT.js → chunk-EPNUVSNK.js} +7 -7
  198. package/dist/{chunk-H2EQVMU3.js → chunk-EX3PSZLV.js} +2 -2
  199. package/dist/{chunk-4Q7HWRR2.js → chunk-EZSEAYYT.js} +52 -72
  200. package/dist/chunk-EZSEAYYT.js.map +1 -0
  201. package/dist/{chunk-LIOVN5IM.js → chunk-F2DOTCF3.js} +2 -2
  202. package/dist/chunk-FAITHWIO.js +73 -0
  203. package/dist/chunk-FAITHWIO.js.map +1 -0
  204. package/dist/{chunk-64IEKEMQ.js → chunk-FGLV6BXQ.js} +4 -4
  205. package/dist/{chunk-L65LF6LN.js → chunk-FP4R47TM.js} +2 -2
  206. package/dist/{chunk-NQHOHQCY.js → chunk-FPWB5ILF.js} +16 -8
  207. package/dist/chunk-FPWB5ILF.js.map +1 -0
  208. package/dist/{chunk-7AR2R7TV.js → chunk-G5ZVD5IJ.js} +4 -4
  209. package/dist/{chunk-SHQWIDD5.js → chunk-GJQYM3PM.js} +4 -4
  210. package/dist/{chunk-7WL24VNI.js → chunk-HDNK7BAX.js} +5 -5
  211. package/dist/{chunk-X5MPHXG5.js → chunk-HEG7JIBM.js} +4 -4
  212. package/dist/{chunk-HKFMPEXJ.js → chunk-HI2OFZSZ.js} +17 -10
  213. package/dist/chunk-HI2OFZSZ.js.map +1 -0
  214. package/dist/{chunk-ZIOCRSHU.js → chunk-HSAH5QUQ.js} +3 -3
  215. package/dist/{chunk-B443IIQG.js → chunk-IE7ISTLQ.js} +4 -4
  216. package/dist/{chunk-NFHS77NE.js → chunk-IH4CX43Q.js} +2 -2
  217. package/dist/{chunk-72UYVJBQ.js → chunk-IJIT5HQP.js} +2 -2
  218. package/dist/{chunk-KPQAPQH6.js → chunk-J2KSG754.js} +10 -8
  219. package/dist/chunk-J2KSG754.js.map +1 -0
  220. package/dist/{chunk-AP4FLCLA.js → chunk-J54WH74M.js} +4 -4
  221. package/dist/{chunk-5HOJSVQH.js → chunk-JB7JE4QZ.js} +2 -2
  222. package/dist/{chunk-QJJUTBKZ.js → chunk-KQ74QU55.js} +2 -2
  223. package/dist/chunk-KU6VHNRV.js +68 -0
  224. package/dist/chunk-KU6VHNRV.js.map +1 -0
  225. package/dist/chunk-KVEHH4SA.js +85 -0
  226. package/dist/chunk-KVEHH4SA.js.map +1 -0
  227. package/dist/{chunk-YLDS5FOQ.js → chunk-KZSKI2R3.js} +2 -2
  228. package/dist/{chunk-IIOEQRXX.js → chunk-LAHDFBDE.js} +2 -2
  229. package/dist/{chunk-BUDXR3EV.js → chunk-LKVIZNUM.js} +5 -5
  230. package/dist/{chunk-OAXAF4VY.js → chunk-LMJBINWN.js} +12 -12
  231. package/dist/{chunk-SFAP5EH5.js → chunk-LUMF63BM.js} +4 -4
  232. package/dist/{chunk-KADJNWTQ.js → chunk-LZRURORY.js} +3 -3
  233. package/dist/{chunk-CLNTJM3F.js → chunk-M7OHXNLF.js} +2 -2
  234. package/dist/{chunk-UXQW6ZIN.js → chunk-MBYO2F4Y.js} +5 -5
  235. package/dist/{chunk-ZHEJLUCX.js → chunk-MHV5Y5MR.js} +30 -17
  236. package/dist/chunk-MHV5Y5MR.js.map +1 -0
  237. package/dist/{chunk-MCRIT46W.js → chunk-MY5VNNSP.js} +4 -4
  238. package/dist/{chunk-XELVDPKL.js → chunk-NFAKRI4S.js} +4 -4
  239. package/dist/{chunk-KSF7TLXH.js → chunk-NHSMLVNC.js} +6 -6
  240. package/dist/{chunk-ES2RN7YV.js → chunk-NRUYYGDZ.js} +2 -2
  241. package/dist/{chunk-ZGEBIC5X.js → chunk-OLVZ6TOV.js} +13 -9
  242. package/dist/chunk-OLVZ6TOV.js.map +1 -0
  243. package/dist/{chunk-MQUU2XZB.js → chunk-OQFSYMHJ.js} +2 -2
  244. package/dist/{chunk-M3RIC6JI.js → chunk-OQXOYHIV.js} +4 -4
  245. package/dist/{chunk-PC3ZFERM.js → chunk-PC5FFEIY.js} +2 -2
  246. package/dist/{chunk-SOHDPFOB.js → chunk-PHCSPHDH.js} +2 -2
  247. package/dist/{chunk-OZWQNFG6.js → chunk-PODGTNXS.js} +3 -3
  248. package/dist/{chunk-IPE5FFFD.js → chunk-PUBPZOQJ.js} +2 -2
  249. package/dist/{chunk-GBFGZJB5.js → chunk-Q4NOI2CR.js} +5 -5
  250. package/dist/{chunk-IRDGC7FK.js → chunk-QZWKC3AP.js} +13 -7
  251. package/dist/chunk-QZWKC3AP.js.map +1 -0
  252. package/dist/{chunk-GOWBYHYW.js → chunk-R6SBP5M5.js} +4 -4
  253. package/dist/{chunk-DTKMBI7B.js → chunk-R7MX5KPJ.js} +4 -4
  254. package/dist/{chunk-NECUCG2S.js → chunk-RQDN4BN5.js} +14 -14
  255. package/dist/{chunk-5SYD23V4.js → chunk-SKZHOWTS.js} +4 -4
  256. package/dist/{chunk-Y6KPZQPI.js → chunk-SOCKK67R.js} +4 -4
  257. package/dist/{chunk-GCJLMX63.js → chunk-VCTKJHXD.js} +2 -2
  258. package/dist/{chunk-QZPNQWS2.js → chunk-VEFDL77X.js} +2 -2
  259. package/dist/{chunk-WEH5TCPE.js → chunk-VJFH2AXT.js} +8 -8
  260. package/dist/{chunk-S7HRED4D.js → chunk-VLHGBFR6.js} +3 -3
  261. package/dist/{chunk-RLC46NIW.js → chunk-VMNSGE2G.js} +3 -1
  262. package/dist/chunk-VMNSGE2G.js.map +1 -0
  263. package/dist/{chunk-HP2ODXNA.js → chunk-VR5HDUBK.js} +2 -2
  264. package/dist/{chunk-RBGOGTT2.js → chunk-W2UTDN4T.js} +4 -4
  265. package/dist/{chunk-N4WANJI3.js → chunk-WBVHRLIS.js} +4 -4
  266. package/dist/{chunk-XXJRT6BP.js → chunk-WMALDOF5.js} +4 -4
  267. package/dist/{chunk-MHFJBNDP.js → chunk-WO52KYSU.js} +8 -8
  268. package/dist/{chunk-ZBOFBRZC.js → chunk-WX7VWW3W.js} +2 -2
  269. package/dist/{chunk-J4W4TQPC.js → chunk-X24P3ZYW.js} +6 -6
  270. package/dist/{chunk-X2J6MRJW.js → chunk-YFHIESMD.js} +2 -2
  271. package/dist/{chunk-72NOM3O2.js → chunk-YK2PETUP.js} +2 -2
  272. package/dist/{chunk-CRNQVWIT.js → chunk-Z4GWXTZV.js} +4 -4
  273. package/dist/{chunk-SG6VULKS.js → chunk-ZEBJT5JZ.js} +3 -3
  274. package/dist/chunk-ZEG2LNBY.js +68 -0
  275. package/dist/chunk-ZEG2LNBY.js.map +1 -0
  276. package/dist/{chunk-JZKOJZ6V.js → chunk-ZOW2CCMO.js} +26 -25
  277. package/dist/chunk-ZOW2CCMO.js.map +1 -0
  278. package/dist/{chunk-3HWL4AW4.js → chunk-ZTF5C2GA.js} +22 -10
  279. package/dist/chunk-ZTF5C2GA.js.map +1 -0
  280. package/dist/data-display/AsyncStateContainer.js +8 -7
  281. package/dist/data-display/Avatar.js +8 -2
  282. package/dist/data-display/Badge.js +12 -6
  283. package/dist/data-display/CardKit.js +7 -7
  284. package/dist/data-display/Carousel.js +2 -2
  285. package/dist/data-display/Chart.js +11 -11
  286. package/dist/data-display/Chip.js +4 -2
  287. package/dist/data-display/DataGrid.js +3 -3
  288. package/dist/data-display/DataViews.js +66 -65
  289. package/dist/data-display/EmptyState.js +2 -2
  290. package/dist/data-display/HoverCard.js +3 -3
  291. package/dist/data-display/LazyImage.js +6 -4
  292. package/dist/data-display/Lightbox.js +5 -5
  293. package/dist/data-display/LoadingState.js +5 -4
  294. package/dist/data-display/MapPreview.js +4 -4
  295. package/dist/data-display/Progress.js +8 -3
  296. package/dist/data-display/SectionOnboarding.js +3 -3
  297. package/dist/data-display/Sheet.js +2 -2
  298. package/dist/data-display/StatCard.js +6 -4
  299. package/dist/data-display/Table.js +3 -3
  300. package/dist/feedback/ConfirmAction.js +6 -6
  301. package/dist/feedback/TutorialOverlay.js +2 -2
  302. package/dist/form/AddressAutocomplete.js +7 -7
  303. package/dist/form/Autocomplete.js +2 -2
  304. package/dist/form/Button.js +2 -2
  305. package/dist/form/Calendar.js +4 -4
  306. package/dist/form/CategorySelect.js +10 -10
  307. package/dist/form/CepField.js +3 -3
  308. package/dist/form/CodeEditor.js +3 -3
  309. package/dist/form/DateRangePicker.js +7 -7
  310. package/dist/form/Input.js +2 -2
  311. package/dist/form/Menubar.js +2 -2
  312. package/dist/form/RichTextEditor.js +2 -2
  313. package/dist/form/total-form.js +30 -30
  314. package/dist/icons.js +2 -2
  315. package/dist/layout/ContentToolbar.js +10 -10
  316. package/dist/layout/ScrollArea.js +2 -2
  317. package/dist/layout/SettingsLayout.js +6 -6
  318. package/dist/layout/Skeleton.js +5 -3
  319. package/dist/native/chunks/{chunk-V4DQTC5L.js → chunk-HSIND52T.js} +3 -2
  320. package/dist/native/chunks/chunk-HSIND52T.js.map +1 -0
  321. package/dist/native/chunks/chunk-MLQIOKQZ.js +30 -0
  322. package/dist/native/chunks/chunk-MLQIOKQZ.js.map +1 -0
  323. package/dist/native/chunks/{chunk-YQGNMAJN.js → chunk-Q52IDAF2.js} +6 -4
  324. package/dist/native/chunks/chunk-Q52IDAF2.js.map +1 -0
  325. package/dist/native/data-display/Alert.js +7 -7
  326. package/dist/native/data-display/Avatar.js +451 -0
  327. package/dist/native/data-display/Avatar.js.map +1 -0
  328. package/dist/native/data-display/Badge.js +418 -0
  329. package/dist/native/data-display/Badge.js.map +1 -0
  330. package/dist/native/data-display/Chip.js +374 -0
  331. package/dist/native/data-display/Chip.js.map +1 -0
  332. package/dist/native/data-display/EmptyState.js +9 -9
  333. package/dist/native/data-display/ErrorState.js +9 -9
  334. package/dist/native/data-display/LoadingState.js +4 -4
  335. package/dist/native/data-display/Progress.js +432 -0
  336. package/dist/native/data-display/Progress.js.map +1 -0
  337. package/dist/native/icons.js +2 -2
  338. package/dist/native/layout/Skeleton.js +214 -0
  339. package/dist/native/layout/Skeleton.js.map +1 -0
  340. package/dist/navigation/AppHeader.js +9 -9
  341. package/dist/navigation/NavigationMenu.js +4 -4
  342. package/dist/navigation/Pagination.js +2 -2
  343. package/dist/navigation/Tabs.js +2 -2
  344. package/dist/social-login-button.js +3 -3
  345. package/dist/types/components/data-display/Avatar/Avatar.base.d.ts +87 -0
  346. package/dist/types/components/data-display/Avatar/Avatar.base.d.ts.map +1 -0
  347. package/dist/types/components/data-display/Avatar/Avatar.d.ts.map +1 -1
  348. package/dist/types/components/data-display/Avatar/Avatar.helpers.d.ts +37 -0
  349. package/dist/types/components/data-display/Avatar/Avatar.helpers.d.ts.map +1 -0
  350. package/dist/types/components/data-display/Avatar/Avatar.metrics.d.ts +113 -0
  351. package/dist/types/components/data-display/Avatar/Avatar.metrics.d.ts.map +1 -0
  352. package/dist/types/components/data-display/Avatar/Avatar.types.d.ts +4 -68
  353. package/dist/types/components/data-display/Avatar/Avatar.types.d.ts.map +1 -1
  354. package/dist/types/components/data-display/Avatar/Avatar.view.d.ts +2 -2
  355. package/dist/types/components/data-display/Avatar/Avatar.view.d.ts.map +1 -1
  356. package/dist/types/components/data-display/Avatar/index.d.ts +1 -1
  357. package/dist/types/components/data-display/Avatar/index.d.ts.map +1 -1
  358. package/dist/types/components/data-display/Badge/Badge.animations.d.ts.map +1 -1
  359. package/dist/types/components/data-display/Badge/Badge.base.d.ts +101 -0
  360. package/dist/types/components/data-display/Badge/Badge.base.d.ts.map +1 -0
  361. package/dist/types/components/data-display/Badge/Badge.d.ts.map +1 -1
  362. package/dist/types/components/data-display/Badge/Badge.helpers.d.ts +10 -4
  363. package/dist/types/components/data-display/Badge/Badge.helpers.d.ts.map +1 -1
  364. package/dist/types/components/data-display/Badge/Badge.metrics.d.ts +111 -0
  365. package/dist/types/components/data-display/Badge/Badge.metrics.d.ts.map +1 -0
  366. package/dist/types/components/data-display/Badge/Badge.styles.d.ts +1 -4
  367. package/dist/types/components/data-display/Badge/Badge.styles.d.ts.map +1 -1
  368. package/dist/types/components/data-display/Badge/Badge.types.d.ts +4 -81
  369. package/dist/types/components/data-display/Badge/Badge.types.d.ts.map +1 -1
  370. package/dist/types/components/data-display/Badge/Badge.variants.d.ts.map +1 -1
  371. package/dist/types/components/data-display/Badge/BadgeContent.d.ts.map +1 -1
  372. package/dist/types/components/data-display/Badge/index.d.ts +1 -1
  373. package/dist/types/components/data-display/Badge/index.d.ts.map +1 -1
  374. package/dist/types/components/data-display/Chip/Chip.base.d.ts +81 -0
  375. package/dist/types/components/data-display/Chip/Chip.base.d.ts.map +1 -0
  376. package/dist/types/components/data-display/Chip/Chip.d.ts.map +1 -1
  377. package/dist/types/components/data-display/Chip/Chip.helpers.d.ts +14 -28
  378. package/dist/types/components/data-display/Chip/Chip.helpers.d.ts.map +1 -1
  379. package/dist/types/components/data-display/Chip/Chip.metrics.d.ts +61 -0
  380. package/dist/types/components/data-display/Chip/Chip.metrics.d.ts.map +1 -0
  381. package/dist/types/components/data-display/Chip/Chip.styles.d.ts +30 -0
  382. package/dist/types/components/data-display/Chip/Chip.styles.d.ts.map +1 -0
  383. package/dist/types/components/data-display/Chip/Chip.types.d.ts +4 -67
  384. package/dist/types/components/data-display/Chip/Chip.types.d.ts.map +1 -1
  385. package/dist/types/components/data-display/Chip/index.d.ts +1 -1
  386. package/dist/types/components/data-display/Chip/index.d.ts.map +1 -1
  387. package/dist/types/components/data-display/Progress/Progress.base.d.ts +72 -0
  388. package/dist/types/components/data-display/Progress/Progress.base.d.ts.map +1 -0
  389. package/dist/types/components/data-display/Progress/Progress.d.ts.map +1 -1
  390. package/dist/types/components/data-display/Progress/Progress.helpers.d.ts +15 -3
  391. package/dist/types/components/data-display/Progress/Progress.helpers.d.ts.map +1 -1
  392. package/dist/types/components/data-display/Progress/Progress.metrics.d.ts +91 -0
  393. package/dist/types/components/data-display/Progress/Progress.metrics.d.ts.map +1 -0
  394. package/dist/types/components/data-display/Progress/Progress.styles.d.ts.map +1 -1
  395. package/dist/types/components/data-display/Progress/Progress.types.d.ts +4 -48
  396. package/dist/types/components/data-display/Progress/Progress.types.d.ts.map +1 -1
  397. package/dist/types/components/data-display/Progress/index.d.ts +1 -1
  398. package/dist/types/components/data-display/Progress/index.d.ts.map +1 -1
  399. package/dist/types/components/layout/Skeleton/Skeleton.base.d.ts +37 -0
  400. package/dist/types/components/layout/Skeleton/Skeleton.base.d.ts.map +1 -0
  401. package/dist/types/components/layout/Skeleton/Skeleton.d.ts.map +1 -1
  402. package/dist/types/components/layout/Skeleton/Skeleton.helpers.d.ts +13 -3
  403. package/dist/types/components/layout/Skeleton/Skeleton.helpers.d.ts.map +1 -1
  404. package/dist/types/components/layout/Skeleton/Skeleton.metrics.d.ts +68 -0
  405. package/dist/types/components/layout/Skeleton/Skeleton.metrics.d.ts.map +1 -0
  406. package/dist/types/components/layout/Skeleton/Skeleton.styles.d.ts +1 -1
  407. package/dist/types/components/layout/Skeleton/Skeleton.styles.d.ts.map +1 -1
  408. package/dist/types/components/layout/Skeleton/Skeleton.types.d.ts +5 -15
  409. package/dist/types/components/layout/Skeleton/Skeleton.types.d.ts.map +1 -1
  410. package/dist/types/components/layout/Skeleton/index.d.ts +1 -1
  411. package/dist/types/components/layout/Skeleton/index.d.ts.map +1 -1
  412. package/dist/types/icons/paths.generated.d.ts +2 -0
  413. package/dist/types/icons/paths.generated.d.ts.map +1 -1
  414. package/dist/types/platform/animation.d.ts +14 -0
  415. package/dist/types/platform/animation.d.ts.map +1 -0
  416. package/dist/types/platform/web-keys.d.ts +25 -0
  417. package/dist/types/platform/web-keys.d.ts.map +1 -0
  418. package/dist/types/tokens/mui-type.d.ts +1 -1
  419. package/dist/types/tokens/mui-type.d.ts.map +1 -1
  420. package/dist/types-native/components/data-display/Avatar/Avatar.base.d.ts +87 -0
  421. package/dist/types-native/components/data-display/Avatar/Avatar.base.d.ts.map +1 -0
  422. package/dist/types-native/components/data-display/Avatar/Avatar.helpers.d.ts +37 -0
  423. package/dist/types-native/components/data-display/Avatar/Avatar.helpers.d.ts.map +1 -0
  424. package/dist/types-native/components/data-display/Avatar/Avatar.look.native.d.ts +25 -0
  425. package/dist/types-native/components/data-display/Avatar/Avatar.look.native.d.ts.map +1 -0
  426. package/dist/types-native/components/data-display/Avatar/Avatar.metrics.d.ts +113 -0
  427. package/dist/types-native/components/data-display/Avatar/Avatar.metrics.d.ts.map +1 -0
  428. package/dist/types-native/components/data-display/Avatar/Avatar.native.d.ts +19 -0
  429. package/dist/types-native/components/data-display/Avatar/Avatar.native.d.ts.map +1 -0
  430. package/dist/types-native/components/data-display/Avatar/Avatar.parts.native.d.ts +69 -0
  431. package/dist/types-native/components/data-display/Avatar/Avatar.parts.native.d.ts.map +1 -0
  432. package/dist/types-native/components/data-display/Avatar/Avatar.types.native.d.ts +24 -0
  433. package/dist/types-native/components/data-display/Avatar/Avatar.types.native.d.ts.map +1 -0
  434. package/dist/types-native/components/data-display/Avatar/index.native.d.ts +3 -0
  435. package/dist/types-native/components/data-display/Avatar/index.native.d.ts.map +1 -0
  436. package/dist/types-native/components/data-display/Badge/Badge.base.d.ts +101 -0
  437. package/dist/types-native/components/data-display/Badge/Badge.base.d.ts.map +1 -0
  438. package/dist/types-native/components/data-display/Badge/Badge.helpers.d.ts +19 -0
  439. package/dist/types-native/components/data-display/Badge/Badge.helpers.d.ts.map +1 -0
  440. package/dist/types-native/components/data-display/Badge/Badge.look.native.d.ts +31 -0
  441. package/dist/types-native/components/data-display/Badge/Badge.look.native.d.ts.map +1 -0
  442. package/dist/types-native/components/data-display/Badge/Badge.metrics.d.ts +111 -0
  443. package/dist/types-native/components/data-display/Badge/Badge.metrics.d.ts.map +1 -0
  444. package/dist/types-native/components/data-display/Badge/Badge.native.d.ts +10 -0
  445. package/dist/types-native/components/data-display/Badge/Badge.native.d.ts.map +1 -0
  446. package/dist/types-native/components/data-display/Badge/Badge.types.native.d.ts +8 -0
  447. package/dist/types-native/components/data-display/Badge/Badge.types.native.d.ts.map +1 -0
  448. package/dist/types-native/components/data-display/Badge/BadgeContent.native.d.ts +20 -0
  449. package/dist/types-native/components/data-display/Badge/BadgeContent.native.d.ts.map +1 -0
  450. package/dist/types-native/components/data-display/Badge/index.native.d.ts +3 -0
  451. package/dist/types-native/components/data-display/Badge/index.native.d.ts.map +1 -0
  452. package/dist/types-native/components/data-display/Chip/Chip.base.d.ts +81 -0
  453. package/dist/types-native/components/data-display/Chip/Chip.base.d.ts.map +1 -0
  454. package/dist/types-native/components/data-display/Chip/Chip.helpers.d.ts +22 -0
  455. package/dist/types-native/components/data-display/Chip/Chip.helpers.d.ts.map +1 -0
  456. package/dist/types-native/components/data-display/Chip/Chip.look.native.d.ts +29 -0
  457. package/dist/types-native/components/data-display/Chip/Chip.look.native.d.ts.map +1 -0
  458. package/dist/types-native/components/data-display/Chip/Chip.metrics.d.ts +61 -0
  459. package/dist/types-native/components/data-display/Chip/Chip.metrics.d.ts.map +1 -0
  460. package/dist/types-native/components/data-display/Chip/Chip.native.d.ts +11 -0
  461. package/dist/types-native/components/data-display/Chip/Chip.native.d.ts.map +1 -0
  462. package/dist/types-native/components/data-display/Chip/Chip.types.native.d.ts +20 -0
  463. package/dist/types-native/components/data-display/Chip/Chip.types.native.d.ts.map +1 -0
  464. package/dist/types-native/components/data-display/Chip/index.native.d.ts +3 -0
  465. package/dist/types-native/components/data-display/Chip/index.native.d.ts.map +1 -0
  466. package/dist/types-native/components/data-display/Progress/Progress.base.d.ts +72 -0
  467. package/dist/types-native/components/data-display/Progress/Progress.base.d.ts.map +1 -0
  468. package/dist/types-native/components/data-display/Progress/Progress.helpers.d.ts +18 -0
  469. package/dist/types-native/components/data-display/Progress/Progress.helpers.d.ts.map +1 -0
  470. package/dist/types-native/components/data-display/Progress/Progress.look.native.d.ts +28 -0
  471. package/dist/types-native/components/data-display/Progress/Progress.look.native.d.ts.map +1 -0
  472. package/dist/types-native/components/data-display/Progress/Progress.metrics.d.ts +91 -0
  473. package/dist/types-native/components/data-display/Progress/Progress.metrics.d.ts.map +1 -0
  474. package/dist/types-native/components/data-display/Progress/Progress.native.d.ts +10 -0
  475. package/dist/types-native/components/data-display/Progress/Progress.native.d.ts.map +1 -0
  476. package/dist/types-native/components/data-display/Progress/Progress.types.native.d.ts +8 -0
  477. package/dist/types-native/components/data-display/Progress/Progress.types.native.d.ts.map +1 -0
  478. package/dist/types-native/components/data-display/Progress/index.native.d.ts +3 -0
  479. package/dist/types-native/components/data-display/Progress/index.native.d.ts.map +1 -0
  480. package/dist/types-native/components/layout/Skeleton/Skeleton.base.d.ts +37 -0
  481. package/dist/types-native/components/layout/Skeleton/Skeleton.base.d.ts.map +1 -0
  482. package/dist/types-native/components/layout/Skeleton/Skeleton.helpers.d.ts +16 -0
  483. package/dist/types-native/components/layout/Skeleton/Skeleton.helpers.d.ts.map +1 -0
  484. package/dist/types-native/components/layout/Skeleton/Skeleton.metrics.d.ts +68 -0
  485. package/dist/types-native/components/layout/Skeleton/Skeleton.metrics.d.ts.map +1 -0
  486. package/dist/types-native/components/layout/Skeleton/Skeleton.native.d.ts +38 -0
  487. package/dist/types-native/components/layout/Skeleton/Skeleton.native.d.ts.map +1 -0
  488. package/dist/types-native/components/layout/Skeleton/Skeleton.types.native.d.ts +8 -0
  489. package/dist/types-native/components/layout/Skeleton/Skeleton.types.native.d.ts.map +1 -0
  490. package/dist/types-native/components/layout/Skeleton/index.native.d.ts +3 -0
  491. package/dist/types-native/components/layout/Skeleton/index.native.d.ts.map +1 -0
  492. package/dist/types-native/icons/paths.generated.d.ts +2 -0
  493. package/dist/types-native/icons/paths.generated.d.ts.map +1 -1
  494. package/dist/types-native/platform/animation.d.ts +14 -0
  495. package/dist/types-native/platform/animation.d.ts.map +1 -0
  496. package/dist/types-native/platform/web-keys.d.ts +25 -0
  497. package/dist/types-native/platform/web-keys.d.ts.map +1 -0
  498. package/dist/types-native/tokens/mui-type.d.ts +1 -1
  499. package/dist/types-native/tokens/mui-type.d.ts.map +1 -1
  500. package/dist/user-avatar.js +7 -5
  501. package/dist/utility/InstallPrompt.js +2 -2
  502. package/package.json +21 -1
  503. package/src/components/data-display/Avatar/Avatar.base.ts +108 -0
  504. package/src/components/data-display/Avatar/Avatar.helpers.ts +54 -0
  505. package/src/components/data-display/Avatar/Avatar.look.native.ts +123 -0
  506. package/src/components/data-display/Avatar/Avatar.metrics.ts +111 -0
  507. package/src/components/data-display/Avatar/Avatar.native.tsx +190 -0
  508. package/src/components/data-display/Avatar/Avatar.parts.native.tsx +243 -0
  509. package/src/components/data-display/Avatar/Avatar.tsx +34 -36
  510. package/src/components/data-display/Avatar/Avatar.types.native.ts +39 -0
  511. package/src/components/data-display/Avatar/Avatar.types.ts +12 -81
  512. package/src/components/data-display/Avatar/Avatar.view.tsx +61 -41
  513. package/src/components/data-display/Avatar/NATIVE-NOTES.md +11 -0
  514. package/src/components/data-display/Avatar/index.native.ts +10 -0
  515. package/src/components/data-display/Avatar/index.ts +8 -1
  516. package/src/components/data-display/Badge/Badge.animations.ts +11 -9
  517. package/src/components/data-display/Badge/Badge.base.ts +138 -0
  518. package/src/components/data-display/Badge/Badge.helpers.ts +18 -7
  519. package/src/components/data-display/Badge/Badge.look.native.ts +174 -0
  520. package/src/components/data-display/Badge/Badge.metrics.ts +116 -0
  521. package/src/components/data-display/Badge/Badge.native.tsx +212 -0
  522. package/src/components/data-display/Badge/Badge.styles.ts +63 -74
  523. package/src/components/data-display/Badge/Badge.tsx +12 -6
  524. package/src/components/data-display/Badge/Badge.types.native.ts +16 -0
  525. package/src/components/data-display/Badge/Badge.types.ts +27 -113
  526. package/src/components/data-display/Badge/Badge.variants.ts +20 -9
  527. package/src/components/data-display/Badge/BadgeContent.native.tsx +78 -0
  528. package/src/components/data-display/Badge/BadgeContent.tsx +8 -8
  529. package/src/components/data-display/Badge/NATIVE-NOTES.md +11 -0
  530. package/src/components/data-display/Badge/index.native.ts +8 -0
  531. package/src/components/data-display/Badge/index.ts +7 -1
  532. package/src/components/data-display/Chip/Chip.base.ts +99 -0
  533. package/src/components/data-display/Chip/Chip.helpers.ts +49 -0
  534. package/src/components/data-display/Chip/Chip.look.native.ts +163 -0
  535. package/src/components/data-display/Chip/Chip.metrics.ts +102 -0
  536. package/src/components/data-display/Chip/Chip.native.tsx +269 -0
  537. package/src/components/data-display/Chip/{Chip.helpers.tsx → Chip.styles.tsx} +23 -51
  538. package/src/components/data-display/Chip/Chip.tsx +10 -11
  539. package/src/components/data-display/Chip/Chip.types.native.ts +28 -0
  540. package/src/components/data-display/Chip/Chip.types.ts +5 -84
  541. package/src/components/data-display/Chip/NATIVE-NOTES.md +10 -0
  542. package/src/components/data-display/Chip/chip.md +1 -1
  543. package/src/components/data-display/Chip/index.native.ts +8 -0
  544. package/src/components/data-display/Chip/index.ts +1 -1
  545. package/src/components/data-display/Progress/NATIVE-NOTES.md +10 -0
  546. package/src/components/data-display/Progress/Progress.base.ts +86 -0
  547. package/src/components/data-display/Progress/Progress.helpers.ts +29 -8
  548. package/src/components/data-display/Progress/Progress.look.native.ts +111 -0
  549. package/src/components/data-display/Progress/Progress.metrics.ts +101 -0
  550. package/src/components/data-display/Progress/Progress.native.tsx +387 -0
  551. package/src/components/data-display/Progress/Progress.styles.ts +31 -17
  552. package/src/components/data-display/Progress/Progress.tsx +7 -6
  553. package/src/components/data-display/Progress/Progress.types.native.ts +11 -0
  554. package/src/components/data-display/Progress/Progress.types.ts +6 -58
  555. package/src/components/data-display/Progress/index.native.ts +7 -0
  556. package/src/components/data-display/Progress/index.ts +6 -1
  557. package/src/components/layout/Skeleton/NATIVE-NOTES.md +8 -0
  558. package/src/components/layout/Skeleton/Skeleton.base.ts +37 -0
  559. package/src/components/layout/Skeleton/Skeleton.helpers.ts +24 -8
  560. package/src/components/layout/Skeleton/Skeleton.metrics.ts +81 -0
  561. package/src/components/layout/Skeleton/Skeleton.native.tsx +271 -0
  562. package/src/components/layout/Skeleton/Skeleton.styles.ts +25 -25
  563. package/src/components/layout/Skeleton/Skeleton.tsx +9 -5
  564. package/src/components/layout/Skeleton/Skeleton.types.native.ts +16 -0
  565. package/src/components/layout/Skeleton/Skeleton.types.ts +13 -16
  566. package/src/components/layout/Skeleton/index.native.ts +8 -0
  567. package/src/components/layout/Skeleton/index.ts +7 -1
  568. package/src/icons/glyphs.json +2 -0
  569. package/src/icons/paths.generated.ts +2 -0
  570. package/src/platform/animation.ts +53 -0
  571. package/src/platform/web-keys.ts +28 -0
  572. package/src/tokens/mui-type.ts +2 -1
  573. package/dist/chunk-3HWL4AW4.js.map +0 -1
  574. package/dist/chunk-4Q7HWRR2.js.map +0 -1
  575. package/dist/chunk-FS4X3VDA.js +0 -78
  576. package/dist/chunk-FS4X3VDA.js.map +0 -1
  577. package/dist/chunk-HAFE43QJ.js.map +0 -1
  578. package/dist/chunk-HKFMPEXJ.js.map +0 -1
  579. package/dist/chunk-HXYXDQ7U.js.map +0 -1
  580. package/dist/chunk-IRDGC7FK.js.map +0 -1
  581. package/dist/chunk-JZKOJZ6V.js.map +0 -1
  582. package/dist/chunk-KPQAPQH6.js.map +0 -1
  583. package/dist/chunk-L6KEVPXN.js.map +0 -1
  584. package/dist/chunk-LYNJJV2X.js.map +0 -1
  585. package/dist/chunk-MMZAGB64.js.map +0 -1
  586. package/dist/chunk-NQHOHQCY.js.map +0 -1
  587. package/dist/chunk-QIV73V2X.js.map +0 -1
  588. package/dist/chunk-RLC46NIW.js.map +0 -1
  589. package/dist/chunk-ZGEBIC5X.js.map +0 -1
  590. package/dist/chunk-ZHEJLUCX.js.map +0 -1
  591. package/dist/native/chunks/chunk-V4DQTC5L.js.map +0 -1
  592. package/dist/native/chunks/chunk-YQGNMAJN.js.map +0 -1
  593. /package/dist/{chunk-P7FQUGED.js.map → chunk-23FCBIUN.js.map} +0 -0
  594. /package/dist/{chunk-SL4NFGOL.js.map → chunk-24BUCMQA.js.map} +0 -0
  595. /package/dist/{chunk-4SXZSSVV.js.map → chunk-2EKALM6P.js.map} +0 -0
  596. /package/dist/{chunk-ZRFRU545.js.map → chunk-2ZDTGI5V.js.map} +0 -0
  597. /package/dist/{chunk-HR7YTBR7.js.map → chunk-3AOOI2NR.js.map} +0 -0
  598. /package/dist/{chunk-KKYW3LU7.js.map → chunk-47UD6DZ4.js.map} +0 -0
  599. /package/dist/{chunk-ZOUWHGV3.js.map → chunk-4MGFUPQT.js.map} +0 -0
  600. /package/dist/{chunk-4FRZDSRD.js.map → chunk-4WK2RTVY.js.map} +0 -0
  601. /package/dist/{chunk-LDE4ELB5.js.map → chunk-5ZF3VASA.js.map} +0 -0
  602. /package/dist/{chunk-JE6RZ5L6.js.map → chunk-5ZOJLYD2.js.map} +0 -0
  603. /package/dist/{chunk-E5ZHW4I5.js.map → chunk-6IUTT6BK.js.map} +0 -0
  604. /package/dist/{chunk-WPR2HS5B.js.map → chunk-74EZ565M.js.map} +0 -0
  605. /package/dist/{chunk-BVZVH3ZN.js.map → chunk-74OZ5KVR.js.map} +0 -0
  606. /package/dist/{chunk-PMS3H3OO.js.map → chunk-76GZ55IC.js.map} +0 -0
  607. /package/dist/{chunk-DLFOEXUP.js.map → chunk-7EESF76V.js.map} +0 -0
  608. /package/dist/{chunk-HKZHEK3Z.js.map → chunk-7JWXLDRH.js.map} +0 -0
  609. /package/dist/{chunk-OR7UH2ZQ.js.map → chunk-7P2HZLEG.js.map} +0 -0
  610. /package/dist/{chunk-6DXYCXH4.js.map → chunk-7RZ4WOQW.js.map} +0 -0
  611. /package/dist/{chunk-EMNGIYH6.js.map → chunk-7TZ6OC5T.js.map} +0 -0
  612. /package/dist/{chunk-CDJPDZCA.js.map → chunk-AEGX66N7.js.map} +0 -0
  613. /package/dist/{chunk-65DLYC4S.js.map → chunk-AVGTTWTE.js.map} +0 -0
  614. /package/dist/{chunk-C6XESZ3R.js.map → chunk-B2A4DG77.js.map} +0 -0
  615. /package/dist/{chunk-VOOPGAQO.js.map → chunk-B7BZAIHL.js.map} +0 -0
  616. /package/dist/{chunk-DZN3JF5E.js.map → chunk-BBC4KT5G.js.map} +0 -0
  617. /package/dist/{chunk-FWCUELBU.js.map → chunk-BILE3A7F.js.map} +0 -0
  618. /package/dist/{chunk-UEJQQVP2.js.map → chunk-BLT5ZBVL.js.map} +0 -0
  619. /package/dist/{chunk-ISSJNFJV.js.map → chunk-C52BELLW.js.map} +0 -0
  620. /package/dist/{chunk-BPYPUEM5.js.map → chunk-CZJLWCEG.js.map} +0 -0
  621. /package/dist/{chunk-WZUNBSS7.js.map → chunk-DVUPIVI2.js.map} +0 -0
  622. /package/dist/{chunk-EXJBPKGW.js.map → chunk-EGRFMPGD.js.map} +0 -0
  623. /package/dist/{chunk-XFUNJYFT.js.map → chunk-EPNUVSNK.js.map} +0 -0
  624. /package/dist/{chunk-H2EQVMU3.js.map → chunk-EX3PSZLV.js.map} +0 -0
  625. /package/dist/{chunk-LIOVN5IM.js.map → chunk-F2DOTCF3.js.map} +0 -0
  626. /package/dist/{chunk-64IEKEMQ.js.map → chunk-FGLV6BXQ.js.map} +0 -0
  627. /package/dist/{chunk-L65LF6LN.js.map → chunk-FP4R47TM.js.map} +0 -0
  628. /package/dist/{chunk-7AR2R7TV.js.map → chunk-G5ZVD5IJ.js.map} +0 -0
  629. /package/dist/{chunk-SHQWIDD5.js.map → chunk-GJQYM3PM.js.map} +0 -0
  630. /package/dist/{chunk-7WL24VNI.js.map → chunk-HDNK7BAX.js.map} +0 -0
  631. /package/dist/{chunk-X5MPHXG5.js.map → chunk-HEG7JIBM.js.map} +0 -0
  632. /package/dist/{chunk-ZIOCRSHU.js.map → chunk-HSAH5QUQ.js.map} +0 -0
  633. /package/dist/{chunk-B443IIQG.js.map → chunk-IE7ISTLQ.js.map} +0 -0
  634. /package/dist/{chunk-NFHS77NE.js.map → chunk-IH4CX43Q.js.map} +0 -0
  635. /package/dist/{chunk-72UYVJBQ.js.map → chunk-IJIT5HQP.js.map} +0 -0
  636. /package/dist/{chunk-AP4FLCLA.js.map → chunk-J54WH74M.js.map} +0 -0
  637. /package/dist/{chunk-5HOJSVQH.js.map → chunk-JB7JE4QZ.js.map} +0 -0
  638. /package/dist/{chunk-QJJUTBKZ.js.map → chunk-KQ74QU55.js.map} +0 -0
  639. /package/dist/{chunk-YLDS5FOQ.js.map → chunk-KZSKI2R3.js.map} +0 -0
  640. /package/dist/{chunk-IIOEQRXX.js.map → chunk-LAHDFBDE.js.map} +0 -0
  641. /package/dist/{chunk-BUDXR3EV.js.map → chunk-LKVIZNUM.js.map} +0 -0
  642. /package/dist/{chunk-OAXAF4VY.js.map → chunk-LMJBINWN.js.map} +0 -0
  643. /package/dist/{chunk-SFAP5EH5.js.map → chunk-LUMF63BM.js.map} +0 -0
  644. /package/dist/{chunk-KADJNWTQ.js.map → chunk-LZRURORY.js.map} +0 -0
  645. /package/dist/{chunk-CLNTJM3F.js.map → chunk-M7OHXNLF.js.map} +0 -0
  646. /package/dist/{chunk-UXQW6ZIN.js.map → chunk-MBYO2F4Y.js.map} +0 -0
  647. /package/dist/{chunk-MCRIT46W.js.map → chunk-MY5VNNSP.js.map} +0 -0
  648. /package/dist/{chunk-XELVDPKL.js.map → chunk-NFAKRI4S.js.map} +0 -0
  649. /package/dist/{chunk-KSF7TLXH.js.map → chunk-NHSMLVNC.js.map} +0 -0
  650. /package/dist/{chunk-ES2RN7YV.js.map → chunk-NRUYYGDZ.js.map} +0 -0
  651. /package/dist/{chunk-MQUU2XZB.js.map → chunk-OQFSYMHJ.js.map} +0 -0
  652. /package/dist/{chunk-M3RIC6JI.js.map → chunk-OQXOYHIV.js.map} +0 -0
  653. /package/dist/{chunk-PC3ZFERM.js.map → chunk-PC5FFEIY.js.map} +0 -0
  654. /package/dist/{chunk-SOHDPFOB.js.map → chunk-PHCSPHDH.js.map} +0 -0
  655. /package/dist/{chunk-OZWQNFG6.js.map → chunk-PODGTNXS.js.map} +0 -0
  656. /package/dist/{chunk-IPE5FFFD.js.map → chunk-PUBPZOQJ.js.map} +0 -0
  657. /package/dist/{chunk-GBFGZJB5.js.map → chunk-Q4NOI2CR.js.map} +0 -0
  658. /package/dist/{chunk-GOWBYHYW.js.map → chunk-R6SBP5M5.js.map} +0 -0
  659. /package/dist/{chunk-DTKMBI7B.js.map → chunk-R7MX5KPJ.js.map} +0 -0
  660. /package/dist/{chunk-NECUCG2S.js.map → chunk-RQDN4BN5.js.map} +0 -0
  661. /package/dist/{chunk-5SYD23V4.js.map → chunk-SKZHOWTS.js.map} +0 -0
  662. /package/dist/{chunk-Y6KPZQPI.js.map → chunk-SOCKK67R.js.map} +0 -0
  663. /package/dist/{chunk-GCJLMX63.js.map → chunk-VCTKJHXD.js.map} +0 -0
  664. /package/dist/{chunk-QZPNQWS2.js.map → chunk-VEFDL77X.js.map} +0 -0
  665. /package/dist/{chunk-WEH5TCPE.js.map → chunk-VJFH2AXT.js.map} +0 -0
  666. /package/dist/{chunk-S7HRED4D.js.map → chunk-VLHGBFR6.js.map} +0 -0
  667. /package/dist/{chunk-HP2ODXNA.js.map → chunk-VR5HDUBK.js.map} +0 -0
  668. /package/dist/{chunk-RBGOGTT2.js.map → chunk-W2UTDN4T.js.map} +0 -0
  669. /package/dist/{chunk-N4WANJI3.js.map → chunk-WBVHRLIS.js.map} +0 -0
  670. /package/dist/{chunk-XXJRT6BP.js.map → chunk-WMALDOF5.js.map} +0 -0
  671. /package/dist/{chunk-MHFJBNDP.js.map → chunk-WO52KYSU.js.map} +0 -0
  672. /package/dist/{chunk-ZBOFBRZC.js.map → chunk-WX7VWW3W.js.map} +0 -0
  673. /package/dist/{chunk-J4W4TQPC.js.map → chunk-X24P3ZYW.js.map} +0 -0
  674. /package/dist/{chunk-X2J6MRJW.js.map → chunk-YFHIESMD.js.map} +0 -0
  675. /package/dist/{chunk-72NOM3O2.js.map → chunk-YK2PETUP.js.map} +0 -0
  676. /package/dist/{chunk-CRNQVWIT.js.map → chunk-Z4GWXTZV.js.map} +0 -0
  677. /package/dist/{chunk-SG6VULKS.js.map → chunk-ZEBJT5JZ.js.map} +0 -0
@@ -1,119 +1,33 @@
1
- import type { ColorValue, SizeValue } from '../../../tokens/scales';
2
1
  import type { BadgeProps as MuiBadgeProps } from '@mui/material/Badge/index.js';
3
- import type React from 'react';
4
2
 
5
- export type BadgeVariant =
6
- | 'default'
7
- | 'dot'
8
- | 'count'
9
- | 'gradient'
10
- | 'glass'
11
- | 'outline'
12
- | 'secondary'
13
- | 'destructive'
14
- | 'success'
15
- | 'warning';
16
-
17
- export type BadgeSize = SizeValue;
18
-
19
- export interface BadgeProps extends Omit<MuiBadgeProps, 'variant' | 'color' | 'content'> {
20
- /**
21
- * The variant of the badge
22
- */
23
- variant?: BadgeVariant;
24
-
25
- /**
26
- * The size of the badge
27
- */
28
- size?: BadgeSize;
29
-
30
- /**
31
- * The color of the badge
32
- */
33
- color?: ColorValue;
34
-
35
- /**
36
- * Whether the badge should have a glow effect
37
- */
38
- glow?: boolean;
39
-
40
- /**
41
- * Whether the badge should have a pulse animation
42
- */
43
- pulse?: boolean;
44
-
45
- /**
46
- * Whether to animate the badge on mount
47
- */
48
- animate?: boolean;
49
-
50
- /**
51
- * Maximum count to display (shows "max+" when exceeded)
52
- */
53
- max?: number;
54
-
55
- /**
56
- * Whether to show zero count
57
- */
58
- showZero?: boolean;
59
-
60
- /**
61
- * Custom content for the badge
62
- */
63
- content?: React.ReactNode;
64
-
65
- /**
66
- * Position of the badge
67
- */
68
- position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
69
-
70
- /**
71
- * Accessibility label for screen readers
72
- */
73
- 'aria-label'?: string;
74
-
75
- /**
76
- * ARIA live region behavior
77
- */
78
- 'aria-live'?: 'off' | 'polite' | 'assertive';
79
-
80
- /**
81
- * Whether the live region should be atomic
82
- */
83
- 'aria-atomic'?: boolean;
84
-
3
+ import type { BadgeBaseProps } from './Badge.base';
4
+
5
+ export type {
6
+ BadgeBaseProps,
7
+ BadgePosition,
8
+ BadgeSize,
9
+ BadgeVariant,
10
+ } from './Badge.base';
11
+
12
+ /** The web `Badge`: the shared contract, plus MUI's own badge props. */
13
+ export interface BadgeProps
14
+ extends BadgeBaseProps,
15
+ Omit<
16
+ MuiBadgeProps,
17
+ | 'variant'
18
+ | 'color'
19
+ | 'content'
20
+ | 'badgeContent'
21
+ | 'children'
22
+ | 'invisible'
23
+ // MUI types these as `Booleanish`/its own unions through `AriaAttributes`;
24
+ // the shared contract narrows them, and the narrower one is the contract.
25
+ | 'aria-atomic'
26
+ | 'aria-live'
27
+ | 'aria-label'
28
+ > {
85
29
  /**
86
30
  * Additional CSS class name
87
31
  */
88
32
  className?: string;
89
-
90
- /**
91
- * Whether the badge should be closable
92
- */
93
- closable?: boolean;
94
-
95
- /**
96
- * Callback when badge is closed
97
- */
98
- onClose?: () => void;
99
-
100
- /**
101
- * Whether to show a shimmer effect
102
- */
103
- shimmer?: boolean;
104
-
105
- /**
106
- * Whether to bounce on mount
107
- */
108
- bounce?: boolean;
109
-
110
- /**
111
- * Custom icon element to display in the badge
112
- */
113
- icon?: React.ReactNode;
114
-
115
- /**
116
- * Custom test ID for testing
117
- */
118
- 'data-testid'?: string;
119
- }
33
+ }
@@ -1,6 +1,17 @@
1
1
  import type { CSSObject, Theme } from '@mui/material/styles/index.js';
2
2
  import { alpha } from '@mui/material/styles/index.js';
3
3
 
4
+ import {
5
+ BADGE_DESTRUCTIVE_FONT_WEIGHT,
6
+ GLASS_BACKGROUND_ALPHA,
7
+ GLASS_BLUR_PX,
8
+ GLASS_BORDER_ALPHA,
9
+ GLASS_INSET_HIGHLIGHT_ALPHA,
10
+ GLASS_SATURATE,
11
+ OUTLINE_BORDER_WIDTH,
12
+ SECONDARY_BACKGROUND_ALPHA,
13
+ SECONDARY_BORDER_ALPHA,
14
+ } from './Badge.metrics';
4
15
  import type { BadgePalette, BadgeSizeStyles } from './Badge.styles';
5
16
 
6
17
  const BADGE_VARIANTS: Record<
@@ -41,20 +52,20 @@ const BADGE_VARIANTS: Record<
41
52
  padding: sizeStyles.padding,
42
53
  borderRadius: sizeStyles.height / 2 }),
43
54
  glass: (theme, colorPalette, sizeStyles) => ({
44
- backgroundColor: alpha(colorPalette.main, 0.1),
45
- backdropFilter: 'blur(10px) saturate(200%)',
46
- WebkitBackdropFilter: 'blur(10px) saturate(200%)',
47
- border: `1px solid ${alpha(colorPalette.main, 0.2)}`,
55
+ backgroundColor: alpha(colorPalette.main, GLASS_BACKGROUND_ALPHA),
56
+ backdropFilter: `blur(${GLASS_BLUR_PX}px) saturate(${GLASS_SATURATE * 100}%)`,
57
+ WebkitBackdropFilter: `blur(${GLASS_BLUR_PX}px) saturate(${GLASS_SATURATE * 100}%)`,
58
+ border: `1px solid ${alpha(colorPalette.main, GLASS_BORDER_ALPHA)}`,
48
59
  color: colorPalette.main,
49
60
  minWidth: sizeStyles.minWidth,
50
61
  height: sizeStyles.height,
51
62
  fontSize: sizeStyles.fontSize,
52
63
  padding: sizeStyles.padding,
53
64
  borderRadius: sizeStyles.height / 2,
54
- boxShadow: `inset 0 1px 1px ${alpha(theme.palette.common.white, 0.1)}` }),
65
+ boxShadow: `inset 0 1px 1px ${alpha(theme.palette.common.white, GLASS_INSET_HIGHLIGHT_ALPHA)}` }),
55
66
  outline: (theme, colorPalette, sizeStyles) => ({
56
67
  backgroundColor: 'transparent',
57
- border: `2px solid ${colorPalette.main}`,
68
+ border: `${OUTLINE_BORDER_WIDTH}px solid ${colorPalette.main}`,
58
69
  color: colorPalette.main,
59
70
  minWidth: sizeStyles.minWidth,
60
71
  height: sizeStyles.height,
@@ -62,9 +73,9 @@ const BADGE_VARIANTS: Record<
62
73
  padding: sizeStyles.padding,
63
74
  borderRadius: sizeStyles.height / 2 }),
64
75
  secondary: (theme, colorPalette, sizeStyles) => ({
65
- backgroundColor: alpha(colorPalette.main, 0.15),
76
+ backgroundColor: alpha(colorPalette.main, SECONDARY_BACKGROUND_ALPHA),
66
77
  color: colorPalette.main,
67
- border: `1px solid ${alpha(colorPalette.main, 0.3)}`,
78
+ border: `1px solid ${alpha(colorPalette.main, SECONDARY_BORDER_ALPHA)}`,
68
79
  minWidth: sizeStyles.minWidth,
69
80
  height: sizeStyles.height,
70
81
  fontSize: sizeStyles.fontSize,
@@ -78,7 +89,7 @@ const BADGE_VARIANTS: Record<
78
89
  fontSize: sizeStyles.fontSize,
79
90
  padding: sizeStyles.padding,
80
91
  borderRadius: sizeStyles.height / 2,
81
- fontWeight: 700 }),
92
+ fontWeight: BADGE_DESTRUCTIVE_FONT_WEIGHT }),
82
93
  success: (theme, colorPalette, sizeStyles) => ({
83
94
  backgroundColor: theme.palette.success.main,
84
95
  color: theme.palette.success.contrastText,
@@ -0,0 +1,78 @@
1
+ import * as React from 'react';
2
+ import { Pressable, StyleSheet, View } from 'react-native';
3
+
4
+ import type { BadgeSize, BadgeVariant } from './Badge.base';
5
+ import { badgeMetrics, badgeTextStyle } from './Badge.look.native';
6
+ import { BADGE_CONTENT_GAP } from './Badge.metrics';
7
+ import { Icon } from '../../../icons/Icon.native';
8
+ import { renderTextChildren } from '../../../platform/text-children';
9
+ import { useUiTheme } from '../../../provider/use-ui-theme.native';
10
+ import type { ColorValue } from '../../../tokens/vocabulary';
11
+
12
+ export interface BadgeContentProps {
13
+ variant: BadgeVariant;
14
+ size: BadgeSize;
15
+ color: ColorValue;
16
+ icon?: React.ReactNode;
17
+ closable: boolean;
18
+ content: React.ReactNode;
19
+ idFor: (suffix: string) => string;
20
+ onClose: () => void;
21
+ }
22
+
23
+ /**
24
+ * The badge's inner run: optional icon, the content itself, optional close
25
+ * button — the same three slots and the same ids `BadgeContent.tsx` builds. A
26
+ * dot badge shows none of it.
27
+ */
28
+ export function BadgeContent({
29
+ variant,
30
+ size,
31
+ color,
32
+ icon,
33
+ closable,
34
+ content,
35
+ idFor,
36
+ onClose,
37
+ }: BadgeContentProps): React.JSX.Element | null {
38
+ const theme = useUiTheme();
39
+ if (variant === 'dot') return null;
40
+
41
+ const metrics = badgeMetrics(size);
42
+ const text = badgeTextStyle(theme, variant, size, color);
43
+ const hasContent = content !== null && content !== undefined;
44
+ if (!icon && !hasContent && !closable) return null;
45
+
46
+ return (
47
+ <View style={styles.run}>
48
+ {icon ? (
49
+ <View testID={idFor('icon')} style={{ height: metrics.iconSize, justifyContent: 'center' }}>
50
+ {icon}
51
+ </View>
52
+ ) : null}
53
+ {hasContent ? (
54
+ <View testID={idFor('content')} style={styles.centre}>
55
+ {renderTextChildren(content, text, 1)}
56
+ </View>
57
+ ) : null}
58
+ {closable ? (
59
+ <Pressable
60
+ testID={idFor('close')}
61
+ role="button"
62
+ aria-label="close"
63
+ onPress={onClose}
64
+ style={styles.close}
65
+ >
66
+ <Icon name="Close" size={metrics.closeIconSize} color={text.color as string} />
67
+ </Pressable>
68
+ ) : null}
69
+ </View>
70
+ );
71
+ }
72
+
73
+ const styles = StyleSheet.create({
74
+ run: { flexDirection: 'row', alignItems: 'center', gap: BADGE_CONTENT_GAP },
75
+ centre: { alignItems: 'center', justifyContent: 'center' },
76
+ /** MUI's close `IconButton` sits half a spacing unit clear of the label. */
77
+ close: { marginLeft: 4, alignItems: 'center', justifyContent: 'center' },
78
+ });
@@ -3,16 +3,16 @@ import IconButton from '@mui/material/IconButton/index.js';
3
3
  import type { FC, ReactNode } from 'react';
4
4
  import React from 'react';
5
5
 
6
+ import { BADGE_CONTENT_GAP, BADGE_SIZES } from './Badge.metrics';
6
7
  import { getSizeStyles } from './Badge.styles';
7
8
  import type { BadgeSize } from './Badge.types';
9
+ import { px } from '../../../tokens/theme';
8
10
 
9
- // CLOSE_ICON_SIZES already exists in Badge.tsx; the size lookup lives here now.
10
- const CLOSE_ICON_SIZES: Record<string, string> = {
11
- xs: '0.5rem',
12
- sm: '0.625rem',
13
- md: '0.75rem',
14
- lg: '0.875rem',
15
- };
11
+ // Derived from the shared metrics: `xl` takes `lg`'s glyph, which is what the
12
+ // hand-written map did through its `?? CLOSE_ICON_SIZES.lg` fallback.
13
+ const CLOSE_ICON_SIZES: Record<string, string> = Object.fromEntries(
14
+ Object.entries(BADGE_SIZES).map(([size, metrics]) => [size, px(metrics.closeIconSize)]),
15
+ );
16
16
 
17
17
  const makeTestId =
18
18
  (dataTestId?: string) =>
@@ -102,6 +102,6 @@ export const buildBadgeContent = ({
102
102
  if (parts.length === 0) return null;
103
103
 
104
104
  return (
105
- <span style={{ display: 'inline-flex', alignItems: 'center', gap: '2px' }}>{parts}</span>
105
+ <span style={{ display: 'inline-flex', alignItems: 'center', gap: `${BADGE_CONTENT_GAP}px` }}>{parts}</span>
106
106
  );
107
107
  };
@@ -0,0 +1,11 @@
1
+ # Badge on React Native
2
+
3
+ Known rendering gaps, one bullet each; `pnpm native:ledger` reads them.
4
+
5
+ - `gradient` paints the 135° run's first stop flat and `glass` keeps its 10% wash and 20% hairline without the `blur(10px) saturate(200%)` backdrop or the inset white highlight — React Native has no gradient fill, no backdrop filter and no inset shadow.
6
+ - `shimmer` is a gradient sweeping across a pseudo-element and is not drawn at all; the chip keeps its variant's paint.
7
+ - `glow` draws the 15px halo but not the `brightness(1.1)` filter beside it, and `glow` WITH `pulse` breathes only the scale and the opacity — the halo itself cannot be animated, because a box shadow is not an animatable style there.
8
+ - Hover has no touch equivalent: the chip's `scale(1.1)` under the pointer and the glow's brighter hover halo are web-only.
9
+ - `count` is drawn as a pill (`height / 2`); MUI asks for `border-radius: 50%`, which on a chip wider than it is tall is an ellipse React Native cannot express.
10
+ - MUI's `transition: all 0.3s` on the chip has no equivalent: a colour or size change is drawn immediately. The mount, pulse and close animations are `Animated` and do run.
11
+ - `onClick` on the badge reaches the DOM through react-native-web and fires there, as it does on the web; a device has no click, so a shared screen that needs a press should put one on its own child.
@@ -0,0 +1,8 @@
1
+ export { Badge } from './Badge.native';
2
+ export type {
3
+ BadgeBaseProps,
4
+ BadgePosition,
5
+ BadgeProps,
6
+ BadgeSize,
7
+ BadgeVariant,
8
+ } from './Badge.types.native';
@@ -1,2 +1,8 @@
1
1
  export { Badge } from './Badge';
2
- export type { BadgeProps, BadgeSize, BadgeVariant } from './Badge.types';
2
+ export type {
3
+ BadgeBaseProps,
4
+ BadgePosition,
5
+ BadgeProps,
6
+ BadgeSize,
7
+ BadgeVariant,
8
+ } from './Badge.types';
@@ -0,0 +1,99 @@
1
+ import type { ReactNode } from 'react';
2
+
3
+ import type { ColorValue, SizeValue } from '../../../tokens/vocabulary';
4
+
5
+ /**
6
+ * THE CONTRACT BOTH RENDERERS HONOUR — and nothing else.
7
+ *
8
+ * This file imports no MUI and no react-native, on purpose: it is in BOTH
9
+ * declaration outputs (`dist/types` and `dist/types-native`), and a native
10
+ * consumer has no `@mui/material` to resolve a type import against.
11
+ */
12
+ export type ChipVariant = 'filled' | 'outlined';
13
+
14
+ /**
15
+ * The house size scale, abbreviated like every other component's.
16
+ *
17
+ * `Avatar`, `Badge`, `Progress`, `Input`, `Modal` and `Dialog` all use `sm`/`md`;
18
+ * this was `'small' | 'medium'`, MUI's spelling, and the sole outlier in the
19
+ * package. That was not merely inconsistent — callers wrote `size="sm"` because
20
+ * every neighbouring component taught them to, it type-checked against the old
21
+ * `ChipSize` nowhere and reached MUI as an unknown value, and the chip silently
22
+ * rendered at the default `medium`. Twelve of them are doing that today.
23
+ *
24
+ * All five stops, and `Chip.tsx` draws them: MUI gives a chip two heights, so
25
+ * `xs`/`sm` map to small and `md` and up to medium. Offering fewer than five
26
+ * here is what made callers write `size="sm"` against a type that did not have
27
+ * it — the scale is the vocabulary, and a component that speaks a dialect of it
28
+ * is the problem, not the solution.
29
+ */
30
+ export type ChipSize = SizeValue;
31
+
32
+ /**
33
+ * The colours a chip can draw — THE HOUSE VOCABULARY, identical to `ButtonProps`.
34
+ *
35
+ * `danger` and `neutral` are ours; the rest are MUI's own names already. That is
36
+ * the same sentence `Button.tsx` carries, and deliberately so: `Button`, `Alert`,
37
+ * `Text`, `Heading`, `Paragraph` and `Blockquote` all speak this vocabulary, so a
38
+ * chip is the odd one out if it does not.
39
+ *
40
+ * This prop was `string`, and the widening was not free. `danger` — the house
41
+ * word for the destructive meaning, and what every neighbouring component
42
+ * accepts — reached MUI as an unknown value and fell back to the default grey.
43
+ * The chip that most needed emphasis rendered without any, and nothing said so.
44
+ *
45
+ * The fix is NOT to reject `danger`. Rejecting it would punish a caller for
46
+ * using the vocabulary the rest of the system taught them. The fix is for the
47
+ * chip to speak it and translate at the MUI boundary, exactly as `Button` does.
48
+ */
49
+ export type ChipColor = ColorValue;
50
+
51
+ export interface ChipBaseProps {
52
+ /** Text content displayed in the chip */
53
+ label: string;
54
+
55
+ /** Visual style variant */
56
+ variant?: ChipVariant;
57
+
58
+ /** Size of the chip */
59
+ size?: ChipSize;
60
+
61
+ /** Theme color token. See {@link ChipColor} for why this is a closed set. */
62
+ color?: ChipColor;
63
+
64
+ /** Source URL for avatar image */
65
+ avatarSrc?: string;
66
+
67
+ /** Custom avatar React node (overrides avatarSrc) */
68
+ avatar?: ReactNode;
69
+
70
+ /** Leading icon React node */
71
+ icon?: ReactNode;
72
+
73
+ /** Current selection state */
74
+ selected?: boolean;
75
+
76
+ /** Enables selection toggle capability */
77
+ selectable?: boolean;
78
+
79
+ /** Shows delete button */
80
+ deletable?: boolean;
81
+
82
+ /** Disables all interactions */
83
+ disabled?: boolean;
84
+
85
+ /**
86
+ * Click/selection handler. The name is the web's on both sides; the native
87
+ * chip also answers to `onPress`, as `Button` does.
88
+ */
89
+ onClick?: () => void;
90
+
91
+ /** Delete action handler */
92
+ onDelete?: () => void;
93
+
94
+ /** Test ID for component testing */
95
+ dataTestId?: string;
96
+
97
+ /** React Native's spelling of {@link ChipBaseProps.dataTestId}. */
98
+ testID?: string;
99
+ }
@@ -0,0 +1,49 @@
1
+ /** `${dataTestId}-label`, or `chip-label` when the caller named nothing. */
2
+ export const makeTestId =
3
+ (dataTestId?: string) =>
4
+ (suffix: string): string =>
5
+ dataTestId ? `${dataTestId}-${suffix}` : `chip-${suffix}`;
6
+
7
+ /** `option` when the chip belongs to a selectable set, `button` when it merely acts. */
8
+ export const chipRole = (
9
+ selectable?: boolean,
10
+ // `unknown`, because the two renderers hand this a differently-typed handler
11
+ // and all that is asked of it here is whether the caller supplied one.
12
+ onClick?: unknown,
13
+ ): 'option' | 'button' | undefined => {
14
+ if (selectable) return 'option';
15
+ return onClick ? 'button' : undefined;
16
+ };
17
+
18
+ export const isClickable = (
19
+ disabled?: boolean,
20
+ onClick?: unknown,
21
+ selectable?: boolean,
22
+ ): boolean => !disabled && (Boolean(onClick) || Boolean(selectable));
23
+
24
+ /** What a key press on a chip means, if anything. */
25
+ export type ChipKeyAction = 'delete' | 'activate' | null;
26
+
27
+ const DELETE_KEYS = new Set(['Delete', 'Backspace']);
28
+ const ACTIVATE_KEYS = new Set(['Enter', ' ']);
29
+
30
+ export interface ChipKeyArgs {
31
+ disabled?: boolean;
32
+ deletable?: boolean;
33
+ selectable?: boolean;
34
+ onClick?: unknown;
35
+ onDelete?: unknown;
36
+ }
37
+
38
+ /**
39
+ * A chip is not a native control, so the two keyboard conventions it stands in
40
+ * for are decided by hand: Delete/Backspace removes it, Enter/Space activates
41
+ * it. Both renderers read this one decision — the web wires it to the DOM
42
+ * handler, the native half to react-native-web's (see `Chip.native.tsx`).
43
+ */
44
+ export function chipKeyAction(key: string, a: ChipKeyArgs): ChipKeyAction {
45
+ if (a.disabled) return null;
46
+ if (DELETE_KEYS.has(key) && a.deletable && a.onDelete) return 'delete';
47
+ if (ACTIVATE_KEYS.has(key) && (a.onClick || a.selectable)) return 'activate';
48
+ return null;
49
+ }
@@ -0,0 +1,163 @@
1
+ import type { ImageStyle, TextStyle, ViewStyle } from 'react-native';
2
+
3
+ import type { ChipColor, ChipVariant } from './Chip.base';
4
+ import {
5
+ CHIP_DISABLED_OPACITY,
6
+ CHIP_FONT_SIZE,
7
+ CHIP_RADIUS,
8
+ CHIP_SIZES,
9
+ DELETE_ICON_ALPHA,
10
+ DELETE_ICON_ON_COLOR_ALPHA,
11
+ OUTLINED_BORDER_ALPHA,
12
+ OUTLINED_HOVER_ALPHA,
13
+ type ChipMuiSize,
14
+ type ChipSizeMetrics,
15
+ } from './Chip.metrics';
16
+ import { alpha } from '../../../tokens/color';
17
+ import type { UiTheme } from '../../../tokens/theme';
18
+
19
+ /** MUI's `action.selectedOpacity`; its hover wash adds `OUTLINED_HOVER_ALPHA` on top. */
20
+ const SELECTED_OPACITY = 0.08;
21
+
22
+ export interface ChipPaint {
23
+ container: ViewStyle;
24
+ /** The web's `:hover` background, which touch has no equivalent of. */
25
+ pressed: ViewStyle;
26
+ label: TextStyle;
27
+ deleteColor: string;
28
+ }
29
+
30
+ /** `neutral` is MUI's `default`: no accent, the ink and the ramp instead. */
31
+ const isAccented = (color: ChipColor): boolean => color !== 'neutral';
32
+
33
+ /** An unaccented chip's hairline, which follows the mode rather than a hue. */
34
+ const neutralBorder = (theme: UiTheme): string =>
35
+ theme.mode === 'light' ? theme.palette.grey[400] : theme.palette.grey[700];
36
+
37
+ function filledPaint(theme: UiTheme, color: ChipColor): ChipPaint {
38
+ if (!isAccented(color)) {
39
+ return {
40
+ container: { backgroundColor: theme.palette.action.selected },
41
+ pressed: { backgroundColor: alpha(theme.palette.action.selected, SELECTED_OPACITY + OUTLINED_HOVER_ALPHA) },
42
+ label: { color: theme.palette.text.primary },
43
+ deleteColor: alpha(theme.palette.text.primary, DELETE_ICON_ALPHA),
44
+ };
45
+ }
46
+ const accent = theme.palette[color];
47
+ return {
48
+ container: { backgroundColor: accent.main },
49
+ pressed: { backgroundColor: accent.dark },
50
+ label: { color: accent.contrastText },
51
+ deleteColor: alpha(accent.contrastText, DELETE_ICON_ON_COLOR_ALPHA),
52
+ };
53
+ }
54
+
55
+ function outlinedPaint(theme: UiTheme, color: ChipColor): ChipPaint {
56
+ const border: ViewStyle = { backgroundColor: 'transparent', borderWidth: 1, borderStyle: 'solid' };
57
+ if (!isAccented(color)) {
58
+ return {
59
+ container: { ...border, borderColor: neutralBorder(theme) },
60
+ pressed: { backgroundColor: theme.palette.action.hover },
61
+ label: { color: theme.palette.text.primary },
62
+ deleteColor: alpha(theme.palette.text.primary, DELETE_ICON_ALPHA),
63
+ };
64
+ }
65
+ const accent = theme.palette[color];
66
+ return {
67
+ container: { ...border, borderColor: alpha(accent.main, OUTLINED_BORDER_ALPHA) },
68
+ pressed: { backgroundColor: alpha(accent.main, OUTLINED_HOVER_ALPHA) },
69
+ label: { color: accent.main },
70
+ deleteColor: alpha(accent.main, OUTLINED_BORDER_ALPHA),
71
+ };
72
+ }
73
+
74
+ /**
75
+ * What MUI's chip paints, as React Native styles. `selected` tints an OUTLINED
76
+ * chip with `action.selected` — a filled one is already solid, which is what
77
+ * `Chip.styles.tsx` decided for the web.
78
+ */
79
+ export function chipPaint(
80
+ theme: UiTheme,
81
+ variant: ChipVariant,
82
+ color: ChipColor,
83
+ selected: boolean,
84
+ ): ChipPaint {
85
+ const paint = variant === 'outlined' ? outlinedPaint(theme, color) : filledPaint(theme, color);
86
+ if (variant !== 'outlined' || !selected) return paint;
87
+ return {
88
+ ...paint,
89
+ container: { ...paint.container, backgroundColor: theme.palette.action.selected },
90
+ };
91
+ }
92
+
93
+ /** The pill itself: MUI's height, its 16px radius, and the disabled fade. */
94
+ export function chipContainerStyle(metrics: ChipSizeMetrics, disabled: boolean): ViewStyle {
95
+ return {
96
+ flexDirection: 'row',
97
+ alignItems: 'center',
98
+ justifyContent: 'center',
99
+ alignSelf: 'flex-start',
100
+ maxWidth: '100%',
101
+ height: metrics.height,
102
+ borderRadius: CHIP_RADIUS,
103
+ ...(disabled ? { opacity: CHIP_DISABLED_OPACITY } : {}),
104
+ };
105
+ }
106
+
107
+ /** The label: MUI's 13px, padded by the variant, clipped rather than wrapped. */
108
+ export function chipLabelStyle(
109
+ theme: UiTheme,
110
+ metrics: ChipSizeMetrics,
111
+ variant: ChipVariant,
112
+ ): TextStyle {
113
+ const padding = variant === 'outlined' ? metrics.labelPaddingOutlined : metrics.labelPadding;
114
+ return {
115
+ fontFamily: theme.typography.fontFamily,
116
+ fontSize: CHIP_FONT_SIZE,
117
+ paddingLeft: padding,
118
+ paddingRight: padding,
119
+ flexShrink: 1,
120
+ };
121
+ }
122
+
123
+ /** The margins MUI gives the leading slot, tucking it under the label's padding. */
124
+ export function chipLeadingSlotStyle(
125
+ metrics: ChipSizeMetrics,
126
+ variant: ChipVariant,
127
+ slot: 'icon' | 'avatar',
128
+ ): ViewStyle {
129
+ const outlined = variant === 'outlined';
130
+ const marginLeft =
131
+ slot === 'icon'
132
+ ? (outlined ? metrics.iconMarginLeftOutlined : metrics.iconMarginLeft)
133
+ : (outlined ? metrics.avatarMarginLeftOutlined : metrics.avatarMarginLeft);
134
+ return {
135
+ marginLeft,
136
+ marginRight: slot === 'icon' ? metrics.iconMarginRight : metrics.avatarMarginRight,
137
+ alignItems: 'center',
138
+ justifyContent: 'center',
139
+ };
140
+ }
141
+
142
+ /** The delete glyph's own tuck, one pixel tighter when the chip is outlined. */
143
+ export function chipDeleteSlotStyle(metrics: ChipSizeMetrics, variant: ChipVariant): ViewStyle {
144
+ return {
145
+ marginLeft: metrics.deleteMarginLeft,
146
+ marginRight:
147
+ variant === 'outlined' ? metrics.deleteMarginRightOutlined : metrics.deleteMarginRight,
148
+ alignItems: 'center',
149
+ justifyContent: 'center',
150
+ };
151
+ }
152
+
153
+ /** The round avatar box MUI draws for an `avatarSrc`. */
154
+ export function chipAvatarStyle(metrics: ChipSizeMetrics): ImageStyle {
155
+ return {
156
+ width: metrics.avatarSize,
157
+ height: metrics.avatarSize,
158
+ borderRadius: metrics.avatarSize / 2,
159
+ overflow: 'hidden',
160
+ };
161
+ }
162
+
163
+ export const chipMetrics = (size: ChipMuiSize): ChipSizeMetrics => CHIP_SIZES[size];