@12-apps/ui 6.90.0 → 6.92.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 (285) hide show
  1. package/components-catalog.md +3 -3
  2. package/dist/_internal/components/data-display/Alert/Alert.js +2 -2
  3. package/dist/_internal/components/data-display/Avatar/Avatar.js +2 -2
  4. package/dist/_internal/components/data-display/Badge/Badge.js +2 -2
  5. package/dist/_internal/components/data-display/CardKit/card-actions-context.js +3 -3
  6. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +4 -4
  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 +6 -6
  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/DataGrid/DataGrid.js +2 -2
  13. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +25 -25
  14. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +31 -31
  15. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +6 -6
  16. package/dist/_internal/components/data-display/DataViews/base-list-card-layout.js +7 -7
  17. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +5 -5
  18. package/dist/_internal/components/data-display/DataViews/base-list-card.js +8 -8
  19. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +1 -1
  20. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +7 -7
  21. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +9 -9
  22. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +22 -22
  23. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +9 -9
  24. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +7 -7
  25. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +8 -8
  26. package/dist/_internal/components/data-display/DataViews/data-views-range-bounds.js +4 -4
  27. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +6 -6
  28. package/dist/_internal/components/data-display/DataViews/data-views-scope-tabs.js +2 -2
  29. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +1 -1
  30. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +3 -3
  31. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +1 -1
  32. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +4 -4
  33. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +2 -2
  34. package/dist/_internal/components/data-display/DayRuler/DayRuler.en-US.js +1 -1
  35. package/dist/_internal/components/data-display/DayRuler/DayRuler.js +5 -5
  36. package/dist/_internal/components/data-display/DayRuler/DayRuler.labels.js +3 -3
  37. package/dist/_internal/components/data-display/DayRuler/DayRuler.parts.js +9 -4
  38. package/dist/_internal/components/data-display/DayRuler/DayRuler.pt-BR.js +1 -1
  39. package/dist/_internal/components/data-display/DayRuler/DayRuler.styles.js +9 -1
  40. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +10 -10
  41. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +9 -9
  42. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +12 -12
  43. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +7 -7
  44. package/dist/_internal/components/data-display/Lightbox/LightboxControls.js +2 -2
  45. package/dist/_internal/components/data-display/Lightbox/LightboxOverlay.js +3 -3
  46. package/dist/_internal/components/data-display/Lightbox/LightboxThumbnails.js +2 -2
  47. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +3 -3
  48. package/dist/_internal/components/data-display/MapPreview/MapMarkers.js +2 -2
  49. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +8 -8
  50. package/dist/_internal/components/data-display/RegionMap/RegionMap.hooks.js +2 -1
  51. package/dist/_internal/components/data-display/RegionMap/RegionMap.js +5 -4
  52. package/dist/_internal/components/data-display/RegionMap/RegionMap.view.js +19 -0
  53. package/dist/_internal/components/data-display/RegionMap/RegionMapDrawing.js +1 -1
  54. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.js +4 -3
  55. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.parts.js +3 -2
  56. package/dist/_internal/components/data-display/ScheduleGrid/schedule-header-host.styles.js +12 -0
  57. package/dist/_internal/components/data-display/ScheduleGrid/schedule-header-host.styles.js.map +1 -0
  58. package/dist/_internal/components/data-display/index.js +58 -51
  59. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +3 -3
  60. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.js +5 -5
  61. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.overview.js +4 -4
  62. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.parts.js +3 -3
  63. package/dist/_internal/components/feedback/index.js +6 -6
  64. package/dist/_internal/components/index.js +69 -62
  65. package/dist/_internal/components/navigation/SectionNav/SectionNav.bar.js +6 -6
  66. package/dist/_internal/components/navigation/SectionNav/SectionNav.js +9 -9
  67. package/dist/_internal/components/navigation/SectionNav/SectionNav.parts.js +3 -3
  68. package/dist/_internal/components/navigation/SectionNav/SectionNav.primary.js +4 -4
  69. package/dist/_internal/components/navigation/SectionNav/SectionNav.rail.js +5 -5
  70. package/dist/_internal/components/navigation/SectionNav/SectionNav.railCreate.js +4 -4
  71. package/dist/_internal/components/navigation/SectionNav/SectionNav.sheet.js +4 -4
  72. package/dist/_internal/components/navigation/index.js +9 -9
  73. package/dist/_internal/user-avatar/user-avatar.js +3 -3
  74. package/dist/charts.js +6 -6
  75. package/dist/{chunk-FI2CQOGC.js → chunk-3OHZAZEE.js} +5 -5
  76. package/dist/{chunk-CJ6XXM4X.js → chunk-3PQL2EN5.js} +6 -6
  77. package/dist/{chunk-7YJYIMWP.js → chunk-4QR7LM5F.js} +6 -6
  78. package/dist/{chunk-HI7JPDD6.js → chunk-5357QUVE.js} +2 -2
  79. package/dist/{chunk-WNNA6YYE.js → chunk-5I75WRXT.js} +10 -7
  80. package/dist/chunk-5I75WRXT.js.map +1 -0
  81. package/dist/chunk-5MXVKZKZ.js +30 -0
  82. package/dist/chunk-5MXVKZKZ.js.map +1 -0
  83. package/dist/{chunk-BP3ZKIPE.js → chunk-64UNVW6D.js} +4 -4
  84. package/dist/{chunk-SCXVTNLE.js → chunk-66VKX6JE.js} +2 -2
  85. package/dist/{chunk-N5PVD4J5.js → chunk-6DO672AG.js} +7 -7
  86. package/dist/{chunk-NK6O4NE4.js → chunk-AI7XWBNG.js} +3 -3
  87. package/dist/{chunk-SNWCT6JN.js → chunk-AMIUZRDQ.js} +3 -3
  88. package/dist/{chunk-BMTIBQQC.js → chunk-BBBHPK2Q.js} +6 -6
  89. package/dist/{chunk-A3DDEKLV.js → chunk-BOADHYTA.js} +2 -2
  90. package/dist/{chunk-KRBPWTXW.js → chunk-CKQOYPH3.js} +2 -2
  91. package/dist/{chunk-EUR2ORTN.js → chunk-CSJ7WNXU.js} +2 -2
  92. package/dist/{chunk-QADTI63U.js → chunk-CZVAVX5L.js} +4 -4
  93. package/dist/{chunk-O3OU3ED7.js → chunk-D7R6SRJB.js} +3 -3
  94. package/dist/{chunk-O3OU3ED7.js.map → chunk-D7R6SRJB.js.map} +1 -1
  95. package/dist/{chunk-DVX4HDNP.js → chunk-DBPFKGXX.js} +2 -2
  96. package/dist/{chunk-XCUHGPPZ.js → chunk-DTZOP4ZR.js} +2 -2
  97. package/dist/chunk-DY2I6LMX.js +1 -0
  98. package/dist/chunk-DY2I6LMX.js.map +1 -0
  99. package/dist/{chunk-BLZDSCIZ.js → chunk-DYHOBKPU.js} +6 -6
  100. package/dist/{chunk-QKOJ4637.js → chunk-E6K2UZGR.js} +3 -3
  101. package/dist/{chunk-MX2RF34M.js → chunk-E73C73UD.js} +15 -7
  102. package/dist/chunk-E73C73UD.js.map +1 -0
  103. package/dist/{chunk-HNW7IZPV.js → chunk-EZBBLLEU.js} +5 -5
  104. package/dist/{chunk-HNW7IZPV.js.map → chunk-EZBBLLEU.js.map} +1 -1
  105. package/dist/{chunk-K3IB7S7Q.js → chunk-F2ZUUEXC.js} +3 -2
  106. package/dist/{chunk-K3IB7S7Q.js.map → chunk-F2ZUUEXC.js.map} +1 -1
  107. package/dist/{chunk-2M3W6ACW.js → chunk-FAUNQ3FS.js} +3 -3
  108. package/dist/{chunk-VIMMEADQ.js → chunk-FORAVDJF.js} +9 -9
  109. package/dist/{chunk-PJNIJIE6.js → chunk-FQNDJITD.js} +2 -2
  110. package/dist/chunk-FWAY2SAI.js +72 -0
  111. package/dist/chunk-FWAY2SAI.js.map +1 -0
  112. package/dist/{chunk-COKPPU42.js → chunk-FWTVIRZZ.js} +13 -13
  113. package/dist/{chunk-GMRQPNG3.js → chunk-G2NVBCF7.js} +20 -25
  114. package/dist/chunk-G2NVBCF7.js.map +1 -0
  115. package/dist/{chunk-JHWEL4NX.js → chunk-HS662RLW.js} +2 -2
  116. package/dist/{chunk-BZBLPXV7.js → chunk-IWSTMVCA.js} +4 -4
  117. package/dist/{chunk-TZC6KIK2.js → chunk-JG733RMP.js} +5 -5
  118. package/dist/{chunk-K3PMMW23.js → chunk-K6VEN5VN.js} +4 -4
  119. package/dist/{chunk-UKUGSU3Y.js → chunk-L4V7FZJI.js} +2 -2
  120. package/dist/{chunk-24HHUCWB.js → chunk-LDCZPZPD.js} +2 -2
  121. package/dist/{chunk-ILJ3FXIC.js → chunk-MM3QESLI.js} +2 -2
  122. package/dist/{chunk-EEO7M5GU.js → chunk-MYTV353T.js} +4 -4
  123. package/dist/{chunk-3HZKUN5J.js → chunk-MZAYIG2I.js} +2 -2
  124. package/dist/{chunk-AKE6KVQG.js → chunk-NGXL4R54.js} +5 -1
  125. package/dist/chunk-NGXL4R54.js.map +1 -0
  126. package/dist/{chunk-RDCIST7P.js → chunk-OCT5VCLP.js} +2 -2
  127. package/dist/{chunk-G2PVUPE7.js → chunk-OJZLFFG4.js} +41 -3
  128. package/dist/chunk-OJZLFFG4.js.map +1 -0
  129. package/dist/{chunk-F7LBTMCA.js → chunk-P53ANKZV.js} +4 -4
  130. package/dist/{chunk-HMEGQKNQ.js → chunk-PCQ5JWLF.js} +15 -7
  131. package/dist/chunk-PCQ5JWLF.js.map +1 -0
  132. package/dist/{chunk-QVDEGBME.js → chunk-PEAUGQKU.js} +4 -4
  133. package/dist/{chunk-BV2LOTMC.js → chunk-Q3SILZTQ.js} +2 -2
  134. package/dist/{chunk-DSBC6O46.js → chunk-R4LCPPKA.js} +3 -3
  135. package/dist/{chunk-ZH6NYB6Y.js → chunk-S2VZUBM7.js} +7 -7
  136. package/dist/{chunk-JFD742C3.js → chunk-TMINUTQQ.js} +2 -2
  137. package/dist/{chunk-SK2CTB3O.js → chunk-U2SAW6DH.js} +5 -5
  138. package/dist/{chunk-ACM3HHZY.js → chunk-UDBOGSFO.js} +68 -2
  139. package/dist/chunk-UDBOGSFO.js.map +1 -0
  140. package/dist/{chunk-DAHSKQBV.js → chunk-UMOHHWXY.js} +2 -2
  141. package/dist/{chunk-QAEO52Z4.js → chunk-VHE7UEG5.js} +2 -2
  142. package/dist/{chunk-TIM4PXWN.js → chunk-VWRXSBT2.js} +2 -2
  143. package/dist/{chunk-KANCE4MS.js → chunk-W2KOP27S.js} +3 -3
  144. package/dist/{chunk-P772HCHI.js → chunk-W676GY42.js} +4 -4
  145. package/dist/{chunk-T2G4LDU5.js → chunk-WLLUARTC.js} +2 -2
  146. package/dist/{chunk-3OTGREQG.js → chunk-X3GD3TFI.js} +15 -15
  147. package/dist/{chunk-3X2MA47R.js → chunk-XNAI7QGU.js} +6 -6
  148. package/dist/{chunk-L6JAALMX.js → chunk-XRV4QFEQ.js} +3 -3
  149. package/dist/{chunk-WH3LUOCQ.js → chunk-YE7M7URT.js} +2 -2
  150. package/dist/{chunk-WWR6APJR.js → chunk-YVDNCV2D.js} +5 -5
  151. package/dist/{chunk-LOLYBFYY.js → chunk-ZCNR4DN5.js} +5 -5
  152. package/dist/{chunk-D3OXTS7Y.js → chunk-ZHCZOPKE.js} +3 -2
  153. package/dist/{chunk-D3OXTS7Y.js.map → chunk-ZHCZOPKE.js.map} +1 -1
  154. package/dist/data-display/Alert.js +2 -2
  155. package/dist/data-display/Avatar.js +2 -2
  156. package/dist/data-display/Badge.js +2 -2
  157. package/dist/data-display/CardKit.js +14 -14
  158. package/dist/data-display/Carousel.js +2 -2
  159. package/dist/data-display/Chart.js +6 -6
  160. package/dist/data-display/DataGrid.js +2 -2
  161. package/dist/data-display/DataViews.js +47 -47
  162. package/dist/data-display/DayRuler.js +9 -9
  163. package/dist/data-display/FleetMap.js +12 -12
  164. package/dist/data-display/Lightbox.js +7 -7
  165. package/dist/data-display/MapPreview.js +8 -8
  166. package/dist/data-display/RegionMap.js +12 -6
  167. package/dist/data-display/ScheduleGrid.js +4 -3
  168. package/dist/feedback/NotificationStatusNotice.js +3 -3
  169. package/dist/feedback/SequenceResolver.js +5 -5
  170. package/dist/navigation/SectionNav.js +9 -9
  171. package/dist/types/components/data-display/DayRuler/DayRuler.d.ts.map +1 -1
  172. package/dist/types/components/data-display/DayRuler/DayRuler.en-US.d.ts.map +1 -1
  173. package/dist/types/components/data-display/DayRuler/DayRuler.labels.d.ts +2 -0
  174. package/dist/types/components/data-display/DayRuler/DayRuler.labels.d.ts.map +1 -1
  175. package/dist/types/components/data-display/DayRuler/DayRuler.parts.d.ts +13 -1
  176. package/dist/types/components/data-display/DayRuler/DayRuler.parts.d.ts.map +1 -1
  177. package/dist/types/components/data-display/DayRuler/DayRuler.pt-BR.d.ts.map +1 -1
  178. package/dist/types/components/data-display/DayRuler/DayRuler.styles.d.ts +16 -0
  179. package/dist/types/components/data-display/DayRuler/DayRuler.styles.d.ts.map +1 -1
  180. package/dist/types/components/data-display/DayRuler/DayRuler.types.d.ts +44 -1
  181. package/dist/types/components/data-display/DayRuler/DayRuler.types.d.ts.map +1 -1
  182. package/dist/types/components/data-display/DayRuler/index.d.ts +1 -1
  183. package/dist/types/components/data-display/DayRuler/index.d.ts.map +1 -1
  184. package/dist/types/components/data-display/RegionMap/RegionMap.d.ts +4 -1
  185. package/dist/types/components/data-display/RegionMap/RegionMap.d.ts.map +1 -1
  186. package/dist/types/components/data-display/RegionMap/RegionMap.hooks.d.ts +4 -2
  187. package/dist/types/components/data-display/RegionMap/RegionMap.hooks.d.ts.map +1 -1
  188. package/dist/types/components/data-display/RegionMap/RegionMap.types.d.ts +40 -0
  189. package/dist/types/components/data-display/RegionMap/RegionMap.types.d.ts.map +1 -1
  190. package/dist/types/components/data-display/RegionMap/RegionMap.view.d.ts +36 -0
  191. package/dist/types/components/data-display/RegionMap/RegionMap.view.d.ts.map +1 -0
  192. package/dist/types/components/data-display/RegionMap/RegionMapDrawing.d.ts +4 -1
  193. package/dist/types/components/data-display/RegionMap/RegionMapDrawing.d.ts.map +1 -1
  194. package/dist/types/components/data-display/RegionMap/index.d.ts +3 -2
  195. package/dist/types/components/data-display/RegionMap/index.d.ts.map +1 -1
  196. package/dist/types/components/data-display/ScheduleGrid/ScheduleGrid.parts.d.ts +3 -1
  197. package/dist/types/components/data-display/ScheduleGrid/ScheduleGrid.parts.d.ts.map +1 -1
  198. package/dist/types/components/data-display/ScheduleGrid/ScheduleGrid.types.d.ts +12 -0
  199. package/dist/types/components/data-display/ScheduleGrid/ScheduleGrid.types.d.ts.map +1 -1
  200. package/dist/types/components/data-display/ScheduleGrid/schedule-header-host.styles.d.ts +16 -0
  201. package/dist/types/components/data-display/ScheduleGrid/schedule-header-host.styles.d.ts.map +1 -0
  202. package/dist/user-avatar.js +3 -3
  203. package/package.json +1 -1
  204. package/src/components/data-display/DayRuler/DayRuler.en-US.ts +1 -0
  205. package/src/components/data-display/DayRuler/DayRuler.labels.ts +2 -0
  206. package/src/components/data-display/DayRuler/DayRuler.md +3 -2
  207. package/src/components/data-display/DayRuler/DayRuler.parts.tsx +120 -1
  208. package/src/components/data-display/DayRuler/DayRuler.pt-BR.ts +1 -0
  209. package/src/components/data-display/DayRuler/DayRuler.styles.ts +50 -1
  210. package/src/components/data-display/DayRuler/DayRuler.tsx +10 -1
  211. package/src/components/data-display/DayRuler/DayRuler.types.ts +30 -1
  212. package/src/components/data-display/DayRuler/index.ts +2 -0
  213. package/src/components/data-display/RegionMap/RegionMap.hooks.ts +24 -33
  214. package/src/components/data-display/RegionMap/RegionMap.md +27 -0
  215. package/src/components/data-display/RegionMap/RegionMap.tsx +7 -1
  216. package/src/components/data-display/RegionMap/RegionMap.types.ts +41 -0
  217. package/src/components/data-display/RegionMap/RegionMap.view.ts +105 -0
  218. package/src/components/data-display/RegionMap/RegionMapDrawing.tsx +11 -0
  219. package/src/components/data-display/RegionMap/index.ts +5 -1
  220. package/src/components/data-display/RegionMap/tests.md +10 -2
  221. package/src/components/data-display/ScheduleGrid/ScheduleGrid.md +3 -2
  222. package/src/components/data-display/ScheduleGrid/ScheduleGrid.parts.tsx +18 -3
  223. package/src/components/data-display/ScheduleGrid/ScheduleGrid.tsx +1 -1
  224. package/src/components/data-display/ScheduleGrid/ScheduleGrid.types.ts +12 -0
  225. package/src/components/data-display/ScheduleGrid/schedule-header-host.styles.ts +35 -0
  226. package/dist/chunk-ACFKPE2T.js +0 -1
  227. package/dist/chunk-ACM3HHZY.js.map +0 -1
  228. package/dist/chunk-AKE6KVQG.js.map +0 -1
  229. package/dist/chunk-G2PVUPE7.js.map +0 -1
  230. package/dist/chunk-GMRQPNG3.js.map +0 -1
  231. package/dist/chunk-HMEGQKNQ.js.map +0 -1
  232. package/dist/chunk-MX2RF34M.js.map +0 -1
  233. package/dist/chunk-WNNA6YYE.js.map +0 -1
  234. /package/dist/{chunk-ACFKPE2T.js.map → _internal/components/data-display/RegionMap/RegionMap.view.js.map} +0 -0
  235. /package/dist/{chunk-FI2CQOGC.js.map → chunk-3OHZAZEE.js.map} +0 -0
  236. /package/dist/{chunk-CJ6XXM4X.js.map → chunk-3PQL2EN5.js.map} +0 -0
  237. /package/dist/{chunk-7YJYIMWP.js.map → chunk-4QR7LM5F.js.map} +0 -0
  238. /package/dist/{chunk-HI7JPDD6.js.map → chunk-5357QUVE.js.map} +0 -0
  239. /package/dist/{chunk-BP3ZKIPE.js.map → chunk-64UNVW6D.js.map} +0 -0
  240. /package/dist/{chunk-SCXVTNLE.js.map → chunk-66VKX6JE.js.map} +0 -0
  241. /package/dist/{chunk-N5PVD4J5.js.map → chunk-6DO672AG.js.map} +0 -0
  242. /package/dist/{chunk-NK6O4NE4.js.map → chunk-AI7XWBNG.js.map} +0 -0
  243. /package/dist/{chunk-SNWCT6JN.js.map → chunk-AMIUZRDQ.js.map} +0 -0
  244. /package/dist/{chunk-BMTIBQQC.js.map → chunk-BBBHPK2Q.js.map} +0 -0
  245. /package/dist/{chunk-A3DDEKLV.js.map → chunk-BOADHYTA.js.map} +0 -0
  246. /package/dist/{chunk-KRBPWTXW.js.map → chunk-CKQOYPH3.js.map} +0 -0
  247. /package/dist/{chunk-EUR2ORTN.js.map → chunk-CSJ7WNXU.js.map} +0 -0
  248. /package/dist/{chunk-QADTI63U.js.map → chunk-CZVAVX5L.js.map} +0 -0
  249. /package/dist/{chunk-DVX4HDNP.js.map → chunk-DBPFKGXX.js.map} +0 -0
  250. /package/dist/{chunk-XCUHGPPZ.js.map → chunk-DTZOP4ZR.js.map} +0 -0
  251. /package/dist/{chunk-BLZDSCIZ.js.map → chunk-DYHOBKPU.js.map} +0 -0
  252. /package/dist/{chunk-QKOJ4637.js.map → chunk-E6K2UZGR.js.map} +0 -0
  253. /package/dist/{chunk-2M3W6ACW.js.map → chunk-FAUNQ3FS.js.map} +0 -0
  254. /package/dist/{chunk-VIMMEADQ.js.map → chunk-FORAVDJF.js.map} +0 -0
  255. /package/dist/{chunk-PJNIJIE6.js.map → chunk-FQNDJITD.js.map} +0 -0
  256. /package/dist/{chunk-COKPPU42.js.map → chunk-FWTVIRZZ.js.map} +0 -0
  257. /package/dist/{chunk-JHWEL4NX.js.map → chunk-HS662RLW.js.map} +0 -0
  258. /package/dist/{chunk-BZBLPXV7.js.map → chunk-IWSTMVCA.js.map} +0 -0
  259. /package/dist/{chunk-TZC6KIK2.js.map → chunk-JG733RMP.js.map} +0 -0
  260. /package/dist/{chunk-K3PMMW23.js.map → chunk-K6VEN5VN.js.map} +0 -0
  261. /package/dist/{chunk-UKUGSU3Y.js.map → chunk-L4V7FZJI.js.map} +0 -0
  262. /package/dist/{chunk-24HHUCWB.js.map → chunk-LDCZPZPD.js.map} +0 -0
  263. /package/dist/{chunk-ILJ3FXIC.js.map → chunk-MM3QESLI.js.map} +0 -0
  264. /package/dist/{chunk-EEO7M5GU.js.map → chunk-MYTV353T.js.map} +0 -0
  265. /package/dist/{chunk-3HZKUN5J.js.map → chunk-MZAYIG2I.js.map} +0 -0
  266. /package/dist/{chunk-RDCIST7P.js.map → chunk-OCT5VCLP.js.map} +0 -0
  267. /package/dist/{chunk-F7LBTMCA.js.map → chunk-P53ANKZV.js.map} +0 -0
  268. /package/dist/{chunk-QVDEGBME.js.map → chunk-PEAUGQKU.js.map} +0 -0
  269. /package/dist/{chunk-BV2LOTMC.js.map → chunk-Q3SILZTQ.js.map} +0 -0
  270. /package/dist/{chunk-DSBC6O46.js.map → chunk-R4LCPPKA.js.map} +0 -0
  271. /package/dist/{chunk-ZH6NYB6Y.js.map → chunk-S2VZUBM7.js.map} +0 -0
  272. /package/dist/{chunk-JFD742C3.js.map → chunk-TMINUTQQ.js.map} +0 -0
  273. /package/dist/{chunk-SK2CTB3O.js.map → chunk-U2SAW6DH.js.map} +0 -0
  274. /package/dist/{chunk-DAHSKQBV.js.map → chunk-UMOHHWXY.js.map} +0 -0
  275. /package/dist/{chunk-QAEO52Z4.js.map → chunk-VHE7UEG5.js.map} +0 -0
  276. /package/dist/{chunk-TIM4PXWN.js.map → chunk-VWRXSBT2.js.map} +0 -0
  277. /package/dist/{chunk-KANCE4MS.js.map → chunk-W2KOP27S.js.map} +0 -0
  278. /package/dist/{chunk-P772HCHI.js.map → chunk-W676GY42.js.map} +0 -0
  279. /package/dist/{chunk-T2G4LDU5.js.map → chunk-WLLUARTC.js.map} +0 -0
  280. /package/dist/{chunk-3OTGREQG.js.map → chunk-X3GD3TFI.js.map} +0 -0
  281. /package/dist/{chunk-3X2MA47R.js.map → chunk-XNAI7QGU.js.map} +0 -0
  282. /package/dist/{chunk-L6JAALMX.js.map → chunk-XRV4QFEQ.js.map} +0 -0
  283. /package/dist/{chunk-WH3LUOCQ.js.map → chunk-YE7M7URT.js.map} +0 -0
  284. /package/dist/{chunk-WWR6APJR.js.map → chunk-YVDNCV2D.js.map} +0 -0
  285. /package/dist/{chunk-LOLYBFYY.js.map → chunk-ZCNR4DN5.js.map} +0 -0
@@ -5,10 +5,11 @@ var EN_US_DAY_RULER_LABELS = {
5
5
  resized: (block, range) => `${block} now ${range}`,
6
6
  refused: "It cannot go further",
7
7
  notMovable: "This shift cannot be changed here",
8
- loading: "Loading the day"
8
+ loading: "Loading the day",
9
+ footerMarked: "short of people"
9
10
  };
10
11
 
11
12
  export {
12
13
  EN_US_DAY_RULER_LABELS
13
14
  };
14
- //# sourceMappingURL=chunk-K3IB7S7Q.js.map
15
+ //# sourceMappingURL=chunk-F2ZUUEXC.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/data-display/DayRuler/DayRuler.en-US.ts"],"sourcesContent":["/** `DayRuler`'s en-US words, and the component's own fallback when `labels` is not given. */\nimport type { DayRulerLabels } from './DayRuler.labels';\n\nexport const EN_US_DAY_RULER_LABELS: DayRulerLabels = {\n createTrack: (row) => `Schedule ${row}`,\n moved: (block, range) => `${block} now ${range}`,\n resized: (block, range) => `${block} now ${range}`,\n refused: \"It cannot go further\",\n notMovable: \"This shift cannot be changed here\",\n loading: \"Loading the day\",\n};\n"],"mappings":";AAGO,IAAM,yBAAyC;AAAA,EACpD,aAAa,CAAC,QAAQ,YAAY,GAAG;AAAA,EACrC,OAAO,CAAC,OAAO,UAAU,GAAG,KAAK,QAAQ,KAAK;AAAA,EAC9C,SAAS,CAAC,OAAO,UAAU,GAAG,KAAK,QAAQ,KAAK;AAAA,EAChD,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,SAAS;AACX;","names":[]}
1
+ {"version":3,"sources":["../src/components/data-display/DayRuler/DayRuler.en-US.ts"],"sourcesContent":["/** `DayRuler`'s en-US words, and the component's own fallback when `labels` is not given. */\nimport type { DayRulerLabels } from './DayRuler.labels';\n\nexport const EN_US_DAY_RULER_LABELS: DayRulerLabels = {\n createTrack: (row) => `Schedule ${row}`,\n moved: (block, range) => `${block} now ${range}`,\n resized: (block, range) => `${block} now ${range}`,\n refused: \"It cannot go further\",\n notMovable: \"This shift cannot be changed here\",\n loading: \"Loading the day\",\n footerMarked: \"short of people\",\n};\n"],"mappings":";AAGO,IAAM,yBAAyC;AAAA,EACpD,aAAa,CAAC,QAAQ,YAAY,GAAG;AAAA,EACrC,OAAO,CAAC,OAAO,UAAU,GAAG,KAAK,QAAQ,KAAK;AAAA,EAC9C,SAAS,CAAC,OAAO,UAAU,GAAG,KAAK,QAAQ,KAAK;AAAA,EAChD,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,cAAc;AAChB;","names":[]}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  SectionNavRail
3
- } from "./chunk-SNWCT6JN.js";
3
+ } from "./chunk-AMIUZRDQ.js";
4
4
  import {
5
5
  SectionNavBar
6
- } from "./chunk-F7LBTMCA.js";
6
+ } from "./chunk-P53ANKZV.js";
7
7
 
8
8
  // src/components/navigation/SectionNav/SectionNav.tsx
9
9
  import { jsx } from "react/jsx-runtime";
@@ -55,4 +55,4 @@ function SectionNav({
55
55
  export {
56
56
  SectionNav
57
57
  };
58
- //# sourceMappingURL=chunk-2M3W6ACW.js.map
58
+ //# sourceMappingURL=chunk-FAUNQ3FS.js.map
@@ -1,21 +1,21 @@
1
+ import {
2
+ RangePresets
3
+ } from "./chunk-LZNUBQ5I.js";
1
4
  import {
2
5
  NumberBoundInput
3
6
  } from "./chunk-2FKWKLSC.js";
4
7
  import {
5
- DayRangeCalendar
6
- } from "./chunk-MICX23P4.js";
7
- import {
8
- RangePresets
9
- } from "./chunk-LZNUBQ5I.js";
8
+ useOutsideResetKey
9
+ } from "./chunk-YOPMXGHY.js";
10
10
  import {
11
11
  presetsFor
12
12
  } from "./chunk-CBOB5AV6.js";
13
+ import {
14
+ DayRangeCalendar
15
+ } from "./chunk-MICX23P4.js";
13
16
  import {
14
17
  isRangeInverted
15
18
  } from "./chunk-GCZJH4XL.js";
16
- import {
17
- useOutsideResetKey
18
- } from "./chunk-YOPMXGHY.js";
19
19
  import {
20
20
  useDataViewsCopy
21
21
  } from "./chunk-KHG57NAE.js";
@@ -161,4 +161,4 @@ function RangeBounds({
161
161
  export {
162
162
  RangeBounds
163
163
  };
164
- //# sourceMappingURL=chunk-VIMMEADQ.js.map
164
+ //# sourceMappingURL=chunk-FORAVDJF.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Alert
3
- } from "./chunk-QVDEGBME.js";
3
+ } from "./chunk-PEAUGQKU.js";
4
4
 
5
5
  // src/components/data-display/CardKit/card-actions-context.tsx
6
6
  import { createContext, useCallback, useContext, useState } from "react";
@@ -58,4 +58,4 @@ export {
58
58
  CardActionsProvider,
59
59
  useCardActions
60
60
  };
61
- //# sourceMappingURL=chunk-PJNIJIE6.js.map
61
+ //# sourceMappingURL=chunk-FQNDJITD.js.map
@@ -0,0 +1,72 @@
1
+ import {
2
+ extent,
3
+ planeBounds,
4
+ projectRings,
5
+ projectionAt,
6
+ viewBoxFor
7
+ } from "./chunk-COOSJKZL.js";
8
+
9
+ // src/components/data-display/RegionMap/RegionMap.view.ts
10
+ function unionBox(boxes) {
11
+ const real = boxes.filter((box) => box !== null);
12
+ const xs = extent(real.flatMap((b) => [b.minX, b.minX + b.spanX]));
13
+ const ys = extent(real.flatMap((b) => [b.minY, b.minY + b.spanY]));
14
+ if (xs === null || ys === null) return null;
15
+ return { minX: xs.min, minY: ys.min, spanX: xs.max - xs.min, spanY: ys.max - ys.min };
16
+ }
17
+ function boundsOfRings(rings) {
18
+ const points = rings.flat();
19
+ const lats = extent(points.map(([latitude]) => latitude));
20
+ const lngs = extent(points.map(([, longitude]) => longitude));
21
+ if (lats === null || lngs === null) return null;
22
+ return { south: lats.min, west: lngs.min, north: lats.max, east: lngs.max };
23
+ }
24
+ function reachBox(reach, projection) {
25
+ if ("radiusMetres" in reach) {
26
+ const r = reach.radiusMetres;
27
+ return Number.isFinite(r) && r > 0 ? { minX: -r, minY: -r, spanX: r * 2, spanY: r * 2 } : null;
28
+ }
29
+ const { south, west, north, east } = reach.bounds;
30
+ const a = projection.project([north, west]);
31
+ const b = projection.project([south, east]);
32
+ return unionBox([{ minX: a.x, minY: a.y, spanX: 0, spanY: 0 }, { minX: b.x, minY: b.y, spanX: 0, spanY: 0 }]);
33
+ }
34
+ function farthestEdge(box) {
35
+ return Math.max(Math.abs(box.minX), Math.abs(box.minX + box.spanX), Math.abs(box.minY), Math.abs(box.minY + box.spanY));
36
+ }
37
+ function viewWithin(outermostMetres, reach, areaBoxes) {
38
+ if (outermostMetres !== null) {
39
+ return viewBoxFor(Math.max(outermostMetres, reach === null ? 0 : farthestEdge(reach)), null);
40
+ }
41
+ return viewBoxFor(null, unionBox([...areaBoxes(), reach]));
42
+ }
43
+ function centreOf(regions) {
44
+ const bounds = boundsOfRings(regions.flatMap((r) => r.rings));
45
+ if (bounds === null) return null;
46
+ return { latitude: (bounds.south + bounds.north) / 2, longitude: (bounds.west + bounds.east) / 2 };
47
+ }
48
+ function regionMapView({
49
+ regions,
50
+ center,
51
+ circles = [],
52
+ reach
53
+ }) {
54
+ const origin = center ?? centreOf(regions);
55
+ if (origin === null) return null;
56
+ const projection = projectionAt(origin);
57
+ return viewWithin(
58
+ extent(circles.map((c) => c.radiusMetres))?.max ?? null,
59
+ reach === void 0 ? null : reachBox(reach, projection),
60
+ () => regions.map((r) => planeBounds(projectRings(r.rings, projection)))
61
+ );
62
+ }
63
+
64
+ export {
65
+ unionBox,
66
+ boundsOfRings,
67
+ reachBox,
68
+ viewWithin,
69
+ centreOf,
70
+ regionMapView
71
+ };
72
+ //# sourceMappingURL=chunk-FWAY2SAI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/RegionMap/RegionMap.view.ts"],"sourcesContent":["import {\n extent,\n planeBounds,\n projectionAt,\n projectRings,\n viewBoxFor,\n type PlaneBox,\n type Projection,\n} from './RegionMap.helpers';\nimport type {\n RegionMapBounds,\n RegionMapCircle,\n RegionMapReach,\n RegionMapRegion,\n RegionMapRing,\n} from './RegionMap.types';\n\n// What `RegionMap` shows: its view, given the circles, the areas and a host's\n// `reach` — pure, so a host laying HTML over the drawing computes the same one.\n\n/** The smallest box holding every given box, or null with none. */\nexport function unionBox(boxes: readonly (PlaneBox | null)[]): PlaneBox | null {\n const real = boxes.filter((box): box is PlaneBox => box !== null);\n const xs = extent(real.flatMap((b) => [b.minX, b.minX + b.spanX]));\n const ys = extent(real.flatMap((b) => [b.minY, b.minY + b.spanY]));\n if (xs === null || ys === null) return null;\n return { minX: xs.min, minY: ys.min, spanX: xs.max - xs.min, spanY: ys.max - ys.min };\n}\n\n/** The latitude/longitude box around some outlines — a `reach` no radius describes. */\nexport function boundsOfRings(rings: readonly RegionMapRing[]): RegionMapBounds | null {\n const points = rings.flat();\n const lats = extent(points.map(([latitude]) => latitude));\n const lngs = extent(points.map(([, longitude]) => longitude));\n if (lats === null || lngs === null) return null;\n return { south: lats.min, west: lngs.min, north: lats.max, east: lngs.max };\n}\n\n/** A `reach` as a box in projected metres (a radius is a square around the centre). */\nexport function reachBox(reach: RegionMapReach, projection: Projection): PlaneBox | null {\n if ('radiusMetres' in reach) {\n const r = reach.radiusMetres;\n return Number.isFinite(r) && r > 0 ? { minX: -r, minY: -r, spanX: r * 2, spanY: r * 2 } : null;\n }\n const { south, west, north, east } = reach.bounds;\n const a = projection.project([north, west]);\n const b = projection.project([south, east]);\n return unionBox([{ minX: a.x, minY: a.y, spanX: 0, spanY: 0 }, { minX: b.x, minY: b.y, spanX: 0, spanY: 0 }]);\n}\n\n/** How far the box reaches from the centre along either axis — the half-side of a centred square holding it. */\nfunction farthestEdge(box: PlaneBox): number {\n return Math.max(Math.abs(box.minX), Math.abs(box.minX + box.spanX), Math.abs(box.minY), Math.abs(box.minY + box.spanY));\n}\n\n/**\n * The view, given what it must fit: the outermost circle and the `reach` with\n * the margin on top, still centred on the centre; else every area and the\n * reach together. Without a reach it is exactly `viewBoxFor`'s.\n */\nexport function viewWithin(\n outermostMetres: number | null,\n reach: PlaneBox | null,\n areaBoxes: () => readonly (PlaneBox | null)[],\n): PlaneBox | null {\n if (outermostMetres !== null) {\n return viewBoxFor(Math.max(outermostMetres, reach === null ? 0 : farthestEdge(reach)), null);\n }\n return viewBoxFor(null, unionBox([...areaBoxes(), reach]));\n}\n\n/** The middle of every area, for a map with no centre of its own. */\nexport function centreOf(regions: readonly RegionMapRegion[]): { latitude: number; longitude: number } | null {\n const bounds = boundsOfRings(regions.flatMap((r) => r.rings));\n if (bounds === null) return null;\n return { latitude: (bounds.south + bounds.north) / 2, longitude: (bounds.west + bounds.east) / 2 };\n}\n\n/**\n * The square `RegionMap` shows for these props, in projected metres around\n * `center` (or the areas' middle) — for a host that lays its own HTML over the\n * drawing at the same scale: a point `p` sits at\n * `(p.x - view.minX) / view.spanX` across. With circles the view is centred,\n * so its half-side is `view.spanX / 2`.\n */\nexport function regionMapView({\n regions,\n center,\n circles = [],\n reach,\n}: {\n regions: readonly RegionMapRegion[];\n center: { latitude: number; longitude: number } | null;\n circles?: readonly RegionMapCircle[];\n reach?: RegionMapReach;\n}): PlaneBox | null {\n const origin = center ?? centreOf(regions);\n if (origin === null) return null;\n const projection = projectionAt(origin);\n return viewWithin(\n extent(circles.map((c) => c.radiusMetres))?.max ?? null,\n reach === undefined ? null : reachBox(reach, projection),\n () => regions.map((r) => planeBounds(projectRings(r.rings, projection))),\n );\n}\n"],"mappings":"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","names":[]}
@@ -1,27 +1,27 @@
1
+ import {
2
+ resolveLightboxProps
3
+ } from "./chunk-UOS7DEQZ.js";
4
+ import {
5
+ LightboxThumbnails
6
+ } from "./chunk-64UNVW6D.js";
7
+ import {
8
+ LightboxStage
9
+ } from "./chunk-SYGM4SHY.js";
1
10
  import {
2
11
  LightboxOverlay
3
- } from "./chunk-T2G4LDU5.js";
12
+ } from "./chunk-WLLUARTC.js";
4
13
  import {
5
14
  LightboxCurrentMedia
6
15
  } from "./chunk-RBGUS7WO.js";
7
- import {
8
- resolveLightboxProps
9
- } from "./chunk-UOS7DEQZ.js";
10
16
  import {
11
17
  useLightbox
12
18
  } from "./chunk-HZBDTPPV.js";
13
19
  import {
14
- LightboxThumbnails
15
- } from "./chunk-BP3ZKIPE.js";
20
+ makeTestId
21
+ } from "./chunk-VQU3CBAL.js";
16
22
  import {
17
23
  LightboxCopyProvider
18
24
  } from "./chunk-TEQYTEM2.js";
19
- import {
20
- LightboxStage
21
- } from "./chunk-SYGM4SHY.js";
22
- import {
23
- makeTestId
24
- } from "./chunk-VQU3CBAL.js";
25
25
  import {
26
26
  scrim
27
27
  } from "./chunk-XJAD6E3V.js";
@@ -148,4 +148,4 @@ export {
148
148
  Lightbox,
149
149
  Lightbox_default
150
150
  };
151
- //# sourceMappingURL=chunk-COKPPU42.js.map
151
+ //# sourceMappingURL=chunk-FWTVIRZZ.js.map
@@ -1,22 +1,19 @@
1
+ import {
2
+ centreOf,
3
+ reachBox,
4
+ viewWithin
5
+ } from "./chunk-FWAY2SAI.js";
1
6
  import {
2
7
  drawOrder,
3
8
  extent,
4
9
  geometryCache,
5
10
  hitRegion,
6
- projectionAt,
7
- viewBoxFor
11
+ projectionAt
8
12
  } from "./chunk-COOSJKZL.js";
9
13
 
10
14
  // src/components/data-display/RegionMap/RegionMap.hooks.ts
11
15
  import React from "react";
12
16
  var TOLERANCE_SHARE = 1 / 45;
13
- function centreOf(regions) {
14
- const points = regions.flatMap((r) => r.rings.flat());
15
- const lats = extent(points.map(([lat]) => lat));
16
- const lngs = extent(points.map(([, lng]) => lng));
17
- if (lats === null || lngs === null) return null;
18
- return { latitude: (lats.min + lats.max) / 2, longitude: (lngs.min + lngs.max) / 2 };
19
- }
20
17
  function svgPoint(event) {
21
18
  const svg = event.currentTarget;
22
19
  const matrix = typeof svg.getScreenCTM === "function" ? svg.getScreenCTM() : null;
@@ -24,14 +21,6 @@ function svgPoint(event) {
24
21
  const point = new DOMPoint(event.clientX, event.clientY).matrixTransform(matrix.inverse());
25
22
  return { x: point.x, y: point.y };
26
23
  }
27
- function viewOf(outermostMetres, drawable) {
28
- if (outermostMetres !== null) return viewBoxFor(outermostMetres, null);
29
- const boxes = drawable().filter((box) => box !== null);
30
- const xs = extent(boxes.flatMap((b) => [b.minX, b.minX + b.spanX]));
31
- const ys = extent(boxes.flatMap((b) => [b.minY, b.minY + b.spanY]));
32
- if (xs === null || ys === null) return null;
33
- return viewBoxFor(null, { minX: xs.min, minY: ys.min, spanX: xs.max - xs.min, spanY: ys.max - ys.min });
34
- }
35
24
  function tappedRegion(event, pointer, drawn, view) {
36
25
  const targetId = event.target.getAttribute("data-region-id");
37
26
  if (pointer === "mouse" && targetId) return targetId;
@@ -46,21 +35,27 @@ function tappedRegion(event, pointer, drawn, view) {
46
35
  function useGeometry(origin) {
47
36
  const lat = origin?.latitude ?? null;
48
37
  const lng = origin?.longitude ?? null;
49
- return React.useMemo(
50
- () => lat === null || lng === null ? null : geometryCache(projectionAt({ latitude: lat, longitude: lng })),
51
- [lat, lng]
52
- );
38
+ return React.useMemo(() => {
39
+ if (lat === null || lng === null) return { projection: null, geometryOf: null };
40
+ const projection = projectionAt({ latitude: lat, longitude: lng });
41
+ return { projection, geometryOf: geometryCache(projection) };
42
+ }, [lat, lng]);
53
43
  }
54
44
  function useRegionMap({
55
45
  regions,
56
46
  center,
57
47
  circles = [],
48
+ reach,
58
49
  onToggle
59
50
  }) {
60
- const geometryOf = useGeometry(center ?? centreOf(regions));
51
+ const { projection, geometryOf } = useGeometry(center ?? centreOf(regions));
61
52
  const radii = circles.map((c) => c.radiusMetres);
62
53
  const outermostMetres = extent(radii)?.max ?? null;
63
- const view = geometryOf === null ? null : viewOf(outermostMetres, () => regions.map((r) => geometryOf(r.rings).bounds));
54
+ const view = projection === null || geometryOf === null ? null : viewWithin(
55
+ outermostMetres,
56
+ reach === void 0 ? null : reachBox(reach, projection),
57
+ () => regions.map((r) => geometryOf(r.rings).bounds)
58
+ );
64
59
  const drawn = geometryOf && view ? drawOrder(regions, geometryOf, view) : [];
65
60
  const pointerType = React.useRef("mouse");
66
61
  const onPointerDown = (event) => {
@@ -71,10 +66,10 @@ function useRegionMap({
71
66
  const hit = tappedRegion(event, pointerType.current, drawn, view);
72
67
  if (hit) onToggle(hit);
73
68
  };
74
- return { view, drawn, radii, outermostMetres, onPointerDown, onClick };
69
+ return { view, projection, drawn, radii, outermostMetres, onPointerDown, onClick };
75
70
  }
76
71
 
77
72
  export {
78
73
  useRegionMap
79
74
  };
80
- //# sourceMappingURL=chunk-GMRQPNG3.js.map
75
+ //# sourceMappingURL=chunk-G2NVBCF7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/RegionMap/RegionMap.hooks.ts"],"sourcesContent":["import React from 'react';\n\nimport {\n drawOrder,\n extent,\n geometryCache,\n hitRegion,\n projectionAt,\n type DrawnRegion,\n type PlaneBox,\n type Projection,\n} from './RegionMap.helpers';\nimport type { RegionMapProps } from './RegionMap.types';\nimport { centreOf, reachBox, viewWithin } from './RegionMap.view';\n\n/** What the drawing needs, derived from the props. */\nexport interface RegionMapModel {\n /** The square shown, or null when there is nothing to centre on. */\n view: PlaneBox | null;\n /** The projection drawn with, or null when there is nothing to centre on. */\n projection: Projection | null;\n drawn: DrawnRegion[];\n /** Radii drawn, in metres; empty without circles. */\n radii: number[];\n outermostMetres: number | null;\n /** The tap handlers for the drawing's `<svg>`. */\n onPointerDown: (event: React.PointerEvent<SVGSVGElement>) => void;\n onClick: (event: React.MouseEvent<SVGSVGElement>) => void;\n}\n\n/** A tap reaches an area this close: a share of the view (~8 px on a phone). */\nconst TOLERANCE_SHARE = 1 / 45;\n\n/** The click, in the drawing's own coordinates — or null where it cannot be read. */\nfunction svgPoint(event: React.MouseEvent<SVGSVGElement>): { x: number; y: number } | null {\n const svg = event.currentTarget;\n const matrix = typeof svg.getScreenCTM === 'function' ? svg.getScreenCTM() : null;\n if (!matrix || typeof DOMPoint === 'undefined') return null;\n const point = new DOMPoint(event.clientX, event.clientY).matrixTransform(matrix.inverse());\n return { x: point.x, y: point.y };\n}\n\n/** Which area a click or tap means — see `useRegionMap`. */\nfunction tappedRegion(\n event: React.MouseEvent<SVGSVGElement>,\n pointer: string,\n drawn: readonly DrawnRegion[],\n view: PlaneBox,\n): string | null {\n const targetId = (event.target as Element).getAttribute('data-region-id');\n if (pointer === 'mouse' && targetId) return targetId;\n const point = svgPoint(event);\n if (point === null) return targetId;\n return hitRegion(\n drawn.map((d) => ({ id: d.id, geometry: d.geometry })),\n point,\n view.spanX * TOLERANCE_SHARE,\n );\n}\n\n/** The projection and geometry cache for a centre, or nulls without one. */\nfunction useGeometry(origin: { latitude: number; longitude: number } | null): {\n projection: Projection | null;\n geometryOf: ReturnType<typeof geometryCache> | null;\n} {\n const lat = origin?.latitude ?? null;\n const lng = origin?.longitude ?? null;\n return React.useMemo(() => {\n if (lat === null || lng === null) return { projection: null, geometryOf: null };\n const projection = projectionAt({ latitude: lat, longitude: lng });\n return { projection, geometryOf: geometryCache(projection) };\n }, [lat, lng]);\n}\n\n/**\n * The projection, the view, the areas in draw order and the tap handlers.\n *\n * Geometry is projected once per `rings` identity and centre\n * (`geometryCache`), so a toggle — which changes `excluded`, not `rings` —\n * re-projects nothing.\n *\n * A MOUSE click on a path is that path's area: a pointer is precise. Any\n * other tap — a finger, a pen — goes to `hitRegion`: the smallest area within\n * a few pixels, so a sliver beside a big area is reachable from the map.\n */\nexport function useRegionMap({\n regions,\n center,\n circles = [],\n reach,\n onToggle,\n}: Pick<RegionMapProps, 'regions' | 'center' | 'circles' | 'reach' | 'onToggle'>): RegionMapModel {\n const { projection, geometryOf } = useGeometry(center ?? centreOf(regions));\n const radii = circles.map((c) => c.radiusMetres);\n const outermostMetres = extent(radii)?.max ?? null;\n const view =\n projection === null || geometryOf === null\n ? null\n : viewWithin(outermostMetres, reach === undefined ? null : reachBox(reach, projection), () =>\n regions.map((r) => geometryOf(r.rings).bounds),\n );\n const drawn = geometryOf && view ? drawOrder(regions, geometryOf, view) : [];\n const pointerType = React.useRef<string>('mouse');\n\n const onPointerDown = (event: React.PointerEvent<SVGSVGElement>): void => {\n pointerType.current = event.pointerType || 'mouse';\n };\n\n const onClick = (event: React.MouseEvent<SVGSVGElement>): void => {\n if (!onToggle || view === null) return;\n const hit = tappedRegion(event, pointerType.current, drawn, view);\n if (hit) onToggle(hit);\n };\n\n return { view, projection, drawn, radii, outermostMetres, onPointerDown, onClick };\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,OAAO,WAAW;AA+BlB,IAAM,kBAAkB,IAAI;AAG5B,SAAS,SAAS,OAAyE;AACzF,QAAM,MAAM,MAAM;AAClB,QAAM,SAAS,OAAO,IAAI,iBAAiB,aAAa,IAAI,aAAa,IAAI;AAC7E,MAAI,CAAC,UAAU,OAAO,aAAa,YAAa,QAAO;AACvD,QAAM,QAAQ,IAAI,SAAS,MAAM,SAAS,MAAM,OAAO,EAAE,gBAAgB,OAAO,QAAQ,CAAC;AACzF,SAAO,EAAE,GAAG,MAAM,GAAG,GAAG,MAAM,EAAE;AAClC;AAGA,SAAS,aACP,OACA,SACA,OACA,MACe;AACf,QAAM,WAAY,MAAM,OAAmB,aAAa,gBAAgB;AACxE,MAAI,YAAY,WAAW,SAAU,QAAO;AAC5C,QAAM,QAAQ,SAAS,KAAK;AAC5B,MAAI,UAAU,KAAM,QAAO;AAC3B,SAAO;AAAA,IACL,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,UAAU,EAAE,SAAS,EAAE;AAAA,IACrD;AAAA,IACA,KAAK,QAAQ;AAAA,EACf;AACF;AAGA,SAAS,YAAY,QAGnB;AACA,QAAM,MAAM,QAAQ,YAAY;AAChC,QAAM,MAAM,QAAQ,aAAa;AACjC,SAAO,MAAM,QAAQ,MAAM;AACzB,QAAI,QAAQ,QAAQ,QAAQ,KAAM,QAAO,EAAE,YAAY,MAAM,YAAY,KAAK;AAC9E,UAAM,aAAa,aAAa,EAAE,UAAU,KAAK,WAAW,IAAI,CAAC;AACjE,WAAO,EAAE,YAAY,YAAY,cAAc,UAAU,EAAE;AAAA,EAC7D,GAAG,CAAC,KAAK,GAAG,CAAC;AACf;AAaO,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AAAA,EACA,UAAU,CAAC;AAAA,EACX;AAAA,EACA;AACF,GAAkG;AAChG,QAAM,EAAE,YAAY,WAAW,IAAI,YAAY,UAAU,SAAS,OAAO,CAAC;AAC1E,QAAM,QAAQ,QAAQ,IAAI,CAAC,MAAM,EAAE,YAAY;AAC/C,QAAM,kBAAkB,OAAO,KAAK,GAAG,OAAO;AAC9C,QAAM,OACJ,eAAe,QAAQ,eAAe,OAClC,OACA;AAAA,IAAW;AAAA,IAAiB,UAAU,SAAY,OAAO,SAAS,OAAO,UAAU;AAAA,IAAG,MACpF,QAAQ,IAAI,CAAC,MAAM,WAAW,EAAE,KAAK,EAAE,MAAM;AAAA,EAC/C;AACN,QAAM,QAAQ,cAAc,OAAO,UAAU,SAAS,YAAY,IAAI,IAAI,CAAC;AAC3E,QAAM,cAAc,MAAM,OAAe,OAAO;AAEhD,QAAM,gBAAgB,CAAC,UAAmD;AACxE,gBAAY,UAAU,MAAM,eAAe;AAAA,EAC7C;AAEA,QAAM,UAAU,CAAC,UAAiD;AAChE,QAAI,CAAC,YAAY,SAAS,KAAM;AAChC,UAAM,MAAM,aAAa,OAAO,YAAY,SAAS,OAAO,IAAI;AAChE,QAAI,IAAK,UAAS,GAAG;AAAA,EACvB;AAEA,SAAO,EAAE,MAAM,YAAY,OAAO,OAAO,iBAAiB,eAAe,QAAQ;AACnF;","names":[]}
@@ -2,7 +2,7 @@ import {
2
2
  MoreGroup,
3
3
  MoreQuick,
4
4
  fieldClearing
5
- } from "./chunk-3HZKUN5J.js";
5
+ } from "./chunk-MZAYIG2I.js";
6
6
  import {
7
7
  useStillAnchor
8
8
  } from "./chunk-7CUZTWKW.js";
@@ -222,4 +222,4 @@ function MoreFilters({
222
222
  export {
223
223
  MoreFilters
224
224
  };
225
- //# sourceMappingURL=chunk-JHWEL4NX.js.map
225
+ //# sourceMappingURL=chunk-HS662RLW.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  StandaloneContainer,
3
3
  useRowLayout
4
- } from "./chunk-QKOJ4637.js";
4
+ } from "./chunk-E6K2UZGR.js";
5
5
  import {
6
6
  DiscloseSlot,
7
7
  DragSlot,
@@ -12,13 +12,13 @@ import {
12
12
  metaShape,
13
13
  rowStyles,
14
14
  useRowShell
15
- } from "./chunk-DAHSKQBV.js";
15
+ } from "./chunk-UMOHHWXY.js";
16
16
  import {
17
17
  ListCardActions,
18
18
  ListCardCaption,
19
19
  ListCardMeta,
20
20
  ListCardTail
21
- } from "./chunk-EUR2ORTN.js";
21
+ } from "./chunk-CSJ7WNXU.js";
22
22
  import {
23
23
  useDisclosure
24
24
  } from "./chunk-2JCRNWHE.js";
@@ -185,4 +185,4 @@ function BaseListCard(props) {
185
185
  export {
186
186
  BaseListCard
187
187
  };
188
- //# sourceMappingURL=chunk-BZBLPXV7.js.map
188
+ //# sourceMappingURL=chunk-IWSTMVCA.js.map
@@ -1,13 +1,13 @@
1
+ import {
2
+ resolveAxisConfig,
3
+ resolveBarGeometry
4
+ } from "./chunk-SOHQPPYJ.js";
1
5
  import {
2
6
  getAxisStyles,
3
7
  getDefaultColors,
4
8
  getSizeStyles,
5
9
  resolveSeries
6
10
  } from "./chunk-TCWISGSS.js";
7
- import {
8
- resolveAxisConfig,
9
- resolveBarGeometry
10
- } from "./chunk-SOHQPPYJ.js";
11
11
  import {
12
12
  remPx
13
13
  } from "./chunk-YKCAJ2TN.js";
@@ -73,4 +73,4 @@ function marginPx(theme, margin) {
73
73
  export {
74
74
  buildChartContext
75
75
  };
76
- //# sourceMappingURL=chunk-TZC6KIK2.js.map
76
+ //# sourceMappingURL=chunk-JG733RMP.js.map
@@ -1,9 +1,9 @@
1
- import {
2
- DataViewsScopeTabs
3
- } from "./chunk-PL2AB5HJ.js";
4
1
  import {
5
2
  useDataViewsLayout
6
3
  } from "./chunk-5CAWRMDX.js";
4
+ import {
5
+ DataViewsScopeTabs
6
+ } from "./chunk-PL2AB5HJ.js";
7
7
 
8
8
  // src/components/data-display/DataViews/data-views-scope-tabs.tsx
9
9
  import { jsx } from "react/jsx-runtime";
@@ -34,4 +34,4 @@ function ScopeTabsSlot({
34
34
  export {
35
35
  ScopeTabsSlot
36
36
  };
37
- //# sourceMappingURL=chunk-K3PMMW23.js.map
37
+ //# sourceMappingURL=chunk-K6VEN5VN.js.map
@@ -3,7 +3,7 @@ import {
3
3
  CONTROL_RESET,
4
4
  NOT_LIVE,
5
5
  SlotIcon
6
- } from "./chunk-24HHUCWB.js";
6
+ } from "./chunk-LDCZPZPD.js";
7
7
  import {
8
8
  rem
9
9
  } from "./chunk-YKCAJ2TN.js";
@@ -129,4 +129,4 @@ export {
129
129
  RAISED_LIFT_COMPACT,
130
130
  raisedLift
131
131
  };
132
- //# sourceMappingURL=chunk-UKUGSU3Y.js.map
132
+ //# sourceMappingURL=chunk-L4V7FZJI.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-PUFA7FQ7.js";
7
7
  import {
8
8
  Badge
9
- } from "./chunk-N5PVD4J5.js";
9
+ } from "./chunk-6DO672AG.js";
10
10
  import {
11
11
  rem
12
12
  } from "./chunk-YKCAJ2TN.js";
@@ -115,4 +115,4 @@ export {
115
115
  VISUALLY_HIDDEN,
116
116
  useMounted
117
117
  };
118
- //# sourceMappingURL=chunk-24HHUCWB.js.map
118
+ //# sourceMappingURL=chunk-LDCZPZPD.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CountedIcon
3
- } from "./chunk-24HHUCWB.js";
3
+ } from "./chunk-LDCZPZPD.js";
4
4
  import {
5
5
  rem
6
6
  } from "./chunk-YKCAJ2TN.js";
@@ -133,4 +133,4 @@ function RailCreateMenu({
133
133
  export {
134
134
  RailCreateMenu
135
135
  };
136
- //# sourceMappingURL=chunk-ILJ3FXIC.js.map
136
+ //# sourceMappingURL=chunk-MM3QESLI.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  resolveMapCopy
3
3
  } from "./chunk-M5Y42AZ4.js";
4
- import {
5
- bounceKeyframes
6
- } from "./chunk-4YYFZ6TE.js";
7
4
  import {
8
5
  MARKER_PIXELS_PER_DEGREE
9
6
  } from "./chunk-H2J2MTRE.js";
7
+ import {
8
+ bounceKeyframes
9
+ } from "./chunk-4YYFZ6TE.js";
10
10
  import {
11
11
  shadowInk
12
12
  } from "./chunk-XJAD6E3V.js";
@@ -85,4 +85,4 @@ export {
85
85
  MapMarkers,
86
86
  MapCoordinates
87
87
  };
88
- //# sourceMappingURL=chunk-EEO7M5GU.js.map
88
+ //# sourceMappingURL=chunk-MYTV353T.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-KYUEO2IO.js";
7
7
  import {
8
8
  RangeBounds
9
- } from "./chunk-VIMMEADQ.js";
9
+ } from "./chunk-FORAVDJF.js";
10
10
  import {
11
11
  QuickRow
12
12
  } from "./chunk-AT6UKTH4.js";
@@ -228,4 +228,4 @@ export {
228
228
  MoreQuick,
229
229
  MoreGroup
230
230
  };
231
- //# sourceMappingURL=chunk-3HZKUN5J.js.map
231
+ //# sourceMappingURL=chunk-MZAYIG2I.js.map
@@ -18,6 +18,7 @@ import React from "react";
18
18
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
19
19
  function RegionMapDrawing({
20
20
  model,
21
+ overlay,
21
22
  showCenter,
22
23
  highlightedIds,
23
24
  maxHeight,
@@ -65,6 +66,9 @@ function RegionMapDrawing({
65
66
  /* @__PURE__ */ jsx(Hatch, { id: hatchId, pitch: view.spanX / 70, theme }),
66
67
  /* @__PURE__ */ jsx(BaseAreas, { areas: base, testId, theme }),
67
68
  /* @__PURE__ */ jsx(ExcludedAreas, { drawn, hatchId, testId, theme }),
69
+ overlay && model.projection && // `pointer-events` is inherited in SVG: nothing the host draws here
70
+ // takes a tap from the areas beneath.
71
+ /* @__PURE__ */ jsx("g", { pointerEvents: "none", "data-testid": `${testId}-overlay`, children: overlay({ view, projection: model.projection }) }),
68
72
  /* @__PURE__ */ jsx(Circles, { radii: model.radii, theme }),
69
73
  /* @__PURE__ */ jsx(Highlights, { areas: highlighted, testId, theme }),
70
74
  showCenter && /* @__PURE__ */ jsx(
@@ -252,4 +256,4 @@ function AreaLabel({
252
256
  export {
253
257
  RegionMapDrawing
254
258
  };
255
- //# sourceMappingURL=chunk-AKE6KVQG.js.map
259
+ //# sourceMappingURL=chunk-NGXL4R54.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/RegionMap/RegionMapDrawing.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport { alpha, type Theme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { rem, remPx } from '../../../tokens/relative';\n\nimport { labelPosition, type AreaGeometry, type DrawnRegion, type PlaneBox } from './RegionMap.helpers';\nimport type { RegionMapModel } from './RegionMap.hooks';\nimport { labelOrder, placeLabels } from './RegionMap.labels';\nimport type { RegionMapLayer } from './RegionMap.types';\n\nexport interface RegionMapDrawingProps {\n model: RegionMapModel & { view: PlaneBox };\n /** The host's layer, drawn inside the SVG under the circles (`RegionMapProps.overlay`). */\n overlay?: (layer: RegionMapLayer) => React.ReactNode;\n showCenter: boolean;\n highlightedIds: readonly string[];\n maxHeight: string | undefined;\n label: string;\n tappable: boolean;\n testId: string;\n theme: Theme;\n}\n\n/**\n * The drawing: one `role=\"img\"`, square, with HTML labels laid over it.\n *\n * Strokes are `non-scaling-stroke` and labels are HTML at theme sizes, so the\n * picture reads the same at 320 px and 1600 px; `maxHeight` caps it on a wide\n * screen. Where it sits in a wider box is the host's call.\n *\n * The base areas are a memoised layer: a toggle changes `excluded`, not the\n * geometry, so only the hatch, highlight and label layers re-render.\n */\nexport function RegionMapDrawing({\n model,\n overlay,\n showCenter,\n highlightedIds,\n maxHeight,\n label,\n tappable,\n testId,\n theme,\n}: RegionMapDrawingProps): React.JSX.Element {\n const hatchId = `${React.useId().replace(/:/g, '')}-hatch`;\n const { view, drawn } = model;\n const wanted = new Set(highlightedIds);\n const highlighted = drawn.filter((d) => wanted.has(d.id));\n // Highlighted, then excluded, then larger, then by name: the order labels\n // claim their place in, so a collision hides the less important one.\n const labelled = labelOrder(drawn.filter((d) => d.excluded || wanted.has(d.id)), wanted);\n const boxRef = React.useRef<HTMLDivElement>(null);\n useLabelPlacement(boxRef, labelled.map((d) => d.id).join('|'), remPx(theme, 4));\n const base = drawn.map((d) => ({ id: d.id, name: d.name, geometry: d.geometry, outside: d.outside === true }));\n return (\n <Box\n sx={{\n position: 'relative',\n width: '100%',\n maxWidth: maxHeight,\n maxHeight,\n aspectRatio: '1 / 1',\n border: 1,\n borderColor: 'divider',\n borderRadius: 1,\n overflow: 'hidden',\n bgcolor: 'background.paper',\n }}\n data-testid={`${testId}-canvas`}\n ref={boxRef}\n >\n <svg\n viewBox={`${view.minX} ${view.minY} ${view.spanX} ${view.spanY}`}\n role=\"img\"\n aria-label={label}\n onPointerDown={model.onPointerDown}\n onClick={model.onClick}\n style={{ display: 'block', width: '100%', height: '100%', cursor: tappable ? 'pointer' : 'default' }}\n >\n <Hatch id={hatchId} pitch={view.spanX / 70} theme={theme} />\n <BaseAreas areas={base} testId={testId} theme={theme} />\n <ExcludedAreas drawn={drawn} hatchId={hatchId} testId={testId} theme={theme} />\n {overlay && model.projection && (\n // `pointer-events` is inherited in SVG: nothing the host draws here\n // takes a tap from the areas beneath.\n <g pointerEvents=\"none\" data-testid={`${testId}-overlay`}>\n {overlay({ view, projection: model.projection })}\n </g>\n )}\n <Circles radii={model.radii} theme={theme} />\n <Highlights areas={highlighted} testId={testId} theme={theme} />\n {showCenter && (\n <circle\n cx={0}\n cy={0}\n r={view.spanX / 90}\n fill={theme.palette.primary.main}\n stroke={theme.palette.background.paper}\n strokeWidth={2}\n vectorEffect=\"non-scaling-stroke\"\n pointerEvents=\"none\"\n data-testid={`${testId}-center`}\n />\n )}\n </svg>\n {labelled.map((d) => (\n <AreaLabel key={`l-${d.id}`} area={d} view={view} testId={testId} theme={theme} />\n ))}\n </Box>\n );\n}\n\n/** The highlighted areas, drawn over everything but the centre. */\nfunction Highlights({\n areas,\n testId,\n theme,\n}: {\n areas: readonly DrawnRegion[];\n testId: string;\n theme: Theme;\n}): React.JSX.Element {\n return (\n <>\n {areas.map((d) => (\n <path\n key={`h-${d.id}`}\n d={d.geometry.path}\n fillRule=\"evenodd\"\n vectorEffect=\"non-scaling-stroke\"\n fill={alpha(theme.palette.primary.main, 0.3)}\n stroke={theme.palette.primary.main}\n strokeWidth={2.5}\n pointerEvents=\"none\"\n data-testid={`${testId}-highlight-${d.id}`}\n />\n ))}\n </>\n );\n}\n\n/** The hatch an excluded area is filled with: lines, not a colour. */\nfunction Hatch({ id, pitch, theme }: { id: string; pitch: number; theme: Theme }): React.JSX.Element {\n return (\n <defs>\n <pattern id={id} width={pitch} height={pitch} patternUnits=\"userSpaceOnUse\" patternTransform=\"rotate(45)\">\n <rect width={pitch} height={pitch} fill={alpha(theme.palette.text.primary, 0.1)} />\n <rect width={pitch / 3} height={pitch} fill={theme.palette.text.secondary} />\n </pattern>\n </defs>\n );\n}\n\ninterface BaseArea {\n id: string;\n name: string;\n geometry: AreaGeometry;\n outside: boolean;\n}\n\ninterface BaseAreasProps {\n areas: readonly BaseArea[];\n testId: string;\n theme: Theme;\n}\n\n/** Same areas, same geometry objects, same look: nothing to re-render. */\nfunction sameBase(a: BaseAreasProps, b: BaseAreasProps): boolean {\n if (a.theme !== b.theme || a.testId !== b.testId || a.areas.length !== b.areas.length) return false;\n return a.areas.every((area, i) => {\n const other = b.areas[i]!;\n return (\n area.id === other.id &&\n area.geometry === other.geometry &&\n area.outside === other.outside &&\n area.name === other.name\n );\n });\n}\n\n/** Every area's fill and border — the tap targets. Memoised: see `sameBase`. */\nconst BaseAreas = React.memo(function BaseAreas({ areas, testId, theme }: BaseAreasProps): React.JSX.Element {\n const { palette } = theme;\n return (\n <>\n {areas.map((d) => (\n <path\n key={d.id}\n d={d.geometry.path}\n fillRule=\"evenodd\"\n vectorEffect=\"non-scaling-stroke\"\n fill={d.outside ? palette.background.paper : palette.action.hover}\n stroke={palette.divider}\n strokeWidth={1}\n data-region-id={d.id}\n data-testid={`${testId}-area-${d.id}`}\n >\n <title>{d.name}</title>\n </path>\n ))}\n </>\n );\n}, sameBase);\n\n/** The hatch over every excluded area. */\nfunction ExcludedAreas({\n drawn,\n hatchId,\n testId,\n theme,\n}: {\n drawn: readonly DrawnRegion[];\n hatchId: string;\n testId: string;\n theme: Theme;\n}): React.JSX.Element {\n return (\n <>\n {drawn\n .filter((d) => d.excluded)\n .map((d) => (\n <path\n key={`x-${d.id}`}\n d={d.geometry.path}\n fillRule=\"evenodd\"\n vectorEffect=\"non-scaling-stroke\"\n fill={`url(#${hatchId})`}\n stroke={theme.palette.text.secondary}\n strokeWidth={1.5}\n pointerEvents=\"none\"\n data-testid={`${testId}-excluded-${d.id}`}\n />\n ))}\n </>\n );\n}\n\n/** The dashed circles around the centre. */\nfunction Circles({ radii, theme }: { radii: readonly number[]; theme: Theme }): React.JSX.Element {\n return (\n <>\n {radii.map((radius) => (\n <circle\n key={radius}\n cx={0}\n cy={0}\n r={radius}\n fill=\"none\"\n stroke={theme.palette.info.main}\n strokeWidth={1.75}\n strokeDasharray=\"7 5\"\n vectorEffect=\"non-scaling-stroke\"\n pointerEvents=\"none\"\n />\n ))}\n </>\n );\n}\n\n/**\n * Places every label the drawing carries, in their DOM order (the priority\n * order), and hides one that would overlap a label already drawn\n * (`placeLabels`). Measured by a ResizeObserver, never in a layout effect: its\n * first call comes after the browser's own layout, so mounting a label on a\n * tap forces no synchronous reflow of the drawing.\n */\nfunction useLabelPlacement(boxRef: React.RefObject<HTMLDivElement | null>, key: string, gap: number): void {\n React.useEffect(() => {\n const box = boxRef.current;\n if (!box || typeof ResizeObserver === 'undefined') return undefined;\n const labels = Array.from(box.querySelectorAll<HTMLElement>('[data-region-label]'));\n const place = (): void => {\n const spanX = box.clientWidth;\n const spanY = box.clientHeight;\n if (spanX === 0 || spanY === 0) return;\n const placed = placeLabels(\n labels.map((label) => ({\n fractionX: Number(label.dataset.fractionX),\n fractionY: Number(label.dataset.fractionY),\n spanX: label.offsetWidth,\n spanY: label.offsetHeight,\n })),\n { spanX, spanY },\n gap,\n );\n placed.forEach(({ x, y, visible }, index) => {\n const label = labels[index]!;\n label.style.left = `${(x / spanX) * 100}%`;\n label.style.top = `${(y / spanY) * 100}%`;\n label.style.visibility = visible ? 'visible' : 'hidden';\n label.dataset.hidden = visible ? 'false' : 'true';\n });\n };\n const observer = new ResizeObserver(place);\n observer.observe(box);\n for (const label of labels) observer.observe(label);\n return () => observer.disconnect();\n }, [boxRef, key, gap]);\n}\n\n/**\n * An area's name over the drawing, at the theme's type size whatever the\n * width. Placed — and hidden on a collision — by {@link useLabelPlacement}.\n * Decorative (`aria-hidden`): the area's name is its `<title>` and its row in\n * the list.\n */\nfunction AreaLabel({\n area,\n view,\n testId,\n theme,\n}: {\n area: DrawnRegion;\n view: PlaneBox;\n testId: string;\n theme: Theme;\n}): React.JSX.Element {\n const at = labelPosition(area.geometry.rings, view);\n const halo = `0 0 ${rem(theme, 3)} ${theme.palette.background.paper}`;\n return (\n <Typography\n component=\"span\"\n aria-hidden\n data-testid={`${testId}-label-${area.id}`}\n data-region-label=\"\"\n data-fraction-x={at.fractionX}\n data-fraction-y={at.fractionY}\n // Position as an inline style, not `sx`: a per-label class would insert\n // a new CSS rule (and a style recalculation) on every tap.\n style={{\n left: `${(at.fractionX * 100).toFixed(2)}%`,\n top: `${(at.fractionY * 100).toFixed(2)}%`,\n }}\n sx={{\n position: 'absolute',\n transform: 'translate(-50%, -50%)',\n fontSize: rem(theme, 12),\n fontWeight: 700,\n lineHeight: 1.1,\n textAlign: 'center',\n maxWidth: '45%',\n color: 'text.primary',\n pointerEvents: 'none',\n textShadow: `${halo}, ${halo}`,\n }}\n >\n {area.name}\n </Typography>\n );\n}\n"],"mappings":"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","names":["BaseAreas"]}
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-2ORD2FMN.js";
18
18
  import {
19
19
  Alert
20
- } from "./chunk-QVDEGBME.js";
20
+ } from "./chunk-PEAUGQKU.js";
21
21
  import {
22
22
  Button
23
23
  } from "./chunk-YOXYSAUI.js";
@@ -160,4 +160,4 @@ export {
160
160
  SequenceStepBody,
161
161
  SequenceDoneBody
162
162
  };
163
- //# sourceMappingURL=chunk-RDCIST7P.js.map
163
+ //# sourceMappingURL=chunk-OCT5VCLP.js.map
@@ -4,7 +4,8 @@ import {
4
4
  import {
5
5
  actualBarColor,
6
6
  blockToneStyles,
7
- breakHatch
7
+ breakHatch,
8
+ signalInk
8
9
  } from "./chunk-4HK4FVMV.js";
9
10
  import {
10
11
  FIELD_BORDER_WIDTH
@@ -265,6 +266,39 @@ var skeletonNameSx = (theme) => ({
265
266
  borderRadius: rem(theme, DAY_RULER_METRICS.skeletonNameRadius),
266
267
  backgroundColor: theme.palette.action.hover
267
268
  });
269
+ function footerInk(theme, marked, plain) {
270
+ return marked ? signalInk(theme, "warning", theme.palette.background.default) : plain;
271
+ }
272
+ function footerCellSx(marked) {
273
+ return (theme) => ({
274
+ display: "flex",
275
+ alignItems: "center",
276
+ justifyContent: "center",
277
+ fontSize: rem(theme, DAY_RULER_METRICS.coverage.font),
278
+ borderRadius: rem(theme, DAY_RULER_METRICS.coverage.radius),
279
+ color: footerInk(theme, marked, theme.palette.text.primary),
280
+ fontWeight: marked ? 500 : 400,
281
+ // The hairline is always there, transparent when unmarked, so a mark never shifts a count.
282
+ border: `1px solid ${marked ? theme.palette.warning.main : "transparent"}`,
283
+ minWidth: 0,
284
+ overflow: "hidden"
285
+ });
286
+ }
287
+ function footerNoteSx(marked) {
288
+ return (theme) => ({
289
+ fontSize: rem(theme, DAY_RULER_METRICS.meta),
290
+ color: footerInk(theme, marked, theme.palette.text.secondary),
291
+ fontWeight: marked ? 500 : 400,
292
+ ...marked ? { borderLeft: `${rem(theme, 3)} solid ${theme.palette.warning.main}`, paddingLeft: rem(theme, 6) } : {}
293
+ });
294
+ }
295
+ var trendSx = (theme) => ({
296
+ display: "block",
297
+ width: "100%",
298
+ height: rem(theme, DAY_RULER_METRICS.coverage.height + DAY_RULER_METRICS.coverage.height / 2),
299
+ color: theme.palette.primary.main,
300
+ overflow: "visible"
301
+ });
268
302
 
269
303
  export {
270
304
  rootSx,
@@ -286,6 +320,10 @@ export {
286
320
  actualLabelSx,
287
321
  nowSx,
288
322
  skeletonTrackSx,
289
- skeletonNameSx
323
+ skeletonNameSx,
324
+ footerInk,
325
+ footerCellSx,
326
+ footerNoteSx,
327
+ trendSx
290
328
  };
291
- //# sourceMappingURL=chunk-G2PVUPE7.js.map
329
+ //# sourceMappingURL=chunk-OJZLFFG4.js.map