@12-apps/ui 6.22.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 (251) hide show
  1. package/NATIVE.md +1 -1
  2. package/components-catalog.md +7 -0
  3. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +3 -3
  4. package/dist/_internal/components/data-display/Avatar/Avatar.js +2 -2
  5. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +1 -1
  6. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +1 -1
  7. package/dist/_internal/components/data-display/Carousel/Carousel.js +2 -2
  8. package/dist/_internal/components/data-display/Chart/Chart.js +4 -4
  9. package/dist/_internal/components/data-display/Chart/SpecChart.js +5 -5
  10. package/dist/_internal/components/data-display/Chart/chart-context.js +2 -2
  11. package/dist/_internal/components/data-display/Chart/chart-renderers.js +3 -3
  12. package/dist/_internal/components/data-display/Chip/Chip.js +3 -3
  13. package/dist/_internal/components/data-display/Chip/Chip.styles.js +2 -2
  14. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +1 -1
  15. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +26 -26
  16. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +30 -30
  17. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +1 -1
  18. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +5 -5
  19. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +10 -10
  20. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +1 -1
  21. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +22 -22
  22. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +10 -10
  23. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +3 -3
  24. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +4 -4
  25. package/dist/_internal/components/data-display/DataViews/data-views-pagination.js +3 -3
  26. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +2 -2
  27. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +3 -3
  28. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +3 -3
  29. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +31 -0
  30. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +23 -0
  31. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js.map +1 -0
  32. package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js +57 -0
  33. package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js.map +1 -0
  34. package/dist/_internal/components/data-display/FleetMap/FleetMap.helpers.js +14 -0
  35. package/dist/_internal/components/data-display/FleetMap/FleetMap.helpers.js.map +1 -0
  36. package/dist/_internal/components/data-display/FleetMap/FleetMap.hooks.js +9 -0
  37. package/dist/_internal/components/data-display/FleetMap/FleetMap.hooks.js.map +1 -0
  38. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +46 -0
  39. package/dist/_internal/components/data-display/FleetMap/FleetMap.js.map +1 -0
  40. package/dist/_internal/components/data-display/FleetMap/FleetMap.types.js +1 -0
  41. package/dist/_internal/components/data-display/FleetMap/FleetMap.types.js.map +1 -0
  42. package/dist/_internal/components/data-display/FleetMap/FleetRoster.js +14 -0
  43. package/dist/_internal/components/data-display/FleetMap/FleetRoster.js.map +1 -0
  44. package/dist/_internal/components/data-display/HoverCard/HoverCard.js +2 -2
  45. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +2 -2
  46. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +2 -2
  47. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +6 -6
  48. package/dist/_internal/components/data-display/Sheet/Sheet.hooks.js +2 -2
  49. package/dist/_internal/components/data-display/Sheet/Sheet.js +3 -3
  50. package/dist/_internal/components/data-display/Table/Table.js +3 -3
  51. package/dist/_internal/components/data-display/index.js +82 -62
  52. package/dist/_internal/components/feedback/Modal/Modal.js +2 -2
  53. package/dist/_internal/components/feedback/StackedModal/StackedModal.js +2 -2
  54. package/dist/_internal/components/feedback/index.js +14 -14
  55. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +3 -3
  56. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +5 -5
  57. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocompleteField.js +2 -2
  58. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +2 -2
  59. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +4 -4
  60. package/dist/_internal/components/form/Command/Command.js +2 -2
  61. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +3 -3
  62. package/dist/_internal/components/form/PhoneInput/PhoneInput.hooks.js +2 -2
  63. package/dist/_internal/components/form/PhoneInput/PhoneInput.js +3 -3
  64. package/dist/_internal/components/form/index.js +30 -30
  65. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +5 -5
  66. package/dist/_internal/components/form/total-form/Fields/index.js +9 -9
  67. package/dist/_internal/components/index.js +152 -133
  68. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +2 -2
  69. package/dist/_internal/components/layout/index.js +20 -20
  70. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +4 -4
  71. package/dist/_internal/components/navigation/Pagination/Pagination.js +2 -2
  72. package/dist/_internal/components/navigation/index.js +12 -12
  73. package/dist/_internal/components/utility/index.js +4 -4
  74. package/dist/_internal/pt-BR.data-display.js +2 -2
  75. package/dist/_internal/user-avatar/user-avatar.js +3 -3
  76. package/dist/charts.js +5 -5
  77. package/dist/chunk-2RQINU5T.js +41 -0
  78. package/dist/chunk-2RQINU5T.js.map +1 -0
  79. package/dist/{chunk-VLHGBFR6.js → chunk-2UGJIKVA.js} +2 -2
  80. package/dist/{chunk-WMALDOF5.js → chunk-4G3FGCWX.js} +4 -4
  81. package/dist/{chunk-ZKR5B6YJ.js → chunk-4LRFGB3K.js} +2 -2
  82. package/dist/{chunk-ZOUWHGV3.js → chunk-4MGFUPQT.js} +4 -4
  83. package/dist/{chunk-VQAM2XZV.js → chunk-4XZXLB4I.js} +3 -3
  84. package/dist/chunk-5V4UPOWK.js +36 -0
  85. package/dist/chunk-5V4UPOWK.js.map +1 -0
  86. package/dist/{chunk-VIK3HAUQ.js → chunk-73NJCGQG.js} +2 -2
  87. package/dist/{chunk-PFV6RL4Q.js → chunk-ACFGEZ4Q.js} +3 -3
  88. package/dist/{chunk-U2YJCNRU.js → chunk-AJGYHDA5.js} +4 -4
  89. package/dist/{chunk-HKV4MQ2W.js → chunk-BLBOYCOV.js} +5 -5
  90. package/dist/{chunk-QZBUGUOY.js → chunk-BZTFPSWT.js} +4 -4
  91. package/dist/{chunk-7TZ6OC5T.js → chunk-CBTY36TU.js} +2 -2
  92. package/dist/chunk-CDCTLPMD.js +1 -0
  93. package/dist/chunk-CDCTLPMD.js.map +1 -0
  94. package/dist/chunk-CF3FAAPC.js +79 -0
  95. package/dist/chunk-CF3FAAPC.js.map +1 -0
  96. package/dist/{chunk-PMS3H3OO.js → chunk-DF2FFYZ7.js} +4 -4
  97. package/dist/{chunk-FPWB5ILF.js → chunk-DRHIIUDO.js} +5 -5
  98. package/dist/{chunk-WLQTHPMX.js → chunk-EJQW2IYW.js} +2 -2
  99. package/dist/{chunk-XFUNJYFT.js → chunk-EPNUVSNK.js} +7 -7
  100. package/dist/{chunk-MSUSZLRE.js → chunk-EWT3WMVY.js} +5 -5
  101. package/dist/chunk-F7VBGS4C.js +64 -0
  102. package/dist/chunk-F7VBGS4C.js.map +1 -0
  103. package/dist/{chunk-Q75SJ35X.js → chunk-GMTM6EN7.js} +3 -3
  104. package/dist/{chunk-6NZTYZP5.js → chunk-GVA5CYKP.js} +2 -2
  105. package/dist/{chunk-VR5HDUBK.js → chunk-HP2ODXNA.js} +2 -2
  106. package/dist/{chunk-7BYFC2MR.js → chunk-I7HYGIEJ.js} +6 -6
  107. package/dist/{chunk-UVGRRI7N.js → chunk-IPVYEPXO.js} +4 -4
  108. package/dist/{chunk-5ZTUP65G.js → chunk-JM64OEU6.js} +5 -5
  109. package/dist/{chunk-QFJRB27Q.js → chunk-KHWCX4LI.js} +2 -2
  110. package/dist/{chunk-TLMLEC4F.js → chunk-KW7H5O3K.js} +6 -6
  111. package/dist/{chunk-UU3QAKG6.js → chunk-L4U23SBX.js} +4 -4
  112. package/dist/chunk-MQNKRIGC.js +205 -0
  113. package/dist/chunk-MQNKRIGC.js.map +1 -0
  114. package/dist/{chunk-QWDEOITU.js → chunk-MYGNIFZC.js} +2 -2
  115. package/dist/{chunk-2MMEIN4T.js → chunk-N2TUX4A5.js} +4 -4
  116. package/dist/{chunk-KTK4A3IF.js → chunk-OIKQO73C.js} +7 -7
  117. package/dist/{chunk-REMK55JI.js → chunk-OLZTGVBT.js} +4 -4
  118. package/dist/{chunk-ZIYMBR7K.js → chunk-OTH7H3IP.js} +2 -2
  119. package/dist/{chunk-J4W4TQPC.js → chunk-QJRDDVZ2.js} +5 -5
  120. package/dist/{chunk-VNDOQEJ7.js → chunk-QRX5BYUQ.js} +4 -4
  121. package/dist/{chunk-XT7HMNBW.js → chunk-R6SNYC3D.js} +5 -5
  122. package/dist/{chunk-W2UTDN4T.js → chunk-RBGOGTT2.js} +4 -4
  123. package/dist/chunk-RQWZYD6H.js +1 -0
  124. package/dist/chunk-RQWZYD6H.js.map +1 -0
  125. package/dist/{chunk-EXJBPKGW.js → chunk-SHDIZSN5.js} +5 -5
  126. package/dist/{chunk-23FCBIUN.js → chunk-TNVO2DTB.js} +8 -8
  127. package/dist/{chunk-AGSBIUPV.js → chunk-TPLKJHNN.js} +4 -4
  128. package/dist/{chunk-U2AC4AQX.js → chunk-TU5EIKJA.js} +4 -4
  129. package/dist/chunk-TWQYDKCA.js +113 -0
  130. package/dist/chunk-TWQYDKCA.js.map +1 -0
  131. package/dist/{chunk-BGYLL467.js → chunk-TXHJX2NG.js} +4 -4
  132. package/dist/{chunk-E46PG577.js → chunk-URXT5TOY.js} +4 -4
  133. package/dist/{chunk-5NKUYCZD.js → chunk-VON4BFK4.js} +4 -4
  134. package/dist/{chunk-FL54G7PV.js → chunk-WIT3Y7JT.js} +2 -2
  135. package/dist/{chunk-DVUPIVI2.js → chunk-WQA4LIIK.js} +2 -2
  136. package/dist/{chunk-2UYR2OOE.js → chunk-YRUCIKPO.js} +4 -4
  137. package/dist/{chunk-QKIJ6YXZ.js → chunk-ZA4U5GDU.js} +4 -4
  138. package/dist/{chunk-OXQP3N6X.js → chunk-ZTZ6S5Q6.js} +4 -4
  139. package/dist/data-display/AsyncStateContainer.js +3 -3
  140. package/dist/data-display/Avatar.js +2 -2
  141. package/dist/data-display/CardKit.js +8 -8
  142. package/dist/data-display/Carousel.js +2 -2
  143. package/dist/data-display/Chart.js +5 -5
  144. package/dist/data-display/Chip.js +3 -3
  145. package/dist/data-display/DataGrid.js +1 -1
  146. package/dist/data-display/DataViews.js +33 -33
  147. package/dist/data-display/FleetMap.js +54 -0
  148. package/dist/data-display/FleetMap.js.map +1 -0
  149. package/dist/data-display/HoverCard.js +2 -2
  150. package/dist/data-display/Lightbox.js +2 -2
  151. package/dist/data-display/MapPreview.js +6 -6
  152. package/dist/data-display/Sheet.js +3 -3
  153. package/dist/data-display/Table.js +3 -3
  154. package/dist/feedback/ConfirmAction.js +3 -3
  155. package/dist/feedback/Modal.js +2 -2
  156. package/dist/feedback/StackedModal.js +2 -2
  157. package/dist/form/AddressAutocomplete.js +5 -5
  158. package/dist/form/CategorySelect.js +4 -4
  159. package/dist/form/Command.js +2 -2
  160. package/dist/form/DateRangePicker.js +5 -5
  161. package/dist/form/PhoneInput.js +3 -3
  162. package/dist/form/total-form.js +9 -9
  163. package/dist/layout/SettingsLayout.js +2 -2
  164. package/dist/locales.js +4 -4
  165. package/dist/navigation/AppHeader.js +6 -6
  166. package/dist/navigation/Pagination.js +2 -2
  167. package/dist/pt-BR.js +4 -4
  168. package/dist/types/components/data-display/FleetMap/FleetBody.d.ts +22 -0
  169. package/dist/types/components/data-display/FleetMap/FleetBody.d.ts.map +1 -0
  170. package/dist/types/components/data-display/FleetMap/FleetCanvas.d.ts +50 -0
  171. package/dist/types/components/data-display/FleetMap/FleetCanvas.d.ts.map +1 -0
  172. package/dist/types/components/data-display/FleetMap/FleetMap.d.ts +32 -0
  173. package/dist/types/components/data-display/FleetMap/FleetMap.d.ts.map +1 -0
  174. package/dist/types/components/data-display/FleetMap/FleetMap.fixtures.d.ts +23 -0
  175. package/dist/types/components/data-display/FleetMap/FleetMap.fixtures.d.ts.map +1 -0
  176. package/dist/types/components/data-display/FleetMap/FleetMap.helpers.d.ts +45 -0
  177. package/dist/types/components/data-display/FleetMap/FleetMap.helpers.d.ts.map +1 -0
  178. package/dist/types/components/data-display/FleetMap/FleetMap.hooks.d.ts +54 -0
  179. package/dist/types/components/data-display/FleetMap/FleetMap.hooks.d.ts.map +1 -0
  180. package/dist/types/components/data-display/FleetMap/FleetMap.types.d.ts +145 -0
  181. package/dist/types/components/data-display/FleetMap/FleetMap.types.d.ts.map +1 -0
  182. package/dist/types/components/data-display/FleetMap/FleetRoster.d.ts +15 -0
  183. package/dist/types/components/data-display/FleetMap/FleetRoster.d.ts.map +1 -0
  184. package/dist/types/components/data-display/FleetMap/index.d.ts +5 -0
  185. package/dist/types/components/data-display/FleetMap/index.d.ts.map +1 -0
  186. package/dist/types/components/data-display/index.d.ts +1 -0
  187. package/dist/types/components/data-display/index.d.ts.map +1 -1
  188. package/dist/user-avatar.js +3 -3
  189. package/package.json +5 -1
  190. package/src/components/data-display/FleetMap/FleetBody.tsx +96 -0
  191. package/src/components/data-display/FleetMap/FleetCanvas.tsx +80 -0
  192. package/src/components/data-display/FleetMap/FleetMap.fixtures.ts +70 -0
  193. package/src/components/data-display/FleetMap/FleetMap.helpers.ts +85 -0
  194. package/src/components/data-display/FleetMap/FleetMap.hooks.ts +164 -0
  195. package/src/components/data-display/FleetMap/FleetMap.md +182 -0
  196. package/src/components/data-display/FleetMap/FleetMap.tsx +169 -0
  197. package/src/components/data-display/FleetMap/FleetMap.types.ts +148 -0
  198. package/src/components/data-display/FleetMap/FleetRoster.tsx +321 -0
  199. package/src/components/data-display/FleetMap/index.ts +9 -0
  200. package/src/components/data-display/FleetMap/tests.md +79 -0
  201. package/src/components/data-display/FleetMap/track.md +50 -0
  202. package/src/components/data-display/index.ts +1 -0
  203. package/src/components/feedback/ConfirmAction/ConfirmAction.md +10 -4
  204. package/dist/chunk-X3HL5C6H.js +0 -1
  205. /package/dist/{chunk-X3HL5C6H.js.map → _internal/components/data-display/FleetMap/FleetBody.js.map} +0 -0
  206. /package/dist/{chunk-VLHGBFR6.js.map → chunk-2UGJIKVA.js.map} +0 -0
  207. /package/dist/{chunk-WMALDOF5.js.map → chunk-4G3FGCWX.js.map} +0 -0
  208. /package/dist/{chunk-ZKR5B6YJ.js.map → chunk-4LRFGB3K.js.map} +0 -0
  209. /package/dist/{chunk-ZOUWHGV3.js.map → chunk-4MGFUPQT.js.map} +0 -0
  210. /package/dist/{chunk-VQAM2XZV.js.map → chunk-4XZXLB4I.js.map} +0 -0
  211. /package/dist/{chunk-VIK3HAUQ.js.map → chunk-73NJCGQG.js.map} +0 -0
  212. /package/dist/{chunk-PFV6RL4Q.js.map → chunk-ACFGEZ4Q.js.map} +0 -0
  213. /package/dist/{chunk-U2YJCNRU.js.map → chunk-AJGYHDA5.js.map} +0 -0
  214. /package/dist/{chunk-HKV4MQ2W.js.map → chunk-BLBOYCOV.js.map} +0 -0
  215. /package/dist/{chunk-QZBUGUOY.js.map → chunk-BZTFPSWT.js.map} +0 -0
  216. /package/dist/{chunk-7TZ6OC5T.js.map → chunk-CBTY36TU.js.map} +0 -0
  217. /package/dist/{chunk-PMS3H3OO.js.map → chunk-DF2FFYZ7.js.map} +0 -0
  218. /package/dist/{chunk-FPWB5ILF.js.map → chunk-DRHIIUDO.js.map} +0 -0
  219. /package/dist/{chunk-WLQTHPMX.js.map → chunk-EJQW2IYW.js.map} +0 -0
  220. /package/dist/{chunk-XFUNJYFT.js.map → chunk-EPNUVSNK.js.map} +0 -0
  221. /package/dist/{chunk-MSUSZLRE.js.map → chunk-EWT3WMVY.js.map} +0 -0
  222. /package/dist/{chunk-Q75SJ35X.js.map → chunk-GMTM6EN7.js.map} +0 -0
  223. /package/dist/{chunk-6NZTYZP5.js.map → chunk-GVA5CYKP.js.map} +0 -0
  224. /package/dist/{chunk-VR5HDUBK.js.map → chunk-HP2ODXNA.js.map} +0 -0
  225. /package/dist/{chunk-7BYFC2MR.js.map → chunk-I7HYGIEJ.js.map} +0 -0
  226. /package/dist/{chunk-UVGRRI7N.js.map → chunk-IPVYEPXO.js.map} +0 -0
  227. /package/dist/{chunk-5ZTUP65G.js.map → chunk-JM64OEU6.js.map} +0 -0
  228. /package/dist/{chunk-QFJRB27Q.js.map → chunk-KHWCX4LI.js.map} +0 -0
  229. /package/dist/{chunk-TLMLEC4F.js.map → chunk-KW7H5O3K.js.map} +0 -0
  230. /package/dist/{chunk-UU3QAKG6.js.map → chunk-L4U23SBX.js.map} +0 -0
  231. /package/dist/{chunk-QWDEOITU.js.map → chunk-MYGNIFZC.js.map} +0 -0
  232. /package/dist/{chunk-2MMEIN4T.js.map → chunk-N2TUX4A5.js.map} +0 -0
  233. /package/dist/{chunk-KTK4A3IF.js.map → chunk-OIKQO73C.js.map} +0 -0
  234. /package/dist/{chunk-REMK55JI.js.map → chunk-OLZTGVBT.js.map} +0 -0
  235. /package/dist/{chunk-ZIYMBR7K.js.map → chunk-OTH7H3IP.js.map} +0 -0
  236. /package/dist/{chunk-J4W4TQPC.js.map → chunk-QJRDDVZ2.js.map} +0 -0
  237. /package/dist/{chunk-VNDOQEJ7.js.map → chunk-QRX5BYUQ.js.map} +0 -0
  238. /package/dist/{chunk-XT7HMNBW.js.map → chunk-R6SNYC3D.js.map} +0 -0
  239. /package/dist/{chunk-W2UTDN4T.js.map → chunk-RBGOGTT2.js.map} +0 -0
  240. /package/dist/{chunk-EXJBPKGW.js.map → chunk-SHDIZSN5.js.map} +0 -0
  241. /package/dist/{chunk-23FCBIUN.js.map → chunk-TNVO2DTB.js.map} +0 -0
  242. /package/dist/{chunk-AGSBIUPV.js.map → chunk-TPLKJHNN.js.map} +0 -0
  243. /package/dist/{chunk-U2AC4AQX.js.map → chunk-TU5EIKJA.js.map} +0 -0
  244. /package/dist/{chunk-BGYLL467.js.map → chunk-TXHJX2NG.js.map} +0 -0
  245. /package/dist/{chunk-E46PG577.js.map → chunk-URXT5TOY.js.map} +0 -0
  246. /package/dist/{chunk-5NKUYCZD.js.map → chunk-VON4BFK4.js.map} +0 -0
  247. /package/dist/{chunk-FL54G7PV.js.map → chunk-WIT3Y7JT.js.map} +0 -0
  248. /package/dist/{chunk-DVUPIVI2.js.map → chunk-WQA4LIIK.js.map} +0 -0
  249. /package/dist/{chunk-2UYR2OOE.js.map → chunk-YRUCIKPO.js.map} +0 -0
  250. /package/dist/{chunk-QKIJ6YXZ.js.map → chunk-ZA4U5GDU.js.map} +0 -0
  251. /package/dist/{chunk-OXQP3N6X.js.map → chunk-ZTZ6S5Q6.js.map} +0 -0
@@ -1,14 +1,14 @@
1
1
  "use client";
2
2
  import {
3
3
  AppHeaderDetails
4
- } from "../../../../chunk-6NZTYZP5.js";
5
- import "../../../../chunk-ZIYMBR7K.js";
4
+ } from "../../../../chunk-GVA5CYKP.js";
5
+ import "../../../../chunk-OTH7H3IP.js";
6
6
  import "../../../../chunk-M2K7BPHX.js";
7
7
  import "../../../../chunk-6JZE4IIN.js";
8
8
  import "../../../../chunk-POUWN4PX.js";
9
- import "../../../../chunk-REMK55JI.js";
10
- import "../../../../chunk-F52N6ACD.js";
9
+ import "../../../../chunk-OLZTGVBT.js";
11
10
  import "../../../../chunk-CRN4KKNI.js";
11
+ import "../../../../chunk-F52N6ACD.js";
12
12
  import "../../../../chunk-YANLN6HP.js";
13
13
  import "../../../../chunk-5KEMPCW4.js";
14
14
  import "../../../../chunk-VM3HRSAU.js";
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  Pagination
3
- } from "../../../../chunk-W2UTDN4T.js";
4
- import "../../../../chunk-CZBONNPA.js";
3
+ } from "../../../../chunk-RBGOGTT2.js";
5
4
  import "../../../../chunk-BB2IVF76.js";
5
+ import "../../../../chunk-CZBONNPA.js";
6
6
  import "../../../../chunk-Z6TIAVEG.js";
7
7
  import "../../../../chunk-PZ5AY32C.js";
8
8
  export {
@@ -13,12 +13,12 @@ import {
13
13
  AppHeaderIdentity,
14
14
  AppHeaderStatus
15
15
  } from "../../../chunk-W2YNUUVJ.js";
16
- import {
17
- AppHeaderDetails
18
- } from "../../../chunk-6NZTYZP5.js";
19
16
  import {
20
17
  AppHeaderBrand
21
18
  } from "../../../chunk-H37GIAAM.js";
19
+ import {
20
+ AppHeaderDetails
21
+ } from "../../../chunk-GVA5CYKP.js";
22
22
  import {
23
23
  brandGradient,
24
24
  highlightOf,
@@ -51,24 +51,24 @@ import "../../../chunk-Q444G5X7.js";
51
51
  import "../../../chunk-7FOOLP5H.js";
52
52
  import "../../../chunk-FYLCSCMR.js";
53
53
  import "../../../chunk-3L5OZCGA.js";
54
- import "../../../chunk-ZIYMBR7K.js";
54
+ import "../../../chunk-OTH7H3IP.js";
55
55
  import "../../../chunk-M2K7BPHX.js";
56
56
  import "../../../chunk-6JZE4IIN.js";
57
57
  import "../../../chunk-POUWN4PX.js";
58
- import "../../../chunk-REMK55JI.js";
59
- import "../../../chunk-F52N6ACD.js";
58
+ import "../../../chunk-OLZTGVBT.js";
60
59
  import "../../../chunk-CRN4KKNI.js";
61
- import "../../../chunk-WVML3ENZ.js";
62
- import {
63
- DropdownMenu
64
- } from "../../../chunk-IDHZHOZW.js";
60
+ import "../../../chunk-F52N6ACD.js";
65
61
  import "../../../chunk-MQJDMQJZ.js";
66
62
  import {
67
63
  Pagination
68
- } from "../../../chunk-W2UTDN4T.js";
69
- import "../../../chunk-CZBONNPA.js";
64
+ } from "../../../chunk-RBGOGTT2.js";
70
65
  import "../../../chunk-BB2IVF76.js";
66
+ import "../../../chunk-CZBONNPA.js";
71
67
  import "../../../chunk-Z6TIAVEG.js";
68
+ import "../../../chunk-WVML3ENZ.js";
69
+ import {
70
+ DropdownMenu
71
+ } from "../../../chunk-IDHZHOZW.js";
72
72
  import "../../../chunk-YANLN6HP.js";
73
73
  import "../../../chunk-5KEMPCW4.js";
74
74
  import "../../../chunk-VM3HRSAU.js";
@@ -1,4 +1,8 @@
1
1
  import "../../../chunk-SS4MHTGU.js";
2
+ import "../../../chunk-IYM4LTA5.js";
3
+ import {
4
+ AspectRatio
5
+ } from "../../../chunk-N52O2OKZ.js";
2
6
  import "../../../chunk-H7NA4TXY.js";
3
7
  import {
4
8
  InfiniteScroll
@@ -49,10 +53,6 @@ import {
49
53
  } from "../../../chunk-3CGLGOLO.js";
50
54
  import "../../../chunk-DBS74X2C.js";
51
55
  import "../../../chunk-3T5Z5HXF.js";
52
- import "../../../chunk-IYM4LTA5.js";
53
- import {
54
- AspectRatio
55
- } from "../../../chunk-N52O2OKZ.js";
56
56
  import "../../../chunk-NCS2TBIP.js";
57
57
  import {
58
58
  splitToFit,
@@ -5,9 +5,9 @@ import {
5
5
  PT_BR_LIGHTBOX_COPY,
6
6
  PT_BR_MAP_PREVIEW_COPY,
7
7
  PT_BR_TIMING_DIAGRAM_COPY
8
- } from "../chunk-U2AC4AQX.js";
9
- import "../chunk-WUE5EK42.js";
8
+ } from "../chunk-TU5EIKJA.js";
10
9
  import "../chunk-A7RIZOAL.js";
10
+ import "../chunk-WUE5EK42.js";
11
11
  import "../chunk-PZ5AY32C.js";
12
12
  export {
13
13
  PT_BR_CAROUSEL_COPY,
@@ -2,12 +2,12 @@
2
2
  import {
3
3
  UserAvatar,
4
4
  UserMenu
5
- } from "../../chunk-ZKR5B6YJ.js";
5
+ } from "../../chunk-4LRFGB3K.js";
6
6
  import "../../chunk-UDQSIRAP.js";
7
- import "../../chunk-7BYFC2MR.js";
8
- import "../../chunk-3ZVUNSFF.js";
7
+ import "../../chunk-I7HYGIEJ.js";
9
8
  import "../../chunk-4SQFO4GW.js";
10
9
  import "../../chunk-FAITHWIO.js";
10
+ import "../../chunk-3ZVUNSFF.js";
11
11
  import "../../chunk-XRMZMBE3.js";
12
12
  import "../../chunk-VUHLNYAE.js";
13
13
  import "../../chunk-2GSIEDGN.js";
package/dist/charts.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import "./chunk-5KLSLD72.js";
2
2
  import {
3
3
  SpecChart
4
- } from "./chunk-VLHGBFR6.js";
4
+ } from "./chunk-2UGJIKVA.js";
5
5
  import {
6
6
  Chart
7
- } from "./chunk-7TZ6OC5T.js";
7
+ } from "./chunk-CBTY36TU.js";
8
8
  import {
9
9
  CHART_SEMANTIC_COLORS,
10
10
  ChartSpecError,
@@ -16,7 +16,7 @@ import {
16
16
  getRegisteredChartSpecTypes,
17
17
  registerChartSpecRenderer
18
18
  } from "./chunk-WKUA6P3W.js";
19
- import "./chunk-DVUPIVI2.js";
19
+ import "./chunk-WQA4LIIK.js";
20
20
  import {
21
21
  ChartContainer,
22
22
  ChartLegend,
@@ -28,9 +28,9 @@ import {
28
28
  chartValueFormatter,
29
29
  formatChartValue
30
30
  } from "./chunk-QVWNK4JO.js";
31
- import "./chunk-HKV4MQ2W.js";
32
- import "./chunk-XXDXW6TX.js";
31
+ import "./chunk-BLBOYCOV.js";
33
32
  import "./chunk-4V532JF6.js";
33
+ import "./chunk-XXDXW6TX.js";
34
34
  import "./chunk-V5IOLAIS.js";
35
35
  import "./chunk-7ZPUN7TV.js";
36
36
  import "./chunk-PT6TCWIW.js";
@@ -0,0 +1,41 @@
1
+ import {
2
+ MapPreview
3
+ } from "./chunk-QJRDDVZ2.js";
4
+
5
+ // src/components/data-display/FleetMap/FleetCanvas.tsx
6
+ import Box from "@mui/material/Box/index.js";
7
+ import { jsx } from "react/jsx-runtime";
8
+ function FleetCanvas({
9
+ copy,
10
+ centre,
11
+ markers,
12
+ height,
13
+ testId
14
+ }) {
15
+ if (!centre) return null;
16
+ return /* @__PURE__ */ jsx(
17
+ Box,
18
+ {
19
+ role: "region",
20
+ "aria-label": copy.mapLabel,
21
+ "data-testid": `${testId}-canvas`,
22
+ sx: { flexGrow: 1, minWidth: 0 },
23
+ children: /* @__PURE__ */ jsx(
24
+ MapPreview,
25
+ {
26
+ copy: copy.map,
27
+ center: centre,
28
+ markers,
29
+ height,
30
+ interactive: true,
31
+ showControls: true
32
+ }
33
+ )
34
+ }
35
+ );
36
+ }
37
+
38
+ export {
39
+ FleetCanvas
40
+ };
41
+ //# sourceMappingURL=chunk-2RQINU5T.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/FleetMap/FleetCanvas.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport React from 'react';\n\nimport { MapPreview } from '../MapPreview/MapPreview';\n\nimport type { FleetMarker } from './FleetMap.hooks';\nimport type { LatLng } from './FleetMap.helpers';\nimport type { FleetMapCopy } from './FleetMap.types';\n\nexport interface FleetCanvasProps {\n copy: FleetMapCopy;\n /** Where to point. `null` renders NOTHING — see the component's note. */\n centre: LatLng | null;\n markers: FleetMarker[];\n height: string;\n testId: string;\n}\n\n/**\n * The map half — a NAMED LANDMARK, not an `aria-hidden` one.\n *\n * Its controls are focusable, and `aria-hidden` over a focusable subtree is the\n * `aria-hidden-focus` violation: a keyboard user tabs into something a screen\n * reader insists is not there. `role=\"region\"` with a name is what puts it in a\n * screen reader's landmark rotor, so it can be jumped PAST in one gesture;\n * `role=\"group\"` is not a landmark and would not.\n *\n * ## Skipping it does not silence it, and that is not ours to fix here\n *\n * `MapPreview` puts `aria-live=\"polite\"` on its own root, with an English\n * `aria-label` naming the centre coordinates and zoom. So re-centring the map —\n * which every selection change does — announces something like \"Map preview\n * centered at -23.5505, -46.6333 with zoom level 15\", in English, however\n * thoroughly a reader has skipped the landmark. Two things follow, and neither\n * is solved by anything this file can do:\n *\n * * a live region announces from wherever the reader is, so the landmark's\n * skippability does not suppress it;\n * * that string is the one piece of user-facing text in this component that\n * does NOT come through `copy`.\n *\n * Fixing it means changing `MapPreview`, which every other consumer shares, so\n * it is stated here rather than quietly claimed away.\n *\n * ## No centre, no map\n *\n * `mapCentre` answers `null` rather than a coordinate for an empty fleet, and\n * that refusal has to survive the whole way down. `MapPreview` has no default\n * centre — it resolves `center || coordinates || { lat: 0, lng: 0 }` — so\n * forwarding `undefined` sails the map to the Gulf of Guinea and prints\n * `Lat: 0.000000` under a default pin. That is exactly the render the helper\n * exists to prevent, and it is reachable: a board that is `loading` with\n * nothing yet reported skips the empty state by design and lands here.\n */\nexport function FleetCanvas({\n copy,\n centre,\n markers,\n height,\n testId,\n}: FleetCanvasProps): React.JSX.Element | null {\n if (!centre) return null;\n return (\n <Box\n role=\"region\"\n aria-label={copy.mapLabel}\n data-testid={`${testId}-canvas`}\n sx={{ flexGrow: 1, minWidth: 0 }}\n >\n <MapPreview\n copy={copy.map}\n center={centre}\n markers={markers}\n height={height}\n interactive\n showControls\n />\n </Box>\n );\n}\n"],"mappings":";;;;;AAAA,OAAO,SAAS;AAqEV;AAfC,SAAS,YAAY;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA+C;AAC7C,MAAI,CAAC,OAAQ,QAAO;AACpB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAY,KAAK;AAAA,MACjB,eAAa,GAAG,MAAM;AAAA,MACtB,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE;AAAA,MAE/B;AAAA,QAAC;AAAA;AAAA,UACC,MAAM,KAAK;AAAA,UACX,QAAQ;AAAA,UACR;AAAA,UACA;AAAA,UACA,aAAW;AAAA,UACX,cAAY;AAAA;AAAA,MACd;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Chart
3
- } from "./chunk-7TZ6OC5T.js";
3
+ } from "./chunk-CBTY36TU.js";
4
4
  import {
5
5
  CHART_SEMANTIC_COLORS,
6
6
  specToChartProps
@@ -46,4 +46,4 @@ var SpecChart = ({
46
46
  export {
47
47
  SpecChart
48
48
  };
49
- //# sourceMappingURL=chunk-VLHGBFR6.js.map
49
+ //# sourceMappingURL=chunk-2UGJIKVA.js.map
@@ -1,3 +1,6 @@
1
+ import {
2
+ SettingsPanel
3
+ } from "./chunk-IE7ISTLQ.js";
1
4
  import {
2
5
  SettingsRail
3
6
  } from "./chunk-7JO3ES5P.js";
@@ -5,9 +8,6 @@ import {
5
8
  activeItemLabel,
6
9
  filterGroups
7
10
  } from "./chunk-BXC6GRLE.js";
8
- import {
9
- SettingsPanel
10
- } from "./chunk-IE7ISTLQ.js";
11
11
  import {
12
12
  atLeastRail
13
13
  } from "./chunk-LIG7TKIB.js";
@@ -135,4 +135,4 @@ SettingsLayout.displayName = "SettingsLayout";
135
135
  export {
136
136
  SettingsLayout
137
137
  };
138
- //# sourceMappingURL=chunk-WMALDOF5.js.map
138
+ //# sourceMappingURL=chunk-4G3FGCWX.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Avatar
3
- } from "./chunk-7BYFC2MR.js";
3
+ } from "./chunk-I7HYGIEJ.js";
4
4
  import {
5
5
  Card
6
6
  } from "./chunk-AIRWM7KK.js";
@@ -74,4 +74,4 @@ export {
74
74
  UserAvatar,
75
75
  UserMenu
76
76
  };
77
- //# sourceMappingURL=chunk-ZKR5B6YJ.js.map
77
+ //# sourceMappingURL=chunk-4LRFGB3K.js.map
@@ -1,3 +1,6 @@
1
+ import {
2
+ useAddressPredictions
3
+ } from "./chunk-HEBZ7Q7O.js";
1
4
  import {
2
5
  useGoogleMapsAPI
3
6
  } from "./chunk-7VRCGWQL.js";
@@ -7,9 +10,6 @@ import {
7
10
  import {
8
11
  useAddressSelection
9
12
  } from "./chunk-VRPCZ3IE.js";
10
- import {
11
- useAddressPredictions
12
- } from "./chunk-HEBZ7Q7O.js";
13
13
 
14
14
  // src/components/form/AddressAutocomplete/AddressAutocomplete.hooks.ts
15
15
  import { useCallback, useState } from "react";
@@ -70,4 +70,4 @@ var useAddressAutocomplete = ({
70
70
  export {
71
71
  useAddressAutocomplete
72
72
  };
73
- //# sourceMappingURL=chunk-ZOUWHGV3.js.map
73
+ //# sourceMappingURL=chunk-4MGFUPQT.js.map
@@ -3,14 +3,14 @@ import {
3
3
  } from "./chunk-4X4KM4ZB.js";
4
4
  import {
5
5
  DataViewsGrid
6
- } from "./chunk-PFV6RL4Q.js";
6
+ } from "./chunk-ACFGEZ4Q.js";
7
7
  import {
8
8
  viewStateKey
9
9
  } from "./chunk-ZOLAYP2D.js";
10
10
  import {
11
11
  ViewDialogs,
12
12
  ViewMutationErrorAlert
13
- } from "./chunk-U2YJCNRU.js";
13
+ } from "./chunk-AJGYHDA5.js";
14
14
  import {
15
15
  useSavedViewsController
16
16
  } from "./chunk-HR7YTBR7.js";
@@ -178,4 +178,4 @@ function renderViewDialogs(ctl, fields, columns, views, testIdPrefix, onSaved) {
178
178
  export {
179
179
  DataViewsTableBase
180
180
  };
181
- //# sourceMappingURL=chunk-VQAM2XZV.js.map
181
+ //# sourceMappingURL=chunk-4XZXLB4I.js.map
@@ -0,0 +1,36 @@
1
+ // src/components/data-display/FleetMap/FleetMap.helpers.ts
2
+ function freshnessOf(staleSeconds, laggingAfterSeconds, staleAfterSeconds) {
3
+ if (staleSeconds >= staleAfterSeconds) return "stale";
4
+ if (staleSeconds >= laggingAfterSeconds) return "lagging";
5
+ return "live";
6
+ }
7
+ function mapCentre(units, selectedId) {
8
+ if (units.length === 0) return null;
9
+ const selected = selectedId ? units.find((unit) => unit.id === selectedId) : void 0;
10
+ if (selected) return { lat: selected.latitude, lng: selected.longitude };
11
+ const sum = units.reduce(
12
+ (acc, unit) => ({ lat: acc.lat + unit.latitude, lng: acc.lng + unit.longitude }),
13
+ { lat: 0, lng: 0 }
14
+ );
15
+ return { lat: sum.lat / units.length, lng: sum.lng / units.length };
16
+ }
17
+ function rosterOrder(units) {
18
+ return [...units].sort(
19
+ (a, b) => a.staleSeconds - b.staleSeconds || a.label.localeCompare(b.label)
20
+ );
21
+ }
22
+ function nextSelection(units, currentId, step) {
23
+ if (units.length === 0) return null;
24
+ const index = units.findIndex((unit) => unit.id === currentId);
25
+ if (index === -1) return (step === 1 ? units[0] : units[units.length - 1])?.id ?? null;
26
+ const next = (index + step + units.length) % units.length;
27
+ return units[next]?.id ?? null;
28
+ }
29
+
30
+ export {
31
+ freshnessOf,
32
+ mapCentre,
33
+ rosterOrder,
34
+ nextSelection
35
+ };
36
+ //# sourceMappingURL=chunk-5V4UPOWK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/FleetMap/FleetMap.helpers.ts"],"sourcesContent":["import type { FleetFreshness, FleetUnit } from './FleetMap.types';\n\n/**\n * How current a fix is, on the two thresholds the caller supplied.\n *\n * Inclusive at both boundaries in the direction that reads better on a screen:\n * a unit exactly at the lagging threshold is already lagging. A boundary has to\n * fall somewhere, and the conservative side is the one that does not tell a\n * dispatcher somebody is live when they are on the edge of not being.\n */\nexport function freshnessOf(\n staleSeconds: number,\n laggingAfterSeconds: number,\n staleAfterSeconds: number,\n): FleetFreshness {\n if (staleSeconds >= staleAfterSeconds) return 'stale';\n if (staleSeconds >= laggingAfterSeconds) return 'lagging';\n return 'live';\n}\n\n/** A latitude/longitude pair, as the map wants its centre. */\nexport interface LatLng {\n lat: number;\n lng: number;\n}\n\n/**\n * Where the map should point.\n *\n * The selected unit when there is one — a dispatcher who clicked a name is\n * asking to look at them. Otherwise the fleet's own centroid, which keeps\n * everybody in frame without the caller having to compute a bounding box.\n *\n * `null` for an empty fleet rather than a coordinate: (0, 0) is a real place in\n * the Atlantic, and a map that quietly sails there is worse than one that says\n * it has nothing to show.\n */\nexport function mapCentre(\n units: readonly FleetUnit[],\n selectedId?: string | null,\n): LatLng | null {\n if (units.length === 0) return null;\n const selected = selectedId ? units.find((unit) => unit.id === selectedId) : undefined;\n if (selected) return { lat: selected.latitude, lng: selected.longitude };\n const sum = units.reduce(\n (acc, unit) => ({ lat: acc.lat + unit.latitude, lng: acc.lng + unit.longitude }),\n { lat: 0, lng: 0 },\n );\n return { lat: sum.lat / units.length, lng: sum.lng / units.length };\n}\n\n/**\n * The roster's order: freshest first, then alphabetically.\n *\n * Not the caller's order, deliberately. The one question this panel answers is\n * *who is moving right now*, and a list sorted by anything else buries the\n * answer under whoever happens to sort first. Ties break on the label so the\n * list does not reshuffle between polls when two units share a staleness.\n */\nexport function rosterOrder(units: readonly FleetUnit[]): FleetUnit[] {\n return [...units].sort(\n (a, b) => a.staleSeconds - b.staleSeconds || a.label.localeCompare(b.label),\n );\n}\n\n/**\n * Move the selection by one row, wrapping at both ends.\n *\n * Wrapping rather than stopping: this is a short list a dispatcher arrows\n * through repeatedly, and a selection that sticks at the last row makes the\n * keyboard path feel broken next to the mouse one.\n */\nexport function nextSelection(\n units: readonly FleetUnit[],\n currentId: string | null | undefined,\n step: 1 | -1,\n): string | null {\n if (units.length === 0) return null;\n const index = units.findIndex((unit) => unit.id === currentId);\n // Nothing selected: Down opens at the top and Up opens at the bottom, which\n // is what every listbox in the house does.\n if (index === -1) return (step === 1 ? units[0] : units[units.length - 1])?.id ?? null;\n const next = (index + step + units.length) % units.length;\n return units[next]?.id ?? null;\n}\n"],"mappings":";AAUO,SAAS,YACd,cACA,qBACA,mBACgB;AAChB,MAAI,gBAAgB,kBAAmB,QAAO;AAC9C,MAAI,gBAAgB,oBAAqB,QAAO;AAChD,SAAO;AACT;AAmBO,SAAS,UACd,OACA,YACe;AACf,MAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,QAAM,WAAW,aAAa,MAAM,KAAK,CAAC,SAAS,KAAK,OAAO,UAAU,IAAI;AAC7E,MAAI,SAAU,QAAO,EAAE,KAAK,SAAS,UAAU,KAAK,SAAS,UAAU;AACvE,QAAM,MAAM,MAAM;AAAA,IAChB,CAAC,KAAK,UAAU,EAAE,KAAK,IAAI,MAAM,KAAK,UAAU,KAAK,IAAI,MAAM,KAAK,UAAU;AAAA,IAC9E,EAAE,KAAK,GAAG,KAAK,EAAE;AAAA,EACnB;AACA,SAAO,EAAE,KAAK,IAAI,MAAM,MAAM,QAAQ,KAAK,IAAI,MAAM,MAAM,OAAO;AACpE;AAUO,SAAS,YAAY,OAA0C;AACpE,SAAO,CAAC,GAAG,KAAK,EAAE;AAAA,IAChB,CAAC,GAAG,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,cAAc,EAAE,KAAK;AAAA,EAC5E;AACF;AASO,SAAS,cACd,OACA,WACA,MACe;AACf,MAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,QAAM,QAAQ,MAAM,UAAU,CAAC,SAAS,KAAK,OAAO,SAAS;AAG7D,MAAI,UAAU,GAAI,SAAQ,SAAS,IAAI,MAAM,CAAC,IAAI,MAAM,MAAM,SAAS,CAAC,IAAI,MAAM;AAClF,QAAM,QAAQ,QAAQ,OAAO,MAAM,UAAU,MAAM;AACnD,SAAO,MAAM,IAAI,GAAG,MAAM;AAC5B;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  usePhoneInput
3
- } from "./chunk-BGYLL467.js";
3
+ } from "./chunk-TXHJX2NG.js";
4
4
  import {
5
5
  countries
6
6
  } from "./chunk-3JDP5OUR.js";
@@ -334,4 +334,4 @@ export {
334
334
  PhoneInput,
335
335
  PhoneInput_default
336
336
  };
337
- //# sourceMappingURL=chunk-VIK3HAUQ.js.map
337
+ //# sourceMappingURL=chunk-73NJCGQG.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  GridShell
3
- } from "./chunk-UU3QAKG6.js";
3
+ } from "./chunk-L4U23SBX.js";
4
4
  import {
5
5
  useDataViewsState
6
- } from "./chunk-KTK4A3IF.js";
6
+ } from "./chunk-OIKQO73C.js";
7
7
 
8
8
  // src/components/data-display/DataViews/DataViewsGrid.tsx
9
9
  import { useEffect, useRef } from "react";
@@ -27,4 +27,4 @@ function DataViewsGrid(props) {
27
27
  export {
28
28
  DataViewsGrid
29
29
  };
30
- //# sourceMappingURL=chunk-PFV6RL4Q.js.map
30
+ //# sourceMappingURL=chunk-ACFGEZ4Q.js.map
@@ -1,9 +1,9 @@
1
- import {
2
- SaveViewModal
3
- } from "./chunk-CHPZTF34.js";
4
1
  import {
5
2
  ManageViewsDialog
6
3
  } from "./chunk-6JGPPTLX.js";
4
+ import {
5
+ SaveViewModal
6
+ } from "./chunk-CHPZTF34.js";
7
7
  import {
8
8
  useDataViewsCopy
9
9
  } from "./chunk-KHG57NAE.js";
@@ -121,4 +121,4 @@ export {
121
121
  ViewsMenuSlot,
122
122
  ViewDialogs
123
123
  };
124
- //# sourceMappingURL=chunk-U2YJCNRU.js.map
124
+ //# sourceMappingURL=chunk-AJGYHDA5.js.map
@@ -1,13 +1,13 @@
1
+ import {
2
+ resolveAxisConfig,
3
+ resolveBarGeometry
4
+ } from "./chunk-4V532JF6.js";
1
5
  import {
2
6
  getAxisStyles,
3
7
  getDefaultColors,
4
8
  getSizeStyles,
5
9
  resolveSeries
6
10
  } from "./chunk-XXDXW6TX.js";
7
- import {
8
- resolveAxisConfig,
9
- resolveBarGeometry
10
- } from "./chunk-4V532JF6.js";
11
11
 
12
12
  // src/components/data-display/Chart/chart-context.ts
13
13
  function buildChartContext(props, theme) {
@@ -48,4 +48,4 @@ function buildChartContext(props, theme) {
48
48
  export {
49
49
  buildChartContext
50
50
  };
51
- //# sourceMappingURL=chunk-HKV4MQ2W.js.map
51
+ //# sourceMappingURL=chunk-BLBOYCOV.js.map
@@ -1,6 +1,9 @@
1
1
  import {
2
2
  RangePresets
3
3
  } from "./chunk-F4RR4666.js";
4
+ import {
5
+ presetsFor
6
+ } from "./chunk-CBOB5AV6.js";
4
7
  import {
5
8
  NumberBoundInput
6
9
  } from "./chunk-FV36LFPX.js";
@@ -10,9 +13,6 @@ import {
10
13
  numericRange,
11
14
  rangeChipLabel
12
15
  } from "./chunk-GCZJH4XL.js";
13
- import {
14
- presetsFor
15
- } from "./chunk-CBOB5AV6.js";
16
16
  import {
17
17
  useDataViewsCopy
18
18
  } from "./chunk-KHG57NAE.js";
@@ -279,4 +279,4 @@ export {
279
279
  RangePill,
280
280
  PanelRangeField
281
281
  };
282
- //# sourceMappingURL=chunk-QZBUGUOY.js.map
282
+ //# sourceMappingURL=chunk-BZTFPSWT.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  renderChartByType
3
- } from "./chunk-DVUPIVI2.js";
3
+ } from "./chunk-WQA4LIIK.js";
4
4
  import {
5
5
  ChartContainer
6
6
  } from "./chunk-M5T3COS2.js";
@@ -104,4 +104,4 @@ var Chart = (props) => {
104
104
  export {
105
105
  Chart
106
106
  };
107
- //# sourceMappingURL=chunk-7TZ6OC5T.js.map
107
+ //# sourceMappingURL=chunk-CBTY36TU.js.map
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-CDCTLPMD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,79 @@
1
+ import {
2
+ FleetCanvas
3
+ } from "./chunk-2RQINU5T.js";
4
+ import {
5
+ FleetRoster
6
+ } from "./chunk-MQNKRIGC.js";
7
+
8
+ // src/components/data-display/FleetMap/FleetBody.tsx
9
+ import Box from "@mui/material/Box/index.js";
10
+ import Stack from "@mui/material/Stack/index.js";
11
+ import { jsx, jsxs } from "react/jsx-runtime";
12
+ function FleetBody({
13
+ ordered,
14
+ centre,
15
+ markers,
16
+ select,
17
+ onKeyDown,
18
+ copy,
19
+ selectedId,
20
+ laggingAfterSeconds,
21
+ staleAfterSeconds,
22
+ height,
23
+ loading,
24
+ testId
25
+ }) {
26
+ return /* @__PURE__ */ jsxs(
27
+ Stack,
28
+ {
29
+ direction: { xs: "column", md: "row" },
30
+ spacing: 2,
31
+ "aria-busy": loading || void 0,
32
+ "data-testid": `${testId}-body`,
33
+ sx: { alignItems: "stretch", minWidth: 0 },
34
+ children: [
35
+ /* @__PURE__ */ jsx(
36
+ Box,
37
+ {
38
+ sx: {
39
+ flexBasis: { md: "280px", lg: "320px", xl: "380px" },
40
+ flexShrink: 0,
41
+ minWidth: 0,
42
+ maxHeight: height,
43
+ display: "flex"
44
+ },
45
+ children: /* @__PURE__ */ jsx(
46
+ FleetRoster,
47
+ {
48
+ units: ordered,
49
+ copy,
50
+ selectedId,
51
+ onSelect: select,
52
+ laggingAfterSeconds,
53
+ staleAfterSeconds,
54
+ loading,
55
+ testId,
56
+ onKeyDown
57
+ }
58
+ )
59
+ }
60
+ ),
61
+ /* @__PURE__ */ jsx(
62
+ FleetCanvas,
63
+ {
64
+ copy,
65
+ centre,
66
+ markers,
67
+ height,
68
+ testId
69
+ }
70
+ )
71
+ ]
72
+ }
73
+ );
74
+ }
75
+
76
+ export {
77
+ FleetBody
78
+ };
79
+ //# sourceMappingURL=chunk-CF3FAAPC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/FleetMap/FleetBody.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport Stack from '@mui/material/Stack/index.js';\nimport React from 'react';\n\nimport { FleetCanvas } from './FleetCanvas';\nimport type { FleetMapState } from './FleetMap.hooks';\nimport type { FleetMapCopy } from './FleetMap.types';\nimport { FleetRoster } from './FleetRoster';\n\nexport interface FleetBodyProps\n extends Pick<FleetMapState, 'ordered' | 'centre' | 'markers' | 'select' | 'onKeyDown'> {\n copy: FleetMapCopy;\n selectedId: string | null | undefined;\n laggingAfterSeconds: number;\n staleAfterSeconds: number;\n height: string;\n loading: boolean;\n testId: string;\n}\n\n/**\n * The two halves side by side: the roster that reads the fleet, and the map.\n *\n * A component rather than JSX inside {@link import('./FleetMap').FleetMap}\n * because the layout is where every responsive decision lives, and keeping it\n * here is what leaves the exported component short enough to read in one\n * screen — which the complexity ledger enforces rather than merely suggests.\n */\nexport function FleetBody({\n ordered,\n centre,\n markers,\n select,\n onKeyDown,\n copy,\n selectedId,\n laggingAfterSeconds,\n staleAfterSeconds,\n height,\n loading,\n testId,\n}: FleetBodyProps): React.JSX.Element {\n return (\n <Stack\n direction={{ xs: 'column', md: 'row' }}\n spacing={2}\n // `aria-busy` belongs on the halves that are actually reloading, NOT on\n // the panel root — the live region announcing the reload is a sibling up\n // there, and a live region inside a busy subtree is exactly what\n // `aria-busy` tells assistive tech to hold back. Marking the root busy\n // would have silenced the announcement for the whole of the only window\n // in which it has anything to say. `CepField` splits them the same way.\n aria-busy={loading || undefined}\n data-testid={`${testId}-body`}\n sx={{ alignItems: 'stretch', minWidth: 0 }}\n >\n {/* The roster reads first on a phone and sits beside the map from md up.\n It keeps a ceiling so thirty units scroll rather than push the map off\n the screen.\n\n It also WIDENS with the viewport rather than staying at its md width.\n Held at 280px, a desktop gave the map 1600px for three pins while the\n roster stayed too narrow for its own meta line — `Lagging · 2 min ago ·\n ±180 m` wrapped, at 1920px of all widths. The rungs below are the ones\n the six-width pass was taken at. */}\n <Box\n sx={{\n flexBasis: { md: '280px', lg: '320px', xl: '380px' },\n flexShrink: 0,\n minWidth: 0,\n maxHeight: height,\n display: 'flex',\n }}\n >\n <FleetRoster\n units={ordered}\n copy={copy}\n selectedId={selectedId}\n onSelect={select}\n laggingAfterSeconds={laggingAfterSeconds}\n staleAfterSeconds={staleAfterSeconds}\n loading={loading}\n testId={testId}\n onKeyDown={onKeyDown}\n />\n </Box>\n <FleetCanvas\n copy={copy}\n centre={centre}\n markers={markers}\n height={height}\n testId={testId}\n />\n </Stack>\n );\n}\n"],"mappings":";;;;;;;;AAAA,OAAO,SAAS;AAChB,OAAO,WAAW;AA0Cd,SA+BI,KA/BJ;AAfG,SAAS,UAAU;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAsC;AACpC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,EAAE,IAAI,UAAU,IAAI,MAAM;AAAA,MACrC,SAAS;AAAA,MAOT,aAAW,WAAW;AAAA,MACtB,eAAa,GAAG,MAAM;AAAA,MACtB,IAAI,EAAE,YAAY,WAAW,UAAU,EAAE;AAAA,MAWzC;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,IAAI;AAAA,cACF,WAAW,EAAE,IAAI,SAAS,IAAI,SAAS,IAAI,QAAQ;AAAA,cACnD,YAAY;AAAA,cACZ,UAAU;AAAA,cACV,WAAW;AAAA,cACX,SAAS;AAAA,YACX;AAAA,YAEA;AAAA,cAAC;AAAA;AAAA,gBACC,OAAO;AAAA,gBACP;AAAA,gBACA;AAAA,gBACA,UAAU;AAAA,gBACV;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA;AAAA,YACF;AAAA;AAAA,QACF;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA;AAAA,QACF;AAAA;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -1,3 +1,6 @@
1
+ import {
2
+ LightboxCurrentMedia
3
+ } from "./chunk-2DWBJJK6.js";
1
4
  import {
2
5
  resolveLightboxProps
3
6
  } from "./chunk-UOS7DEQZ.js";
@@ -19,9 +22,6 @@ import {
19
22
  import {
20
23
  makeTestId
21
24
  } from "./chunk-56SJYTIT.js";
22
- import {
23
- LightboxCurrentMedia
24
- } from "./chunk-2DWBJJK6.js";
25
25
 
26
26
  // src/components/data-display/Lightbox/Lightbox.tsx
27
27
  import Dialog from "@mui/material/Dialog/index.js";
@@ -128,4 +128,4 @@ export {
128
128
  Lightbox,
129
129
  Lightbox_default
130
130
  };
131
- //# sourceMappingURL=chunk-PMS3H3OO.js.map
131
+ //# sourceMappingURL=chunk-DF2FFYZ7.js.map
@@ -3,15 +3,15 @@ import {
3
3
  chipStyles,
4
4
  iconWithTestId,
5
5
  makeKeyDownHandler
6
- } from "./chunk-E46PG577.js";
7
- import {
8
- chipMuiSize
9
- } from "./chunk-KU6VHNRV.js";
6
+ } from "./chunk-URXT5TOY.js";
10
7
  import {
11
8
  chipRole,
12
9
  isClickable,
13
10
  makeTestId
14
11
  } from "./chunk-BF4FYOAR.js";
12
+ import {
13
+ chipMuiSize
14
+ } from "./chunk-KU6VHNRV.js";
15
15
 
16
16
  // src/components/data-display/Chip/Chip.tsx
17
17
  import CancelIcon from "@mui/icons-material/Cancel";
@@ -76,4 +76,4 @@ Chip.displayName = "Chip";
76
76
  export {
77
77
  Chip
78
78
  };
79
- //# sourceMappingURL=chunk-FPWB5ILF.js.map
79
+ //# sourceMappingURL=chunk-DRHIIUDO.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-4T6W43TO.js";
7
7
  import {
8
8
  CategorySelect
9
- } from "./chunk-5ZTUP65G.js";
9
+ } from "./chunk-JM64OEU6.js";
10
10
 
11
11
  // src/components/data-display/DataViews/data-views-category-pill.tsx
12
12
  import { jsx } from "react/jsx-runtime";
@@ -79,4 +79,4 @@ export {
79
79
  emitPillDiff,
80
80
  PillControl
81
81
  };
82
- //# sourceMappingURL=chunk-WLQTHPMX.js.map
82
+ //# sourceMappingURL=chunk-EJQW2IYW.js.map