@12-apps/ui 6.98.0 → 6.99.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 (210) hide show
  1. package/dist/_internal/components/data-display/Alert/Alert.content.js +4 -2
  2. package/dist/_internal/components/data-display/Alert/Alert.ink.js +27 -0
  3. package/dist/_internal/components/data-display/Alert/Alert.js +6 -5
  4. package/dist/_internal/components/data-display/Alert/Alert.metrics.js +5 -1
  5. package/dist/_internal/components/data-display/Alert/Alert.styles.js +2 -2
  6. package/dist/_internal/components/data-display/Banner/Banner.js +3 -3
  7. package/dist/_internal/components/data-display/Banner/Banner.styles.js +2 -2
  8. package/dist/_internal/components/data-display/CardKit/card-actions-context.js +8 -7
  9. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +9 -8
  10. package/dist/_internal/components/data-display/Carousel/Carousel.js +2 -2
  11. package/dist/_internal/components/data-display/Chart/SpecChart.js +3 -3
  12. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +1 -1
  13. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +17 -17
  14. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +26 -25
  15. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +1 -1
  16. package/dist/_internal/components/data-display/DataViews/base-list-card-layout.js +1 -1
  17. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +1 -1
  18. package/dist/_internal/components/data-display/DataViews/base-list-card.js +4 -4
  19. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +2 -2
  20. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +14 -14
  21. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +6 -6
  22. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +2 -2
  23. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +3 -3
  24. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +8 -7
  25. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +1 -1
  26. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +2 -2
  27. package/dist/_internal/components/data-display/DayRuler/DayRuler.footer.js +2 -2
  28. package/dist/_internal/components/data-display/DayRuler/DayRuler.js +7 -7
  29. package/dist/_internal/components/data-display/DayRuler/DayRuler.keyboard.js +2 -2
  30. package/dist/_internal/components/data-display/DayRuler/DayRuler.parts.js +3 -3
  31. package/dist/_internal/components/data-display/DayRuler/useRulerDrag.js +2 -2
  32. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +6 -6
  33. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +5 -5
  34. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +7 -7
  35. package/dist/_internal/components/data-display/HoverCard/HoverCard.js +2 -2
  36. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +3 -3
  37. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +2 -2
  38. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +4 -4
  39. package/dist/_internal/components/data-display/Progress/Progress.js +2 -2
  40. package/dist/_internal/components/data-display/RegionMap/RegionMap.fixtures.js +1 -1
  41. package/dist/_internal/components/data-display/RegionMap/RegionMap.helpers.js +3 -1
  42. package/dist/_internal/components/data-display/RegionMap/RegionMap.hooks.js +3 -3
  43. package/dist/_internal/components/data-display/RegionMap/RegionMap.js +6 -5
  44. package/dist/_internal/components/data-display/RegionMap/RegionMap.view.js +2 -2
  45. package/dist/_internal/components/data-display/RegionMap/RegionMapDrawing.js +3 -2
  46. package/dist/_internal/components/data-display/RegionMap/RegionMapPin.js +26 -0
  47. package/dist/_internal/components/data-display/index.js +60 -50
  48. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +7 -6
  49. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.frame.js +4 -4
  50. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.header.js +3 -3
  51. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.js +14 -13
  52. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.overview.js +9 -8
  53. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.parts.js +8 -7
  54. package/dist/_internal/components/feedback/index.js +15 -14
  55. package/dist/_internal/components/index.js +66 -56
  56. package/dist/charts.js +11 -11
  57. package/dist/{chunk-WYNGH2WL.js → chunk-255WTBZ5.js} +8 -8
  58. package/dist/{chunk-QIP37Y2C.js → chunk-2RC6EAGD.js} +2 -2
  59. package/dist/{chunk-ZKVSFVIA.js → chunk-37MJZLQU.js} +2 -2
  60. package/dist/{chunk-BQBEN44R.js → chunk-3I7KE2N6.js} +2 -2
  61. package/dist/{chunk-L4FWEI2P.js → chunk-3V3Z4EML.js} +5 -5
  62. package/dist/{chunk-E4MJA52O.js → chunk-3V5V44UP.js} +16 -18
  63. package/dist/chunk-3V5V44UP.js.map +1 -0
  64. package/dist/{chunk-6RYSSNOO.js → chunk-54DOLCJ3.js} +2 -2
  65. package/dist/{chunk-74IH3ZGD.js → chunk-643YFWNK.js} +2 -2
  66. package/dist/{chunk-FRQGZIYU.js → chunk-6WAP7BJS.js} +2 -2
  67. package/dist/chunk-AG4F6NVT.js +1 -0
  68. package/dist/chunk-AG4F6NVT.js.map +1 -0
  69. package/dist/{chunk-3CXRHRGE.js → chunk-AYDVNXGR.js} +7 -3
  70. package/dist/chunk-AYDVNXGR.js.map +1 -0
  71. package/dist/{chunk-JO6D7YGN.js → chunk-CWRQGA2T.js} +2 -2
  72. package/dist/chunk-DRYBA76G.js +293 -0
  73. package/dist/chunk-DRYBA76G.js.map +1 -0
  74. package/dist/{chunk-ZW7Q3IRL.js → chunk-FYJL432J.js} +4 -4
  75. package/dist/{chunk-G6TKWNF2.js → chunk-GZITNT7O.js} +11 -11
  76. package/dist/{chunk-RFMQBIE6.js → chunk-HBHBRRSW.js} +4 -4
  77. package/dist/{chunk-U4Z6GZDW.js → chunk-HN36UVOE.js} +4 -4
  78. package/dist/{chunk-WK577LQL.js → chunk-J2IQ6FJ5.js} +4 -4
  79. package/dist/{chunk-HCTHY66U.js → chunk-KAGXV3ID.js} +4 -4
  80. package/dist/{chunk-FWAY2SAI.js → chunk-KAZWBDIH.js} +2 -2
  81. package/dist/{chunk-DKPELKGL.js → chunk-KV7LTOWC.js} +5 -5
  82. package/dist/{chunk-UC7DLGMP.js → chunk-KVP5A3YK.js} +2 -2
  83. package/dist/chunk-LNZJJFZQ.js +41 -0
  84. package/dist/chunk-LNZJJFZQ.js.map +1 -0
  85. package/dist/{chunk-EGBQR5GH.js → chunk-LOLYBFYY.js} +5 -5
  86. package/dist/{chunk-SOXO2VN3.js → chunk-MEMVZW64.js} +3 -3
  87. package/dist/{chunk-COOSJKZL.js → chunk-MNJZPJ5S.js} +2 -1
  88. package/dist/chunk-MNJZPJ5S.js.map +1 -0
  89. package/dist/{chunk-G2NVBCF7.js → chunk-NWUMGE6T.js} +3 -3
  90. package/dist/{chunk-NQCTANF3.js → chunk-Q5SCBQLY.js} +18 -11
  91. package/dist/chunk-Q5SCBQLY.js.map +1 -0
  92. package/dist/{chunk-64LNNC54.js → chunk-QLKUWDMQ.js} +4 -4
  93. package/dist/{chunk-MPVH2GM5.js → chunk-RAQD5QCM.js} +4 -4
  94. package/dist/{chunk-KXDLLS62.js → chunk-REHGWN5M.js} +4 -4
  95. package/dist/{chunk-Z4ZFJ565.js → chunk-SRAIV6U6.js} +3 -3
  96. package/dist/{chunk-5ZY3IIIG.js → chunk-TBQR5VCN.js} +11 -1
  97. package/dist/chunk-TBQR5VCN.js.map +1 -0
  98. package/dist/{chunk-3N2HWNKT.js → chunk-UIJLDAV7.js} +2 -2
  99. package/dist/{chunk-7HZ36QDH.js → chunk-UN5WU2OX.js} +9 -3
  100. package/dist/chunk-UN5WU2OX.js.map +1 -0
  101. package/dist/{chunk-A27J4CIZ.js → chunk-UTIYB6VE.js} +11 -11
  102. package/dist/{chunk-5V7IZBRY.js → chunk-VRSW7PIO.js} +5 -5
  103. package/dist/{chunk-U4PV2ZKK.js → chunk-WDEVKND3.js} +3 -3
  104. package/dist/chunk-WGKLBVDZ.js +1 -0
  105. package/dist/chunk-WGKLBVDZ.js.map +1 -0
  106. package/dist/{chunk-AP7GEUJS.js → chunk-XFOKLWJZ.js} +2 -2
  107. package/dist/{chunk-6D5AMANO.js → chunk-XQAFSC66.js} +2 -2
  108. package/dist/{chunk-YNZUYZ2O.js → chunk-XR474YYX.js} +2 -2
  109. package/dist/{chunk-L5RS6QAT.js → chunk-YBF2WUGQ.js} +2 -2
  110. package/dist/{chunk-RCTHCXS6.js → chunk-YQ5GQ32T.js} +2 -2
  111. package/dist/{chunk-YLZXIR6B.js → chunk-Z5V5E3JW.js} +4 -4
  112. package/dist/data-display/Alert.js +10 -6
  113. package/dist/data-display/Banner.js +3 -3
  114. package/dist/data-display/CardKit.js +9 -8
  115. package/dist/data-display/Carousel.js +2 -2
  116. package/dist/data-display/Chart.js +11 -11
  117. package/dist/data-display/DataGrid.js +1 -1
  118. package/dist/data-display/DataViews.js +33 -32
  119. package/dist/data-display/DayRuler.js +7 -7
  120. package/dist/data-display/FleetMap.js +7 -7
  121. package/dist/data-display/HoverCard.js +2 -2
  122. package/dist/data-display/Lightbox.js +3 -3
  123. package/dist/data-display/MapPreview.js +4 -4
  124. package/dist/data-display/Progress.js +2 -2
  125. package/dist/data-display/RegionMap.js +14 -8
  126. package/dist/feedback/NotificationStatusNotice.js +7 -6
  127. package/dist/feedback/SequenceResolver.js +14 -13
  128. package/dist/native/data-display/Alert.js +10 -0
  129. package/dist/native/data-display/Alert.js.map +1 -1
  130. package/dist/types/components/data-display/Alert/Alert.content.d.ts.map +1 -1
  131. package/dist/types/components/data-display/Alert/Alert.d.ts.map +1 -1
  132. package/dist/types/components/data-display/Alert/Alert.ink.d.ts +65 -0
  133. package/dist/types/components/data-display/Alert/Alert.ink.d.ts.map +1 -0
  134. package/dist/types/components/data-display/Alert/Alert.metrics.d.ts +73 -5
  135. package/dist/types/components/data-display/Alert/Alert.metrics.d.ts.map +1 -1
  136. package/dist/types/components/data-display/Alert/index.d.ts +1 -0
  137. package/dist/types/components/data-display/Alert/index.d.ts.map +1 -1
  138. package/dist/types/components/data-display/RegionMap/RegionMap.d.ts +1 -1
  139. package/dist/types/components/data-display/RegionMap/RegionMap.d.ts.map +1 -1
  140. package/dist/types/components/data-display/RegionMap/RegionMap.helpers.d.ts +9 -0
  141. package/dist/types/components/data-display/RegionMap/RegionMap.helpers.d.ts.map +1 -1
  142. package/dist/types/components/data-display/RegionMap/RegionMap.types.d.ts +45 -1
  143. package/dist/types/components/data-display/RegionMap/RegionMap.types.d.ts.map +1 -1
  144. package/dist/types/components/data-display/RegionMap/RegionMapDrawing.d.ts +4 -1
  145. package/dist/types/components/data-display/RegionMap/RegionMapDrawing.d.ts.map +1 -1
  146. package/dist/types/components/data-display/RegionMap/RegionMapPin.d.ts +102 -0
  147. package/dist/types/components/data-display/RegionMap/RegionMapPin.d.ts.map +1 -0
  148. package/dist/types/components/data-display/RegionMap/index.d.ts +2 -1
  149. package/dist/types/components/data-display/RegionMap/index.d.ts.map +1 -1
  150. package/dist/types-native/components/data-display/Alert/Alert.metrics.d.ts +73 -5
  151. package/dist/types-native/components/data-display/Alert/Alert.metrics.d.ts.map +1 -1
  152. package/package.json +1 -1
  153. package/src/components/data-display/Alert/Alert.content.tsx +16 -1
  154. package/src/components/data-display/Alert/Alert.ink.ts +106 -0
  155. package/src/components/data-display/Alert/Alert.md +40 -0
  156. package/src/components/data-display/Alert/Alert.metrics.ts +57 -5
  157. package/src/components/data-display/Alert/Alert.tsx +18 -7
  158. package/src/components/data-display/Alert/index.ts +1 -0
  159. package/src/components/data-display/RegionMap/RegionMap.helpers.ts +1 -1
  160. package/src/components/data-display/RegionMap/RegionMap.md +19 -2
  161. package/src/components/data-display/RegionMap/RegionMap.tsx +4 -0
  162. package/src/components/data-display/RegionMap/RegionMap.types.ts +49 -1
  163. package/src/components/data-display/RegionMap/RegionMapDrawing.tsx +11 -13
  164. package/src/components/data-display/RegionMap/RegionMapPin.tsx +388 -0
  165. package/src/components/data-display/RegionMap/index.ts +5 -0
  166. package/dist/chunk-3CXRHRGE.js.map +0 -1
  167. package/dist/chunk-5ZY3IIIG.js.map +0 -1
  168. package/dist/chunk-7HZ36QDH.js.map +0 -1
  169. package/dist/chunk-COOSJKZL.js.map +0 -1
  170. package/dist/chunk-DY2I6LMX.js +0 -1
  171. package/dist/chunk-E4MJA52O.js.map +0 -1
  172. package/dist/chunk-NQCTANF3.js.map +0 -1
  173. package/dist/chunk-NUGT7LMR.js +0 -1
  174. /package/dist/{chunk-DY2I6LMX.js.map → _internal/components/data-display/Alert/Alert.ink.js.map} +0 -0
  175. /package/dist/{chunk-NUGT7LMR.js.map → _internal/components/data-display/RegionMap/RegionMapPin.js.map} +0 -0
  176. /package/dist/{chunk-WYNGH2WL.js.map → chunk-255WTBZ5.js.map} +0 -0
  177. /package/dist/{chunk-QIP37Y2C.js.map → chunk-2RC6EAGD.js.map} +0 -0
  178. /package/dist/{chunk-ZKVSFVIA.js.map → chunk-37MJZLQU.js.map} +0 -0
  179. /package/dist/{chunk-BQBEN44R.js.map → chunk-3I7KE2N6.js.map} +0 -0
  180. /package/dist/{chunk-L4FWEI2P.js.map → chunk-3V3Z4EML.js.map} +0 -0
  181. /package/dist/{chunk-6RYSSNOO.js.map → chunk-54DOLCJ3.js.map} +0 -0
  182. /package/dist/{chunk-74IH3ZGD.js.map → chunk-643YFWNK.js.map} +0 -0
  183. /package/dist/{chunk-FRQGZIYU.js.map → chunk-6WAP7BJS.js.map} +0 -0
  184. /package/dist/{chunk-JO6D7YGN.js.map → chunk-CWRQGA2T.js.map} +0 -0
  185. /package/dist/{chunk-ZW7Q3IRL.js.map → chunk-FYJL432J.js.map} +0 -0
  186. /package/dist/{chunk-G6TKWNF2.js.map → chunk-GZITNT7O.js.map} +0 -0
  187. /package/dist/{chunk-RFMQBIE6.js.map → chunk-HBHBRRSW.js.map} +0 -0
  188. /package/dist/{chunk-U4Z6GZDW.js.map → chunk-HN36UVOE.js.map} +0 -0
  189. /package/dist/{chunk-WK577LQL.js.map → chunk-J2IQ6FJ5.js.map} +0 -0
  190. /package/dist/{chunk-HCTHY66U.js.map → chunk-KAGXV3ID.js.map} +0 -0
  191. /package/dist/{chunk-FWAY2SAI.js.map → chunk-KAZWBDIH.js.map} +0 -0
  192. /package/dist/{chunk-DKPELKGL.js.map → chunk-KV7LTOWC.js.map} +0 -0
  193. /package/dist/{chunk-UC7DLGMP.js.map → chunk-KVP5A3YK.js.map} +0 -0
  194. /package/dist/{chunk-EGBQR5GH.js.map → chunk-LOLYBFYY.js.map} +0 -0
  195. /package/dist/{chunk-SOXO2VN3.js.map → chunk-MEMVZW64.js.map} +0 -0
  196. /package/dist/{chunk-G2NVBCF7.js.map → chunk-NWUMGE6T.js.map} +0 -0
  197. /package/dist/{chunk-64LNNC54.js.map → chunk-QLKUWDMQ.js.map} +0 -0
  198. /package/dist/{chunk-MPVH2GM5.js.map → chunk-RAQD5QCM.js.map} +0 -0
  199. /package/dist/{chunk-KXDLLS62.js.map → chunk-REHGWN5M.js.map} +0 -0
  200. /package/dist/{chunk-Z4ZFJ565.js.map → chunk-SRAIV6U6.js.map} +0 -0
  201. /package/dist/{chunk-3N2HWNKT.js.map → chunk-UIJLDAV7.js.map} +0 -0
  202. /package/dist/{chunk-A27J4CIZ.js.map → chunk-UTIYB6VE.js.map} +0 -0
  203. /package/dist/{chunk-5V7IZBRY.js.map → chunk-VRSW7PIO.js.map} +0 -0
  204. /package/dist/{chunk-U4PV2ZKK.js.map → chunk-WDEVKND3.js.map} +0 -0
  205. /package/dist/{chunk-AP7GEUJS.js.map → chunk-XFOKLWJZ.js.map} +0 -0
  206. /package/dist/{chunk-6D5AMANO.js.map → chunk-XQAFSC66.js.map} +0 -0
  207. /package/dist/{chunk-YNZUYZ2O.js.map → chunk-XR474YYX.js.map} +0 -0
  208. /package/dist/{chunk-L5RS6QAT.js.map → chunk-YBF2WUGQ.js.map} +0 -0
  209. /package/dist/{chunk-RCTHCXS6.js.map → chunk-YQ5GQ32T.js.map} +0 -0
  210. /package/dist/{chunk-YLZXIR6B.js.map → chunk-Z5V5E3JW.js.map} +0 -0
@@ -377,7 +377,7 @@ import "../../chunk-GB2DQOZ7.js";
377
377
  import "../../chunk-JQRKXMSH.js";
378
378
  import {
379
379
  NotificationStatusNotice
380
- } from "../../chunk-YNZUYZ2O.js";
380
+ } from "../../chunk-XR474YYX.js";
381
381
  import "../../chunk-55FFONIV.js";
382
382
  import {
383
383
  detectNotificationBrowser,
@@ -394,11 +394,11 @@ import "../../chunk-NPPO7G2B.js";
394
394
  import "../../chunk-TWAKMV5B.js";
395
395
  import {
396
396
  SequenceResolver
397
- } from "../../chunk-64LNNC54.js";
398
- import "../../chunk-74IH3ZGD.js";
399
- import "../../chunk-6D5AMANO.js";
400
- import "../../chunk-BQBEN44R.js";
401
- import "../../chunk-JO6D7YGN.js";
397
+ } from "../../chunk-QLKUWDMQ.js";
398
+ import "../../chunk-643YFWNK.js";
399
+ import "../../chunk-XQAFSC66.js";
400
+ import "../../chunk-3I7KE2N6.js";
401
+ import "../../chunk-CWRQGA2T.js";
402
402
  import "../../chunk-2ORD2FMN.js";
403
403
  import "../../chunk-2SRWPNQ7.js";
404
404
  import "../../chunk-ALDS5ISD.js";
@@ -471,17 +471,17 @@ import "../../chunk-N7GE6BGM.js";
471
471
  import "../../chunk-UM35GGCS.js";
472
472
  import {
473
473
  Lightbox_default
474
- } from "../../chunk-YLZXIR6B.js";
474
+ } from "../../chunk-Z5V5E3JW.js";
475
475
  import "../../chunk-UOS7DEQZ.js";
476
476
  import "../../chunk-HZBDTPPV.js";
477
477
  import "../../chunk-WZERH7E3.js";
478
478
  import "../../chunk-64UNVW6D.js";
479
479
  import "../../chunk-SYGM4SHY.js";
480
480
  import "../../chunk-WLLUARTC.js";
481
- import "../../chunk-RBGUS7WO.js";
482
- import "../../chunk-IOCY5G43.js";
483
481
  import "../../chunk-W676GY42.js";
484
482
  import "../../chunk-VQU3CBAL.js";
483
+ import "../../chunk-RBGUS7WO.js";
484
+ import "../../chunk-IOCY5G43.js";
485
485
  import "../../chunk-TEQYTEM2.js";
486
486
  import "../../chunk-EJDOH7IN.js";
487
487
  import "../../chunk-6CUNJ4JF.js";
@@ -491,10 +491,10 @@ import {
491
491
  import "../../chunk-QOB473HS.js";
492
492
  import {
493
493
  Progress
494
- } from "../../chunk-L4FWEI2P.js";
494
+ } from "../../chunk-3V3Z4EML.js";
495
+ import "../../chunk-5JEOLUWJ.js";
495
496
  import "../../chunk-2L7GNARR.js";
496
497
  import "../../chunk-IFUWFCPJ.js";
497
- import "../../chunk-5JEOLUWJ.js";
498
498
  import "../../chunk-ITACE45O.js";
499
499
  import {
500
500
  Sheet
@@ -527,9 +527,9 @@ import "../../chunk-YCZGYYUX.js";
527
527
  import "../../chunk-RQWZYD6H.js";
528
528
  import {
529
529
  FleetMap
530
- } from "../../chunk-6RYSSNOO.js";
531
- import "../../chunk-FRQGZIYU.js";
532
- import "../../chunk-UC7DLGMP.js";
530
+ } from "../../chunk-54DOLCJ3.js";
531
+ import "../../chunk-6WAP7BJS.js";
532
+ import "../../chunk-KVP5A3YK.js";
533
533
  import "../../chunk-A4B27HYU.js";
534
534
  import "../../chunk-BTQZ3EX3.js";
535
535
  import "../../chunk-ZCPSND5Y.js";
@@ -541,13 +541,13 @@ import {
541
541
  } from "../../chunk-XPMGFAJ3.js";
542
542
  import {
543
543
  MapPreview
544
- } from "../../chunk-ZW7Q3IRL.js";
545
- import "../../chunk-HCTHY66U.js";
544
+ } from "../../chunk-FYJL432J.js";
545
+ import "../../chunk-4Y3QLISA.js";
546
+ import "../../chunk-KAGXV3ID.js";
546
547
  import "../../chunk-TDXEWGY2.js";
547
548
  import "../../chunk-MIUPTZS6.js";
548
- import "../../chunk-ZZ4MMUBY.js";
549
- import "../../chunk-4Y3QLISA.js";
550
549
  import "../../chunk-ZX4ORMBC.js";
550
+ import "../../chunk-ZZ4MMUBY.js";
551
551
  import "../../chunk-QSRZOXQI.js";
552
552
  import "../../chunk-5NT2M2JI.js";
553
553
  import "../../chunk-H2J2MTRE.js";
@@ -556,24 +556,28 @@ import "../../chunk-LTSVYILY.js";
556
556
  import "../../chunk-EMSMJRP3.js";
557
557
  import "../../chunk-4YYFZ6TE.js";
558
558
  import "../../chunk-CB6DTWD5.js";
559
- import "../../chunk-DY2I6LMX.js";
559
+ import "../../chunk-WGKLBVDZ.js";
560
560
  import {
561
561
  RegionMap
562
- } from "../../chunk-3CXRHRGE.js";
563
- import "../../chunk-G2NVBCF7.js";
562
+ } from "../../chunk-AYDVNXGR.js";
563
+ import "../../chunk-NWUMGE6T.js";
564
564
  import "../../chunk-BRZKOUEL.js";
565
565
  import "../../chunk-PBRCKHN3.js";
566
- import "../../chunk-E4MJA52O.js";
566
+ import "../../chunk-3V5V44UP.js";
567
+ import "../../chunk-J3AWGTJY.js";
568
+ import {
569
+ latLngAt,
570
+ scaleMetres
571
+ } from "../../chunk-DRYBA76G.js";
567
572
  import {
568
573
  boundsOfRings,
569
574
  regionMapView
570
- } from "../../chunk-FWAY2SAI.js";
575
+ } from "../../chunk-KAZWBDIH.js";
571
576
  import {
572
577
  decodePolyline,
573
578
  hitRegion,
574
579
  projectionAt
575
- } from "../../chunk-COOSJKZL.js";
576
- import "../../chunk-J3AWGTJY.js";
580
+ } from "../../chunk-MNJZPJ5S.js";
577
581
  import "../../chunk-PUFA7FQ7.js";
578
582
  import "../../chunk-ESOM4KVQ.js";
579
583
  import {
@@ -604,11 +608,11 @@ import {
604
608
  import "../../chunk-6OS4AKWT.js";
605
609
  import {
606
610
  HoverCard
607
- } from "../../chunk-RFMQBIE6.js";
611
+ } from "../../chunk-HBHBRRSW.js";
612
+ import "../../chunk-Z3USLQQT.js";
608
613
  import "../../chunk-NRIV2CQ2.js";
609
614
  import "../../chunk-ABF64CAQ.js";
610
615
  import "../../chunk-ZHV7TCAC.js";
611
- import "../../chunk-Z3USLQQT.js";
612
616
  import "../../chunk-TAF3YYMK.js";
613
617
  import {
614
618
  InteractiveTooltip
@@ -633,13 +637,13 @@ import {
633
637
  } from "../../chunk-B4OZU7J4.js";
634
638
  import "../../chunk-RUIV5TVA.js";
635
639
  import "../../chunk-KEPLO2AB.js";
636
- import "../../chunk-Z64TMGYT.js";
637
- import "../../chunk-6FDLBWTE.js";
638
640
  import {
639
641
  CarouselArrows,
640
642
  CarouselIndicators,
641
643
  CarouselThumbnails
642
644
  } from "../../chunk-GXYOBTOY.js";
645
+ import "../../chunk-Z64TMGYT.js";
646
+ import "../../chunk-6FDLBWTE.js";
643
647
  import "../../chunk-2GTORM5E.js";
644
648
  import {
645
649
  Chip
@@ -804,9 +808,9 @@ import {
804
808
  DataGrid
805
809
  } from "../../chunk-OA6T2ME3.js";
806
810
  import "../../chunk-5RYPVYWP.js";
811
+ import "../../chunk-K6FW4YDA.js";
807
812
  import "../../chunk-EARWC6PD.js";
808
813
  import "../../chunk-LDROG4QI.js";
809
- import "../../chunk-K6FW4YDA.js";
810
814
  import "../../chunk-G3E66C6J.js";
811
815
  import "../../chunk-M6K6PCOS.js";
812
816
  import {
@@ -814,18 +818,18 @@ import {
814
818
  } from "../../chunk-EZBBLLEU.js";
815
819
  import {
816
820
  DayRuler
817
- } from "../../chunk-DKPELKGL.js";
818
- import "../../chunk-U4Z6GZDW.js";
819
- import "../../chunk-MPVH2GM5.js";
821
+ } from "../../chunk-KV7LTOWC.js";
822
+ import "../../chunk-HN36UVOE.js";
823
+ import "../../chunk-RAQD5QCM.js";
820
824
  import "../../chunk-WSSD7H5E.js";
821
825
  import "../../chunk-F2ZUUEXC.js";
822
- import "../../chunk-KXDLLS62.js";
826
+ import "../../chunk-REHGWN5M.js";
823
827
  import "../../chunk-ZHCZOPKE.js";
824
- import "../../chunk-G6TKWNF2.js";
825
- import "../../chunk-5AZEDQXX.js";
826
- import "../../chunk-273OLFJD.js";
828
+ import "../../chunk-GZITNT7O.js";
827
829
  import "../../chunk-WG7CAT5D.js";
828
830
  import "../../chunk-L5CAHQIN.js";
831
+ import "../../chunk-5AZEDQXX.js";
832
+ import "../../chunk-273OLFJD.js";
829
833
  import "../../chunk-SJAOQGQI.js";
830
834
  import "../../chunk-35HMJQLO.js";
831
835
  import "../../chunk-YE44HUFF.js";
@@ -843,14 +847,15 @@ import {
843
847
  } from "../../chunk-LKTJ26ST.js";
844
848
  import "../../chunk-KLPTOVIX.js";
845
849
  import "../../chunk-MWFSIB6K.js";
846
- import "../../chunk-NUGT7LMR.js";
850
+ import "../../chunk-AG4F6NVT.js";
847
851
  import {
848
852
  Alert
849
- } from "../../chunk-NQCTANF3.js";
850
- import "../../chunk-L5RS6QAT.js";
851
- import "../../chunk-QXUXO22M.js";
852
- import "../../chunk-7HZ36QDH.js";
853
+ } from "../../chunk-Q5SCBQLY.js";
854
+ import "../../chunk-UN5WU2OX.js";
855
+ import "../../chunk-YBF2WUGQ.js";
853
856
  import "../../chunk-L7VH6IMR.js";
857
+ import "../../chunk-QXUXO22M.js";
858
+ import "../../chunk-LNZJJFZQ.js";
854
859
  import "../../chunk-2IBFEHIX.js";
855
860
  import {
856
861
  AlertDialog
@@ -868,9 +873,11 @@ import "../../chunk-3UIDKLML.js";
868
873
  import "../../chunk-PYC4CWCQ.js";
869
874
  import {
870
875
  Banner
871
- } from "../../chunk-Z4ZFJ565.js";
872
- import "../../chunk-QIP37Y2C.js";
873
- import "../../chunk-5ZY3IIIG.js";
876
+ } from "../../chunk-SRAIV6U6.js";
877
+ import "../../chunk-2RC6EAGD.js";
878
+ import {
879
+ POINTER_STATES
880
+ } from "../../chunk-TBQR5VCN.js";
874
881
  import "../../chunk-PGGGKYWG.js";
875
882
  import "../../chunk-YEKPQAOW.js";
876
883
  import "../../chunk-TB4UTV25.js";
@@ -885,17 +892,6 @@ import {
885
892
  import {
886
893
  Chart
887
894
  } from "../../chunk-HI7JPDD6.js";
888
- import "../../chunk-QADTI63U.js";
889
- import {
890
- ChartContainer,
891
- ChartLegend,
892
- ChartLegendContent,
893
- ChartTooltip,
894
- ChartTooltipContent
895
- } from "../../chunk-RIRTW5EU.js";
896
- import "../../chunk-TZC6KIK2.js";
897
- import "../../chunk-TCWISGSS.js";
898
- import "../../chunk-SOHQPPYJ.js";
899
895
  import {
900
896
  CHART_SEMANTIC_COLORS,
901
897
  ChartSpecError,
@@ -907,10 +903,21 @@ import {
907
903
  getRegisteredChartSpecTypes,
908
904
  registerChartSpecRenderer
909
905
  } from "../../chunk-WKUA6P3W.js";
906
+ import "../../chunk-QADTI63U.js";
907
+ import {
908
+ ChartContainer,
909
+ ChartLegend,
910
+ ChartLegendContent,
911
+ ChartTooltip,
912
+ ChartTooltipContent
913
+ } from "../../chunk-RIRTW5EU.js";
910
914
  import {
911
915
  chartValueFormatter,
912
916
  formatChartValue
913
917
  } from "../../chunk-6GPNZSAE.js";
918
+ import "../../chunk-TZC6KIK2.js";
919
+ import "../../chunk-TCWISGSS.js";
920
+ import "../../chunk-SOHQPPYJ.js";
914
921
  import "../../chunk-6GP2DOOO.js";
915
922
  import {
916
923
  Heading
@@ -984,6 +991,7 @@ import "../../chunk-YKCAJ2TN.js";
984
991
  import "../../chunk-MFU4Y25U.js";
985
992
  import "../../chunk-PZ5AY32C.js";
986
993
  export {
994
+ POINTER_STATES as ALERT_POINTER_STATES,
987
995
  Accordion,
988
996
  AccordionActions,
989
997
  AccordionDetails,
@@ -1187,6 +1195,7 @@ export {
1187
1195
  highlightOf,
1188
1196
  hitRegion,
1189
1197
  initialsOf,
1198
+ latLngAt,
1190
1199
  mapCentre,
1191
1200
  markDashboardSlot,
1192
1201
  nextSelection,
@@ -1199,6 +1208,7 @@ export {
1199
1208
  resetPwaInstallStash,
1200
1209
  resolveDayRange,
1201
1210
  rosterOrder,
1211
+ scaleMetres,
1202
1212
  sectionNavBarInset,
1203
1213
  specToChartProps,
1204
1214
  splitToFit,
package/dist/charts.js CHANGED
@@ -5,17 +5,6 @@ import {
5
5
  import {
6
6
  Chart
7
7
  } from "./chunk-HI7JPDD6.js";
8
- import "./chunk-QADTI63U.js";
9
- import {
10
- ChartContainer,
11
- ChartLegend,
12
- ChartLegendContent,
13
- ChartTooltip,
14
- ChartTooltipContent
15
- } from "./chunk-RIRTW5EU.js";
16
- import "./chunk-TZC6KIK2.js";
17
- import "./chunk-TCWISGSS.js";
18
- import "./chunk-SOHQPPYJ.js";
19
8
  import {
20
9
  CHART_SEMANTIC_COLORS,
21
10
  ChartSpecError,
@@ -27,10 +16,21 @@ import {
27
16
  getRegisteredChartSpecTypes,
28
17
  registerChartSpecRenderer
29
18
  } from "./chunk-WKUA6P3W.js";
19
+ import "./chunk-QADTI63U.js";
20
+ import {
21
+ ChartContainer,
22
+ ChartLegend,
23
+ ChartLegendContent,
24
+ ChartTooltip,
25
+ ChartTooltipContent
26
+ } from "./chunk-RIRTW5EU.js";
30
27
  import {
31
28
  chartValueFormatter,
32
29
  formatChartValue
33
30
  } from "./chunk-6GPNZSAE.js";
31
+ import "./chunk-TZC6KIK2.js";
32
+ import "./chunk-TCWISGSS.js";
33
+ import "./chunk-SOHQPPYJ.js";
34
34
  import "./chunk-B7ZHEOQQ.js";
35
35
  import "./chunk-BRHRK7BK.js";
36
36
  import "./chunk-25MSGLNU.js";
@@ -1,21 +1,21 @@
1
+ import {
2
+ StandaloneContainer,
3
+ useRowLayout
4
+ } from "./chunk-E6K2UZGR.js";
1
5
  import {
2
6
  DiscloseSlot,
3
7
  DragSlot,
4
8
  SelectSlot
5
9
  } from "./chunk-QO7UJXXO.js";
6
- import {
7
- useDisclosure
8
- } from "./chunk-2JCRNWHE.js";
9
- import {
10
- StandaloneContainer,
11
- useRowLayout
12
- } from "./chunk-E6K2UZGR.js";
13
10
  import {
14
11
  actionProps,
15
12
  metaShape,
16
13
  rowStyles,
17
14
  useRowShell
18
15
  } from "./chunk-UMOHHWXY.js";
16
+ import {
17
+ useDisclosure
18
+ } from "./chunk-2JCRNWHE.js";
19
19
  import {
20
20
  ListCardActions,
21
21
  ListCardCaption,
@@ -185,4 +185,4 @@ function BaseListCard(props) {
185
185
  export {
186
186
  BaseListCard
187
187
  };
188
- //# sourceMappingURL=chunk-WYNGH2WL.js.map
188
+ //# sourceMappingURL=chunk-255WTBZ5.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ACTIVE,
3
3
  HOVER
4
- } from "./chunk-5ZY3IIIG.js";
4
+ } from "./chunk-TBQR5VCN.js";
5
5
  import {
6
6
  modeInk
7
7
  } from "./chunk-XJAD6E3V.js";
@@ -140,4 +140,4 @@ export {
140
140
  bannerPointerStates,
141
141
  BANNER_TINT_S
142
142
  };
143
- //# sourceMappingURL=chunk-QIP37Y2C.js.map
143
+ //# sourceMappingURL=chunk-2RC6EAGD.js.map
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-4SQ2WCZA.js";
13
13
  import {
14
14
  Alert
15
- } from "./chunk-NQCTANF3.js";
15
+ } from "./chunk-Q5SCBQLY.js";
16
16
 
17
17
  // src/components/data-display/DataViews/data-views-table-parts.tsx
18
18
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -121,4 +121,4 @@ export {
121
121
  ViewsMenuSlot,
122
122
  ViewDialogs
123
123
  };
124
- //# sourceMappingURL=chunk-ZKVSFVIA.js.map
124
+ //# sourceMappingURL=chunk-37MJZLQU.js.map
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-2ORD2FMN.js";
18
18
  import {
19
19
  Alert
20
- } from "./chunk-NQCTANF3.js";
20
+ } from "./chunk-Q5SCBQLY.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-BQBEN44R.js.map
163
+ //# sourceMappingURL=chunk-3I7KE2N6.js.map
@@ -1,3 +1,7 @@
1
+ import {
2
+ progressLabelText,
3
+ resolveProgressProps
4
+ } from "./chunk-5JEOLUWJ.js";
1
5
  import {
2
6
  barEmphasisStyles,
3
7
  barVariantStyles,
@@ -6,10 +10,6 @@ import {
6
10
  getSizeStyles,
7
11
  pulseAnimation
8
12
  } from "./chunk-2L7GNARR.js";
9
- import {
10
- progressLabelText,
11
- resolveProgressProps
12
- } from "./chunk-5JEOLUWJ.js";
13
13
  import {
14
14
  rem,
15
15
  rems
@@ -246,4 +246,4 @@ Progress.displayName = "Progress";
246
246
  export {
247
247
  Progress
248
248
  };
249
- //# sourceMappingURL=chunk-L4FWEI2P.js.map
249
+ //# sourceMappingURL=chunk-3V3Z4EML.js.map
@@ -1,10 +1,14 @@
1
- import {
2
- labelPosition
3
- } from "./chunk-COOSJKZL.js";
4
1
  import {
5
2
  labelOrder,
6
3
  placeLabels
7
4
  } from "./chunk-J3AWGTJY.js";
5
+ import {
6
+ PinOverlay,
7
+ PinShapes
8
+ } from "./chunk-DRYBA76G.js";
9
+ import {
10
+ labelPosition
11
+ } from "./chunk-MNJZPJ5S.js";
8
12
  import {
9
13
  rem,
10
14
  remPx
@@ -16,23 +20,15 @@ import Typography from "@mui/material/Typography/index.js";
16
20
  import { alpha } from "@mui/material/styles/index.js";
17
21
  import React from "react";
18
22
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
19
- function RegionMapDrawing({
20
- model,
21
- overlay,
22
- showCenter,
23
- highlightedIds,
24
- maxHeight,
25
- label,
26
- tappable,
27
- testId,
28
- theme
29
- }) {
23
+ function RegionMapDrawing(props) {
24
+ const { model, overlay, showCenter, moving, highlightedIds, maxHeight, label, tappable, testId, theme } = props;
30
25
  const hatchId = `${React.useId().replace(/:/g, "")}-hatch`;
31
26
  const { view, drawn } = model;
32
27
  const wanted = new Set(highlightedIds);
33
28
  const highlighted = drawn.filter((d) => wanted.has(d.id));
34
29
  const labelled = labelOrder(drawn.filter((d) => d.excluded || wanted.has(d.id)), wanted);
35
30
  const boxRef = React.useRef(null);
31
+ const svgRef = React.useRef(null);
36
32
  useLabelPlacement(boxRef, labelled.map((d) => d.id).join("|"), remPx(theme, 4));
37
33
  const base = drawn.map((d) => ({ id: d.id, name: d.name, geometry: d.geometry, outside: d.outside === true }));
38
34
  return /* @__PURE__ */ jsxs(
@@ -56,6 +52,7 @@ function RegionMapDrawing({
56
52
  /* @__PURE__ */ jsxs(
57
53
  "svg",
58
54
  {
55
+ ref: svgRef,
59
56
  viewBox: `${view.minX} ${view.minY} ${view.spanX} ${view.spanY}`,
60
57
  role: "img",
61
58
  "aria-label": label,
@@ -69,9 +66,9 @@ function RegionMapDrawing({
69
66
  overlay && model.projection && // `pointer-events` is inherited in SVG: nothing the host draws here
70
67
  // takes a tap from the areas beneath.
71
68
  /* @__PURE__ */ jsx("g", { pointerEvents: "none", "data-testid": `${testId}-overlay`, children: overlay({ view, projection: model.projection }) }),
72
- /* @__PURE__ */ jsx(Circles, { radii: model.radii, theme }),
69
+ /* @__PURE__ */ jsx(PinShapes, { model, moving, testId, theme, fallback: /* @__PURE__ */ jsx(Circles, { radii: model.radii, theme }) }),
73
70
  /* @__PURE__ */ jsx(Highlights, { areas: highlighted, testId, theme }),
74
- showCenter && /* @__PURE__ */ jsx(
71
+ showCenter && !moving?.pin && /* @__PURE__ */ jsx(
75
72
  "circle",
76
73
  {
77
74
  cx: 0,
@@ -88,7 +85,8 @@ function RegionMapDrawing({
88
85
  ]
89
86
  }
90
87
  ),
91
- labelled.map((d) => /* @__PURE__ */ jsx(AreaLabel, { area: d, view, testId, theme }, `l-${d.id}`))
88
+ labelled.map((d) => /* @__PURE__ */ jsx(AreaLabel, { area: d, view, testId, theme }, `l-${d.id}`)),
89
+ /* @__PURE__ */ jsx(PinOverlay, { model, moving, svgRef, testId, theme })
92
90
  ]
93
91
  }
94
92
  );
@@ -256,4 +254,4 @@ function AreaLabel({
256
254
  export {
257
255
  RegionMapDrawing
258
256
  };
259
- //# sourceMappingURL=chunk-E4MJA52O.js.map
257
+ //# sourceMappingURL=chunk-3V5V44UP.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';\nimport type { Moving } from './RegionMapPin';\nimport { PinOverlay, PinShapes } from './RegionMapPin';\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 /** The movable centre and what is drawn with it (`RegionMapProps.pin`, `ghost`, `dots`). */\n moving?: Moving;\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(props: RegionMapDrawingProps): React.JSX.Element {\n const { model, overlay, showCenter, moving, highlightedIds, maxHeight, label, tappable, testId, theme } = props;\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 const svgRef = React.useRef<SVGSVGElement>(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 ref={svgRef}\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 <PinShapes model={model} moving={moving} testId={testId} theme={theme} fallback={<Circles radii={model.radii} theme={theme} />} />\n <Highlights areas={highlighted} testId={testId} theme={theme} />\n {showCenter && !moving?.pin && (\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 <PinOverlay model={model} moving={moving} svgRef={svgRef} testId={testId} theme={theme} />\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":";;;;;;;;;;;;;;;;;AAAA,OAAO,SAAS;AAChB,OAAO,gBAAgB;AACvB,SAAS,aAAyB;AAClC,OAAO,WAAW;AAkEZ,SAsDF,UA7CI,KATF;AA9BC,SAAS,iBAAiB,OAAiD;AAChF,QAAM,EAAE,OAAO,SAAS,YAAY,QAAQ,gBAAgB,WAAW,OAAO,UAAU,QAAQ,MAAM,IAAI;AAC1G,QAAM,UAAU,GAAG,MAAM,MAAM,EAAE,QAAQ,MAAM,EAAE,CAAC;AAClD,QAAM,EAAE,MAAM,MAAM,IAAI;AACxB,QAAM,SAAS,IAAI,IAAI,cAAc;AACrC,QAAM,cAAc,MAAM,OAAO,CAAC,MAAM,OAAO,IAAI,EAAE,EAAE,CAAC;AAGxD,QAAM,WAAW,WAAW,MAAM,OAAO,CAAC,MAAM,EAAE,YAAY,OAAO,IAAI,EAAE,EAAE,CAAC,GAAG,MAAM;AACvF,QAAM,SAAS,MAAM,OAAuB,IAAI;AAChD,QAAM,SAAS,MAAM,OAAsB,IAAI;AAC/C,oBAAkB,QAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,GAAG,GAAG,MAAM,OAAO,CAAC,CAAC;AAC9E,QAAM,OAAO,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,MAAM,UAAU,EAAE,UAAU,SAAS,EAAE,YAAY,KAAK,EAAE;AAC7G,SACE;AAAA,IAAC;AAAA;AAAA,MACC,IAAI;AAAA,QACF,UAAU;AAAA,QACV,OAAO;AAAA,QACP,UAAU;AAAA,QACV;AAAA,QACA,aAAa;AAAA,QACb,QAAQ;AAAA,QACR,aAAa;AAAA,QACb,cAAc;AAAA,QACd,UAAU;AAAA,QACV,SAAS;AAAA,MACX;AAAA,MACA,eAAa,GAAG,MAAM;AAAA,MACtB,KAAK;AAAA,MAEL;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,KAAK;AAAA,YACL,SAAS,GAAG,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK;AAAA,YAC9D,MAAK;AAAA,YACL,cAAY;AAAA,YACZ,eAAe,MAAM;AAAA,YACrB,SAAS,MAAM;AAAA,YACf,OAAO,EAAE,SAAS,SAAS,OAAO,QAAQ,QAAQ,QAAQ,QAAQ,WAAW,YAAY,UAAU;AAAA,YAEnG;AAAA,kCAAC,SAAM,IAAI,SAAS,OAAO,KAAK,QAAQ,IAAI,OAAc;AAAA,cAC1D,oBAAC,aAAU,OAAO,MAAM,QAAgB,OAAc;AAAA,cACtD,oBAAC,iBAAc,OAAc,SAAkB,QAAgB,OAAc;AAAA,cAC5E,WAAW,MAAM;AAAA;AAAA,cAGhB,oBAAC,OAAE,eAAc,QAAO,eAAa,GAAG,MAAM,YAC3C,kBAAQ,EAAE,MAAM,YAAY,MAAM,WAAW,CAAC,GACjD;AAAA,cAEF,oBAAC,aAAU,OAAc,QAAgB,QAAgB,OAAc,UAAU,oBAAC,WAAQ,OAAO,MAAM,OAAO,OAAc,GAAI;AAAA,cAChI,oBAAC,cAAW,OAAO,aAAa,QAAgB,OAAc;AAAA,cAC7D,cAAc,CAAC,QAAQ,OACtB;AAAA,gBAAC;AAAA;AAAA,kBACC,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,GAAG,KAAK,QAAQ;AAAA,kBAChB,MAAM,MAAM,QAAQ,QAAQ;AAAA,kBAC5B,QAAQ,MAAM,QAAQ,WAAW;AAAA,kBACjC,aAAa;AAAA,kBACb,cAAa;AAAA,kBACb,eAAc;AAAA,kBACd,eAAa,GAAG,MAAM;AAAA;AAAA,cACxB;AAAA;AAAA;AAAA,QAEJ;AAAA,QACC,SAAS,IAAI,CAAC,MACb,oBAAC,aAA4B,MAAM,GAAG,MAAY,QAAgB,SAAlD,KAAK,EAAE,EAAE,EAAuD,CACjF;AAAA,QACD,oBAAC,cAAW,OAAc,QAAgB,QAAgB,QAAgB,OAAc;AAAA;AAAA;AAAA,EAC1F;AAEJ;AAGA,SAAS,WAAW;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AACF,GAIsB;AACpB,SACE,gCACG,gBAAM,IAAI,CAAC,MACV;AAAA,IAAC;AAAA;AAAA,MAEC,GAAG,EAAE,SAAS;AAAA,MACd,UAAS;AAAA,MACT,cAAa;AAAA,MACb,MAAM,MAAM,MAAM,QAAQ,QAAQ,MAAM,GAAG;AAAA,MAC3C,QAAQ,MAAM,QAAQ,QAAQ;AAAA,MAC9B,aAAa;AAAA,MACb,eAAc;AAAA,MACd,eAAa,GAAG,MAAM,cAAc,EAAE,EAAE;AAAA;AAAA,IARnC,KAAK,EAAE,EAAE;AAAA,EAShB,CACD,GACH;AAEJ;AAGA,SAAS,MAAM,EAAE,IAAI,OAAO,MAAM,GAAmE;AACnG,SACE,oBAAC,UACC,+BAAC,aAAQ,IAAQ,OAAO,OAAO,QAAQ,OAAO,cAAa,kBAAiB,kBAAiB,cAC3F;AAAA,wBAAC,UAAK,OAAO,OAAO,QAAQ,OAAO,MAAM,MAAM,MAAM,QAAQ,KAAK,SAAS,GAAG,GAAG;AAAA,IACjF,oBAAC,UAAK,OAAO,QAAQ,GAAG,QAAQ,OAAO,MAAM,MAAM,QAAQ,KAAK,WAAW;AAAA,KAC7E,GACF;AAEJ;AAgBA,SAAS,SAAS,GAAmB,GAA4B;AAC/D,MAAI,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,EAAE,MAAM,OAAQ,QAAO;AAC9F,SAAO,EAAE,MAAM,MAAM,CAAC,MAAM,MAAM;AAChC,UAAM,QAAQ,EAAE,MAAM,CAAC;AACvB,WACE,KAAK,OAAO,MAAM,MAClB,KAAK,aAAa,MAAM,YACxB,KAAK,YAAY,MAAM,WACvB,KAAK,SAAS,MAAM;AAAA,EAExB,CAAC;AACH;AAGA,IAAM,YAAY,MAAM,KAAK,SAASA,WAAU,EAAE,OAAO,QAAQ,MAAM,GAAsC;AAC3G,QAAM,EAAE,QAAQ,IAAI;AACpB,SACE,gCACG,gBAAM,IAAI,CAAC,MACV;AAAA,IAAC;AAAA;AAAA,MAEC,GAAG,EAAE,SAAS;AAAA,MACd,UAAS;AAAA,MACT,cAAa;AAAA,MACb,MAAM,EAAE,UAAU,QAAQ,WAAW,QAAQ,QAAQ,OAAO;AAAA,MAC5D,QAAQ,QAAQ;AAAA,MAChB,aAAa;AAAA,MACb,kBAAgB,EAAE;AAAA,MAClB,eAAa,GAAG,MAAM,SAAS,EAAE,EAAE;AAAA,MAEnC,8BAAC,WAAO,YAAE,MAAK;AAAA;AAAA,IAVV,EAAE;AAAA,EAWT,CACD,GACH;AAEJ,GAAG,QAAQ;AAGX,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKsB;AACpB,SACE,gCACG,gBACE,OAAO,CAAC,MAAM,EAAE,QAAQ,EACxB,IAAI,CAAC,MACJ;AAAA,IAAC;AAAA;AAAA,MAEC,GAAG,EAAE,SAAS;AAAA,MACd,UAAS;AAAA,MACT,cAAa;AAAA,MACb,MAAM,QAAQ,OAAO;AAAA,MACrB,QAAQ,MAAM,QAAQ,KAAK;AAAA,MAC3B,aAAa;AAAA,MACb,eAAc;AAAA,MACd,eAAa,GAAG,MAAM,aAAa,EAAE,EAAE;AAAA;AAAA,IARlC,KAAK,EAAE,EAAE;AAAA,EAShB,CACD,GACL;AAEJ;AAGA,SAAS,QAAQ,EAAE,OAAO,MAAM,GAAkE;AAChG,SACE,gCACG,gBAAM,IAAI,CAAC,WACV;AAAA,IAAC;AAAA;AAAA,MAEC,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,GAAG;AAAA,MACH,MAAK;AAAA,MACL,QAAQ,MAAM,QAAQ,KAAK;AAAA,MAC3B,aAAa;AAAA,MACb,iBAAgB;AAAA,MAChB,cAAa;AAAA,MACb,eAAc;AAAA;AAAA,IATT;AAAA,EAUP,CACD,GACH;AAEJ;AASA,SAAS,kBAAkB,QAAgD,KAAa,KAAmB;AACzG,QAAM,UAAU,MAAM;AACpB,UAAM,MAAM,OAAO;AACnB,QAAI,CAAC,OAAO,OAAO,mBAAmB,YAAa,QAAO;AAC1D,UAAM,SAAS,MAAM,KAAK,IAAI,iBAA8B,qBAAqB,CAAC;AAClF,UAAM,QAAQ,MAAY;AACxB,YAAM,QAAQ,IAAI;AAClB,YAAM,QAAQ,IAAI;AAClB,UAAI,UAAU,KAAK,UAAU,EAAG;AAChC,YAAM,SAAS;AAAA,QACb,OAAO,IAAI,CAAC,WAAW;AAAA,UACrB,WAAW,OAAO,MAAM,QAAQ,SAAS;AAAA,UACzC,WAAW,OAAO,MAAM,QAAQ,SAAS;AAAA,UACzC,OAAO,MAAM;AAAA,UACb,OAAO,MAAM;AAAA,QACf,EAAE;AAAA,QACF,EAAE,OAAO,MAAM;AAAA,QACf;AAAA,MACF;AACA,aAAO,QAAQ,CAAC,EAAE,GAAG,GAAG,QAAQ,GAAG,UAAU;AAC3C,cAAM,QAAQ,OAAO,KAAK;AAC1B,cAAM,MAAM,OAAO,GAAI,IAAI,QAAS,GAAG;AACvC,cAAM,MAAM,MAAM,GAAI,IAAI,QAAS,GAAG;AACtC,cAAM,MAAM,aAAa,UAAU,YAAY;AAC/C,cAAM,QAAQ,SAAS,UAAU,UAAU;AAAA,MAC7C,CAAC;AAAA,IACH;AACA,UAAM,WAAW,IAAI,eAAe,KAAK;AACzC,aAAS,QAAQ,GAAG;AACpB,eAAW,SAAS,OAAQ,UAAS,QAAQ,KAAK;AAClD,WAAO,MAAM,SAAS,WAAW;AAAA,EACnC,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC;AACvB;AAQA,SAAS,UAAU;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAKsB;AACpB,QAAM,KAAK,cAAc,KAAK,SAAS,OAAO,IAAI;AAClD,QAAM,OAAO,OAAO,IAAI,OAAO,CAAC,CAAC,IAAI,MAAM,QAAQ,WAAW,KAAK;AACnE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,eAAW;AAAA,MACX,eAAa,GAAG,MAAM,UAAU,KAAK,EAAE;AAAA,MACvC,qBAAkB;AAAA,MAClB,mBAAiB,GAAG;AAAA,MACpB,mBAAiB,GAAG;AAAA,MAGpB,OAAO;AAAA,QACL,MAAM,IAAI,GAAG,YAAY,KAAK,QAAQ,CAAC,CAAC;AAAA,QACxC,KAAK,IAAI,GAAG,YAAY,KAAK,QAAQ,CAAC,CAAC;AAAA,MACzC;AAAA,MACA,IAAI;AAAA,QACF,UAAU;AAAA,QACV,WAAW;AAAA,QACX,UAAU,IAAI,OAAO,EAAE;AAAA,QACvB,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,WAAW;AAAA,QACX,UAAU;AAAA,QACV,OAAO;AAAA,QACP,eAAe;AAAA,QACf,YAAY,GAAG,IAAI,KAAK,IAAI;AAAA,MAC9B;AAAA,MAEC,eAAK;AAAA;AAAA,EACR;AAEJ;","names":["BaseAreas"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  FleetBody
3
- } from "./chunk-FRQGZIYU.js";
3
+ } from "./chunk-6WAP7BJS.js";
4
4
  import {
5
5
  FLEET_DEFAULT_LAGGING_AFTER_SECONDS,
6
6
  FLEET_DEFAULT_STALE_AFTER_SECONDS,
@@ -117,4 +117,4 @@ export {
117
117
  FleetMap,
118
118
  FleetMap_default
119
119
  };
120
- //# sourceMappingURL=chunk-6RYSSNOO.js.map
120
+ //# sourceMappingURL=chunk-54DOLCJ3.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SequenceHeader
3
- } from "./chunk-JO6D7YGN.js";
3
+ } from "./chunk-CWRQGA2T.js";
4
4
  import {
5
5
  chromeSx,
6
6
  columnSx,
@@ -60,4 +60,4 @@ function ResolverFrame(props) {
60
60
  export {
61
61
  ResolverFrame
62
62
  };
63
- //# sourceMappingURL=chunk-74IH3ZGD.js.map
63
+ //# sourceMappingURL=chunk-643YFWNK.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  FleetCanvas
3
- } from "./chunk-UC7DLGMP.js";
3
+ } from "./chunk-KVP5A3YK.js";
4
4
  import {
5
5
  FleetRoster
6
6
  } from "./chunk-A4B27HYU.js";
@@ -79,4 +79,4 @@ function FleetBody({
79
79
  export {
80
80
  FleetBody
81
81
  };
82
- //# sourceMappingURL=chunk-FRQGZIYU.js.map
82
+ //# sourceMappingURL=chunk-6WAP7BJS.js.map
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-AG4F6NVT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useRegionMap
3
- } from "./chunk-G2NVBCF7.js";
3
+ } from "./chunk-NWUMGE6T.js";
4
4
  import {
5
5
  RegionMapList
6
6
  } from "./chunk-BRZKOUEL.js";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-PBRCKHN3.js";
10
10
  import {
11
11
  RegionMapDrawing
12
- } from "./chunk-E4MJA52O.js";
12
+ } from "./chunk-3V5V44UP.js";
13
13
 
14
14
  // src/components/data-display/RegionMap/RegionMap.tsx
15
15
  import Box from "@mui/material/Box/index.js";
@@ -20,6 +20,9 @@ function RegionMap({
20
20
  regions,
21
21
  center,
22
22
  circles,
23
+ pin,
24
+ ghost,
25
+ dots,
23
26
  reach,
24
27
  overlay,
25
28
  onToggle,
@@ -43,6 +46,7 @@ function RegionMap({
43
46
  model: { ...model, view },
44
47
  overlay,
45
48
  showCenter: center !== null,
49
+ moving: center === null ? void 0 : { center, pin, ghost, dots, copy },
46
50
  highlightedIds,
47
51
  maxHeight,
48
52
  label: copy.mapLabel,
@@ -80,4 +84,4 @@ function RegionMap({
80
84
  export {
81
85
  RegionMap
82
86
  };
83
- //# sourceMappingURL=chunk-3CXRHRGE.js.map
87
+ //# sourceMappingURL=chunk-AYDVNXGR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/RegionMap/RegionMap.tsx"],"sourcesContent":["import Box from '@mui/material/Box/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport React from 'react';\n\nimport { useRegionMap } from './RegionMap.hooks';\nimport type { RegionMapProps } from './RegionMap.types';\nimport { RegionMapDrawing } from './RegionMapDrawing';\nimport { RegionMapLegend } from './RegionMapLegend';\nimport { RegionMapList } from './RegionMapList';\n\n/** One empty list, so the default does not change identity per render. */\nconst NO_IDS: readonly string[] = [];\n\n/**\n * A hand-drawn map of named areas around a centre; a tap toggles an area.\n *\n * Drawn as inline SVG over a plain background — no tile server, no API key,\n * nothing fetched — because the question it answers is \"which of THESE areas\",\n * not \"what is the street called\". Four choices shape it:\n *\n * - **The list is the accessible way in.** The drawing is one `role=\"img\"`\n * with a name; its areas are not tab stops (dozens of them, many too small to\n * tap on a phone). Every area is also a toggle button in the list beneath,\n * with `aria-pressed`, which is what a keyboard and a screen reader use —\n * and what reaches a sliver no finger can.\n * - **Excluded is hatched AND named, never only coloured,** and never in the\n * error colour: leaving an area out is a choice, not a failure.\n * - **The hit test is ours, not only the browser's.** A mouse click on a path\n * is that path. A finger's tap takes the SMALLEST area within a few pixels'\n * worth of metres (`hitRegion`), so a sliver beside a big area can be hit\n * from the map; one too thin even for that is still on the list.\n * - **The host can draw inside it.** `reach` widens the view past the largest\n * circle and `overlay` draws a layer in the SVG at the map's own projection,\n * tap-transparent; `regionMapView` gives the same view to HTML laid over it.\n * - **A toggle is cheap.** Geometry is projected once per `rings` identity,\n * and the base layer is memoised, so a tap re-renders the hatch and labels.\n */\nexport function RegionMap({\n regions,\n center,\n circles,\n pin,\n ghost,\n dots,\n reach,\n overlay,\n onToggle,\n highlightedIds = NO_IDS,\n copy,\n listMode = 'collapsed',\n listSort = 'given',\n maxHeight,\n className,\n dataTestId = 'region-map',\n}: RegionMapProps): React.JSX.Element | null {\n const theme = useTheme();\n const model = useRegionMap({ regions, center, circles, reach, onToggle });\n const { view } = model;\n if (view === null && regions.length === 0) return null;\n return (\n <Box className={className} data-testid={dataTestId}>\n {view && (\n <>\n <RegionMapDrawing\n model={{ ...model, view }}\n overlay={overlay}\n showCenter={center !== null}\n moving={center === null ? undefined : { center, pin, ghost, dots, copy }}\n highlightedIds={highlightedIds}\n maxHeight={maxHeight}\n label={copy.mapLabel}\n tappable={onToggle !== undefined}\n testId={dataTestId}\n theme={theme}\n />\n <RegionMapLegend\n copy={copy}\n outermostMetres={model.outermostMetres}\n showCenter={center !== null}\n theme={theme}\n testId={dataTestId}\n />\n </>\n )}\n {listMode !== 'none' && (\n <RegionMapList\n regions={regions}\n copy={copy}\n mode={listMode}\n sort={listSort}\n onToggle={onToggle}\n testId={dataTestId}\n theme={theme}\n />\n )}\n </Box>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,OAAO,SAAS;AAChB,SAAS,gBAAgB;AA6DjB,mBACE,KADF;AAnDR,IAAM,SAA4B,CAAC;AA0B5B,SAAS,UAAU;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA,WAAW;AAAA,EACX,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA,aAAa;AACf,GAA6C;AAC3C,QAAM,QAAQ,SAAS;AACvB,QAAM,QAAQ,aAAa,EAAE,SAAS,QAAQ,SAAS,OAAO,SAAS,CAAC;AACxE,QAAM,EAAE,KAAK,IAAI;AACjB,MAAI,SAAS,QAAQ,QAAQ,WAAW,EAAG,QAAO;AAClD,SACE,qBAAC,OAAI,WAAsB,eAAa,YACrC;AAAA,YACC,iCACE;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,OAAO,EAAE,GAAG,OAAO,KAAK;AAAA,UACxB;AAAA,UACA,YAAY,WAAW;AAAA,UACvB,QAAQ,WAAW,OAAO,SAAY,EAAE,QAAQ,KAAK,OAAO,MAAM,KAAK;AAAA,UACvE;AAAA,UACA;AAAA,UACA,OAAO,KAAK;AAAA,UACZ,UAAU,aAAa;AAAA,UACvB,QAAQ;AAAA,UACR;AAAA;AAAA,MACF;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,iBAAiB,MAAM;AAAA,UACvB,YAAY,WAAW;AAAA,UACvB;AAAA,UACA,QAAQ;AAAA;AAAA,MACV;AAAA,OACF;AAAA,IAED,aAAa,UACZ;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN,MAAM;AAAA,QACN;AAAA,QACA,QAAQ;AAAA,QACR;AAAA;AAAA,IACF;AAAA,KAEJ;AAEJ;","names":[]}