@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,55 @@
1
+ import * as React from 'react';
2
+ import { type DimensionValue, type TextStyle } from 'react-native';
3
+ import type { CardActionsProps, CardContentProps, CardHeaderProps, CardMediaProps } from './Card.types.native';
4
+ import type { UiTheme } from '../../../tokens/theme';
5
+ /**
6
+ * THE FOUR SLOTS A CARD IS BUILT OUT OF, ON REACT NATIVE.
7
+ *
8
+ * Each one is a `View` carrying the padding MUI's own `CardHeader`,
9
+ * `CardContent`, `CardActions` and `CardMedia` declare in px — the web half
10
+ * overrides only `padding` and `justify-content`, so the rest of the numbers
11
+ * come from MUI and are restated in `Card.metrics.ts` rather than re-invented.
12
+ */
13
+ /**
14
+ * THE INK A CARD PUBLISHES TO ITS SLOTS.
15
+ *
16
+ * `Card.styles.ts` puts `color: primary.contrastText` on the gradient card
17
+ * ITSELF and lets CSS inheritance carry it into the header and the body. React
18
+ * Native inherits nothing across views, so the card publishes its ink here and
19
+ * every slot reads it — which is the difference between a legible gradient card
20
+ * and near-black text on indigo.
21
+ *
22
+ * `null` is "no card above me": a slot rendered on its own falls back to the
23
+ * body ink, exactly as it would on the web.
24
+ */
25
+ export declare const CardInkContext: React.Context<string | null>;
26
+ /** MUI's header title: `h5`, or `body2` when an avatar shares the row. */
27
+ export declare const cardTitleStyle: (theme: UiTheme, hasAvatar: boolean, ink?: string | null) => TextStyle;
28
+ /**
29
+ * MUI's header subheader: `body1` (or `body2` beside an avatar), in the muted
30
+ * ink — which does NOT follow the card's own ink, because MUI's `CardHeader`
31
+ * pins the subheader to `textSecondary` explicitly rather than inheriting.
32
+ */
33
+ export declare const cardSubtitleStyle: (theme: UiTheme, hasAvatar: boolean) => TextStyle;
34
+ export declare function CardHeader({ title, subtitle, action, avatar, children, ...others }: CardHeaderProps): React.JSX.Element;
35
+ export declare namespace CardHeader {
36
+ var displayName: string;
37
+ }
38
+ export declare function CardContent({ children, dense, ...others }: CardContentProps): React.JSX.Element;
39
+ export declare namespace CardContent {
40
+ var displayName: string;
41
+ }
42
+ export declare function CardActions({ children, disableSpacing, alignment, ...others }: CardActionsProps): React.JSX.Element;
43
+ export declare namespace CardActions {
44
+ var displayName: string;
45
+ }
46
+ /**
47
+ * `height` accepts the web's spellings: a number, a numeric string (`"200"`, as
48
+ * an `<img height>` takes) or a percentage.
49
+ */
50
+ export declare function mediaHeight(height: number | string): DimensionValue;
51
+ export declare function CardMedia({ image, title, height, children, ...others }: CardMediaProps): React.JSX.Element;
52
+ export declare namespace CardMedia {
53
+ var displayName: string;
54
+ }
55
+ //# sourceMappingURL=CardParts.native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CardParts.native.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/Card/CardParts.native.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,SAAS,EAEf,MAAM,cAAc,CAAC;AAStB,OAAO,KAAK,EAEV,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACf,MAAM,qBAAqB,CAAC;AAK7B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD;;;;;;;GAOG;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,8BAA2C,CAAC;AAQvE,0EAA0E;AAC1E,eAAO,MAAM,cAAc,GACzB,OAAO,OAAO,EACd,WAAW,OAAO,EAClB,MAAK,MAAM,GAAG,IAAW,KACxB,SAGD,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,EAAE,WAAW,OAAO,KAAG,SAGrE,CAAC;AAEH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,MAAM,EACN,MAAM,EACN,QAAQ,EACR,GAAG,MAAM,EACV,EAAE,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAwCrC;yBA/Ce,UAAU;;;AAmD1B,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,KAAa,EACb,GAAG,MAAM,EACV,EAAE,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CActC;yBAlBe,WAAW;;;AA6B3B,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,cAAsB,EACtB,SAAkB,EAClB,GAAG,MAAM,EACV,EAAE,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAmBtC;yBAxBe,WAAW;;;AA4B3B;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,cAAc,CAInE;AAED,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,KAAK,EACL,MAA0B,EAC1B,QAAQ,EACR,GAAG,MAAM,EACV,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAqBpC;yBA3Be,SAAS"}
@@ -0,0 +1,4 @@
1
+ export { Card } from './Card.native';
2
+ export { CardActions, CardContent, CardHeader, CardMedia } from './CardParts.native';
3
+ export type { CardActionsAlignment, CardActionsBaseProps, CardActionsProps, CardBaseProps, CardBorderRadius, CardContentBaseProps, CardContentProps, CardEntranceAnimation, CardHeaderBaseProps, CardHeaderProps, CardMediaBaseProps, CardMediaProps, CardProps, CardVariant, } from './Card.types.native';
4
+ //# sourceMappingURL=index.native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../../../src/components/layout/Card/index.native.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACrF,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,WAAW,GACZ,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,35 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * THE `::after` PULSE, AS A REACT NATIVE VIEW.
4
+ *
5
+ * `Card` and `Dialog` pulse the same way on the web: an `::after` that fills
6
+ * the element, carries `box-shadow: 0 0 0 <spread>px currentColor` and animates
7
+ * that spread out and back while fading, once every two seconds, from BEHIND
8
+ * the element (`z-index: -1`). Those two read this; `Button.native.tsx` still
9
+ * carries its own `Pulse`, a filled overlay that scales and fades rather than a
10
+ * ring, and folding it onto this is a `form/Button` change.
11
+ *
12
+ * React Native cannot paint a child behind its parent's own background, so a
13
+ * filled overlay would wash the surface instead of haloing it. This draws a
14
+ * HOLLOW ring instead: the view is inset by the current spread and carries a
15
+ * border of exactly that width, so the band it paints is precisely the region
16
+ * from the surface's edge to `spread` outside it — the same band the box-shadow
17
+ * spread covers, and nothing over the surface itself.
18
+ *
19
+ * Layout props cannot run on the native driver, so this animates on the JS one.
20
+ */
21
+ export interface PulseRingProps {
22
+ color: string;
23
+ /** The surface's own corner radius, which the ring follows. */
24
+ radius: number | string;
25
+ /** How far out of the edge the ring grows, in px. */
26
+ spread: number;
27
+ durationMs: number;
28
+ /** The fraction of the cycle the ring is still visible for. */
29
+ fadeAt: number;
30
+ /** The ring's opacity at the start of a cycle. */
31
+ opacity: number;
32
+ testID: string;
33
+ }
34
+ export declare function PulseRing({ color, radius, spread, durationMs, fadeAt, opacity, testID, }: PulseRingProps): React.JSX.Element;
35
+ //# sourceMappingURL=pulse-ring.native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pulse-ring.native.d.ts","sourceRoot":"","sources":["../../../src/platform/pulse-ring.native.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,MAAM,EACN,MAAM,EACN,UAAU,EACV,MAAM,EACN,OAAO,EACP,MAAM,GACP,EAAE,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAqCpC"}
@@ -28,4 +28,18 @@ export declare function splitTestId<T extends TestIdProps>(props: T, fallback?:
28
28
  export declare function childTestId(props: TestIdProps, suffix: string, fallback: string): string;
29
29
  /** `props` without any of the three spellings, for spreading onto a native element. */
30
30
  export declare function withoutTestIdProps<P extends TestIdProps>(props: P): Omit<P, keyof TestIdProps>;
31
+ /**
32
+ * A SLOT's own test id, where a raw id means "this element" and `dataTestId`
33
+ * means "the surface I belong to".
34
+ *
35
+ * `Dialog` names its parts by derivation — `d` gives `d-title`, `d-content`,
36
+ * `d-actions` — and a slot receives the DIALOG's id in `dataTestId` to derive
37
+ * from. A raw `data-testid` (or React Native's `testID`) is something else: it
38
+ * is the id the caller wants ON THIS ELEMENT, which is how the shared stories
39
+ * address a `DialogContent`, so it is taken verbatim and no suffix is added.
40
+ *
41
+ * Both renderers read this one function, which is the only way the web and the
42
+ * native slot can agree about what `<DialogContent data-testid="x">` is called.
43
+ */
44
+ export declare function slotTestId(props: TestIdProps, suffix: string, fallback: string): string;
31
45
  //# sourceMappingURL=test-id.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-id.d.ts","sourceRoot":"","sources":["../../../src/platform/test-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,iFAAiF;AACjF,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEvF;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,WAAW,EAC/C,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,MAAM,GAChB;IAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,WAAW,CAAC,CAAA;CAAE,CAElE;AAED,oFAAoF;AACpF,wBAAgB,WAAW,CACzB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,MAAM,CAER;AAED,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,WAAW,CAAC,CAG9F"}
1
+ {"version":3,"file":"test-id.d.ts","sourceRoot":"","sources":["../../../src/platform/test-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,iFAAiF;AACjF,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEvF;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,WAAW,EAC/C,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,MAAM,GAChB;IAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,WAAW,CAAC,CAAA;CAAE,CAElE;AAED,oFAAoF;AACpF,wBAAgB,WAAW,CACzB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,MAAM,CAER;AAED,uFAAuF;AACvF,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,MAAM,WAAW,CAAC,CAG9F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvF"}
@@ -14,7 +14,7 @@ import type { UiTheme } from './theme';
14
14
  * halves and not these; each component that reads this records that as a
15
15
  * known gap in its `NATIVE-NOTES.md`.
16
16
  */
17
- export type MuiTypeVariantName = 'h6' | 'body1' | 'body2' | 'caption';
17
+ export type MuiTypeVariantName = 'h5' | 'h6' | 'body1' | 'body2' | 'caption';
18
18
  export interface MuiTypeVariant {
19
19
  fontSize: number;
20
20
  lineHeight: number;
@@ -1 +1 @@
1
- {"version":3,"file":"mui-type.d.ts","sourceRoot":"","sources":["../../../src/tokens/mui-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAEtE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,GAAG,GAAG,GAAG,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,kBAAkB,EAAE,cAAc,CAK/D,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,mGAAmG;AACnG,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,GAAG,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;IAC9C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,EAClC,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,GAAE,MAAmC,GAC5C,YAAY,CASd"}
1
+ {"version":3,"file":"mui-type.d.ts","sourceRoot":"","sources":["../../../src/tokens/mui-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,GAAG,GAAG,GAAG,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,kBAAkB,EAAE,cAAc,CAM/D,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,mGAAmG;AACnG,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,GAAG,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;IAC9C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,EAClC,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,GAAE,MAAmC,GAC5C,YAAY,CASd"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * ONE SHADOW, IN THE SHAPE BOTH RENDERERS READ.
3
+ *
4
+ * A drop shadow is one of the few decorations the two sides express in the same
5
+ * numbers and different syntax: CSS wants `0 8px 32px rgba(…)`, React Native
6
+ * wants `{ offsetX, offsetY, blurRadius, spreadDistance, color }` (its
7
+ * `BoxShadowValue`, which `boxShadow` takes an array of). So the numbers live in
8
+ * a component's `*.metrics.ts` as this object, native passes it straight
9
+ * through, and the web renders it with {@link shadowCss}.
10
+ *
11
+ * {@link shadowCss} reproduces the text the web components already wrote by
12
+ * hand: a bare `0` for a zero length, and no spread at all when the spread is
13
+ * zero. That is what makes moving a shadow into a metrics table a refactor
14
+ * rather than a restyle.
15
+ */
16
+ export interface UiShadow {
17
+ offsetX: number;
18
+ offsetY: number;
19
+ blurRadius: number;
20
+ spreadDistance: number;
21
+ color: string;
22
+ }
23
+ /** One shadow as CSS. A zero spread is omitted, as the web has always written it. */
24
+ export declare const shadowCss: (shadow: UiShadow) => string;
25
+ /** Several shadows as one CSS declaration. */
26
+ export declare const shadowListCss: (shadows: readonly UiShadow[]) => string;
27
+ /**
28
+ * MUI's `palette.common`, which `UiTheme` has no slot for.
29
+ *
30
+ * Here rather than beside each caller because the neumorphic, glass and scrim
31
+ * arithmetic in more than one component mixes from exactly these two, and a
32
+ * per-component copy is a per-component chance to write `#000000`.
33
+ */
34
+ export declare const BLACK = "#000";
35
+ export declare const WHITE = "#fff";
36
+ /** A shadow with no offset — a halo all round, which is how `glow` reads. */
37
+ export declare const halo: (blurRadius: number, color: string) => UiShadow[];
38
+ /** A dropped shadow straight down, which is how a lifted surface sits. */
39
+ export declare const drop: (offsetY: number, blurRadius: number, color: string) => UiShadow[];
40
+ //# sourceMappingURL=shadow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow.d.ts","sourceRoot":"","sources":["../../../src/tokens/shadow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAKD,qFAAqF;AACrF,eAAO,MAAM,SAAS,GAAI,QAAQ,QAAQ,KAAG,MAOhC,CAAC;AAEd,8CAA8C;AAC9C,eAAO,MAAM,aAAa,GAAI,SAAS,SAAS,QAAQ,EAAE,KAAG,MAC1B,CAAC;AAEpC;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,SAAS,CAAC;AAC5B,eAAO,MAAM,KAAK,SAAS,CAAC;AAE5B,6EAA6E;AAC7E,eAAO,MAAM,IAAI,GAAI,YAAY,MAAM,EAAE,OAAO,MAAM,KAAG,QAAQ,EAEhE,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,IAAI,GAAI,SAAS,MAAM,EAAE,YAAY,MAAM,EAAE,OAAO,MAAM,KAAG,QAAQ,EAEjF,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import "../chunk-6GP2DOOO.js";
2
2
  import {
3
3
  Heading
4
- } from "../chunk-426FTCMF.js";
4
+ } from "../chunk-MESRKY67.js";
5
5
  import "../chunk-PWR7K5OP.js";
6
6
  import "../chunk-3N6EK6K5.js";
7
- import "../chunk-6F5IKY32.js";
7
+ import "../chunk-TYJR4GOF.js";
8
8
  import "../chunk-PT6TCWIW.js";
9
9
  import "../chunk-NQN5Z36J.js";
10
10
  import "../chunk-AG66JBNH.js";
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  Paragraph
3
- } from "../chunk-Z5ABJLTM.js";
3
+ } from "../chunk-HFXTAEYY.js";
4
4
  import "../chunk-QKLGH3RZ.js";
5
- import "../chunk-6F5IKY32.js";
5
+ import "../chunk-TYJR4GOF.js";
6
6
  import "../chunk-NQN5Z36J.js";
7
7
  import "../chunk-AG66JBNH.js";
8
8
  import "../chunk-6JAIFIPW.js";
@@ -1,9 +1,9 @@
1
1
  import "../chunk-VUHLNYAE.js";
2
2
  import {
3
3
  Text
4
- } from "../chunk-26Z7QWID.js";
4
+ } from "../chunk-343TTIHD.js";
5
5
  import "../chunk-V3PLFYKO.js";
6
- import "../chunk-6F5IKY32.js";
6
+ import "../chunk-TYJR4GOF.js";
7
7
  import "../chunk-NQN5Z36J.js";
8
8
  import "../chunk-AG66JBNH.js";
9
9
  import "../chunk-6JAIFIPW.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  UserAvatar,
3
3
  UserMenu
4
- } from "./chunk-SAHQLXNN.js";
4
+ } from "./chunk-4LRFGB3K.js";
5
5
  import "./chunk-UDQSIRAP.js";
6
6
  import "./chunk-I7HYGIEJ.js";
7
7
  import "./chunk-4SQFO4GW.js";
@@ -10,17 +10,19 @@ import "./chunk-3ZVUNSFF.js";
10
10
  import "./chunk-XRMZMBE3.js";
11
11
  import "./chunk-VUHLNYAE.js";
12
12
  import "./chunk-2GSIEDGN.js";
13
- import "./chunk-D2IASECY.js";
14
- import "./chunk-VMF3UXM4.js";
15
- import "./chunk-RI5JZLZL.js";
13
+ import "./chunk-AIRWM7KK.js";
14
+ import "./chunk-BEBLRL5D.js";
15
+ import "./chunk-6Q6T3FW5.js";
16
+ import "./chunk-FKUYRQSP.js";
16
17
  import "./chunk-BA4RHQ3B.js";
17
- import "./chunk-BNNSO4MC.js";
18
- import "./chunk-TAMIZE4Q.js";
18
+ import "./chunk-YTOYMJPM.js";
19
19
  import "./chunk-JT6TERQL.js";
20
20
  import "./chunk-ITGG5OKP.js";
21
- import "./chunk-26Z7QWID.js";
21
+ import "./chunk-TAMIZE4Q.js";
22
+ import "./chunk-73BEVJCS.js";
23
+ import "./chunk-343TTIHD.js";
22
24
  import "./chunk-V3PLFYKO.js";
23
- import "./chunk-6F5IKY32.js";
25
+ import "./chunk-TYJR4GOF.js";
24
26
  import "./chunk-NQN5Z36J.js";
25
27
  import "./chunk-AG66JBNH.js";
26
28
  import "./chunk-6JAIFIPW.js";
@@ -1,9 +1,9 @@
1
1
  import "../chunk-H7NA4TXY.js";
2
2
  import {
3
3
  InfiniteScroll
4
- } from "../chunk-WROCSDVL.js";
5
- import "../chunk-QF6LTUCE.js";
4
+ } from "../chunk-GSFNH4C5.js";
6
5
  import "../chunk-ATSHKSSD.js";
6
+ import "../chunk-QF6LTUCE.js";
7
7
  import "../chunk-PZ5AY32C.js";
8
8
  export {
9
9
  InfiniteScroll
@@ -1,11 +1,11 @@
1
1
  import "../chunk-3QQVEYOR.js";
2
2
  import {
3
3
  InstallPrompt
4
- } from "../chunk-5ZOJLYD2.js";
5
- import "../chunk-GY62N32G.js";
4
+ } from "../chunk-JE6RZ5L6.js";
6
5
  import {
7
6
  usePwaInstall
8
7
  } from "../chunk-5GMHJ7Y5.js";
8
+ import "../chunk-GY62N32G.js";
9
9
  import "../chunk-WXYLH3QZ.js";
10
10
  import {
11
11
  PWA_INSTALL_AVAILABLE_EVENT,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@12-apps/ui",
3
- "version": "6.21.0",
3
+ "version": "6.23.0",
4
4
  "license": "MIT",
5
5
  "packageManager": "pnpm@10.34.5",
6
6
  "type": "module",
@@ -204,6 +204,10 @@
204
204
  "types": "./dist/types/components/data-display/EmptyState/index.d.ts",
205
205
  "default": "./dist/data-display/EmptyState.js"
206
206
  },
207
+ "./data-display/FleetMap": {
208
+ "types": "./dist/types/components/data-display/FleetMap/index.d.ts",
209
+ "default": "./dist/data-display/FleetMap.js"
210
+ },
207
211
  "./data-display/SectionOnboarding": {
208
212
  "types": "./dist/types/components/data-display/SectionOnboarding/index.d.ts",
209
213
  "default": "./dist/data-display/SectionOnboarding.js"
@@ -293,6 +297,10 @@
293
297
  "default": "./dist/feedback/ConfirmAction.js"
294
298
  },
295
299
  "./feedback/Dialog": {
300
+ "react-native": {
301
+ "types": "./dist/types-native/components/feedback/Dialog/index.native.d.ts",
302
+ "default": "./dist/native/feedback/Dialog.js"
303
+ },
296
304
  "types": "./dist/types/components/feedback/Dialog/index.d.ts",
297
305
  "default": "./dist/feedback/Dialog.js"
298
306
  },
@@ -473,6 +481,10 @@
473
481
  "default": "./dist/layout/Box.js"
474
482
  },
475
483
  "./layout/Card": {
484
+ "react-native": {
485
+ "types": "./dist/types-native/components/layout/Card/index.native.d.ts",
486
+ "default": "./dist/native/layout/Card.js"
487
+ },
476
488
  "types": "./dist/types/components/layout/Card/index.d.ts",
477
489
  "default": "./dist/layout/Card.js"
478
490
  },
@@ -0,0 +1,48 @@
1
+ # CardKit on React Native — NOT PORTED, and why
2
+
3
+ `data-display/CardKit` carries no `react-native` condition and is absent from
4
+ `entries.native.json` on purpose. Under Metro the subpath therefore resolves to
5
+ the web file and fails at import on `@mui/material`, loudly — which is the
6
+ behaviour `NATIVE.md` asks an unported subpath for. This file is here so the
7
+ absence is a decision on the record rather than an omission.
8
+
9
+ It is written down because CardKit was in the same batch as `layout/Card` and
10
+ `feedback/Dialog`, and both of those shipped.
11
+
12
+ ## What blocks it
13
+
14
+ Four of the kit's five value exports are renderer-bound, and each one is bound
15
+ to a component that has no native half yet:
16
+
17
+ | export | needs | state |
18
+ |---|---|---|
19
+ | `CardKebab` | `navigation/DropdownMenu` (MUI `Menu`; `DropdownMenu.types.ts` imports `MenuProps`) | not ported |
20
+ | `CardActionsProvider` / `useCardActions` | `@mui/material/Snackbar` | no ported equivalent (`feedback/Toast`, `feedback/Sonner` are web-only too) |
21
+ | `useRowConfirm` / `useRemoveConfirm` | `feedback/ConfirmAction` → `data-display/AlertDialog` | neither ported |
22
+ | `BodyHeading`, `DetailColumns`, `Fact`, `Ledger`, `TagList` | `@12-apps/ui/mui/Box` | raw MUI, web-only by design (see NATIVE.md's layout row) |
23
+
24
+ Only `rowActionsToMenuItems` is already platform-neutral — a pure array
25
+ transform that imports no renderer.
26
+
27
+ The TYPES are entangled the same way: `CardKit.types.ts` builds `KindCardProps`
28
+ and `KindListCardProps` on `CardAspectRatio` and `DataViewCardSelection` from
29
+ `../DataViews`, whose `data-views-types.ts` imports `DropdownMenuItem` from
30
+ `navigation/DropdownMenu`, which imports `MenuProps` from `@mui/material/Menu`.
31
+ A native entry would emit that chain into `dist/types-native`, where
32
+ `pnpm native:check` refuses any `@mui/*` import — a native consumer has nothing
33
+ to resolve one against.
34
+
35
+ ## Why not a partial port
36
+
37
+ Porting only the five layout parts and leaving the kebab, the provider and the
38
+ two confirm hooks out would put a `react-native` condition on the subpath while
39
+ four of its names resolved to `undefined` under Metro. That trades a loud
40
+ module-level failure naming `@mui/material` for a render-time "Element type is
41
+ invalid" that names nothing — the exact swap `NATIVE.md` argues against.
42
+
43
+ ## What porting it actually costs
44
+
45
+ `navigation/DropdownMenu`, `data-display/AlertDialog`, `feedback/ConfirmAction`
46
+ and a native snackbar, ported first — three categories, none of them in this
47
+ batch, and none of them claimed by a parallel one. CardKit follows them; it is
48
+ not the unit of work.
@@ -0,0 +1,96 @@
1
+ import Box from '@mui/material/Box/index.js';
2
+ import Stack from '@mui/material/Stack/index.js';
3
+ import React from 'react';
4
+
5
+ import { FleetCanvas } from './FleetCanvas';
6
+ import type { FleetMapState } from './FleetMap.hooks';
7
+ import type { FleetMapCopy } from './FleetMap.types';
8
+ import { FleetRoster } from './FleetRoster';
9
+
10
+ export interface FleetBodyProps
11
+ extends Pick<FleetMapState, 'ordered' | 'centre' | 'markers' | 'select' | 'onKeyDown'> {
12
+ copy: FleetMapCopy;
13
+ selectedId: string | null | undefined;
14
+ laggingAfterSeconds: number;
15
+ staleAfterSeconds: number;
16
+ height: string;
17
+ loading: boolean;
18
+ testId: string;
19
+ }
20
+
21
+ /**
22
+ * The two halves side by side: the roster that reads the fleet, and the map.
23
+ *
24
+ * A component rather than JSX inside {@link import('./FleetMap').FleetMap}
25
+ * because the layout is where every responsive decision lives, and keeping it
26
+ * here is what leaves the exported component short enough to read in one
27
+ * screen — which the complexity ledger enforces rather than merely suggests.
28
+ */
29
+ export function FleetBody({
30
+ ordered,
31
+ centre,
32
+ markers,
33
+ select,
34
+ onKeyDown,
35
+ copy,
36
+ selectedId,
37
+ laggingAfterSeconds,
38
+ staleAfterSeconds,
39
+ height,
40
+ loading,
41
+ testId,
42
+ }: FleetBodyProps): React.JSX.Element {
43
+ return (
44
+ <Stack
45
+ direction={{ xs: 'column', md: 'row' }}
46
+ spacing={2}
47
+ // `aria-busy` belongs on the halves that are actually reloading, NOT on
48
+ // the panel root — the live region announcing the reload is a sibling up
49
+ // there, and a live region inside a busy subtree is exactly what
50
+ // `aria-busy` tells assistive tech to hold back. Marking the root busy
51
+ // would have silenced the announcement for the whole of the only window
52
+ // in which it has anything to say. `CepField` splits them the same way.
53
+ aria-busy={loading || undefined}
54
+ data-testid={`${testId}-body`}
55
+ sx={{ alignItems: 'stretch', minWidth: 0 }}
56
+ >
57
+ {/* The roster reads first on a phone and sits beside the map from md up.
58
+ It keeps a ceiling so thirty units scroll rather than push the map off
59
+ the screen.
60
+
61
+ It also WIDENS with the viewport rather than staying at its md width.
62
+ Held at 280px, a desktop gave the map 1600px for three pins while the
63
+ roster stayed too narrow for its own meta line — `Lagging · 2 min ago ·
64
+ ±180 m` wrapped, at 1920px of all widths. The rungs below are the ones
65
+ the six-width pass was taken at. */}
66
+ <Box
67
+ sx={{
68
+ flexBasis: { md: '280px', lg: '320px', xl: '380px' },
69
+ flexShrink: 0,
70
+ minWidth: 0,
71
+ maxHeight: height,
72
+ display: 'flex',
73
+ }}
74
+ >
75
+ <FleetRoster
76
+ units={ordered}
77
+ copy={copy}
78
+ selectedId={selectedId}
79
+ onSelect={select}
80
+ laggingAfterSeconds={laggingAfterSeconds}
81
+ staleAfterSeconds={staleAfterSeconds}
82
+ loading={loading}
83
+ testId={testId}
84
+ onKeyDown={onKeyDown}
85
+ />
86
+ </Box>
87
+ <FleetCanvas
88
+ copy={copy}
89
+ centre={centre}
90
+ markers={markers}
91
+ height={height}
92
+ testId={testId}
93
+ />
94
+ </Stack>
95
+ );
96
+ }
@@ -0,0 +1,80 @@
1
+ import Box from '@mui/material/Box/index.js';
2
+ import React from 'react';
3
+
4
+ import { MapPreview } from '../MapPreview/MapPreview';
5
+
6
+ import type { FleetMarker } from './FleetMap.hooks';
7
+ import type { LatLng } from './FleetMap.helpers';
8
+ import type { FleetMapCopy } from './FleetMap.types';
9
+
10
+ export interface FleetCanvasProps {
11
+ copy: FleetMapCopy;
12
+ /** Where to point. `null` renders NOTHING — see the component's note. */
13
+ centre: LatLng | null;
14
+ markers: FleetMarker[];
15
+ height: string;
16
+ testId: string;
17
+ }
18
+
19
+ /**
20
+ * The map half — a NAMED LANDMARK, not an `aria-hidden` one.
21
+ *
22
+ * Its controls are focusable, and `aria-hidden` over a focusable subtree is the
23
+ * `aria-hidden-focus` violation: a keyboard user tabs into something a screen
24
+ * reader insists is not there. `role="region"` with a name is what puts it in a
25
+ * screen reader's landmark rotor, so it can be jumped PAST in one gesture;
26
+ * `role="group"` is not a landmark and would not.
27
+ *
28
+ * ## Skipping it does not silence it, and that is not ours to fix here
29
+ *
30
+ * `MapPreview` puts `aria-live="polite"` on its own root, with an English
31
+ * `aria-label` naming the centre coordinates and zoom. So re-centring the map —
32
+ * which every selection change does — announces something like "Map preview
33
+ * centered at -23.5505, -46.6333 with zoom level 15", in English, however
34
+ * thoroughly a reader has skipped the landmark. Two things follow, and neither
35
+ * is solved by anything this file can do:
36
+ *
37
+ * * a live region announces from wherever the reader is, so the landmark's
38
+ * skippability does not suppress it;
39
+ * * that string is the one piece of user-facing text in this component that
40
+ * does NOT come through `copy`.
41
+ *
42
+ * Fixing it means changing `MapPreview`, which every other consumer shares, so
43
+ * it is stated here rather than quietly claimed away.
44
+ *
45
+ * ## No centre, no map
46
+ *
47
+ * `mapCentre` answers `null` rather than a coordinate for an empty fleet, and
48
+ * that refusal has to survive the whole way down. `MapPreview` has no default
49
+ * centre — it resolves `center || coordinates || { lat: 0, lng: 0 }` — so
50
+ * forwarding `undefined` sails the map to the Gulf of Guinea and prints
51
+ * `Lat: 0.000000` under a default pin. That is exactly the render the helper
52
+ * exists to prevent, and it is reachable: a board that is `loading` with
53
+ * nothing yet reported skips the empty state by design and lands here.
54
+ */
55
+ export function FleetCanvas({
56
+ copy,
57
+ centre,
58
+ markers,
59
+ height,
60
+ testId,
61
+ }: FleetCanvasProps): React.JSX.Element | null {
62
+ if (!centre) return null;
63
+ return (
64
+ <Box
65
+ role="region"
66
+ aria-label={copy.mapLabel}
67
+ data-testid={`${testId}-canvas`}
68
+ sx={{ flexGrow: 1, minWidth: 0 }}
69
+ >
70
+ <MapPreview
71
+ copy={copy.map}
72
+ center={centre}
73
+ markers={markers}
74
+ height={height}
75
+ interactive
76
+ showControls
77
+ />
78
+ </Box>
79
+ );
80
+ }
@@ -0,0 +1,70 @@
1
+ import { EN_US_MAP_PREVIEW_COPY } from '../../../en-US.data-display';
2
+
3
+ import type { FleetMapCopy, FleetUnit } from './FleetMap.types';
4
+
5
+ /**
6
+ * The copy and the fleet every story and test story shares.
7
+ *
8
+ * A module rather than a per-story literal, so a change to the shape breaks in
9
+ * ONE place rather than in fourteen — and so the test stories assert against
10
+ * the same words the visual ones render.
11
+ */
12
+
13
+ /** English, because stories are developer-facing. A consumer passes its own. */
14
+ export const FLEET_COPY: FleetMapCopy = {
15
+ title: 'Couriers on the road',
16
+ emptyTitle: 'Nobody is reporting',
17
+ emptyDescription: 'A courier appears here once their phone sends its first position.',
18
+ rosterLabel: 'Couriers, freshest first',
19
+ mapLabel: 'Map of where the couriers are',
20
+ freshness: { live: 'Live', lagging: 'Lagging', stale: 'Stale' },
21
+ lastSeen: (seconds) =>
22
+ seconds < 60 ? `${seconds}s ago` : `${Math.floor(seconds / 60)} min ago`,
23
+ // A NON-BREAKING space between the number and its unit. The meta line is
24
+ // the narrowest text in the component and it wraps at spaces, so a plain
25
+ // space orphans the `m` onto a line of its own — measured at 900px and
26
+ // 1920px, where the roster column is at its tightest relative to the map.
27
+ // Consumers writing their own `accuracy` want the same character.
28
+ accuracy: (metres) => `±${Math.round(metres)}\u00A0m`,
29
+ map: EN_US_MAP_PREVIEW_COPY,
30
+ };
31
+
32
+ /**
33
+ * Three riders around São Paulo, one in each freshness state.
34
+ *
35
+ * Deliberately NOT in staleness order, and the labels deliberately do not agree
36
+ * with it either. `rosterOrder` sorts on staleness and breaks ties on the
37
+ * label, so a fixture whose two orders coincide lets the roster's ordering
38
+ * assertion pass against a LABEL-only sort as readily as the real one — a test
39
+ * reporting coverage it does not have. Here the three orders are all different:
40
+ * declared is [ale, ana, bruno], alphabetical is the same, and the correct
41
+ * answer is [ana, bruno, ale].
42
+ */
43
+ export const FLEET: FleetUnit[] = [
44
+ {
45
+ id: 'ale',
46
+ label: 'Alessandra Nunes',
47
+ latitude: -23.5405,
48
+ longitude: -46.6133,
49
+ accuracyM: null,
50
+ staleSeconds: 640,
51
+ },
52
+ {
53
+ id: 'ana',
54
+ label: 'Ana Ribeiro',
55
+ latitude: -23.5505,
56
+ longitude: -46.6333,
57
+ accuracyM: 12,
58
+ staleSeconds: 8,
59
+ badge: '2 deliveries',
60
+ },
61
+ {
62
+ id: 'bruno',
63
+ label: 'Bruno Alves',
64
+ latitude: -23.5605,
65
+ longitude: -46.6533,
66
+ accuracyM: 180,
67
+ staleSeconds: 140,
68
+ badge: '1 delivery',
69
+ },
70
+ ];