@12-apps/ui 6.21.0 → 6.23.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 (688) hide show
  1. package/NATIVE.md +6 -4
  2. package/components-catalog.md +7 -0
  3. package/dist/_internal/components/data-display/Alert/Alert.js +4 -4
  4. package/dist/_internal/components/data-display/Alert/Alert.styles.js +2 -2
  5. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +8 -8
  6. package/dist/_internal/components/data-display/Badge/Badge.js +3 -3
  7. package/dist/_internal/components/data-display/CardKit/CardKebab.js +4 -4
  8. package/dist/_internal/components/data-display/CardKit/card-actions-context.js +5 -5
  9. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +9 -9
  10. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +4 -4
  11. package/dist/_internal/components/data-display/Chart/Chart.js +3 -3
  12. package/dist/_internal/components/data-display/Chart/SpecChart.js +5 -5
  13. package/dist/_internal/components/data-display/Chart/chart-renderers.js +2 -2
  14. package/dist/_internal/components/data-display/Chip/Chip.js +3 -3
  15. package/dist/_internal/components/data-display/Chip/Chip.styles.js +2 -2
  16. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
  17. package/dist/_internal/components/data-display/DataViews/DataViewsBoard.js +3 -3
  18. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +50 -50
  19. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +68 -65
  20. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +10 -7
  21. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +11 -8
  22. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +14 -11
  23. package/dist/_internal/components/data-display/DataViews/base-card.js +9 -7
  24. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +7 -7
  25. package/dist/_internal/components/data-display/DataViews/base-list-card-gutters.js +3 -3
  26. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +6 -6
  27. package/dist/_internal/components/data-display/DataViews/base-list-card.js +15 -13
  28. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +12 -12
  29. package/dist/_internal/components/data-display/DataViews/data-views-columns-tab.js +3 -3
  30. package/dist/_internal/components/data-display/DataViews/data-views-columns.js +5 -5
  31. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +8 -8
  32. package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +3 -3
  33. package/dist/_internal/components/data-display/DataViews/data-views-empty.js +5 -5
  34. package/dist/_internal/components/data-display/DataViews/data-views-export.js +5 -5
  35. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +15 -15
  36. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +12 -12
  37. package/dist/_internal/components/data-display/DataViews/data-views-grid-helpers.js +4 -4
  38. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +46 -46
  39. package/dist/_internal/components/data-display/DataViews/data-views-header-row.js +3 -3
  40. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +21 -21
  41. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +6 -6
  42. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +9 -9
  43. package/dist/_internal/components/data-display/DataViews/data-views-pagination.js +3 -3
  44. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +2 -2
  45. package/dist/_internal/components/data-display/DataViews/data-views-select-all-strip.js +5 -5
  46. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +13 -13
  47. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +21 -18
  48. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +12 -12
  49. package/dist/_internal/components/data-display/DataViews/data-views-view-nav.js +5 -5
  50. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +2 -2
  51. package/dist/_internal/components/data-display/DataViews/save-view-preview.js +3 -3
  52. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +7 -7
  53. package/dist/_internal/components/data-display/DescriptionItem/DescriptionItem.js +3 -3
  54. package/dist/_internal/components/data-display/EmptyState/EmptyState.js +2 -2
  55. package/dist/_internal/components/data-display/ErrorState/ErrorState.js +2 -2
  56. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +31 -0
  57. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +23 -0
  58. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js.map +1 -0
  59. package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js +57 -0
  60. package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js.map +1 -0
  61. package/dist/_internal/components/data-display/FleetMap/FleetMap.helpers.js +14 -0
  62. package/dist/_internal/components/data-display/FleetMap/FleetMap.helpers.js.map +1 -0
  63. package/dist/_internal/components/data-display/FleetMap/FleetMap.hooks.js +9 -0
  64. package/dist/_internal/components/data-display/FleetMap/FleetMap.hooks.js.map +1 -0
  65. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +46 -0
  66. package/dist/_internal/components/data-display/FleetMap/FleetMap.js.map +1 -0
  67. package/dist/_internal/components/data-display/FleetMap/FleetMap.types.js +1 -0
  68. package/dist/_internal/components/data-display/FleetMap/FleetMap.types.js.map +1 -0
  69. package/dist/_internal/components/data-display/FleetMap/FleetRoster.js +14 -0
  70. package/dist/_internal/components/data-display/FleetMap/FleetRoster.js.map +1 -0
  71. package/dist/_internal/components/data-display/LazyImage/LazyImage.js +4 -4
  72. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +1 -1
  73. package/dist/_internal/components/data-display/LoadingState/LoadingState.js +4 -4
  74. package/dist/_internal/components/data-display/MapPreview/MapDecorations.js +2 -2
  75. package/dist/_internal/components/data-display/MapPreview/MapPreview.hooks.js +2 -2
  76. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +7 -7
  77. package/dist/_internal/components/data-display/MapPreview/MapTiles.js +2 -2
  78. package/dist/_internal/components/data-display/MapPreview/StaticMapView.js +4 -4
  79. package/dist/_internal/components/data-display/MapPreview/useMapPreview.js +3 -3
  80. package/dist/_internal/components/data-display/Progress/Progress.js +2 -2
  81. package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +3 -3
  82. package/dist/_internal/components/data-display/Sheet/Sheet.js +3 -3
  83. package/dist/_internal/components/data-display/StatCard/StatCard.js +4 -4
  84. package/dist/_internal/components/data-display/Table/Table.js +2 -2
  85. package/dist/_internal/components/data-display/index.js +88 -68
  86. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +4 -4
  87. package/dist/_internal/components/feedback/Dialog/Dialog.base.js +1 -0
  88. package/dist/_internal/components/feedback/Dialog/Dialog.base.js.map +1 -0
  89. package/dist/_internal/components/feedback/Dialog/Dialog.helpers.js +12 -0
  90. package/dist/_internal/components/feedback/Dialog/Dialog.helpers.js.map +1 -0
  91. package/dist/_internal/components/feedback/Dialog/Dialog.js +6 -2
  92. package/dist/_internal/components/feedback/Dialog/Dialog.metrics.js +42 -0
  93. package/dist/_internal/components/feedback/Dialog/Dialog.metrics.js.map +1 -0
  94. package/dist/_internal/components/feedback/Dialog/Dialog.styles.js +3 -1
  95. package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +2 -2
  96. package/dist/_internal/components/feedback/index.js +16 -13
  97. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +3 -3
  98. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +7 -7
  99. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +3 -3
  100. package/dist/_internal/components/form/Autocomplete/Autocomplete.js +2 -2
  101. package/dist/_internal/components/form/Button/Button.js +3 -3
  102. package/dist/_internal/components/form/Calendar/Calendar.js +4 -4
  103. package/dist/_internal/components/form/Calendar/CalendarDayCell.js +2 -2
  104. package/dist/_internal/components/form/Calendar/CalendarMonth.js +3 -3
  105. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +5 -5
  106. package/dist/_internal/components/form/CategorySelect/CategoryPanelList.js +3 -3
  107. package/dist/_internal/components/form/CategorySelect/CategoryRows.js +2 -2
  108. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +10 -10
  109. package/dist/_internal/components/form/CepField/CepField.js +4 -4
  110. package/dist/_internal/components/form/Checkbox/Checkbox.js +2 -2
  111. package/dist/_internal/components/form/CodeEditor/CodeEditor.js +2 -2
  112. package/dist/_internal/components/form/Command/Command.js +2 -2
  113. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +6 -6
  114. package/dist/_internal/components/form/Input/Input.js +3 -3
  115. package/dist/_internal/components/form/Label/Label.js +2 -2
  116. package/dist/_internal/components/form/Menubar/Menubar.js +5 -5
  117. package/dist/_internal/components/form/Menubar/Menubar.toolbar.js +2 -2
  118. package/dist/_internal/components/form/PhoneInput/PhoneInput.hooks.js +2 -2
  119. package/dist/_internal/components/form/PhoneInput/PhoneInput.js +3 -3
  120. package/dist/_internal/components/form/Select/Select.js +2 -2
  121. package/dist/_internal/components/form/Switch/Switch.js +2 -2
  122. package/dist/_internal/components/form/index.js +55 -55
  123. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +11 -11
  124. package/dist/_internal/components/form/total-form/Fields/CepField.js +5 -5
  125. package/dist/_internal/components/form/total-form/Fields/SelectField.js +3 -3
  126. package/dist/_internal/components/form/total-form/Fields/TextField.js +4 -4
  127. package/dist/_internal/components/form/total-form/Fields/index.js +25 -25
  128. package/dist/_internal/components/form/total-form/SubmitButton.js +4 -4
  129. package/dist/_internal/components/index.js +198 -175
  130. package/dist/_internal/components/layout/Box/Box.js +2 -2
  131. package/dist/_internal/components/layout/Card/Card.base.js +1 -0
  132. package/dist/_internal/components/layout/Card/Card.base.js.map +1 -0
  133. package/dist/_internal/components/layout/Card/Card.helpers.js +1 -1
  134. package/dist/_internal/components/layout/Card/Card.js +6 -3
  135. package/dist/_internal/components/layout/Card/Card.metrics.js +44 -0
  136. package/dist/_internal/components/layout/Card/Card.metrics.js.map +1 -0
  137. package/dist/_internal/components/layout/Card/Card.styles.js +3 -1
  138. package/dist/_internal/components/layout/Container/Container.js +2 -2
  139. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +2 -2
  140. package/dist/_internal/components/layout/Skeleton/Skeleton.js +3 -3
  141. package/dist/_internal/components/layout/Spacer/Spacer.js +2 -2
  142. package/dist/_internal/components/layout/Stack/Stack.js +3 -3
  143. package/dist/_internal/components/layout/index.js +30 -28
  144. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +12 -9
  145. package/dist/_internal/components/navigation/CommandPalette/CommandPalette.js +2 -2
  146. package/dist/_internal/components/navigation/Pagination/Pagination.js +2 -2
  147. package/dist/_internal/components/navigation/index.js +22 -19
  148. package/dist/_internal/components/typography/Heading/Heading.js +2 -2
  149. package/dist/_internal/components/typography/Paragraph/Paragraph.js +2 -2
  150. package/dist/_internal/components/typography/Text/Text.js +2 -2
  151. package/dist/_internal/components/typography/index.js +4 -4
  152. package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.js +2 -2
  153. package/dist/_internal/components/utility/InstallPrompt/InstallPrompt.js +2 -2
  154. package/dist/_internal/components/utility/index.js +8 -8
  155. package/dist/_internal/icons/Icon.js +2 -2
  156. package/dist/_internal/platform/test-id.js +3 -1
  157. package/dist/_internal/pt-BR.data-display.js +2 -2
  158. package/dist/_internal/social-login-button/social-login-button.js +11 -9
  159. package/dist/_internal/tokens/mui-type.js +1 -0
  160. package/dist/_internal/tokens/mui-type.js.map +1 -1
  161. package/dist/_internal/tokens/shadow.js +18 -0
  162. package/dist/_internal/tokens/shadow.js.map +1 -0
  163. package/dist/_internal/user-avatar/user-avatar.js +10 -8
  164. package/dist/charts.js +6 -6
  165. package/dist/{chunk-NUE774AN.js → chunk-25R3ITGZ.js} +2 -2
  166. package/dist/{chunk-Z6UEOSL7.js → chunk-2FDBR77W.js} +3 -3
  167. package/dist/{chunk-IFNK5TPI.js → chunk-2HPP6RVC.js} +2 -2
  168. package/dist/chunk-2RQINU5T.js +41 -0
  169. package/dist/chunk-2RQINU5T.js.map +1 -0
  170. package/dist/{chunk-GCXYCDOA.js → chunk-2UGJIKVA.js} +2 -2
  171. package/dist/{chunk-26Z7QWID.js → chunk-343TTIHD.js} +2 -2
  172. package/dist/{chunk-BRSF5NRT.js → chunk-3FLVIVOK.js} +4 -4
  173. package/dist/{chunk-BDVNAU2C.js → chunk-4523RYE7.js} +5 -5
  174. package/dist/{chunk-4ETQRBZC.js → chunk-46UPILLK.js} +4 -4
  175. package/dist/{chunk-WMALDOF5.js → chunk-4G3FGCWX.js} +4 -4
  176. package/dist/{chunk-I3MDKPGG.js → chunk-4IVOHL32.js} +2 -2
  177. package/dist/{chunk-SAHQLXNN.js → chunk-4LRFGB3K.js} +4 -4
  178. package/dist/{chunk-ZOUWHGV3.js → chunk-4MGFUPQT.js} +4 -4
  179. package/dist/{chunk-TLX66HCW.js → chunk-4OHRZW7U.js} +5 -5
  180. package/dist/{chunk-2QFTAGDH.js → chunk-4X4KM4ZB.js} +4 -4
  181. package/dist/{chunk-7ZH7ZB33.js → chunk-4XZXLB4I.js} +4 -4
  182. package/dist/{chunk-6PRA45LC.js → chunk-5KEMPCW4.js} +54 -45
  183. package/dist/chunk-5KEMPCW4.js.map +1 -0
  184. package/dist/{chunk-77F36LQQ.js → chunk-5OIH36KX.js} +3 -3
  185. package/dist/chunk-5V4UPOWK.js +36 -0
  186. package/dist/chunk-5V4UPOWK.js.map +1 -0
  187. package/dist/{chunk-GDEXYUPF.js → chunk-67L7HMEP.js} +2 -2
  188. package/dist/{chunk-ZFPJBKVZ.js → chunk-6JGPPTLX.js} +5 -5
  189. package/dist/chunk-6Q6T3FW5.js +92 -0
  190. package/dist/chunk-6Q6T3FW5.js.map +1 -0
  191. package/dist/chunk-73BEVJCS.js +28 -0
  192. package/dist/chunk-73BEVJCS.js.map +1 -0
  193. package/dist/{chunk-VIK3HAUQ.js → chunk-73NJCGQG.js} +2 -2
  194. package/dist/{chunk-D4T646G4.js → chunk-7NSX7A5H.js} +2 -2
  195. package/dist/{chunk-QS7ZGRNS.js → chunk-7VN7LFBA.js} +6 -6
  196. package/dist/{chunk-3UOHKHOT.js → chunk-ACFGEZ4Q.js} +3 -3
  197. package/dist/{chunk-GBNOYRLP.js → chunk-AEGXHZQT.js} +8 -8
  198. package/dist/{chunk-D2IASECY.js → chunk-AIRWM7KK.js} +39 -28
  199. package/dist/chunk-AIRWM7KK.js.map +1 -0
  200. package/dist/{chunk-BEH4DN63.js → chunk-AJGYHDA5.js} +6 -6
  201. package/dist/{chunk-65DLYC4S.js → chunk-AVGTTWTE.js} +4 -4
  202. package/dist/{chunk-PXH24VIP.js → chunk-B6IURHSZ.js} +4 -4
  203. package/dist/chunk-BEBLRL5D.js +177 -0
  204. package/dist/chunk-BEBLRL5D.js.map +1 -0
  205. package/dist/{chunk-XEE7PLDR.js → chunk-BZTFPSWT.js} +4 -4
  206. package/dist/{chunk-B3BK2SNS.js → chunk-C3CMEDSO.js} +2 -2
  207. package/dist/{chunk-OH3YGJT5.js → chunk-CBTY36TU.js} +2 -2
  208. package/dist/chunk-CDCTLPMD.js +1 -0
  209. package/dist/chunk-CDCTLPMD.js.map +1 -0
  210. package/dist/chunk-CF3FAAPC.js +79 -0
  211. package/dist/chunk-CF3FAAPC.js.map +1 -0
  212. package/dist/{chunk-JIINGMEB.js → chunk-CHPZTF34.js} +7 -7
  213. package/dist/{chunk-PWXL3QQ6.js → chunk-CJBBGMIA.js} +2 -2
  214. package/dist/{chunk-BPYPUEM5.js → chunk-CZJLWCEG.js} +2 -2
  215. package/dist/{chunk-FPWB5ILF.js → chunk-DRHIIUDO.js} +5 -5
  216. package/dist/{chunk-BEGWE5O4.js → chunk-DTC224UJ.js} +4 -4
  217. package/dist/{chunk-UB76PBDF.js → chunk-DVFIE54C.js} +2 -2
  218. package/dist/{chunk-GO4MVQGC.js → chunk-DW5FRWRQ.js} +2 -2
  219. package/dist/{chunk-6Z4H2Y77.js → chunk-E27Y7FF2.js} +4 -4
  220. package/dist/{chunk-PANMJFDS.js → chunk-E55CJV65.js} +2 -2
  221. package/dist/{chunk-JXAYT6LX.js → chunk-EJQW2IYW.js} +2 -2
  222. package/dist/{chunk-TPIBJP4S.js → chunk-EOHKZGOZ.js} +2 -2
  223. package/dist/{chunk-MSUSZLRE.js → chunk-EWT3WMVY.js} +5 -5
  224. package/dist/chunk-F7VBGS4C.js +64 -0
  225. package/dist/chunk-F7VBGS4C.js.map +1 -0
  226. package/dist/{chunk-DH75UNF3.js → chunk-FGK2C7JR.js} +2 -2
  227. package/dist/{chunk-RI5JZLZL.js → chunk-FKUYRQSP.js} +1 -1
  228. package/dist/chunk-FKUYRQSP.js.map +1 -0
  229. package/dist/{chunk-AD776JPA.js → chunk-FR67FG2U.js} +2 -2
  230. package/dist/{chunk-SHQWIDD5.js → chunk-GJQYM3PM.js} +4 -4
  231. package/dist/{chunk-7KTU6YMQ.js → chunk-GMTM6EN7.js} +5 -5
  232. package/dist/{chunk-WROCSDVL.js → chunk-GSFNH4C5.js} +5 -5
  233. package/dist/{chunk-PF5HDFYY.js → chunk-GVA5CYKP.js} +4 -4
  234. package/dist/chunk-GYXUCS37.js +36 -0
  235. package/dist/chunk-GYXUCS37.js.map +1 -0
  236. package/dist/{chunk-Z5ABJLTM.js → chunk-HFXTAEYY.js} +2 -2
  237. package/dist/{chunk-FOMK3WPG.js → chunk-HLYPI5CO.js} +4 -4
  238. package/dist/{chunk-VR5HDUBK.js → chunk-HP2ODXNA.js} +2 -2
  239. package/dist/{chunk-GBRKP5GZ.js → chunk-I5SBTNV2.js} +2 -2
  240. package/dist/{chunk-TP4N3X2Q.js → chunk-IPVYEPXO.js} +5 -5
  241. package/dist/{chunk-RRO2EOJB.js → chunk-JB67KPGM.js} +4 -4
  242. package/dist/{chunk-5ZOJLYD2.js → chunk-JE6RZ5L6.js} +4 -4
  243. package/dist/{chunk-4HYXEMBP.js → chunk-JIKWZDNK.js} +2 -2
  244. package/dist/{chunk-4MLDWACO.js → chunk-JM64OEU6.js} +12 -12
  245. package/dist/{chunk-2QLVUVVR.js → chunk-JSH3HFDQ.js} +2 -2
  246. package/dist/{chunk-TZ4SFX3M.js → chunk-JWW2Z3RH.js} +4 -4
  247. package/dist/{chunk-QFHH2NU5.js → chunk-JXNT5TUP.js} +3 -3
  248. package/dist/{chunk-FINCVAAR.js → chunk-KHWCX4LI.js} +4 -4
  249. package/dist/{chunk-THZ2NAA4.js → chunk-KW7H5O3K.js} +7 -7
  250. package/dist/{chunk-XLJJ2ZAP.js → chunk-L4U23SBX.js} +11 -11
  251. package/dist/{chunk-ZXLIWOXC.js → chunk-LS4FMSHY.js} +5 -5
  252. package/dist/{chunk-SFAP5EH5.js → chunk-LUMF63BM.js} +4 -4
  253. package/dist/{chunk-CZPU5TW3.js → chunk-LYSSO6WC.js} +4 -4
  254. package/dist/{chunk-736HP6BL.js → chunk-M4LQRQFL.js} +2 -2
  255. package/dist/{chunk-426FTCMF.js → chunk-MESRKY67.js} +2 -2
  256. package/dist/{chunk-B5PYBEXO.js → chunk-MP4VSWHK.js} +2 -2
  257. package/dist/chunk-MQNKRIGC.js +205 -0
  258. package/dist/chunk-MQNKRIGC.js.map +1 -0
  259. package/dist/{chunk-UOPQOBQZ.js → chunk-MYGNIFZC.js} +3 -3
  260. package/dist/{chunk-6RGWDKUL.js → chunk-N2TUX4A5.js} +4 -4
  261. package/dist/{chunk-VWGR5XUP.js → chunk-NWNSUHEB.js} +2 -2
  262. package/dist/{chunk-4K7FDVAB.js → chunk-O3336DJ6.js} +2 -2
  263. package/dist/{chunk-YCCKY5VW.js → chunk-OFOYMZRY.js} +4 -4
  264. package/dist/{chunk-OCXCH2ZW.js → chunk-OIKQO73C.js} +7 -7
  265. package/dist/{chunk-QZDBWXZG.js → chunk-OP65D4UR.js} +2 -2
  266. package/dist/{chunk-MCRIT46W.js → chunk-OTH7H3IP.js} +5 -5
  267. package/dist/{chunk-BQQONDW5.js → chunk-OVLNF4AZ.js} +6 -6
  268. package/dist/{chunk-AGYGNNOM.js → chunk-PQECNGDE.js} +2 -2
  269. package/dist/{chunk-IIROZKW5.js → chunk-PRUSQQDT.js} +2 -2
  270. package/dist/{chunk-IPE5FFFD.js → chunk-PUBPZOQJ.js} +2 -2
  271. package/dist/{chunk-FB36IHCE.js → chunk-QFVFHIHE.js} +8 -8
  272. package/dist/{chunk-V5P5Q6HM.js → chunk-QJRDDVZ2.js} +3 -3
  273. package/dist/{chunk-WBKWIFXA.js → chunk-QYNCPS5W.js} +6 -6
  274. package/dist/{chunk-VPHOSIPB.js → chunk-R6SNYC3D.js} +10 -10
  275. package/dist/{chunk-STH66VLA.js → chunk-R7R3LOKW.js} +2 -2
  276. package/dist/{chunk-W2UTDN4T.js → chunk-RBGOGTT2.js} +4 -4
  277. package/dist/chunk-RQWZYD6H.js +1 -0
  278. package/dist/chunk-RQWZYD6H.js.map +1 -0
  279. package/dist/{chunk-VWBWKLXX.js → chunk-SX3V2DLV.js} +4 -4
  280. package/dist/{chunk-P7FQUGED.js → chunk-TNVO2DTB.js} +5 -5
  281. package/dist/{chunk-WTIOCG4M.js → chunk-TOYEP23N.js} +2 -2
  282. package/dist/{chunk-G2IPK2XE.js → chunk-TPLKJHNN.js} +8 -8
  283. package/dist/{chunk-U2AC4AQX.js → chunk-TU5EIKJA.js} +4 -4
  284. package/dist/{chunk-ZGHIHEND.js → chunk-TW3BXVEU.js} +2 -2
  285. package/dist/chunk-TWQYDKCA.js +113 -0
  286. package/dist/chunk-TWQYDKCA.js.map +1 -0
  287. package/dist/{chunk-BGYLL467.js → chunk-TXHJX2NG.js} +4 -4
  288. package/dist/{chunk-6F5IKY32.js → chunk-TYJR4GOF.js} +6 -2
  289. package/dist/{chunk-6F5IKY32.js.map → chunk-TYJR4GOF.js.map} +1 -1
  290. package/dist/{chunk-5RQ7N63M.js → chunk-TZDDL3DR.js} +2 -2
  291. package/dist/{chunk-RPQ3W2C6.js → chunk-U2ZDN2AL.js} +2 -2
  292. package/dist/{chunk-WPZT2JD4.js → chunk-U7Q2Y6WG.js} +2 -2
  293. package/dist/{chunk-E46PG577.js → chunk-URXT5TOY.js} +4 -4
  294. package/dist/chunk-VM3HRSAU.js +79 -0
  295. package/dist/chunk-VM3HRSAU.js.map +1 -0
  296. package/dist/{chunk-P6IPJYCS.js → chunk-VNNG46TS.js} +6 -6
  297. package/dist/{chunk-CXVMD6FE.js → chunk-VON4BFK4.js} +3 -3
  298. package/dist/{chunk-2SWQ6HIK.js → chunk-W3FAKT3D.js} +4 -4
  299. package/dist/{chunk-JDMYD6QC.js → chunk-W4SDVTZC.js} +2 -2
  300. package/dist/{chunk-7MAOQIWA.js → chunk-W4YWU7LQ.js} +2 -2
  301. package/dist/{chunk-Y46RBFBV.js → chunk-W7Y6RA6W.js} +6 -6
  302. package/dist/{chunk-XFU2S6XT.js → chunk-WGRS4PGY.js} +10 -10
  303. package/dist/{chunk-OOGEYCJH.js → chunk-WIT3Y7JT.js} +2 -2
  304. package/dist/{chunk-KT6HWAEN.js → chunk-WQA4LIIK.js} +4 -4
  305. package/dist/{chunk-J2KSG754.js → chunk-WRDPWEIC.js} +5 -5
  306. package/dist/{chunk-RPWEXIAW.js → chunk-X5MPHXG5.js} +6 -6
  307. package/dist/{chunk-UEIVXFUC.js → chunk-XELVDPKL.js} +5 -5
  308. package/dist/{chunk-RRZBATXK.js → chunk-XKV5ZIBG.js} +3 -3
  309. package/dist/{chunk-ZKFYBC6G.js → chunk-XSF6AXEU.js} +2 -2
  310. package/dist/{chunk-R6RVBYTU.js → chunk-XUJG2HFW.js} +3 -3
  311. package/dist/{chunk-S5LE2ARG.js → chunk-YANLN6HP.js} +66 -56
  312. package/dist/chunk-YANLN6HP.js.map +1 -0
  313. package/dist/{chunk-FRQ4HNGF.js → chunk-YJ4HM25H.js} +2 -2
  314. package/dist/{chunk-TVO5STZB.js → chunk-YQ6TNHAC.js} +3 -3
  315. package/dist/{chunk-BNNSO4MC.js → chunk-YTOYMJPM.js} +5 -5
  316. package/dist/{chunk-IH4RSRQA.js → chunk-ZA4U5GDU.js} +6 -6
  317. package/dist/data-display/Alert.js +4 -4
  318. package/dist/data-display/AsyncStateContainer.js +8 -8
  319. package/dist/data-display/Badge.js +3 -3
  320. package/dist/data-display/CardKit.js +13 -13
  321. package/dist/data-display/Chart.js +6 -6
  322. package/dist/data-display/Chip.js +3 -3
  323. package/dist/data-display/DataGrid.js +2 -2
  324. package/dist/data-display/DataViews.js +84 -80
  325. package/dist/data-display/DescriptionItem.js +3 -3
  326. package/dist/data-display/EmptyState.js +2 -2
  327. package/dist/data-display/ErrorState.js +2 -2
  328. package/dist/data-display/FleetMap.js +54 -0
  329. package/dist/data-display/FleetMap.js.map +1 -0
  330. package/dist/data-display/LazyImage.js +4 -4
  331. package/dist/data-display/Lightbox.js +1 -1
  332. package/dist/data-display/LoadingState.js +4 -4
  333. package/dist/data-display/MapPreview.js +7 -7
  334. package/dist/data-display/Progress.js +2 -2
  335. package/dist/data-display/SectionOnboarding.js +3 -3
  336. package/dist/data-display/Sheet.js +3 -3
  337. package/dist/data-display/StatCard.js +4 -4
  338. package/dist/data-display/Table.js +2 -2
  339. package/dist/feedback/ConfirmAction.js +4 -4
  340. package/dist/feedback/Dialog.js +6 -2
  341. package/dist/feedback/TutorialOverlay.js +2 -2
  342. package/dist/form/AddressAutocomplete.js +7 -7
  343. package/dist/form/Autocomplete.js +2 -2
  344. package/dist/form/Button.js +3 -3
  345. package/dist/form/Calendar.js +4 -4
  346. package/dist/form/CategorySelect.js +10 -10
  347. package/dist/form/CepField.js +4 -4
  348. package/dist/form/Checkbox.js +2 -2
  349. package/dist/form/CodeEditor.js +2 -2
  350. package/dist/form/Command.js +2 -2
  351. package/dist/form/DateRangePicker.js +11 -11
  352. package/dist/form/Input.js +3 -3
  353. package/dist/form/Label.js +2 -2
  354. package/dist/form/Menubar.js +5 -5
  355. package/dist/form/PhoneInput.js +3 -3
  356. package/dist/form/Select.js +2 -2
  357. package/dist/form/Switch.js +2 -2
  358. package/dist/form/total-form.js +30 -30
  359. package/dist/icons.js +2 -2
  360. package/dist/layout/Box.js +2 -2
  361. package/dist/layout/Card.js +6 -3
  362. package/dist/layout/Container.js +2 -2
  363. package/dist/layout/ContentToolbar.js +3 -3
  364. package/dist/layout/SettingsLayout.js +2 -2
  365. package/dist/layout/Skeleton.js +3 -3
  366. package/dist/layout/Spacer.js +2 -2
  367. package/dist/layout/Stack.js +3 -3
  368. package/dist/locales.js +4 -4
  369. package/dist/native/chunks/{chunk-HSIND52T.js → chunk-2UFNPDYT.js} +2 -1
  370. package/dist/native/chunks/chunk-2UFNPDYT.js.map +1 -0
  371. package/dist/native/chunks/{chunk-OGWPPQL4.js → chunk-75JQYVDZ.js} +3 -3
  372. package/dist/native/chunks/{chunk-WKMDCNIN.js → chunk-7LTVGW23.js} +2 -2
  373. package/dist/native/chunks/{chunk-QZAUOHDQ.js → chunk-AR5O4BEY.js} +6 -2
  374. package/dist/native/chunks/{chunk-QZAUOHDQ.js.map → chunk-AR5O4BEY.js.map} +1 -1
  375. package/dist/native/chunks/{chunk-RJVM5YDE.js → chunk-ATS7STZJ.js} +4 -4
  376. package/dist/native/chunks/{chunk-YTHR4Y5P.js → chunk-GWGIWQO7.js} +2 -2
  377. package/dist/native/chunks/{chunk-P3PL4WBO.js → chunk-LEMMXZFN.js} +24 -24
  378. package/dist/native/chunks/{chunk-P3PL4WBO.js.map → chunk-LEMMXZFN.js.map} +1 -1
  379. package/dist/native/chunks/chunk-NRN37A5K.js +67 -0
  380. package/dist/native/chunks/chunk-NRN37A5K.js.map +1 -0
  381. package/dist/native/chunks/{chunk-D4EYAXNG.js → chunk-QYUD3S6F.js} +5 -5
  382. package/dist/native/data-display/Alert.js +8 -8
  383. package/dist/native/data-display/Avatar.js +7 -7
  384. package/dist/native/data-display/Badge.js +8 -8
  385. package/dist/native/data-display/Chip.js +4 -4
  386. package/dist/native/data-display/EmptyState.js +11 -11
  387. package/dist/native/data-display/ErrorState.js +11 -11
  388. package/dist/native/data-display/LoadingState.js +7 -7
  389. package/dist/native/data-display/Progress.js +3 -3
  390. package/dist/native/feedback/Dialog.js +496 -0
  391. package/dist/native/feedback/Dialog.js.map +1 -0
  392. package/dist/native/form/Button.js +4 -4
  393. package/dist/native/form/Checkbox.js +5 -5
  394. package/dist/native/form/Input.js +5 -5
  395. package/dist/native/form/Select.js +6 -6
  396. package/dist/native/form/Switch.js +3 -3
  397. package/dist/native/icons.js +4 -4
  398. package/dist/native/layout/Box.js +4 -4
  399. package/dist/native/layout/Card.js +494 -0
  400. package/dist/native/layout/Card.js.map +1 -0
  401. package/dist/native/layout/Container.js +3 -3
  402. package/dist/native/layout/Skeleton.js +6 -6
  403. package/dist/native/layout/Spacer.js +3 -3
  404. package/dist/native/layout/Stack.js +4 -4
  405. package/dist/native/provider.js +2 -2
  406. package/dist/native/tokens.js +1 -1
  407. package/dist/native/typography/Heading.js +3 -3
  408. package/dist/native/typography/Paragraph.js +3 -3
  409. package/dist/native/typography/Text.js +3 -3
  410. package/dist/navigation/AppHeader.js +14 -11
  411. package/dist/navigation/CommandPalette.js +2 -2
  412. package/dist/navigation/Pagination.js +2 -2
  413. package/dist/pt-BR.js +4 -4
  414. package/dist/social-login-button.js +11 -9
  415. package/dist/types/components/data-display/FleetMap/FleetBody.d.ts +22 -0
  416. package/dist/types/components/data-display/FleetMap/FleetBody.d.ts.map +1 -0
  417. package/dist/types/components/data-display/FleetMap/FleetCanvas.d.ts +50 -0
  418. package/dist/types/components/data-display/FleetMap/FleetCanvas.d.ts.map +1 -0
  419. package/dist/types/components/data-display/FleetMap/FleetMap.d.ts +32 -0
  420. package/dist/types/components/data-display/FleetMap/FleetMap.d.ts.map +1 -0
  421. package/dist/types/components/data-display/FleetMap/FleetMap.fixtures.d.ts +23 -0
  422. package/dist/types/components/data-display/FleetMap/FleetMap.fixtures.d.ts.map +1 -0
  423. package/dist/types/components/data-display/FleetMap/FleetMap.helpers.d.ts +45 -0
  424. package/dist/types/components/data-display/FleetMap/FleetMap.helpers.d.ts.map +1 -0
  425. package/dist/types/components/data-display/FleetMap/FleetMap.hooks.d.ts +54 -0
  426. package/dist/types/components/data-display/FleetMap/FleetMap.hooks.d.ts.map +1 -0
  427. package/dist/types/components/data-display/FleetMap/FleetMap.types.d.ts +145 -0
  428. package/dist/types/components/data-display/FleetMap/FleetMap.types.d.ts.map +1 -0
  429. package/dist/types/components/data-display/FleetMap/FleetRoster.d.ts +15 -0
  430. package/dist/types/components/data-display/FleetMap/FleetRoster.d.ts.map +1 -0
  431. package/dist/types/components/data-display/FleetMap/index.d.ts +5 -0
  432. package/dist/types/components/data-display/FleetMap/index.d.ts.map +1 -0
  433. package/dist/types/components/data-display/index.d.ts +1 -0
  434. package/dist/types/components/data-display/index.d.ts.map +1 -1
  435. package/dist/types/components/feedback/Dialog/Dialog.base.d.ts +64 -0
  436. package/dist/types/components/feedback/Dialog/Dialog.base.d.ts.map +1 -0
  437. package/dist/types/components/feedback/Dialog/Dialog.d.ts.map +1 -1
  438. package/dist/types/components/feedback/Dialog/Dialog.helpers.d.ts +35 -0
  439. package/dist/types/components/feedback/Dialog/Dialog.helpers.d.ts.map +1 -0
  440. package/dist/types/components/feedback/Dialog/Dialog.metrics.d.ts +133 -0
  441. package/dist/types/components/feedback/Dialog/Dialog.metrics.d.ts.map +1 -0
  442. package/dist/types/components/feedback/Dialog/Dialog.styles.d.ts +4 -4
  443. package/dist/types/components/feedback/Dialog/Dialog.styles.d.ts.map +1 -1
  444. package/dist/types/components/feedback/Dialog/Dialog.types.d.ts +8 -41
  445. package/dist/types/components/feedback/Dialog/Dialog.types.d.ts.map +1 -1
  446. package/dist/types/components/feedback/Dialog/index.d.ts +1 -1
  447. package/dist/types/components/feedback/Dialog/index.d.ts.map +1 -1
  448. package/dist/types/components/layout/Card/Card.base.d.ts +77 -0
  449. package/dist/types/components/layout/Card/Card.base.d.ts.map +1 -0
  450. package/dist/types/components/layout/Card/Card.d.ts.map +1 -1
  451. package/dist/types/components/layout/Card/Card.helpers.d.ts +8 -3
  452. package/dist/types/components/layout/Card/Card.helpers.d.ts.map +1 -1
  453. package/dist/types/components/layout/Card/Card.metrics.d.ts +182 -0
  454. package/dist/types/components/layout/Card/Card.metrics.d.ts.map +1 -0
  455. package/dist/types/components/layout/Card/Card.styles.d.ts +2 -2
  456. package/dist/types/components/layout/Card/Card.styles.d.ts.map +1 -1
  457. package/dist/types/components/layout/Card/Card.types.d.ts +10 -44
  458. package/dist/types/components/layout/Card/Card.types.d.ts.map +1 -1
  459. package/dist/types/components/layout/Card/index.d.ts +1 -1
  460. package/dist/types/components/layout/Card/index.d.ts.map +1 -1
  461. package/dist/types/platform/test-id.d.ts +14 -0
  462. package/dist/types/platform/test-id.d.ts.map +1 -1
  463. package/dist/types/tokens/mui-type.d.ts +1 -1
  464. package/dist/types/tokens/mui-type.d.ts.map +1 -1
  465. package/dist/types/tokens/shadow.d.ts +40 -0
  466. package/dist/types/tokens/shadow.d.ts.map +1 -0
  467. package/dist/types-native/components/feedback/Dialog/Dialog.base.d.ts +64 -0
  468. package/dist/types-native/components/feedback/Dialog/Dialog.base.d.ts.map +1 -0
  469. package/dist/types-native/components/feedback/Dialog/Dialog.helpers.d.ts +35 -0
  470. package/dist/types-native/components/feedback/Dialog/Dialog.helpers.d.ts.map +1 -0
  471. package/dist/types-native/components/feedback/Dialog/Dialog.look.native.d.ts +44 -0
  472. package/dist/types-native/components/feedback/Dialog/Dialog.look.native.d.ts.map +1 -0
  473. package/dist/types-native/components/feedback/Dialog/Dialog.metrics.d.ts +133 -0
  474. package/dist/types-native/components/feedback/Dialog/Dialog.metrics.d.ts.map +1 -0
  475. package/dist/types-native/components/feedback/Dialog/Dialog.native.d.ts +8 -0
  476. package/dist/types-native/components/feedback/Dialog/Dialog.native.d.ts.map +1 -0
  477. package/dist/types-native/components/feedback/Dialog/Dialog.types.native.d.ts +25 -0
  478. package/dist/types-native/components/feedback/Dialog/Dialog.types.native.d.ts.map +1 -0
  479. package/dist/types-native/components/feedback/Dialog/DialogParts.native.d.ts +39 -0
  480. package/dist/types-native/components/feedback/Dialog/DialogParts.native.d.ts.map +1 -0
  481. package/dist/types-native/components/feedback/Dialog/index.native.d.ts +4 -0
  482. package/dist/types-native/components/feedback/Dialog/index.native.d.ts.map +1 -0
  483. package/dist/types-native/components/layout/Card/Card.base.d.ts +77 -0
  484. package/dist/types-native/components/layout/Card/Card.base.d.ts.map +1 -0
  485. package/dist/types-native/components/layout/Card/Card.helpers.d.ts +11 -0
  486. package/dist/types-native/components/layout/Card/Card.helpers.d.ts.map +1 -0
  487. package/dist/types-native/components/layout/Card/Card.look.native.d.ts +57 -0
  488. package/dist/types-native/components/layout/Card/Card.look.native.d.ts.map +1 -0
  489. package/dist/types-native/components/layout/Card/Card.metrics.d.ts +182 -0
  490. package/dist/types-native/components/layout/Card/Card.metrics.d.ts.map +1 -0
  491. package/dist/types-native/components/layout/Card/Card.native.d.ts +11 -0
  492. package/dist/types-native/components/layout/Card/Card.native.d.ts.map +1 -0
  493. package/dist/types-native/components/layout/Card/Card.types.native.d.ts +28 -0
  494. package/dist/types-native/components/layout/Card/Card.types.native.d.ts.map +1 -0
  495. package/dist/types-native/components/layout/Card/CardParts.native.d.ts +55 -0
  496. package/dist/types-native/components/layout/Card/CardParts.native.d.ts.map +1 -0
  497. package/dist/types-native/components/layout/Card/index.native.d.ts +4 -0
  498. package/dist/types-native/components/layout/Card/index.native.d.ts.map +1 -0
  499. package/dist/types-native/platform/pulse-ring.native.d.ts +35 -0
  500. package/dist/types-native/platform/pulse-ring.native.d.ts.map +1 -0
  501. package/dist/types-native/platform/test-id.d.ts +14 -0
  502. package/dist/types-native/platform/test-id.d.ts.map +1 -1
  503. package/dist/types-native/tokens/mui-type.d.ts +1 -1
  504. package/dist/types-native/tokens/mui-type.d.ts.map +1 -1
  505. package/dist/types-native/tokens/shadow.d.ts +40 -0
  506. package/dist/types-native/tokens/shadow.d.ts.map +1 -0
  507. package/dist/typography/Heading.js +2 -2
  508. package/dist/typography/Paragraph.js +2 -2
  509. package/dist/typography/Text.js +2 -2
  510. package/dist/user-avatar.js +10 -8
  511. package/dist/utility/InfiniteScroll.js +2 -2
  512. package/dist/utility/InstallPrompt.js +2 -2
  513. package/package.json +13 -1
  514. package/src/components/data-display/CardKit/NATIVE-NOTES.md +48 -0
  515. package/src/components/data-display/FleetMap/FleetBody.tsx +96 -0
  516. package/src/components/data-display/FleetMap/FleetCanvas.tsx +80 -0
  517. package/src/components/data-display/FleetMap/FleetMap.fixtures.ts +70 -0
  518. package/src/components/data-display/FleetMap/FleetMap.helpers.ts +85 -0
  519. package/src/components/data-display/FleetMap/FleetMap.hooks.ts +164 -0
  520. package/src/components/data-display/FleetMap/FleetMap.md +182 -0
  521. package/src/components/data-display/FleetMap/FleetMap.tsx +169 -0
  522. package/src/components/data-display/FleetMap/FleetMap.types.ts +148 -0
  523. package/src/components/data-display/FleetMap/FleetRoster.tsx +321 -0
  524. package/src/components/data-display/FleetMap/index.ts +9 -0
  525. package/src/components/data-display/FleetMap/tests.md +79 -0
  526. package/src/components/data-display/FleetMap/track.md +50 -0
  527. package/src/components/data-display/index.ts +1 -0
  528. package/src/components/feedback/ConfirmAction/ConfirmAction.md +10 -4
  529. package/src/components/feedback/Dialog/Dialog.base.ts +69 -0
  530. package/src/components/feedback/Dialog/Dialog.helpers.ts +75 -0
  531. package/src/components/feedback/Dialog/Dialog.look.native.ts +159 -0
  532. package/src/components/feedback/Dialog/Dialog.metrics.ts +140 -0
  533. package/src/components/feedback/Dialog/Dialog.native.tsx +149 -0
  534. package/src/components/feedback/Dialog/Dialog.styles.ts +63 -41
  535. package/src/components/feedback/Dialog/Dialog.tsx +58 -74
  536. package/src/components/feedback/Dialog/Dialog.types.native.ts +46 -0
  537. package/src/components/feedback/Dialog/Dialog.types.ts +24 -41
  538. package/src/components/feedback/Dialog/DialogParts.native.tsx +257 -0
  539. package/src/components/feedback/Dialog/NATIVE-NOTES.md +16 -0
  540. package/src/components/feedback/Dialog/index.native.ts +16 -0
  541. package/src/components/feedback/Dialog/index.ts +8 -2
  542. package/src/components/layout/Card/Card.base.ts +92 -0
  543. package/src/components/layout/Card/Card.helpers.ts +13 -7
  544. package/src/components/layout/Card/Card.look.native.ts +204 -0
  545. package/src/components/layout/Card/Card.metrics.ts +171 -0
  546. package/src/components/layout/Card/Card.native.tsx +130 -0
  547. package/src/components/layout/Card/Card.styles.ts +88 -48
  548. package/src/components/layout/Card/Card.tsx +41 -25
  549. package/src/components/layout/Card/Card.types.native.ts +59 -0
  550. package/src/components/layout/Card/Card.types.ts +30 -45
  551. package/src/components/layout/Card/CardParts.native.tsx +262 -0
  552. package/src/components/layout/Card/NATIVE-NOTES.md +15 -0
  553. package/src/components/layout/Card/index.native.ts +18 -0
  554. package/src/components/layout/Card/index.ts +9 -0
  555. package/src/platform/pulse-ring.native.tsx +82 -0
  556. package/src/platform/test-id.ts +17 -0
  557. package/src/tokens/mui-type.ts +2 -1
  558. package/src/tokens/shadow.ts +59 -0
  559. package/dist/chunk-6PRA45LC.js.map +0 -1
  560. package/dist/chunk-D2IASECY.js.map +0 -1
  561. package/dist/chunk-RI5JZLZL.js.map +0 -1
  562. package/dist/chunk-S5LE2ARG.js.map +0 -1
  563. package/dist/chunk-VMF3UXM4.js +0 -137
  564. package/dist/chunk-VMF3UXM4.js.map +0 -1
  565. package/dist/chunk-X3HL5C6H.js +0 -1
  566. package/dist/native/chunks/chunk-HSIND52T.js.map +0 -1
  567. /package/dist/{chunk-X3HL5C6H.js.map → _internal/components/data-display/FleetMap/FleetBody.js.map} +0 -0
  568. /package/dist/{chunk-NUE774AN.js.map → chunk-25R3ITGZ.js.map} +0 -0
  569. /package/dist/{chunk-Z6UEOSL7.js.map → chunk-2FDBR77W.js.map} +0 -0
  570. /package/dist/{chunk-IFNK5TPI.js.map → chunk-2HPP6RVC.js.map} +0 -0
  571. /package/dist/{chunk-GCXYCDOA.js.map → chunk-2UGJIKVA.js.map} +0 -0
  572. /package/dist/{chunk-26Z7QWID.js.map → chunk-343TTIHD.js.map} +0 -0
  573. /package/dist/{chunk-BRSF5NRT.js.map → chunk-3FLVIVOK.js.map} +0 -0
  574. /package/dist/{chunk-BDVNAU2C.js.map → chunk-4523RYE7.js.map} +0 -0
  575. /package/dist/{chunk-4ETQRBZC.js.map → chunk-46UPILLK.js.map} +0 -0
  576. /package/dist/{chunk-WMALDOF5.js.map → chunk-4G3FGCWX.js.map} +0 -0
  577. /package/dist/{chunk-I3MDKPGG.js.map → chunk-4IVOHL32.js.map} +0 -0
  578. /package/dist/{chunk-SAHQLXNN.js.map → chunk-4LRFGB3K.js.map} +0 -0
  579. /package/dist/{chunk-ZOUWHGV3.js.map → chunk-4MGFUPQT.js.map} +0 -0
  580. /package/dist/{chunk-TLX66HCW.js.map → chunk-4OHRZW7U.js.map} +0 -0
  581. /package/dist/{chunk-2QFTAGDH.js.map → chunk-4X4KM4ZB.js.map} +0 -0
  582. /package/dist/{chunk-7ZH7ZB33.js.map → chunk-4XZXLB4I.js.map} +0 -0
  583. /package/dist/{chunk-77F36LQQ.js.map → chunk-5OIH36KX.js.map} +0 -0
  584. /package/dist/{chunk-GDEXYUPF.js.map → chunk-67L7HMEP.js.map} +0 -0
  585. /package/dist/{chunk-ZFPJBKVZ.js.map → chunk-6JGPPTLX.js.map} +0 -0
  586. /package/dist/{chunk-VIK3HAUQ.js.map → chunk-73NJCGQG.js.map} +0 -0
  587. /package/dist/{chunk-D4T646G4.js.map → chunk-7NSX7A5H.js.map} +0 -0
  588. /package/dist/{chunk-QS7ZGRNS.js.map → chunk-7VN7LFBA.js.map} +0 -0
  589. /package/dist/{chunk-3UOHKHOT.js.map → chunk-ACFGEZ4Q.js.map} +0 -0
  590. /package/dist/{chunk-GBNOYRLP.js.map → chunk-AEGXHZQT.js.map} +0 -0
  591. /package/dist/{chunk-BEH4DN63.js.map → chunk-AJGYHDA5.js.map} +0 -0
  592. /package/dist/{chunk-65DLYC4S.js.map → chunk-AVGTTWTE.js.map} +0 -0
  593. /package/dist/{chunk-PXH24VIP.js.map → chunk-B6IURHSZ.js.map} +0 -0
  594. /package/dist/{chunk-XEE7PLDR.js.map → chunk-BZTFPSWT.js.map} +0 -0
  595. /package/dist/{chunk-B3BK2SNS.js.map → chunk-C3CMEDSO.js.map} +0 -0
  596. /package/dist/{chunk-OH3YGJT5.js.map → chunk-CBTY36TU.js.map} +0 -0
  597. /package/dist/{chunk-JIINGMEB.js.map → chunk-CHPZTF34.js.map} +0 -0
  598. /package/dist/{chunk-PWXL3QQ6.js.map → chunk-CJBBGMIA.js.map} +0 -0
  599. /package/dist/{chunk-BPYPUEM5.js.map → chunk-CZJLWCEG.js.map} +0 -0
  600. /package/dist/{chunk-FPWB5ILF.js.map → chunk-DRHIIUDO.js.map} +0 -0
  601. /package/dist/{chunk-BEGWE5O4.js.map → chunk-DTC224UJ.js.map} +0 -0
  602. /package/dist/{chunk-UB76PBDF.js.map → chunk-DVFIE54C.js.map} +0 -0
  603. /package/dist/{chunk-GO4MVQGC.js.map → chunk-DW5FRWRQ.js.map} +0 -0
  604. /package/dist/{chunk-6Z4H2Y77.js.map → chunk-E27Y7FF2.js.map} +0 -0
  605. /package/dist/{chunk-PANMJFDS.js.map → chunk-E55CJV65.js.map} +0 -0
  606. /package/dist/{chunk-JXAYT6LX.js.map → chunk-EJQW2IYW.js.map} +0 -0
  607. /package/dist/{chunk-TPIBJP4S.js.map → chunk-EOHKZGOZ.js.map} +0 -0
  608. /package/dist/{chunk-MSUSZLRE.js.map → chunk-EWT3WMVY.js.map} +0 -0
  609. /package/dist/{chunk-DH75UNF3.js.map → chunk-FGK2C7JR.js.map} +0 -0
  610. /package/dist/{chunk-AD776JPA.js.map → chunk-FR67FG2U.js.map} +0 -0
  611. /package/dist/{chunk-SHQWIDD5.js.map → chunk-GJQYM3PM.js.map} +0 -0
  612. /package/dist/{chunk-7KTU6YMQ.js.map → chunk-GMTM6EN7.js.map} +0 -0
  613. /package/dist/{chunk-WROCSDVL.js.map → chunk-GSFNH4C5.js.map} +0 -0
  614. /package/dist/{chunk-PF5HDFYY.js.map → chunk-GVA5CYKP.js.map} +0 -0
  615. /package/dist/{chunk-Z5ABJLTM.js.map → chunk-HFXTAEYY.js.map} +0 -0
  616. /package/dist/{chunk-FOMK3WPG.js.map → chunk-HLYPI5CO.js.map} +0 -0
  617. /package/dist/{chunk-VR5HDUBK.js.map → chunk-HP2ODXNA.js.map} +0 -0
  618. /package/dist/{chunk-GBRKP5GZ.js.map → chunk-I5SBTNV2.js.map} +0 -0
  619. /package/dist/{chunk-TP4N3X2Q.js.map → chunk-IPVYEPXO.js.map} +0 -0
  620. /package/dist/{chunk-RRO2EOJB.js.map → chunk-JB67KPGM.js.map} +0 -0
  621. /package/dist/{chunk-5ZOJLYD2.js.map → chunk-JE6RZ5L6.js.map} +0 -0
  622. /package/dist/{chunk-4HYXEMBP.js.map → chunk-JIKWZDNK.js.map} +0 -0
  623. /package/dist/{chunk-4MLDWACO.js.map → chunk-JM64OEU6.js.map} +0 -0
  624. /package/dist/{chunk-2QLVUVVR.js.map → chunk-JSH3HFDQ.js.map} +0 -0
  625. /package/dist/{chunk-TZ4SFX3M.js.map → chunk-JWW2Z3RH.js.map} +0 -0
  626. /package/dist/{chunk-QFHH2NU5.js.map → chunk-JXNT5TUP.js.map} +0 -0
  627. /package/dist/{chunk-FINCVAAR.js.map → chunk-KHWCX4LI.js.map} +0 -0
  628. /package/dist/{chunk-THZ2NAA4.js.map → chunk-KW7H5O3K.js.map} +0 -0
  629. /package/dist/{chunk-XLJJ2ZAP.js.map → chunk-L4U23SBX.js.map} +0 -0
  630. /package/dist/{chunk-ZXLIWOXC.js.map → chunk-LS4FMSHY.js.map} +0 -0
  631. /package/dist/{chunk-SFAP5EH5.js.map → chunk-LUMF63BM.js.map} +0 -0
  632. /package/dist/{chunk-CZPU5TW3.js.map → chunk-LYSSO6WC.js.map} +0 -0
  633. /package/dist/{chunk-736HP6BL.js.map → chunk-M4LQRQFL.js.map} +0 -0
  634. /package/dist/{chunk-426FTCMF.js.map → chunk-MESRKY67.js.map} +0 -0
  635. /package/dist/{chunk-B5PYBEXO.js.map → chunk-MP4VSWHK.js.map} +0 -0
  636. /package/dist/{chunk-UOPQOBQZ.js.map → chunk-MYGNIFZC.js.map} +0 -0
  637. /package/dist/{chunk-6RGWDKUL.js.map → chunk-N2TUX4A5.js.map} +0 -0
  638. /package/dist/{chunk-VWGR5XUP.js.map → chunk-NWNSUHEB.js.map} +0 -0
  639. /package/dist/{chunk-4K7FDVAB.js.map → chunk-O3336DJ6.js.map} +0 -0
  640. /package/dist/{chunk-YCCKY5VW.js.map → chunk-OFOYMZRY.js.map} +0 -0
  641. /package/dist/{chunk-OCXCH2ZW.js.map → chunk-OIKQO73C.js.map} +0 -0
  642. /package/dist/{chunk-QZDBWXZG.js.map → chunk-OP65D4UR.js.map} +0 -0
  643. /package/dist/{chunk-MCRIT46W.js.map → chunk-OTH7H3IP.js.map} +0 -0
  644. /package/dist/{chunk-BQQONDW5.js.map → chunk-OVLNF4AZ.js.map} +0 -0
  645. /package/dist/{chunk-AGYGNNOM.js.map → chunk-PQECNGDE.js.map} +0 -0
  646. /package/dist/{chunk-IIROZKW5.js.map → chunk-PRUSQQDT.js.map} +0 -0
  647. /package/dist/{chunk-IPE5FFFD.js.map → chunk-PUBPZOQJ.js.map} +0 -0
  648. /package/dist/{chunk-FB36IHCE.js.map → chunk-QFVFHIHE.js.map} +0 -0
  649. /package/dist/{chunk-V5P5Q6HM.js.map → chunk-QJRDDVZ2.js.map} +0 -0
  650. /package/dist/{chunk-WBKWIFXA.js.map → chunk-QYNCPS5W.js.map} +0 -0
  651. /package/dist/{chunk-VPHOSIPB.js.map → chunk-R6SNYC3D.js.map} +0 -0
  652. /package/dist/{chunk-STH66VLA.js.map → chunk-R7R3LOKW.js.map} +0 -0
  653. /package/dist/{chunk-W2UTDN4T.js.map → chunk-RBGOGTT2.js.map} +0 -0
  654. /package/dist/{chunk-VWBWKLXX.js.map → chunk-SX3V2DLV.js.map} +0 -0
  655. /package/dist/{chunk-P7FQUGED.js.map → chunk-TNVO2DTB.js.map} +0 -0
  656. /package/dist/{chunk-WTIOCG4M.js.map → chunk-TOYEP23N.js.map} +0 -0
  657. /package/dist/{chunk-G2IPK2XE.js.map → chunk-TPLKJHNN.js.map} +0 -0
  658. /package/dist/{chunk-U2AC4AQX.js.map → chunk-TU5EIKJA.js.map} +0 -0
  659. /package/dist/{chunk-ZGHIHEND.js.map → chunk-TW3BXVEU.js.map} +0 -0
  660. /package/dist/{chunk-BGYLL467.js.map → chunk-TXHJX2NG.js.map} +0 -0
  661. /package/dist/{chunk-5RQ7N63M.js.map → chunk-TZDDL3DR.js.map} +0 -0
  662. /package/dist/{chunk-RPQ3W2C6.js.map → chunk-U2ZDN2AL.js.map} +0 -0
  663. /package/dist/{chunk-WPZT2JD4.js.map → chunk-U7Q2Y6WG.js.map} +0 -0
  664. /package/dist/{chunk-E46PG577.js.map → chunk-URXT5TOY.js.map} +0 -0
  665. /package/dist/{chunk-P6IPJYCS.js.map → chunk-VNNG46TS.js.map} +0 -0
  666. /package/dist/{chunk-CXVMD6FE.js.map → chunk-VON4BFK4.js.map} +0 -0
  667. /package/dist/{chunk-2SWQ6HIK.js.map → chunk-W3FAKT3D.js.map} +0 -0
  668. /package/dist/{chunk-JDMYD6QC.js.map → chunk-W4SDVTZC.js.map} +0 -0
  669. /package/dist/{chunk-7MAOQIWA.js.map → chunk-W4YWU7LQ.js.map} +0 -0
  670. /package/dist/{chunk-Y46RBFBV.js.map → chunk-W7Y6RA6W.js.map} +0 -0
  671. /package/dist/{chunk-XFU2S6XT.js.map → chunk-WGRS4PGY.js.map} +0 -0
  672. /package/dist/{chunk-OOGEYCJH.js.map → chunk-WIT3Y7JT.js.map} +0 -0
  673. /package/dist/{chunk-KT6HWAEN.js.map → chunk-WQA4LIIK.js.map} +0 -0
  674. /package/dist/{chunk-J2KSG754.js.map → chunk-WRDPWEIC.js.map} +0 -0
  675. /package/dist/{chunk-RPWEXIAW.js.map → chunk-X5MPHXG5.js.map} +0 -0
  676. /package/dist/{chunk-UEIVXFUC.js.map → chunk-XELVDPKL.js.map} +0 -0
  677. /package/dist/{chunk-RRZBATXK.js.map → chunk-XKV5ZIBG.js.map} +0 -0
  678. /package/dist/{chunk-ZKFYBC6G.js.map → chunk-XSF6AXEU.js.map} +0 -0
  679. /package/dist/{chunk-R6RVBYTU.js.map → chunk-XUJG2HFW.js.map} +0 -0
  680. /package/dist/{chunk-FRQ4HNGF.js.map → chunk-YJ4HM25H.js.map} +0 -0
  681. /package/dist/{chunk-TVO5STZB.js.map → chunk-YQ6TNHAC.js.map} +0 -0
  682. /package/dist/{chunk-BNNSO4MC.js.map → chunk-YTOYMJPM.js.map} +0 -0
  683. /package/dist/{chunk-IH4RSRQA.js.map → chunk-ZA4U5GDU.js.map} +0 -0
  684. /package/dist/native/chunks/{chunk-OGWPPQL4.js.map → chunk-75JQYVDZ.js.map} +0 -0
  685. /package/dist/native/chunks/{chunk-WKMDCNIN.js.map → chunk-7LTVGW23.js.map} +0 -0
  686. /package/dist/native/chunks/{chunk-RJVM5YDE.js.map → chunk-ATS7STZJ.js.map} +0 -0
  687. /package/dist/native/chunks/{chunk-YTHR4Y5P.js.map → chunk-GWGIWQO7.js.map} +0 -0
  688. /package/dist/native/chunks/{chunk-D4EYAXNG.js.map → chunk-QYUD3S6F.js.map} +0 -0
@@ -0,0 +1,69 @@
1
+ import type { ReactNode } from 'react';
2
+
3
+ import type { SizeValue } from '../../../tokens/vocabulary';
4
+
5
+ /**
6
+ * THE CONTRACT BOTH `Dialog` RENDERERS HONOUR — and nothing else.
7
+ *
8
+ * No MUI and no react-native here, on purpose: this file ships in BOTH
9
+ * declaration outputs, and a native consumer has no `@mui/material` to resolve
10
+ * a type import against.
11
+ *
12
+ * `onClose` IS here, unusually for a handler, because it takes no event on
13
+ * either side: MUI's own `onClose` reason argument is dropped by `Dialog.tsx`
14
+ * before it reaches the caller, so both renderers pass a bare `() => void`.
15
+ */
16
+ export type DialogVariant = 'default' | 'glass' | 'fullscreen' | 'drawer';
17
+ export type DialogSize = SizeValue;
18
+ export type DialogBorderRadius = 'none' | 'sm' | 'md' | 'lg' | 'xl';
19
+ export type DialogActionsAlignment = 'left' | 'center' | 'right' | 'space-between';
20
+
21
+ export interface DialogBaseProps {
22
+ open: boolean;
23
+ children: ReactNode;
24
+ variant?: DialogVariant;
25
+ size?: DialogSize;
26
+ title?: ReactNode;
27
+ description?: string;
28
+ showCloseButton?: boolean;
29
+ /** Ignored by BOTH renderers today; see `Dialog.metrics.ts`. */
30
+ backdrop?: boolean;
31
+ /** Refuses to close on a backdrop press or Escape. */
32
+ persistent?: boolean;
33
+ glass?: boolean;
34
+ gradient?: boolean;
35
+ glow?: boolean;
36
+ pulse?: boolean;
37
+ borderRadius?: DialogBorderRadius;
38
+ onClose?: () => void;
39
+ dataTestId?: string;
40
+ testID?: string;
41
+ }
42
+
43
+ export interface DialogHeaderBaseProps {
44
+ /** Custom header content; when given it replaces the title/subtitle layout. */
45
+ children?: ReactNode;
46
+ title?: ReactNode;
47
+ subtitle?: ReactNode;
48
+ showCloseButton?: boolean;
49
+ onClose?: () => void;
50
+ dataTestId?: string;
51
+ testID?: string;
52
+ }
53
+
54
+ export interface DialogContentBaseProps {
55
+ children: ReactNode;
56
+ dividers?: boolean;
57
+ dense?: boolean;
58
+ dataTestId?: string;
59
+ testID?: string;
60
+ }
61
+
62
+ export interface DialogActionsBaseProps {
63
+ children: ReactNode;
64
+ alignment?: DialogActionsAlignment;
65
+ /** Between the actions, in spacing units. */
66
+ spacing?: number;
67
+ dataTestId?: string;
68
+ testID?: string;
69
+ }
@@ -0,0 +1,75 @@
1
+ import * as React from 'react';
2
+
3
+ import type { DialogBaseProps } from './Dialog.base';
4
+
5
+ /**
6
+ * The defaults, and the slot detection, BOTH renderers run.
7
+ *
8
+ * Neither imports a renderer: the defaults are plain values and the slot check
9
+ * is told which component identities count, because `DialogContent` on the web
10
+ * and `DialogContent` on React Native are different functions answering to the
11
+ * same name.
12
+ */
13
+
14
+ type DialogDefaultedKeys =
15
+ | 'variant'
16
+ | 'size'
17
+ | 'showCloseButton'
18
+ | 'backdrop'
19
+ | 'persistent'
20
+ | 'glass'
21
+ | 'gradient'
22
+ | 'glow'
23
+ | 'pulse'
24
+ | 'borderRadius';
25
+
26
+ export const DIALOG_DEFAULTS: Required<Pick<DialogBaseProps, DialogDefaultedKeys>> = {
27
+ variant: 'default',
28
+ size: 'md',
29
+ showCloseButton: true,
30
+ backdrop: true,
31
+ persistent: false,
32
+ glass: false,
33
+ gradient: false,
34
+ glow: false,
35
+ pulse: false,
36
+ borderRadius: 'lg',
37
+ };
38
+
39
+ /** The renderer's own props with every defaulted field guaranteed present. */
40
+ export type DialogPropsWithDefaults<P extends DialogBaseProps> = P &
41
+ Required<Pick<DialogBaseProps, DialogDefaultedKeys>>;
42
+
43
+ /**
44
+ * Apply {@link DIALOG_DEFAULTS} exactly like parameter defaults would: only a
45
+ * missing/`undefined` prop falls back (a loop, so the component's cyclomatic
46
+ * complexity doesn't pay one branch per defaulted prop).
47
+ */
48
+ export function withDialogDefaults<P extends DialogBaseProps>(props: P): DialogPropsWithDefaults<P> {
49
+ const merged = { ...props } as Record<string, unknown>;
50
+ for (const [key, value] of Object.entries(DIALOG_DEFAULTS)) {
51
+ if (merged[key] === undefined) merged[key] = value;
52
+ }
53
+ return merged as unknown as DialogPropsWithDefaults<P>;
54
+ }
55
+
56
+ /**
57
+ * Does this hand us a spacing slot? Fragments are transparent: `<>` is a way of
58
+ * passing several children, not a child that owns them, and a consumer who
59
+ * groups a `DialogContent` and a `DialogActions` in one has still passed both.
60
+ *
61
+ * Only the slots themselves count, and only at the top. A `DialogContent`
62
+ * genuinely nested inside a `<div>` is that div's content, and the dialog
63
+ * padding the div is right.
64
+ *
65
+ * `slots` is passed in rather than closed over so the two renderers can hand it
66
+ * their own `DialogContent` / `DialogActions`.
67
+ */
68
+ export function hasSpacingSlot(children: React.ReactNode, slots: readonly unknown[]): boolean {
69
+ return React.Children.toArray(children).some((child) => {
70
+ if (!React.isValidElement(child)) return false;
71
+ if (slots.includes(child.type)) return true;
72
+ if (child.type !== React.Fragment) return false;
73
+ return hasSpacingSlot((child.props as { children?: React.ReactNode }).children, slots);
74
+ });
75
+ }
@@ -0,0 +1,159 @@
1
+ import type { ViewStyle } from 'react-native';
2
+
3
+ import type { DialogBorderRadius, DialogSize, DialogVariant } from './Dialog.base';
4
+ import {
5
+ DIALOG_BACKDROP,
6
+ DIALOG_BORDER_WIDTH,
7
+ DIALOG_GLASS,
8
+ DIALOG_GLOW,
9
+ DIALOG_MARGIN_UNITS,
10
+ DIALOG_MAX_WIDTH,
11
+ DIALOG_PAPER_SHADOW,
12
+ DIALOG_RADIUS_UNITS,
13
+ } from './Dialog.metrics';
14
+ import { alpha } from '../../../tokens/color';
15
+ import { BLACK, halo } from '../../../tokens/shadow';
16
+ import type { UiTheme } from '../../../tokens/theme';
17
+
18
+ /**
19
+ * WHAT THE NATIVE `Dialog` PAINTS — the arithmetic, with no JSX in sight.
20
+ *
21
+ * `variantStylesOf` builds one `sx` by spreading base, then the decorations
22
+ * (`glow`, `pulse`), then the variant's own surface; whichever wrote a property
23
+ * last wins. The composition here spreads the SAME things in the SAME order, so
24
+ * `glow` survives on a `default` paper (whose surface declares no shadow) and is
25
+ * buried by a `glass` one, on both renderers.
26
+ */
27
+
28
+ /** The named radius as a length. */
29
+ export function dialogRadius(theme: UiTheme, radius: DialogBorderRadius): number {
30
+ return theme.spacing(DIALOG_RADIUS_UNITS[radius] ?? DIALOG_RADIUS_UNITS.lg);
31
+ }
32
+
33
+ /** The scrim behind the paper: half-black, or a fifth of it for `glass`. */
34
+ export function dialogBackdrop(glass: boolean): ViewStyle {
35
+ return {
36
+ backgroundColor: alpha(BLACK, glass ? DIALOG_BACKDROP.alpha.glass : DIALOG_BACKDROP.alpha.plain),
37
+ };
38
+ }
39
+
40
+ /** The glass surface, shared by `variant="glass"` and the `glass` flag. */
41
+ function glassSurface(theme: UiTheme): ViewStyle {
42
+ return {
43
+ backgroundColor: alpha(theme.palette.background.paper, DIALOG_GLASS.backgroundAlpha),
44
+ borderWidth: DIALOG_BORDER_WIDTH,
45
+ borderStyle: 'solid',
46
+ borderColor: alpha(theme.palette.primary.main, DIALOG_GLASS.borderAlpha),
47
+ };
48
+ }
49
+
50
+ export interface DialogLookArgs {
51
+ variant: DialogVariant;
52
+ size: DialogSize;
53
+ borderRadius: DialogBorderRadius;
54
+ glass: boolean;
55
+ glow: boolean;
56
+ pulse: boolean;
57
+ }
58
+
59
+ export interface DialogLook {
60
+ /** Where the paper sits inside the modal, and how far in from the edges. */
61
+ overlay: ViewStyle;
62
+ paper: ViewStyle;
63
+ /** The paper's corner radius, for the pulse ring to follow. */
64
+ radius: number;
65
+ }
66
+
67
+ /** The centred paper of `default` and `glass`, before the variant paints over it. */
68
+ function centredOverlay(theme: UiTheme): ViewStyle {
69
+ return {
70
+ flex: 1,
71
+ alignItems: 'center',
72
+ justifyContent: 'center',
73
+ // The web gives the PAPER `margin: theme.spacing(2)`; an inset on the
74
+ // overlay is the same gap and leaves the paper free to be `100%` wide.
75
+ padding: theme.spacing(DIALOG_MARGIN_UNITS),
76
+ };
77
+ }
78
+
79
+ function variantPaper(theme: UiTheme, a: DialogLookArgs, radius: number): ViewStyle {
80
+ switch (a.variant) {
81
+ case 'glass':
82
+ return {
83
+ ...glassSurface(theme),
84
+ boxShadow: [
85
+ {
86
+ offsetX: 0,
87
+ offsetY: DIALOG_GLASS.shadow.offsetY,
88
+ blurRadius: DIALOG_GLASS.shadow.blurRadius,
89
+ spreadDistance: 0,
90
+ color: alpha(BLACK, DIALOG_GLASS.shadow.alpha),
91
+ },
92
+ ],
93
+ };
94
+ case 'fullscreen':
95
+ return { borderRadius: 0, width: '100%', height: '100%', maxWidth: undefined };
96
+ case 'drawer':
97
+ return {
98
+ // SQUARE, because that is what the web paints. Two things have to fail
99
+ // for a drawer to have a corner there and both do: the `sx` builds
100
+ // `${radius}px 0 0 ${radius}px` out of `theme.spacing()`, which already
101
+ // returns a px string, so the declaration reads `16pxpx 0 0 16pxpx` and
102
+ // the browser drops it; and that `sx` lands on a plain `Box` INSIDE the
103
+ // Drawer, whose own Paper MUI renders with `square: true`. Nothing is
104
+ // left to round the corners. See NATIVE-NOTES.md.
105
+ borderRadius: 0,
106
+ width: DIALOG_MAX_WIDTH[a.size] ?? DIALOG_MAX_WIDTH.md,
107
+ maxWidth: '100%',
108
+ height: '100%',
109
+ maxHeight: undefined,
110
+ };
111
+ default:
112
+ return a.glass ? { ...glassSurface(theme), borderRadius: radius } : {};
113
+ }
114
+ }
115
+
116
+ /** `fullscreen` and `drawer` fill the screen, so neither is inset or centred. */
117
+ function overlayFor(theme: UiTheme, variant: DialogVariant): ViewStyle {
118
+ if (variant === 'fullscreen') return { flex: 1 };
119
+ if (variant === 'drawer') return { flex: 1, alignItems: 'flex-end' };
120
+ return centredOverlay(theme);
121
+ }
122
+
123
+ /**
124
+ * Everything the dialog paints, decided once per render.
125
+ *
126
+ * The base carries what MUI's `Paper` gives every dialog — the paper colour and
127
+ * `shadows[24]` — because React Native has no Paper to inherit them from; a
128
+ * `glow` or a variant shadow then overrides it exactly as the `sx` does.
129
+ *
130
+ * `overflow` clips the paper's children to its corners, as MUI's own
131
+ * `overflow-y: auto` does — except under `pulse` or `glow`, which have to paint
132
+ * OUTSIDE the paper and are clipped by the view's own overflow on a device.
133
+ */
134
+ export function dialogLook(theme: UiTheme, a: DialogLookArgs): DialogLook {
135
+ const radius = dialogRadius(theme, a.borderRadius);
136
+
137
+ const base: ViewStyle = {
138
+ position: 'relative',
139
+ borderRadius: radius,
140
+ backgroundColor: theme.palette.background.paper,
141
+ boxShadow: DIALOG_PAPER_SHADOW,
142
+ width: '100%',
143
+ maxWidth: DIALOG_MAX_WIDTH[a.size] ?? DIALOG_MAX_WIDTH.md,
144
+ maxHeight: '100%',
145
+ overflow: a.pulse || a.glow ? 'visible' : 'hidden',
146
+ };
147
+
148
+ return {
149
+ radius,
150
+ overlay: overlayFor(theme, a.variant),
151
+ paper: {
152
+ ...base,
153
+ ...(a.glow
154
+ ? { boxShadow: halo(DIALOG_GLOW.blurRadius, alpha(theme.palette.primary.main, DIALOG_GLOW.alpha)) }
155
+ : null),
156
+ ...variantPaper(theme, a, radius),
157
+ },
158
+ };
159
+ }
@@ -0,0 +1,140 @@
1
+ import type { DialogBorderRadius, DialogSize } from './Dialog.base';
2
+ import type { UiShadow } from '../../../tokens/shadow';
3
+
4
+ /**
5
+ * THE NUMBERS BOTH `Dialog` RENDERERS DRAW WITH.
6
+ *
7
+ * `Dialog.styles.ts` / `Dialog.tsx` (MUI) and `Dialog.look.native.ts` /
8
+ * `Dialog.native.tsx` (React Native) read this one table. Spacing is in
9
+ * SPACING UNITS wherever the web writes `theme.spacing(n)`; everything else is
10
+ * px, a ratio or an alpha. Shadows are `UiShadow`s — see `src/tokens/shadow.ts`
11
+ * for why they have a shape rather than a string.
12
+ */
13
+
14
+ /* ── The paper ────────────────────────────────────────────────────────────── */
15
+
16
+ /** `theme.spacing(n)` per named radius; `lg` is the default. */
17
+ export const DIALOG_RADIUS_UNITS: Record<DialogBorderRadius, number> = {
18
+ none: 0,
19
+ sm: 0.5,
20
+ md: 1,
21
+ lg: 2,
22
+ xl: 3,
23
+ };
24
+
25
+ /** How wide the paper may grow, per size, in px. Also the drawer's fixed width. */
26
+ export const DIALOG_MAX_WIDTH: Record<DialogSize, number> = {
27
+ xs: 400,
28
+ sm: 600,
29
+ md: 800,
30
+ lg: 1000,
31
+ xl: 1200,
32
+ };
33
+
34
+ /** The paper is 90% of the viewport up to its max width, `theme.spacing(2)` clear of the edge. */
35
+ export const DIALOG_WIDTH_PERCENT = 90;
36
+ export const DIALOG_MARGIN_UNITS = 2;
37
+
38
+ /** The hairline `glass` draws. */
39
+ export const DIALOG_BORDER_WIDTH = 1;
40
+
41
+ /**
42
+ * MUI's `theme.shadows[24]` — the elevation a `Dialog`'s Paper paints.
43
+ *
44
+ * Restated rather than derived because the web never names it: `MuiDialog`
45
+ * passes `elevation={24}` to its Paper, and React Native has no Paper to
46
+ * inherit that from.
47
+ */
48
+ export const DIALOG_PAPER_SHADOW: readonly UiShadow[] = [
49
+ { offsetX: 0, offsetY: 11, blurRadius: 15, spreadDistance: -7, color: 'rgba(0, 0, 0, 0.2)' },
50
+ { offsetX: 0, offsetY: 24, blurRadius: 38, spreadDistance: 3, color: 'rgba(0, 0, 0, 0.14)' },
51
+ { offsetX: 0, offsetY: 9, blurRadius: 46, spreadDistance: 8, color: 'rgba(0, 0, 0, 0.12)' },
52
+ ];
53
+
54
+ /* ── Variants and decorations ─────────────────────────────────────────────── */
55
+
56
+ /** `glass`: a 0.1 wash of the paper behind a 20px blur, inside a primary hairline. */
57
+ export const DIALOG_GLASS = {
58
+ backgroundAlpha: 0.1,
59
+ blurPx: 20,
60
+ borderAlpha: 0.2,
61
+ shadow: { offsetY: 8, blurRadius: 32, alpha: 0.1 },
62
+ } as const;
63
+
64
+ /** `gradient`: a faint primary-into-secondary wash at 135°, over a 10px blur. */
65
+ export const DIALOG_GRADIENT = { angleDeg: 135, stopAlpha: 0.1, blurPx: 10 } as const;
66
+
67
+ /** `glow`: a 40px halo of the primary hue. */
68
+ export const DIALOG_GLOW = { blurRadius: 40, alpha: 0.3 } as const;
69
+
70
+ /**
71
+ * `pulse`: a ring of the primary hue that grows 20px out of the paper's edge and
72
+ * fades, every two seconds. The web draws it as an `::after` box-shadow spread
73
+ * behind the paper (`z-index: -1`).
74
+ */
75
+ export const DIALOG_PULSE = {
76
+ alpha: 0.3,
77
+ durationMs: 2000,
78
+ spread: 20,
79
+ /** The fraction of the cycle the ring is still visible for. */
80
+ fadeAt: 0.7,
81
+ zIndex: -1,
82
+ } as const;
83
+
84
+ /**
85
+ * The scrim: half-black, or a fifth of it behind an 8px blur for `glass`.
86
+ *
87
+ * It paints on BOTH renderers whatever `backdrop` is set to. The web reads that
88
+ * prop as `BackdropComponent={backdrop ? Backdrop : undefined}`, and `undefined`
89
+ * is exactly what MUI falls back to `Backdrop` for — so the scrim is there
90
+ * either way. Native mirrors that rather than inventing a difference; fixing it
91
+ * is a web change, made once, for both.
92
+ */
93
+ export const DIALOG_BACKDROP = { alpha: { plain: 0.5, glass: 0.2 }, blurPx: 8 } as const;
94
+
95
+ /* ── The slots ────────────────────────────────────────────────────────────── */
96
+
97
+ /** Raw children (no `DialogContent`/`DialogActions`) get this padding, in spacing units. */
98
+ export const DIALOG_BODY_PADDING_UNITS = {
99
+ horizontal: 3,
100
+ bottom: 2.5,
101
+ top: 2.5,
102
+ /** Tighter under a title, whose own bottom padding is most of the gap. */
103
+ topUnderTitle: 0.5,
104
+ } as const;
105
+
106
+ /** A `DialogHeader` given raw `children` is a padded box over a hairline instead. */
107
+ export const DIALOG_HEADER_CHILDREN_PADDING_UNITS = 2;
108
+
109
+ /**
110
+ * The title row: MUI's `DialogTitle` padding in px, and the bottom the web
111
+ * overrides in spacing units — tighter when a subtitle follows it.
112
+ */
113
+ export const DIALOG_TITLE = {
114
+ padding: { top: 16, horizontal: 24 },
115
+ paddingBottomUnits: { withSubtitle: 1, plain: 2 },
116
+ subtitleGapUnits: 0.5,
117
+ } as const;
118
+
119
+ /**
120
+ * The close button: MUI's `IconButton` at its default 8px padding around a
121
+ * 24px glyph, on a circular hover wash.
122
+ */
123
+ export const DIALOG_CLOSE_BUTTON = { padding: 8, iconSize: 24 } as const;
124
+
125
+ /** `DialogContent`: `theme.spacing(3)`, tightened by `dense`. */
126
+ export const DIALOG_CONTENT_PADDING_UNITS = { normal: 3, dense: 1.5 } as const;
127
+
128
+ /**
129
+ * Top padding for a body that sits directly under the title.
130
+ *
131
+ * MUI zeroes it there, assuming the title's own bottom padding is the whole
132
+ * gap. That assumption breaks for a body opening with an outlined field: a
133
+ * filled field floats its label ABOVE the input's border box, and the body is a
134
+ * clipping box, so the label gets sliced in half (FUT-544). 12px clears the
135
+ * shrunk label's 9px overhang and leaves the gap visually tight.
136
+ */
137
+ export const DIALOG_TITLED_BODY_PADDING_TOP_UNITS = 1.5;
138
+
139
+ /** `DialogActions`: `theme.spacing(2)` around, and one unit between by default. */
140
+ export const DIALOG_ACTIONS = { paddingUnits: 2, defaultSpacingUnits: 1 } as const;
@@ -0,0 +1,149 @@
1
+ import * as React from 'react';
2
+ import { Modal, Pressable, ScrollView, StyleSheet, View } from 'react-native';
3
+
4
+ import { hasSpacingSlot, withDialogDefaults } from './Dialog.helpers';
5
+ import { dialogBackdrop, dialogLook } from './Dialog.look.native';
6
+ import { DIALOG_BODY_PADDING_UNITS, DIALOG_PULSE } from './Dialog.metrics';
7
+ import type { DialogProps } from './Dialog.types.native';
8
+ import {
9
+ DialogActions,
10
+ DialogContent,
11
+ DialogHeader,
12
+ DialogTitledContext,
13
+ dialogBodyTextStyle,
14
+ } from './DialogParts.native';
15
+ import { PulseRing } from '../../../platform/pulse-ring.native';
16
+ import { resolveTestId, withoutTestIdProps } from '../../../platform/test-id';
17
+ import { renderTextChildren } from '../../../platform/text-children';
18
+ import { useUiTheme } from '../../../provider/use-ui-theme.native';
19
+ import type { UiTheme } from '../../../tokens/theme';
20
+
21
+ // The shared stories import all four names from `./Dialog`, which resolves here
22
+ // under Metro and in the native Storybook; the slots live in their own file to
23
+ // keep this one about the envelope, and are re-exported so that import works.
24
+ export { DialogActions, DialogContent, DialogHeader } from './DialogParts.native';
25
+
26
+ /**
27
+ * The dialog body. Consumers that pass raw children (no `DialogContent`) would
28
+ * render them flush against the paper edges — give them comfortable default
29
+ * padding; `DialogContent`/`DialogActions` users keep managing their own.
30
+ *
31
+ * The web can also catch a slot passed through a COMPONENT boundary, with a
32
+ * `:has()` selector that asks the DOM one step after React could. React Native
33
+ * has no such selector, so only the element-type check runs here — see
34
+ * NATIVE-NOTES.md.
35
+ */
36
+ const styles = StyleSheet.create({
37
+ /** Same sizing `DialogParts`' content slot uses, so a raw body behaves like one. */
38
+ rawBody: { flexGrow: 1, flexShrink: 1 },
39
+ });
40
+
41
+ function bodyOf(theme: UiTheme, children: React.ReactNode, hasTitle: boolean): React.ReactNode {
42
+ if (hasSpacingSlot(children, [DialogContent, DialogActions])) return children;
43
+ const top = hasTitle ? DIALOG_BODY_PADDING_UNITS.topUnderTitle : DIALOG_BODY_PADDING_UNITS.top;
44
+ // A `ScrollView`, not a `View`: MUI's paper is `overflow-y: auto`, so
45
+ // overlong raw children scroll on the web. The native paper is `maxHeight:
46
+ // '100%'` with its overflow hidden, so a plain wrapper clipped them with no
47
+ // way to reach the rest. `DialogContent` already gets this treatment; raw
48
+ // children were the one path that did not.
49
+ return (
50
+ <ScrollView
51
+ style={styles.rawBody}
52
+ contentContainerStyle={{
53
+ paddingHorizontal: theme.spacing(DIALOG_BODY_PADDING_UNITS.horizontal),
54
+ paddingBottom: theme.spacing(DIALOG_BODY_PADDING_UNITS.bottom),
55
+ paddingTop: theme.spacing(top),
56
+ }}
57
+ >
58
+ {renderTextChildren(children, dialogBodyTextStyle(theme))}
59
+ </ScrollView>
60
+ );
61
+ }
62
+
63
+ /**
64
+ * Whether a `<DialogHeader>` arrived as a CHILD rather than through the `title`
65
+ * prop.
66
+ *
67
+ * The web tightens a body under a title with
68
+ * `.MuiDialogTitle-root + &.MuiDialogContent-root` — a CSS sibling selector, so
69
+ * it fires however the title got there. Native reads a context instead, and the
70
+ * context was set from the `title` prop alone, which is the composition nothing
71
+ * uses: every story and `Dialog.md` write the header as a child, and those
72
+ * bodies took the untitled 24px inset where the web gives them 12px.
73
+ */
74
+ function hasHeaderChild(children: React.ReactNode): boolean {
75
+ return React.Children.toArray(children).some(
76
+ (child) => React.isValidElement(child) && child.type === DialogHeader,
77
+ );
78
+ }
79
+
80
+ export function Dialog(rawProps: DialogProps): React.JSX.Element {
81
+ const {
82
+ children,
83
+ open,
84
+ variant,
85
+ size,
86
+ title,
87
+ description,
88
+ showCloseButton,
89
+ backdrop: _backdrop,
90
+ persistent,
91
+ glass,
92
+ gradient: _gradient,
93
+ glow,
94
+ pulse,
95
+ borderRadius,
96
+ onClose,
97
+ ...others
98
+ } = withDialogDefaults(rawProps);
99
+
100
+ const theme = useUiTheme();
101
+ const look = dialogLook(theme, { variant, size, borderRadius, glass, glow, pulse });
102
+ const testID = resolveTestId(others, 'dialog');
103
+ const { style, ...modalProps } = withoutTestIdProps(others);
104
+
105
+ // A persistent dialog refuses both routes out that are not a button: the
106
+ // backdrop and Escape (which `Modal` routes through `onRequestClose`).
107
+ const dismiss = persistent ? undefined : onClose;
108
+
109
+ return (
110
+ <Modal visible={open} transparent onRequestClose={dismiss} {...modalProps}>
111
+ <View style={look.overlay}>
112
+ <Pressable
113
+ aria-hidden
114
+ tabIndex={-1}
115
+ testID={`${testID}-backdrop`}
116
+ onPress={dismiss}
117
+ style={[StyleSheet.absoluteFill, dialogBackdrop(glass)]}
118
+ />
119
+ <View testID={testID} style={[look.paper, style]}>
120
+ {pulse ? (
121
+ <PulseRing
122
+ color={theme.palette.primary.main}
123
+ radius={look.radius}
124
+ spread={DIALOG_PULSE.spread}
125
+ durationMs={DIALOG_PULSE.durationMs}
126
+ fadeAt={DIALOG_PULSE.fadeAt}
127
+ opacity={DIALOG_PULSE.alpha}
128
+ testID={`${testID}-pulse`}
129
+ />
130
+ ) : null}
131
+ <DialogTitledContext.Provider value={Boolean(title) || hasHeaderChild(children)}>
132
+ {title ? (
133
+ <DialogHeader
134
+ title={title}
135
+ subtitle={description}
136
+ showCloseButton={showCloseButton}
137
+ onClose={onClose}
138
+ dataTestId={testID}
139
+ />
140
+ ) : null}
141
+ {bodyOf(theme, children, Boolean(title))}
142
+ </DialogTitledContext.Provider>
143
+ </View>
144
+ </View>
145
+ </Modal>
146
+ );
147
+ }
148
+
149
+ Dialog.displayName = 'Dialog';