@12-apps/ui 6.89.2 → 6.91.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 (390) hide show
  1. package/components-catalog.md +2 -2
  2. package/dist/_internal/components/data-display/Alert/Alert.js +3 -3
  3. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +3 -3
  4. package/dist/_internal/components/data-display/Avatar/Avatar.js +3 -3
  5. package/dist/_internal/components/data-display/Avatar/Avatar.view.js +2 -2
  6. package/dist/_internal/components/data-display/CardKit/card-actions-context.js +4 -4
  7. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +5 -5
  8. package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +4 -3
  9. package/dist/_internal/components/data-display/Carousel/Carousel.js +5 -4
  10. package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +3 -2
  11. package/dist/_internal/components/data-display/Chart/Chart.js +5 -5
  12. package/dist/_internal/components/data-display/Chart/SpecChart.js +8 -8
  13. package/dist/_internal/components/data-display/Chart/chart-context.js +2 -2
  14. package/dist/_internal/components/data-display/Chart/chart-renderers.js +4 -4
  15. package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
  16. package/dist/_internal/components/data-display/Chip/Chip.js +3 -3
  17. package/dist/_internal/components/data-display/Chip/Chip.styles.js +2 -2
  18. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
  19. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +56 -31
  20. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +64 -39
  21. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +6 -6
  22. package/dist/_internal/components/data-display/DataViews/base-list-card-layout.js +7 -7
  23. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +5 -5
  24. package/dist/_internal/components/data-display/DataViews/base-list-card.js +9 -9
  25. package/dist/_internal/components/data-display/DataViews/data-views-bar-controls.js +5 -3
  26. package/dist/_internal/components/data-display/DataViews/data-views-day-input.js +1 -1
  27. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +31 -6
  28. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +8 -8
  29. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +53 -28
  30. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +36 -11
  31. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +32 -7
  32. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +33 -8
  33. package/dist/_internal/components/data-display/DataViews/data-views-number-input.js +1 -1
  34. package/dist/_internal/components/data-display/DataViews/data-views-preset-chips.js +10 -3
  35. package/dist/_internal/components/data-display/DataViews/data-views-range-bounds.js +47 -0
  36. package/dist/_internal/components/data-display/DataViews/data-views-range-calendar.js +36 -0
  37. package/dist/_internal/components/data-display/DataViews/data-views-range-calendar.js.map +1 -0
  38. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +32 -6
  39. package/dist/_internal/components/data-display/DataViews/data-views-range-summary.js +12 -0
  40. package/dist/_internal/components/data-display/DataViews/data-views-range-summary.js.map +1 -0
  41. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +3 -3
  42. package/dist/_internal/components/data-display/DataViews/data-views-still-anchor.js +9 -0
  43. package/dist/_internal/components/data-display/DataViews/data-views-still-anchor.js.map +1 -0
  44. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +5 -5
  45. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +2 -2
  46. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +4 -4
  47. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +2 -2
  48. package/dist/_internal/components/data-display/EmptyState/EmptyState.js +2 -2
  49. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +13 -12
  50. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +12 -11
  51. package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js +2 -1
  52. package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js.map +1 -1
  53. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +15 -15
  54. package/dist/_internal/components/data-display/InteractiveTooltip/InteractiveTooltip.js +2 -2
  55. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +7 -7
  56. package/dist/_internal/components/data-display/Lightbox/LightboxControls.js +2 -2
  57. package/dist/_internal/components/data-display/Lightbox/LightboxOverlay.js +3 -3
  58. package/dist/_internal/components/data-display/Lightbox/LightboxThumbnails.js +2 -2
  59. package/dist/_internal/components/data-display/MapPreview/MapControlBar.js +4 -3
  60. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +6 -5
  61. package/dist/_internal/components/data-display/MapPreview/MapMarkers.js +5 -4
  62. package/dist/_internal/components/data-display/MapPreview/MapPreview.helpers.js +3 -2
  63. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +11 -10
  64. package/dist/_internal/components/data-display/RegionMap/RegionMap.hooks.js +2 -1
  65. package/dist/_internal/components/data-display/RegionMap/RegionMap.js +4 -3
  66. package/dist/_internal/components/data-display/RegionMap/RegionMap.view.js +19 -0
  67. package/dist/_internal/components/data-display/RegionMap/RegionMap.view.js.map +1 -0
  68. package/dist/_internal/components/data-display/RegionMap/RegionMapDrawing.js +1 -1
  69. package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +3 -3
  70. package/dist/_internal/components/data-display/index.js +67 -61
  71. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +4 -4
  72. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.js +6 -6
  73. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.overview.js +5 -5
  74. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.parts.js +4 -4
  75. package/dist/_internal/components/feedback/index.js +7 -7
  76. package/dist/_internal/components/form/Calendar/Calendar.js +5 -5
  77. package/dist/_internal/components/form/Calendar/CalendarDay.js +1 -1
  78. package/dist/_internal/components/form/Calendar/CalendarDayCell.js +2 -2
  79. package/dist/_internal/components/form/Calendar/CalendarMonth.js +3 -3
  80. package/dist/_internal/components/form/Calendar/CalendarSelectorsMonth.js +4 -4
  81. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.hooks.js +3 -3
  82. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +10 -10
  83. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.range.js +2 -2
  84. package/dist/_internal/components/form/DateRangePicker/DateRangePickerFields.js +3 -3
  85. package/dist/_internal/components/form/index.js +24 -24
  86. package/dist/_internal/components/index.js +102 -96
  87. package/dist/_internal/components/layout/SettingCard/SettingCard.js +8 -8
  88. package/dist/_internal/components/layout/SettingCard/SettingCard.parts.js +4 -4
  89. package/dist/_internal/components/layout/SettingCard/SettingCard.summary.js +7 -7
  90. package/dist/_internal/components/layout/SettingCard/SettingGrid.js +5 -5
  91. package/dist/_internal/components/layout/SettingCard/SettingGroup.js +9 -9
  92. package/dist/_internal/components/layout/SettingCard/SettingSwitch.js +8 -8
  93. package/dist/_internal/components/layout/SettingCard/SettingToggle.js +9 -9
  94. package/dist/_internal/components/layout/index.js +12 -12
  95. package/dist/_internal/en-US.data-display.js +2 -1
  96. package/dist/_internal/pt-BR.data-display.js +2 -1
  97. package/dist/_internal/user-avatar/user-avatar.js +4 -4
  98. package/dist/charts.js +11 -11
  99. package/dist/{chunk-FJ3UZ4RC.js → chunk-2FKWKLSC.js} +5 -3
  100. package/dist/chunk-2FKWKLSC.js.map +1 -0
  101. package/dist/{chunk-K2VDRODL.js → chunk-3IDL7NK7.js} +2 -2
  102. package/dist/{chunk-6ATXOJVQ.js → chunk-3JZ3KEQQ.js} +4 -4
  103. package/dist/{chunk-XHIBFBNP.js → chunk-3ZRK3BRN.js} +4 -2
  104. package/dist/chunk-3ZRK3BRN.js.map +1 -0
  105. package/dist/{chunk-EOIRU62W.js → chunk-42D7KBDH.js} +2 -2
  106. package/dist/{chunk-LXIPBHNJ.js → chunk-42TOCPXB.js} +5 -5
  107. package/dist/{chunk-WAO7UQRS.js → chunk-4KWDNGMA.js} +3 -3
  108. package/dist/{chunk-X5OGIT2F.js → chunk-4L54KUZV.js} +22 -4
  109. package/dist/chunk-4L54KUZV.js.map +1 -0
  110. package/dist/{chunk-JIEVKHOH.js → chunk-4QR7LM5F.js} +2 -2
  111. package/dist/{chunk-WJMSND5Q.js → chunk-5E2CRRD4.js} +5 -5
  112. package/dist/{chunk-ZDAAHCIS.js → chunk-5HADIIWN.js} +3 -3
  113. package/dist/{chunk-BP3ZKIPE.js → chunk-64UNVW6D.js} +4 -4
  114. package/dist/{chunk-TRYR424I.js → chunk-6LOWZCH7.js} +15 -1
  115. package/dist/chunk-6LOWZCH7.js.map +1 -0
  116. package/dist/{chunk-6WHIJPEF.js → chunk-6PU5P7QT.js} +2 -2
  117. package/dist/{chunk-7F6D73NL.js → chunk-76DX2IMH.js} +2 -2
  118. package/dist/chunk-7CUZTWKW.js +52 -0
  119. package/dist/chunk-7CUZTWKW.js.map +1 -0
  120. package/dist/{chunk-5RSK5M6M.js → chunk-7NP2JHGM.js} +63 -126
  121. package/dist/chunk-7NP2JHGM.js.map +1 -0
  122. package/dist/{chunk-YNZUYZ2O.js → chunk-A3DDEKLV.js} +2 -2
  123. package/dist/{chunk-FEKWKWGK.js → chunk-ARGVUTTL.js} +15 -1
  124. package/dist/chunk-ARGVUTTL.js.map +1 -0
  125. package/dist/{chunk-BMTIBQQC.js → chunk-BBBHPK2Q.js} +6 -6
  126. package/dist/{chunk-DYHOBKPU.js → chunk-BLZDSCIZ.js} +6 -6
  127. package/dist/{chunk-EUR2ORTN.js → chunk-CSJ7WNXU.js} +2 -2
  128. package/dist/{chunk-OWRQOYUE.js → chunk-DA3D5X5Z.js} +5 -5
  129. package/dist/{chunk-LV6AD6XC.js → chunk-DBI6AMNY.js} +4 -4
  130. package/dist/{chunk-3YFDGFEK.js → chunk-DVX4HDNP.js} +2 -2
  131. package/dist/chunk-DY2I6LMX.js +1 -0
  132. package/dist/chunk-DY2I6LMX.js.map +1 -0
  133. package/dist/{chunk-QKOJ4637.js → chunk-E6K2UZGR.js} +3 -3
  134. package/dist/{chunk-7XSCEHGA.js → chunk-EOQ6EKTS.js} +7 -7
  135. package/dist/chunk-FORAVDJF.js +164 -0
  136. package/dist/chunk-FORAVDJF.js.map +1 -0
  137. package/dist/chunk-FWAY2SAI.js +72 -0
  138. package/dist/chunk-FWAY2SAI.js.map +1 -0
  139. package/dist/{chunk-Q2ERGAQO.js → chunk-FYAW5GBF.js} +33 -6
  140. package/dist/chunk-FYAW5GBF.js.map +1 -0
  141. package/dist/{chunk-GMRQPNG3.js → chunk-G2NVBCF7.js} +20 -25
  142. package/dist/chunk-G2NVBCF7.js.map +1 -0
  143. package/dist/{chunk-Z5WUSI47.js → chunk-G3JFESKD.js} +6 -6
  144. package/dist/{chunk-3EIRRLCQ.js → chunk-HC6OZ7QK.js} +2 -2
  145. package/dist/{chunk-SKIAWOUC.js → chunk-HOPRZEBM.js} +3 -3
  146. package/dist/{chunk-OBA75Y5O.js → chunk-HS662RLW.js} +61 -33
  147. package/dist/chunk-HS662RLW.js.map +1 -0
  148. package/dist/{chunk-O63ZROSY.js → chunk-IWSTMVCA.js} +7 -7
  149. package/dist/chunk-J2AVWIMM.js +60 -0
  150. package/dist/chunk-J2AVWIMM.js.map +1 -0
  151. package/dist/{chunk-7QKIL5YF.js → chunk-J2GDA64N.js} +4 -4
  152. package/dist/{chunk-TZC6KIK2.js → chunk-JG733RMP.js} +5 -5
  153. package/dist/{chunk-CW5Z67NA.js → chunk-JH2XLVWM.js} +2 -2
  154. package/dist/{chunk-TYXFFNPM.js → chunk-JKZPGCN7.js} +11 -11
  155. package/dist/{chunk-QRRWLLXW.js → chunk-JN2IANXD.js} +3 -3
  156. package/dist/{chunk-HQCZT6TO.js → chunk-JVOEVTCZ.js} +5 -5
  157. package/dist/{chunk-GBB23QLL.js → chunk-KJKD6Y6V.js} +3 -3
  158. package/dist/{chunk-XLU5WFSY.js → chunk-L3PDY7CJ.js} +2 -2
  159. package/dist/{chunk-S6D7NOV7.js → chunk-L6JAALMX.js} +3 -3
  160. package/dist/{chunk-72HOUWAW.js → chunk-L6YTVXGN.js} +5 -3
  161. package/dist/{chunk-72HOUWAW.js.map → chunk-L6YTVXGN.js.map} +1 -1
  162. package/dist/chunk-LZNUBQ5I.js +181 -0
  163. package/dist/chunk-LZNUBQ5I.js.map +1 -0
  164. package/dist/{chunk-BECKKDYG.js → chunk-M2M4IDFU.js} +2 -2
  165. package/dist/{chunk-AMLHEKSV.js → chunk-M3XJVD5G.js} +5 -5
  166. package/dist/{chunk-CSGBHYW6.js → chunk-M5Y42AZ4.js} +2 -2
  167. package/dist/chunk-MICX23P4.js +122 -0
  168. package/dist/chunk-MICX23P4.js.map +1 -0
  169. package/dist/{chunk-5CP5Z3YU.js → chunk-MPWA55CF.js} +4 -4
  170. package/dist/{chunk-CJUK32UH.js → chunk-MYTV353T.js} +5 -5
  171. package/dist/{chunk-BO6MT2S2.js → chunk-MZAYIG2I.js} +7 -6
  172. package/dist/chunk-MZAYIG2I.js.map +1 -0
  173. package/dist/{chunk-AKE6KVQG.js → chunk-NGXL4R54.js} +5 -1
  174. package/dist/chunk-NGXL4R54.js.map +1 -0
  175. package/dist/{chunk-BEHT4IHH.js → chunk-NKEFH3RS.js} +6 -6
  176. package/dist/{chunk-NI67M453.js → chunk-PGANINQD.js} +5 -5
  177. package/dist/{chunk-RCTHCXS6.js → chunk-PJNIJIE6.js} +2 -2
  178. package/dist/{chunk-E2UOEI7N.js → chunk-Q3SILZTQ.js} +2 -2
  179. package/dist/{chunk-SB2SEGR6.js → chunk-QHIWV55K.js} +3 -3
  180. package/dist/{chunk-DHAXUVMR.js → chunk-QN7FVZQD.js} +4 -4
  181. package/dist/{chunk-5S5K73I6.js → chunk-QSOCOXVL.js} +3 -3
  182. package/dist/{chunk-NQCTANF3.js → chunk-QVDEGBME.js} +7 -7
  183. package/dist/{chunk-BQBEN44R.js → chunk-RDCIST7P.js} +2 -2
  184. package/dist/{chunk-HUXAIQC5.js → chunk-RZ3P4X2I.js} +2 -2
  185. package/dist/{chunk-QLJU7UUI.js → chunk-T7OIVPCO.js} +38 -3
  186. package/dist/chunk-T7OIVPCO.js.map +1 -0
  187. package/dist/{chunk-U2ILXZDG.js → chunk-TB5CRHTF.js} +2 -2
  188. package/dist/{chunk-X2GWR75Q.js → chunk-TSEBMVYY.js} +3 -3
  189. package/dist/{chunk-OKRITX4S.js → chunk-U2AEM3K4.js} +7 -7
  190. package/dist/{chunk-EXVCVXFX.js → chunk-U2QXQ7D4.js} +6 -6
  191. package/dist/{chunk-K6FCSB6T.js → chunk-U2SAW6DH.js} +2 -2
  192. package/dist/{chunk-DAHSKQBV.js → chunk-UMOHHWXY.js} +2 -2
  193. package/dist/{chunk-YDIC6LSP.js → chunk-VCQFDQM3.js} +27 -7
  194. package/dist/chunk-VCQFDQM3.js.map +1 -0
  195. package/dist/{chunk-P772HCHI.js → chunk-W676GY42.js} +4 -4
  196. package/dist/{chunk-BAQ3ITZV.js → chunk-WCF56ZCD.js} +2 -2
  197. package/dist/{chunk-6D5AMANO.js → chunk-WH3LUOCQ.js} +2 -2
  198. package/dist/{chunk-T2G4LDU5.js → chunk-WLLUARTC.js} +2 -2
  199. package/dist/{chunk-5BVAUUWL.js → chunk-X37NTEVS.js} +2 -2
  200. package/dist/{chunk-5KK3I42O.js → chunk-XILMDEGZ.js} +13 -10
  201. package/dist/chunk-XILMDEGZ.js.map +1 -0
  202. package/dist/{chunk-MW7P2C2C.js → chunk-YGQM6GFQ.js} +2 -2
  203. package/dist/{chunk-WW3F7DCX.js → chunk-Z2WZDVGG.js} +2 -2
  204. package/dist/{chunk-WNNA6YYE.js → chunk-Z7T4EFEC.js} +7 -4
  205. package/dist/chunk-Z7T4EFEC.js.map +1 -0
  206. package/dist/{chunk-LOLYBFYY.js → chunk-ZCNR4DN5.js} +5 -5
  207. package/dist/{chunk-COKPPU42.js → chunk-ZIHSCBMN.js} +12 -12
  208. package/dist/data-display/Alert.js +3 -3
  209. package/dist/data-display/AsyncStateContainer.js +3 -3
  210. package/dist/data-display/Avatar.js +3 -3
  211. package/dist/data-display/CardKit.js +15 -15
  212. package/dist/data-display/Carousel.js +5 -4
  213. package/dist/data-display/Chart.js +11 -11
  214. package/dist/data-display/Chip.js +3 -3
  215. package/dist/data-display/DataGrid.js +2 -2
  216. package/dist/data-display/DataViews.js +75 -50
  217. package/dist/data-display/DayRuler.js +4 -4
  218. package/dist/data-display/EmptyState.js +2 -2
  219. package/dist/data-display/FleetMap.js +15 -15
  220. package/dist/data-display/InteractiveTooltip.js +2 -2
  221. package/dist/data-display/Lightbox.js +7 -7
  222. package/dist/data-display/MapPreview.js +11 -10
  223. package/dist/data-display/RegionMap.js +11 -5
  224. package/dist/data-display/SectionOnboarding.js +3 -3
  225. package/dist/en-US.js +1 -1
  226. package/dist/feedback/NotificationStatusNotice.js +4 -4
  227. package/dist/feedback/SequenceResolver.js +6 -6
  228. package/dist/form/Calendar.js +5 -5
  229. package/dist/form/DateRangePicker.js +10 -10
  230. package/dist/layout/SettingCard.js +12 -12
  231. package/dist/locales.js +5 -5
  232. package/dist/pt-BR.js +1 -1
  233. package/dist/types/components/data-display/DataViews/data-views-bar-controls.d.ts +15 -1
  234. package/dist/types/components/data-display/DataViews/data-views-bar-controls.d.ts.map +1 -1
  235. package/dist/types/components/data-display/DataViews/data-views-copy.d.ts +35 -0
  236. package/dist/types/components/data-display/DataViews/data-views-copy.d.ts.map +1 -1
  237. package/dist/types/components/data-display/DataViews/data-views-day-input.d.ts +7 -1
  238. package/dist/types/components/data-display/DataViews/data-views-day-input.d.ts.map +1 -1
  239. package/dist/types/components/data-display/DataViews/data-views-more-fields.d.ts.map +1 -1
  240. package/dist/types/components/data-display/DataViews/data-views-more-filters.d.ts +5 -3
  241. package/dist/types/components/data-display/DataViews/data-views-more-filters.d.ts.map +1 -1
  242. package/dist/types/components/data-display/DataViews/data-views-number-input.d.ts +10 -2
  243. package/dist/types/components/data-display/DataViews/data-views-number-input.d.ts.map +1 -1
  244. package/dist/types/components/data-display/DataViews/data-views-preset-chips.d.ts +10 -0
  245. package/dist/types/components/data-display/DataViews/data-views-preset-chips.d.ts.map +1 -1
  246. package/dist/types/components/data-display/DataViews/data-views-range-bounds.d.ts +35 -0
  247. package/dist/types/components/data-display/DataViews/data-views-range-bounds.d.ts.map +1 -0
  248. package/dist/types/components/data-display/DataViews/data-views-range-calendar.d.ts +35 -0
  249. package/dist/types/components/data-display/DataViews/data-views-range-calendar.d.ts.map +1 -0
  250. package/dist/types/components/data-display/DataViews/data-views-range-pill.d.ts +2 -11
  251. package/dist/types/components/data-display/DataViews/data-views-range-pill.d.ts.map +1 -1
  252. package/dist/types/components/data-display/DataViews/data-views-range-summary.d.ts +21 -0
  253. package/dist/types/components/data-display/DataViews/data-views-range-summary.d.ts.map +1 -0
  254. package/dist/types/components/data-display/DataViews/data-views-still-anchor.d.ts +45 -0
  255. package/dist/types/components/data-display/DataViews/data-views-still-anchor.d.ts.map +1 -0
  256. package/dist/types/components/data-display/LazyImage/LazyImage.hooks.d.ts +1 -1
  257. package/dist/types/components/data-display/RegionMap/RegionMap.d.ts +4 -1
  258. package/dist/types/components/data-display/RegionMap/RegionMap.d.ts.map +1 -1
  259. package/dist/types/components/data-display/RegionMap/RegionMap.hooks.d.ts +4 -2
  260. package/dist/types/components/data-display/RegionMap/RegionMap.hooks.d.ts.map +1 -1
  261. package/dist/types/components/data-display/RegionMap/RegionMap.types.d.ts +40 -0
  262. package/dist/types/components/data-display/RegionMap/RegionMap.types.d.ts.map +1 -1
  263. package/dist/types/components/data-display/RegionMap/RegionMap.view.d.ts +36 -0
  264. package/dist/types/components/data-display/RegionMap/RegionMap.view.d.ts.map +1 -0
  265. package/dist/types/components/data-display/RegionMap/RegionMapDrawing.d.ts +4 -1
  266. package/dist/types/components/data-display/RegionMap/RegionMapDrawing.d.ts.map +1 -1
  267. package/dist/types/components/data-display/RegionMap/index.d.ts +3 -2
  268. package/dist/types/components/data-display/RegionMap/index.d.ts.map +1 -1
  269. package/dist/types/components/form/Calendar/Calendar.d.ts.map +1 -1
  270. package/dist/types/components/form/Calendar/CalendarDay.d.ts +2 -0
  271. package/dist/types/components/form/Calendar/CalendarDay.d.ts.map +1 -1
  272. package/dist/types/components/form/Calendar/CalendarDayCell.d.ts +2 -0
  273. package/dist/types/components/form/Calendar/CalendarDayCell.d.ts.map +1 -1
  274. package/dist/types/components/form/Calendar/CalendarMonth.d.ts +5 -0
  275. package/dist/types/components/form/Calendar/CalendarMonth.d.ts.map +1 -1
  276. package/dist/types/en-US.data-display.d.ts.map +1 -1
  277. package/dist/types/pt-BR.data-display.d.ts.map +1 -1
  278. package/dist/user-avatar.js +4 -4
  279. package/package.json +1 -1
  280. package/src/components/data-display/DataViews/RESPONSIVE-BEHAVIOUR.md +59 -0
  281. package/src/components/data-display/DataViews/data-views-bar-controls.tsx +56 -1
  282. package/src/components/data-display/DataViews/data-views-copy.ts +36 -0
  283. package/src/components/data-display/DataViews/data-views-day-input.tsx +9 -1
  284. package/src/components/data-display/DataViews/data-views-inline-bar.tsx +5 -3
  285. package/src/components/data-display/DataViews/data-views-more-fields.tsx +1 -0
  286. package/src/components/data-display/DataViews/data-views-more-filters.tsx +82 -29
  287. package/src/components/data-display/DataViews/data-views-number-input.tsx +19 -9
  288. package/src/components/data-display/DataViews/data-views-preset-chips.tsx +165 -16
  289. package/src/components/data-display/DataViews/data-views-range-bounds.tsx +223 -0
  290. package/src/components/data-display/DataViews/data-views-range-calendar.tsx +185 -0
  291. package/src/components/data-display/DataViews/data-views-range-pill.tsx +71 -154
  292. package/src/components/data-display/DataViews/data-views-range-summary.tsx +66 -0
  293. package/src/components/data-display/DataViews/data-views-still-anchor.ts +93 -0
  294. package/src/components/data-display/RegionMap/RegionMap.hooks.ts +24 -33
  295. package/src/components/data-display/RegionMap/RegionMap.md +27 -0
  296. package/src/components/data-display/RegionMap/RegionMap.tsx +7 -1
  297. package/src/components/data-display/RegionMap/RegionMap.types.ts +41 -0
  298. package/src/components/data-display/RegionMap/RegionMap.view.ts +105 -0
  299. package/src/components/data-display/RegionMap/RegionMapDrawing.tsx +11 -0
  300. package/src/components/data-display/RegionMap/index.ts +5 -1
  301. package/src/components/data-display/RegionMap/tests.md +10 -2
  302. package/src/components/form/Calendar/Calendar.md +17 -2
  303. package/src/components/form/Calendar/Calendar.tsx +56 -3
  304. package/src/components/form/Calendar/CalendarDay.tsx +33 -3
  305. package/src/components/form/Calendar/CalendarDayCell.tsx +4 -0
  306. package/src/components/form/Calendar/CalendarMonth.tsx +27 -5
  307. package/src/en-US.data-display.ts +12 -0
  308. package/src/pt-BR.data-display.ts +12 -0
  309. package/dist/chunk-5KK3I42O.js.map +0 -1
  310. package/dist/chunk-5RSK5M6M.js.map +0 -1
  311. package/dist/chunk-7D7CJRL7.js +0 -78
  312. package/dist/chunk-7D7CJRL7.js.map +0 -1
  313. package/dist/chunk-ACFKPE2T.js +0 -1
  314. package/dist/chunk-AKE6KVQG.js.map +0 -1
  315. package/dist/chunk-BO6MT2S2.js.map +0 -1
  316. package/dist/chunk-FEKWKWGK.js.map +0 -1
  317. package/dist/chunk-FJ3UZ4RC.js.map +0 -1
  318. package/dist/chunk-GMRQPNG3.js.map +0 -1
  319. package/dist/chunk-OBA75Y5O.js.map +0 -1
  320. package/dist/chunk-Q2ERGAQO.js.map +0 -1
  321. package/dist/chunk-QLJU7UUI.js.map +0 -1
  322. package/dist/chunk-TRYR424I.js.map +0 -1
  323. package/dist/chunk-WNNA6YYE.js.map +0 -1
  324. package/dist/chunk-X5OGIT2F.js.map +0 -1
  325. package/dist/chunk-XHIBFBNP.js.map +0 -1
  326. package/dist/chunk-YDIC6LSP.js.map +0 -1
  327. /package/dist/{chunk-ACFKPE2T.js.map → _internal/components/data-display/DataViews/data-views-range-bounds.js.map} +0 -0
  328. /package/dist/{chunk-K2VDRODL.js.map → chunk-3IDL7NK7.js.map} +0 -0
  329. /package/dist/{chunk-6ATXOJVQ.js.map → chunk-3JZ3KEQQ.js.map} +0 -0
  330. /package/dist/{chunk-EOIRU62W.js.map → chunk-42D7KBDH.js.map} +0 -0
  331. /package/dist/{chunk-LXIPBHNJ.js.map → chunk-42TOCPXB.js.map} +0 -0
  332. /package/dist/{chunk-WAO7UQRS.js.map → chunk-4KWDNGMA.js.map} +0 -0
  333. /package/dist/{chunk-JIEVKHOH.js.map → chunk-4QR7LM5F.js.map} +0 -0
  334. /package/dist/{chunk-WJMSND5Q.js.map → chunk-5E2CRRD4.js.map} +0 -0
  335. /package/dist/{chunk-ZDAAHCIS.js.map → chunk-5HADIIWN.js.map} +0 -0
  336. /package/dist/{chunk-BP3ZKIPE.js.map → chunk-64UNVW6D.js.map} +0 -0
  337. /package/dist/{chunk-6WHIJPEF.js.map → chunk-6PU5P7QT.js.map} +0 -0
  338. /package/dist/{chunk-7F6D73NL.js.map → chunk-76DX2IMH.js.map} +0 -0
  339. /package/dist/{chunk-YNZUYZ2O.js.map → chunk-A3DDEKLV.js.map} +0 -0
  340. /package/dist/{chunk-BMTIBQQC.js.map → chunk-BBBHPK2Q.js.map} +0 -0
  341. /package/dist/{chunk-DYHOBKPU.js.map → chunk-BLZDSCIZ.js.map} +0 -0
  342. /package/dist/{chunk-EUR2ORTN.js.map → chunk-CSJ7WNXU.js.map} +0 -0
  343. /package/dist/{chunk-OWRQOYUE.js.map → chunk-DA3D5X5Z.js.map} +0 -0
  344. /package/dist/{chunk-LV6AD6XC.js.map → chunk-DBI6AMNY.js.map} +0 -0
  345. /package/dist/{chunk-3YFDGFEK.js.map → chunk-DVX4HDNP.js.map} +0 -0
  346. /package/dist/{chunk-QKOJ4637.js.map → chunk-E6K2UZGR.js.map} +0 -0
  347. /package/dist/{chunk-7XSCEHGA.js.map → chunk-EOQ6EKTS.js.map} +0 -0
  348. /package/dist/{chunk-Z5WUSI47.js.map → chunk-G3JFESKD.js.map} +0 -0
  349. /package/dist/{chunk-3EIRRLCQ.js.map → chunk-HC6OZ7QK.js.map} +0 -0
  350. /package/dist/{chunk-SKIAWOUC.js.map → chunk-HOPRZEBM.js.map} +0 -0
  351. /package/dist/{chunk-O63ZROSY.js.map → chunk-IWSTMVCA.js.map} +0 -0
  352. /package/dist/{chunk-7QKIL5YF.js.map → chunk-J2GDA64N.js.map} +0 -0
  353. /package/dist/{chunk-TZC6KIK2.js.map → chunk-JG733RMP.js.map} +0 -0
  354. /package/dist/{chunk-CW5Z67NA.js.map → chunk-JH2XLVWM.js.map} +0 -0
  355. /package/dist/{chunk-TYXFFNPM.js.map → chunk-JKZPGCN7.js.map} +0 -0
  356. /package/dist/{chunk-QRRWLLXW.js.map → chunk-JN2IANXD.js.map} +0 -0
  357. /package/dist/{chunk-HQCZT6TO.js.map → chunk-JVOEVTCZ.js.map} +0 -0
  358. /package/dist/{chunk-GBB23QLL.js.map → chunk-KJKD6Y6V.js.map} +0 -0
  359. /package/dist/{chunk-XLU5WFSY.js.map → chunk-L3PDY7CJ.js.map} +0 -0
  360. /package/dist/{chunk-S6D7NOV7.js.map → chunk-L6JAALMX.js.map} +0 -0
  361. /package/dist/{chunk-BECKKDYG.js.map → chunk-M2M4IDFU.js.map} +0 -0
  362. /package/dist/{chunk-AMLHEKSV.js.map → chunk-M3XJVD5G.js.map} +0 -0
  363. /package/dist/{chunk-CSGBHYW6.js.map → chunk-M5Y42AZ4.js.map} +0 -0
  364. /package/dist/{chunk-5CP5Z3YU.js.map → chunk-MPWA55CF.js.map} +0 -0
  365. /package/dist/{chunk-CJUK32UH.js.map → chunk-MYTV353T.js.map} +0 -0
  366. /package/dist/{chunk-BEHT4IHH.js.map → chunk-NKEFH3RS.js.map} +0 -0
  367. /package/dist/{chunk-NI67M453.js.map → chunk-PGANINQD.js.map} +0 -0
  368. /package/dist/{chunk-RCTHCXS6.js.map → chunk-PJNIJIE6.js.map} +0 -0
  369. /package/dist/{chunk-E2UOEI7N.js.map → chunk-Q3SILZTQ.js.map} +0 -0
  370. /package/dist/{chunk-SB2SEGR6.js.map → chunk-QHIWV55K.js.map} +0 -0
  371. /package/dist/{chunk-DHAXUVMR.js.map → chunk-QN7FVZQD.js.map} +0 -0
  372. /package/dist/{chunk-5S5K73I6.js.map → chunk-QSOCOXVL.js.map} +0 -0
  373. /package/dist/{chunk-NQCTANF3.js.map → chunk-QVDEGBME.js.map} +0 -0
  374. /package/dist/{chunk-BQBEN44R.js.map → chunk-RDCIST7P.js.map} +0 -0
  375. /package/dist/{chunk-HUXAIQC5.js.map → chunk-RZ3P4X2I.js.map} +0 -0
  376. /package/dist/{chunk-U2ILXZDG.js.map → chunk-TB5CRHTF.js.map} +0 -0
  377. /package/dist/{chunk-X2GWR75Q.js.map → chunk-TSEBMVYY.js.map} +0 -0
  378. /package/dist/{chunk-OKRITX4S.js.map → chunk-U2AEM3K4.js.map} +0 -0
  379. /package/dist/{chunk-EXVCVXFX.js.map → chunk-U2QXQ7D4.js.map} +0 -0
  380. /package/dist/{chunk-K6FCSB6T.js.map → chunk-U2SAW6DH.js.map} +0 -0
  381. /package/dist/{chunk-DAHSKQBV.js.map → chunk-UMOHHWXY.js.map} +0 -0
  382. /package/dist/{chunk-P772HCHI.js.map → chunk-W676GY42.js.map} +0 -0
  383. /package/dist/{chunk-BAQ3ITZV.js.map → chunk-WCF56ZCD.js.map} +0 -0
  384. /package/dist/{chunk-6D5AMANO.js.map → chunk-WH3LUOCQ.js.map} +0 -0
  385. /package/dist/{chunk-T2G4LDU5.js.map → chunk-WLLUARTC.js.map} +0 -0
  386. /package/dist/{chunk-5BVAUUWL.js.map → chunk-X37NTEVS.js.map} +0 -0
  387. /package/dist/{chunk-MW7P2C2C.js.map → chunk-YGQM6GFQ.js.map} +0 -0
  388. /package/dist/{chunk-WW3F7DCX.js.map → chunk-Z2WZDVGG.js.map} +0 -0
  389. /package/dist/{chunk-LOLYBFYY.js.map → chunk-ZCNR4DN5.js.map} +0 -0
  390. /package/dist/{chunk-COKPPU42.js.map → chunk-ZIHSCBMN.js.map} +0 -0
@@ -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"]}
@@ -4,18 +4,18 @@ import {
4
4
  import {
5
5
  CardBody
6
6
  } from "./chunk-4ZQQUICR.js";
7
- import {
8
- toGridExpansion
9
- } from "./chunk-O5UGAL2V.js";
10
7
  import {
11
8
  SelectAllStrip
12
9
  } from "./chunk-OY437NRJ.js";
10
+ import {
11
+ toGridExpansion
12
+ } from "./chunk-O5UGAL2V.js";
13
13
  import {
14
14
  useStickyTableHead
15
15
  } from "./chunk-4IE66GY2.js";
16
16
  import {
17
17
  ListCardGroup
18
- } from "./chunk-BMTIBQQC.js";
18
+ } from "./chunk-BBBHPK2Q.js";
19
19
  import {
20
20
  DENSITY_BOARD_SCALE,
21
21
  DENSITY_ROW_PADDING,
@@ -28,7 +28,7 @@ import {
28
28
  } from "./chunk-KHG57NAE.js";
29
29
  import {
30
30
  DataGrid
31
- } from "./chunk-DYHOBKPU.js";
31
+ } from "./chunk-BLZDSCIZ.js";
32
32
  import {
33
33
  default as default2
34
34
  } from "./chunk-6DPAWXZ3.js";
@@ -250,4 +250,4 @@ function GridMain(props) {
250
250
  export {
251
251
  GridMain
252
252
  };
253
- //# sourceMappingURL=chunk-BEHT4IHH.js.map
253
+ //# sourceMappingURL=chunk-NKEFH3RS.js.map
@@ -3,15 +3,15 @@ import {
3
3
  chipStyles,
4
4
  iconWithTestId,
5
5
  makeKeyDownHandler
6
- } from "./chunk-DHAXUVMR.js";
7
- import {
8
- chipMuiSize
9
- } from "./chunk-E5I776YW.js";
6
+ } from "./chunk-QN7FVZQD.js";
10
7
  import {
11
8
  chipRole,
12
9
  isClickable,
13
10
  makeTestId
14
11
  } from "./chunk-BF4FYOAR.js";
12
+ import {
13
+ chipMuiSize
14
+ } from "./chunk-E5I776YW.js";
15
15
 
16
16
  // src/components/data-display/Chip/Chip.tsx
17
17
  import CancelIcon from "@mui/icons-material/Cancel";
@@ -77,4 +77,4 @@ Chip.displayName = "Chip";
77
77
  export {
78
78
  Chip
79
79
  };
80
- //# sourceMappingURL=chunk-NI67M453.js.map
80
+ //# sourceMappingURL=chunk-PGANINQD.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Alert
3
- } from "./chunk-NQCTANF3.js";
3
+ } from "./chunk-QVDEGBME.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-RCTHCXS6.js.map
61
+ //# sourceMappingURL=chunk-PJNIJIE6.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-DQ22UKMZ.js";
4
4
  import {
5
5
  Avatar
6
- } from "./chunk-JIEVKHOH.js";
6
+ } from "./chunk-4QR7LM5F.js";
7
7
  import {
8
8
  Card
9
9
  } from "./chunk-4XBAEKQQ.js";
@@ -80,4 +80,4 @@ export {
80
80
  UserAvatar,
81
81
  UserMenu
82
82
  };
83
- //# sourceMappingURL=chunk-E2UOEI7N.js.map
83
+ //# sourceMappingURL=chunk-Q3SILZTQ.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  Chart
3
- } from "./chunk-AMLHEKSV.js";
3
+ } from "./chunk-M3XJVD5G.js";
4
4
  import {
5
5
  CHART_SEMANTIC_COLORS,
6
6
  specToChartProps
7
- } from "./chunk-HQCZT6TO.js";
7
+ } from "./chunk-JVOEVTCZ.js";
8
8
  import {
9
9
  accentFor
10
10
  } from "./chunk-B7ZHEOQQ.js";
@@ -46,4 +46,4 @@ var SpecChart = ({
46
46
  export {
47
47
  SpecChart
48
48
  };
49
- //# sourceMappingURL=chunk-SB2SEGR6.js.map
49
+ //# sourceMappingURL=chunk-QHIWV55K.js.map
@@ -1,3 +1,6 @@
1
+ import {
2
+ chipKeyAction
3
+ } from "./chunk-BF4FYOAR.js";
1
4
  import {
2
5
  CHIP_SIZES,
3
6
  CHIP_TRANSITION_EASING,
@@ -7,9 +10,6 @@ import {
7
10
  SOFT_GROUND_ALPHA,
8
11
  SOFT_HOVER_ALPHA
9
12
  } from "./chunk-E5I776YW.js";
10
- import {
11
- chipKeyAction
12
- } from "./chunk-BF4FYOAR.js";
13
13
  import {
14
14
  shadowInk
15
15
  } from "./chunk-XJAD6E3V.js";
@@ -110,4 +110,4 @@ export {
110
110
  chipStyles,
111
111
  iconWithTestId
112
112
  };
113
- //# sourceMappingURL=chunk-DHAXUVMR.js.map
113
+ //# sourceMappingURL=chunk-QN7FVZQD.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  statusMessage
3
- } from "./chunk-5CP5Z3YU.js";
3
+ } from "./chunk-MPWA55CF.js";
4
4
  import {
5
5
  DayBoundInput
6
- } from "./chunk-72HOUWAW.js";
6
+ } from "./chunk-L6YTVXGN.js";
7
7
 
8
8
  // src/components/form/DateRangePicker/DateRangePickerFields.tsx
9
9
  import Box from "@mui/material/Box/index.js";
@@ -64,4 +64,4 @@ function DateRangeFields({
64
64
  export {
65
65
  DateRangeFields
66
66
  };
67
- //# sourceMappingURL=chunk-5S5K73I6.js.map
67
+ //# sourceMappingURL=chunk-QSOCOXVL.js.map
@@ -1,3 +1,6 @@
1
+ import {
2
+ AlertContent
3
+ } from "./chunk-7HZ36QDH.js";
1
4
  import {
2
5
  alertEmphasisStyles,
3
6
  alertLayoutStyles,
@@ -6,17 +9,14 @@ import {
6
9
  getColorFromTheme,
7
10
  getVariantIcon
8
11
  } from "./chunk-L5RS6QAT.js";
9
- import {
10
- resolveIconPlacement
11
- } from "./chunk-QXUXO22M.js";
12
- import {
13
- AlertContent
14
- } from "./chunk-7HZ36QDH.js";
15
12
  import {
16
13
  resolveAlertProps,
17
14
  resolveAnnouncement,
18
15
  testIdFor
19
16
  } from "./chunk-L7VH6IMR.js";
17
+ import {
18
+ resolveIconPlacement
19
+ } from "./chunk-QXUXO22M.js";
20
20
  import {
21
21
  ACTIVE,
22
22
  ALERT_EASING,
@@ -277,4 +277,4 @@ export {
277
277
  Alert,
278
278
  ALERT_ONLY_PROPS
279
279
  };
280
- //# sourceMappingURL=chunk-NQCTANF3.js.map
280
+ //# sourceMappingURL=chunk-QVDEGBME.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-QVDEGBME.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-RDCIST7P.js.map
@@ -3,7 +3,7 @@ import {
3
3
  defaultMessages,
4
4
  resolveDayRange,
5
5
  resolveQuickRanges
6
- } from "./chunk-5CP5Z3YU.js";
6
+ } from "./chunk-MPWA55CF.js";
7
7
  import {
8
8
  toDayString,
9
9
  todayIn
@@ -69,4 +69,4 @@ function useDateRangePicker({
69
69
  export {
70
70
  useDateRangePicker
71
71
  };
72
- //# sourceMappingURL=chunk-HUXAIQC5.js.map
72
+ //# sourceMappingURL=chunk-RZ3P4X2I.js.map
@@ -18,18 +18,48 @@ import {
18
18
  import CloseRoundedIcon from "@mui/icons-material/CloseRounded";
19
19
  import FilterAltOffRoundedIcon from "@mui/icons-material/FilterAltOffRounded";
20
20
  import Tooltip from "@mui/material/Tooltip/index.js";
21
+ import { useLayoutEffect, useRef, useState } from "react";
21
22
  import { jsx, jsxs } from "react/jsx-runtime";
23
+ function useBarFrozen(report) {
24
+ const [openCount, setOpenCount] = useState(0);
25
+ return {
26
+ frozen: openCount > 0,
27
+ onOpenChange: (open) => {
28
+ setOpenCount((count) => Math.max(0, count + (open ? 1 : -1)));
29
+ report?.(open);
30
+ }
31
+ };
32
+ }
33
+ function useCutByRow(ref, frozen) {
34
+ const [cut, setCut] = useState(false);
35
+ useLayoutEffect(() => {
36
+ if (!frozen) {
37
+ setCut(false);
38
+ return;
39
+ }
40
+ const button = ref.current;
41
+ let row = button?.parentElement ?? null;
42
+ while (row && getComputedStyle(row).overflowX === "visible") row = row.parentElement;
43
+ if (button && row && button.getBoundingClientRect().right > row.getBoundingClientRect().right + 0.5) setCut(true);
44
+ });
45
+ return cut;
46
+ }
22
47
  function ClearAllControl({
23
48
  onClearAll,
24
- compact,
25
- testIdPrefix
49
+ compact: compactRung,
50
+ testIdPrefix,
51
+ frozen = false
26
52
  }) {
27
53
  const copy = useDataViewsCopy();
54
+ const ref = useRef(null);
55
+ const cut = useCutByRow(ref, frozen && !compactRung);
56
+ const compact = compactRung || cut;
28
57
  const button = /* @__PURE__ */ jsxs(
29
58
  default2,
30
59
  {
31
60
  component: "button",
32
61
  type: "button",
62
+ ref,
33
63
  onClick: onClearAll,
34
64
  "data-testid": `${testIdPrefix}-clear-all`,
35
65
  "aria-label": copy.filters.clearAll,
@@ -46,6 +76,10 @@ function ClearAllControl({
46
76
  font: "inherit",
47
77
  fontSize: sxRem(13),
48
78
  whiteSpace: "nowrap",
79
+ // Never squeezed: the bar is frozen while a panel is open, and when a
80
+ // first filter applied from inside one brought this in, the row had
81
+ // no room budgeted for it and cut "Limpar" to "Lin" (FUT-4144).
82
+ flexShrink: 0,
49
83
  color: "text.secondary",
50
84
  "&:hover": { color: "text.primary", bgcolor: "action.hover" }
51
85
  },
@@ -88,7 +122,8 @@ function CloseSearchControl({
88
122
  }
89
123
 
90
124
  export {
125
+ useBarFrozen,
91
126
  ClearAllControl,
92
127
  CloseSearchControl
93
128
  };
94
- //# sourceMappingURL=chunk-QLJU7UUI.js.map
129
+ //# sourceMappingURL=chunk-T7OIVPCO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/DataViews/data-views-bar-controls.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * THE TWO BARE AFFORDANCES ON THE FILTER BAR.\n *\n * Neither opens anything, which is what sets them apart from every other\n * control on that row and why they are styled flat rather than as outlined\n * pills: one clears the filters, one leaves a search takeover. Giving them a\n * pill's weight made \"Limpar\" read as a sixth filter.\n *\n * Their own module because `data-views-inline-bar` outgrew the file-size gate.\n */\nimport CloseRoundedIcon from \"@mui/icons-material/CloseRounded\";\nimport FilterAltOffRoundedIcon from \"@mui/icons-material/FilterAltOffRounded\";\nimport Tooltip from \"@mui/material/Tooltip/index.js\";\nimport React, { useLayoutEffect, useRef, useState } from \"react\";\n\nimport { Box } from \"../../../mui/Box\";\nimport { fieldRadiusPx } from \"../../../tokens/field-radius\";\nimport { useDataViewsCopy } from \"./data-views-copy-context\";\nimport { fieldHeight } from \"../../../tokens/field-height\";\nimport { sxRem } from \"../../../tokens/relative\";\n\n/**\n * \"Limpar\" — one gesture back to the unfiltered list.\n *\n * Present ONLY while something is applied, and last in the cluster, because it\n * is destructive and must never be where a filter control was a moment ago.\n * Each pill already carries its own ✕; this is the other job — six applied\n * filters is six ✕ hunts, and the operator who wants \"show me everything\n * again\" has no way to say it.\n *\n * Loses its label on the same rung Exibir/Exportar lose theirs, and keeps a\n * tooltip when it does: it is one of the two controls (with the search) whose\n * icon has to carry the whole meaning on a phone.\n */\n/**\n * Whether a filter control's panel is open — the stretch during which the bar\n * is measured once and then FROZEN, so the field being edited is not promoted\n * out from under the hand (FUT-4144 UI review round 2).\n *\n * Wraps the controls' `onOpenChange` to count the open panels.\n */\nexport function useBarFrozen(report?: (open: boolean) => void): {\n frozen: boolean;\n onOpenChange: (open: boolean) => void;\n} {\n const [openCount, setOpenCount] = useState(0);\n return {\n frozen: openCount > 0,\n onOpenChange: (open) => {\n setOpenCount((count) => Math.max(0, count + (open ? 1 : -1)));\n report?.(open);\n },\n };\n}\n\n/**\n * Whether the button runs past the edge of the row that holds it. Only asked\n * while the bar is frozen: a first filter applied from inside an open panel\n * brings \"Limpar\" in with no room budgeted for its label, and at 900 the row\n * cut it to \"Lin\". It then shows as its icon (the tooltip and accessible name\n * keep the word) until the panel closes and the row is measured again.\n */\nfunction useCutByRow(ref: React.RefObject<HTMLElement | null>, frozen: boolean): boolean {\n const [cut, setCut] = useState(false);\n useLayoutEffect(() => {\n if (!frozen) {\n setCut(false);\n return;\n }\n const button = ref.current;\n let row = button?.parentElement ?? null;\n while (row && getComputedStyle(row).overflowX === \"visible\") row = row.parentElement;\n if (button && row && button.getBoundingClientRect().right > row.getBoundingClientRect().right + 0.5) setCut(true);\n });\n return cut;\n}\n\nexport function ClearAllControl({\n onClearAll,\n compact: compactRung,\n testIdPrefix,\n frozen = false,\n}: {\n onClearAll: () => void;\n compact: boolean;\n testIdPrefix: string;\n /** The bar is frozen while a panel is open; see {@link useCutByRow}. */\n frozen?: boolean;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n const ref = useRef<HTMLButtonElement>(null);\n const cut = useCutByRow(ref, frozen && !compactRung);\n const compact = compactRung || cut;\n // No border, no fill. Every other control on this row is an outlined field\n // because it OPENS something; this one is an escape hatch, and giving it the\n // same weight made it read as a sixth filter. Quiet until hovered.\n const button = (\n <Box\n component=\"button\"\n type=\"button\"\n ref={ref}\n onClick={onClearAll}\n data-testid={`${testIdPrefix}-clear-all`}\n aria-label={copy.filters.clearAll}\n sx={{\n display: \"inline-flex\",\n alignItems: \"center\",\n gap: 0.5,\n height: fieldHeight,\n px: compact ? 0.75 : 1,\n border: 0,\n borderRadius: fieldRadiusPx,\n bgcolor: \"transparent\",\n cursor: \"pointer\",\n font: \"inherit\",\n fontSize: sxRem(13),\n whiteSpace: \"nowrap\",\n // Never squeezed: the bar is frozen while a panel is open, and when a\n // first filter applied from inside one brought this in, the row had\n // no room budgeted for it and cut \"Limpar\" to \"Lin\" (FUT-4144).\n flexShrink: 0,\n color: \"text.secondary\",\n \"&:hover\": { color: \"text.primary\", bgcolor: \"action.hover\" },\n }}\n >\n <FilterAltOffRoundedIcon sx={{ fontSize: sxRem(16) }} />\n {!compact && <Box component=\"span\">{copy.filters.clear}</Box>}\n </Box>\n );\n return compact ? <Tooltip title={copy.filters.clearAll}>{button}</Tooltip> : button;\n}\n\n/**\n * The way out of a search takeover.\n *\n * A phone has no Escape key, and without this the takeover is a one-way door\n * onto a bar with no filters on it.\n\n/**\n * The way out of a search takeover.\n *\n * A phone has no Escape key, and without this the takeover is a one-way door\n * onto a bar with no filters on it.\n */\nexport function CloseSearchControl({\n onClose,\n testIdPrefix,\n}: {\n onClose: () => void;\n testIdPrefix: string;\n}): React.JSX.Element {\n const copy = useDataViewsCopy();\n return (\n <Tooltip title={copy.search.close}>\n <Box\n component=\"button\"\n type=\"button\"\n onClick={onClose}\n aria-label={copy.search.close}\n data-testid={`${testIdPrefix}-search-close`}\n sx={{\n display: \"inline-flex\",\n alignItems: \"center\",\n height: fieldHeight,\n px: 0.75,\n border: 0,\n borderRadius: fieldRadiusPx,\n bgcolor: \"transparent\",\n cursor: \"pointer\",\n color: \"text.secondary\",\n \"&:hover\": { color: \"text.primary\", bgcolor: \"action.hover\" },\n }}\n >\n <CloseRoundedIcon sx={{ fontSize: sxRem(18) }} />\n </Box>\n </Tooltip>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAYA,OAAO,sBAAsB;AAC7B,OAAO,6BAA6B;AACpC,OAAO,aAAa;AACpB,SAAgB,iBAAiB,QAAQ,gBAAgB;AAoFrD,SA4BE,KA5BF;AAxDG,SAAS,aAAa,QAG3B;AACA,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,CAAC;AAC5C,SAAO;AAAA,IACL,QAAQ,YAAY;AAAA,IACpB,cAAc,CAAC,SAAS;AACtB,mBAAa,CAAC,UAAU,KAAK,IAAI,GAAG,SAAS,OAAO,IAAI,GAAG,CAAC;AAC5D,eAAS,IAAI;AAAA,IACf;AAAA,EACF;AACF;AASA,SAAS,YAAY,KAA0C,QAA0B;AACvF,QAAM,CAAC,KAAK,MAAM,IAAI,SAAS,KAAK;AACpC,kBAAgB,MAAM;AACpB,QAAI,CAAC,QAAQ;AACX,aAAO,KAAK;AACZ;AAAA,IACF;AACA,UAAM,SAAS,IAAI;AACnB,QAAI,MAAM,QAAQ,iBAAiB;AACnC,WAAO,OAAO,iBAAiB,GAAG,EAAE,cAAc,UAAW,OAAM,IAAI;AACvE,QAAI,UAAU,OAAO,OAAO,sBAAsB,EAAE,QAAQ,IAAI,sBAAsB,EAAE,QAAQ,IAAK,QAAO,IAAI;AAAA,EAClH,CAAC;AACD,SAAO;AACT;AAEO,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA,SAAS;AACX,GAMsB;AACpB,QAAM,OAAO,iBAAiB;AAC9B,QAAM,MAAM,OAA0B,IAAI;AAC1C,QAAM,MAAM,YAAY,KAAK,UAAU,CAAC,WAAW;AACnD,QAAM,UAAU,eAAe;AAI/B,QAAM,SACJ;AAAA,IAACA;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL;AAAA,MACA,SAAS;AAAA,MACT,eAAa,GAAG,YAAY;AAAA,MAC5B,cAAY,KAAK,QAAQ;AAAA,MACzB,IAAI;AAAA,QACF,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,IAAI,UAAU,OAAO;AAAA,QACrB,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,UAAU,MAAM,EAAE;AAAA,QAClB,YAAY;AAAA;AAAA;AAAA;AAAA,QAIZ,YAAY;AAAA,QACZ,OAAO;AAAA,QACP,WAAW,EAAE,OAAO,gBAAgB,SAAS,eAAe;AAAA,MAC9D;AAAA,MAEA;AAAA,4BAAC,2BAAwB,IAAI,EAAE,UAAU,MAAM,EAAE,EAAE,GAAG;AAAA,QACrD,CAAC,WAAW,oBAACA,UAAA,EAAI,WAAU,QAAQ,eAAK,QAAQ,OAAM;AAAA;AAAA;AAAA,EACzD;AAEF,SAAO,UAAU,oBAAC,WAAQ,OAAO,KAAK,QAAQ,UAAW,kBAAO,IAAa;AAC/E;AAcO,SAAS,mBAAmB;AAAA,EACjC;AAAA,EACA;AACF,GAGsB;AACpB,QAAM,OAAO,iBAAiB;AAC9B,SACE,oBAAC,WAAQ,OAAO,KAAK,OAAO,OAC1B;AAAA,IAACA;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAK;AAAA,MACL,SAAS;AAAA,MACT,cAAY,KAAK,OAAO;AAAA,MACxB,eAAa,GAAG,YAAY;AAAA,MAC5B,IAAI;AAAA,QACF,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,IAAI;AAAA,QACJ,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,SAAS;AAAA,QACT,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,WAAW,EAAE,OAAO,gBAAgB,SAAS,eAAe;AAAA,MAC9D;AAAA,MAEA,8BAAC,oBAAiB,IAAI,EAAE,UAAU,MAAM,EAAE,EAAE,GAAG;AAAA;AAAA,EACjD,GACF;AAEJ;","names":["default"]}
@@ -2,7 +2,7 @@ import {
2
2
  CarouselArrows,
3
3
  CarouselIndicators,
4
4
  CarouselThumbnails
5
- } from "./chunk-BECKKDYG.js";
5
+ } from "./chunk-M2M4IDFU.js";
6
6
 
7
7
  // src/components/data-display/Carousel/Carousel.chrome.tsx
8
8
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -60,4 +60,4 @@ var CarouselChrome = ({
60
60
  export {
61
61
  CarouselChrome
62
62
  };
63
- //# sourceMappingURL=chunk-U2ILXZDG.js.map
63
+ //# sourceMappingURL=chunk-TB5CRHTF.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  partTestId
3
- } from "./chunk-3EIRRLCQ.js";
3
+ } from "./chunk-HC6OZ7QK.js";
4
4
  import {
5
5
  SETTING_CARD
6
6
  } from "./chunk-BFRVMCQM.js";
7
7
  import {
8
8
  InteractiveTooltip
9
- } from "./chunk-Z5WUSI47.js";
9
+ } from "./chunk-G3JFESKD.js";
10
10
  import {
11
11
  Icon
12
12
  } from "./chunk-YEKPQAOW.js";
@@ -92,4 +92,4 @@ export {
92
92
  SummaryInfo,
93
93
  useSummaryInfo
94
94
  };
95
- //# sourceMappingURL=chunk-X2GWR75Q.js.map
95
+ //# sourceMappingURL=chunk-TSEBMVYY.js.map
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  MapCoordinates,
3
3
  MapMarkers
4
- } from "./chunk-CJUK32UH.js";
4
+ } from "./chunk-MYTV353T.js";
5
5
  import {
6
6
  MapLayers
7
- } from "./chunk-EXVCVXFX.js";
7
+ } from "./chunk-U2QXQ7D4.js";
8
8
  import {
9
9
  glassStyles,
10
10
  resolveMapCopy,
11
11
  resolveMapPreviewProps
12
- } from "./chunk-CSGBHYW6.js";
13
- import {
14
- StaticMapView
15
- } from "./chunk-UAOE3ZPC.js";
12
+ } from "./chunk-M5Y42AZ4.js";
16
13
  import {
17
14
  useMapPreview
18
15
  } from "./chunk-QSRZOXQI.js";
16
+ import {
17
+ StaticMapView
18
+ } from "./chunk-UAOE3ZPC.js";
19
19
  import {
20
20
  rem
21
21
  } from "./chunk-YKCAJ2TN.js";
@@ -113,4 +113,4 @@ export {
113
113
  MapPreview,
114
114
  MapPreview_default
115
115
  };
116
- //# sourceMappingURL=chunk-OKRITX4S.js.map
116
+ //# sourceMappingURL=chunk-U2AEM3K4.js.map
@@ -4,16 +4,16 @@ import {
4
4
  } from "./chunk-ZZ4MMUBY.js";
5
5
  import {
6
6
  MapControlBar
7
- } from "./chunk-6WHIJPEF.js";
7
+ } from "./chunk-6PU5P7QT.js";
8
8
  import {
9
9
  resolveMapCopy
10
- } from "./chunk-CSGBHYW6.js";
11
- import {
12
- MapSearchBar
13
- } from "./chunk-MIUPTZS6.js";
10
+ } from "./chunk-M5Y42AZ4.js";
14
11
  import {
15
12
  HEATMAP_VIEWBOX
16
13
  } from "./chunk-H2J2MTRE.js";
14
+ import {
15
+ MapSearchBar
16
+ } from "./chunk-MIUPTZS6.js";
17
17
 
18
18
  // src/components/data-display/MapPreview/MapLayers.tsx
19
19
  import { useTheme } from "@mui/material/styles/index.js";
@@ -59,4 +59,4 @@ var MapLayers = ({ settings, zoom, mapType, search, controls }) => {
59
59
  export {
60
60
  MapLayers
61
61
  };
62
- //# sourceMappingURL=chunk-EXVCVXFX.js.map
62
+ //# sourceMappingURL=chunk-U2QXQ7D4.js.map
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-RUIV5TVA.js";
11
11
  import {
12
12
  CarouselChrome
13
- } from "./chunk-U2ILXZDG.js";
13
+ } from "./chunk-TB5CRHTF.js";
14
14
  import {
15
15
  withDefaults
16
16
  } from "./chunk-HPK33ACY.js";
@@ -151,4 +151,4 @@ var Carousel = (props) => {
151
151
  export {
152
152
  Carousel
153
153
  };
154
- //# sourceMappingURL=chunk-K6FCSB6T.js.map
154
+ //# sourceMappingURL=chunk-U2SAW6DH.js.map
@@ -13,7 +13,7 @@ import {
13
13
  RAIL_GAP,
14
14
  railsTemplateFor,
15
15
  useListRails
16
- } from "./chunk-BMTIBQQC.js";
16
+ } from "./chunk-BBBHPK2Q.js";
17
17
  import {
18
18
  DENSITY_ROW_PADDING
19
19
  } from "./chunk-5CAWRMDX.js";
@@ -213,4 +213,4 @@ export {
213
213
  rowGutters,
214
214
  rowStyles
215
215
  };
216
- //# sourceMappingURL=chunk-DAHSKQBV.js.map
216
+ //# sourceMappingURL=chunk-UMOHHWXY.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  CalendarDayCell
3
- } from "./chunk-XHIBFBNP.js";
3
+ } from "./chunk-3ZRK3BRN.js";
4
4
  import {
5
5
  getMonthName
6
6
  } from "./chunk-QWOI5BZV.js";
@@ -24,13 +24,22 @@ var GRID_SX = {
24
24
  rowGap: 0.5
25
25
  };
26
26
  var MONTH_SX = { flex: `1 1 ${sxRem(280)}`, minWidth: 0, maxWidth: sxRem(304) };
27
- var MonthNavHeader = ({ title, showPrevious, showNext, onPreviousMonth, onNextMonth }) => /* @__PURE__ */ jsxs(
27
+ var MonthNavHeader = ({ title, showPrevious, showNext, labels, onPreviousMonth, onNextMonth }) => /* @__PURE__ */ jsxs(
28
28
  Box,
29
29
  {
30
30
  sx: { display: "flex", alignItems: "center", justifyContent: "space-between", mb: 2 },
31
31
  "data-testid": "calendar-header",
32
32
  children: [
33
- showPrevious && /* @__PURE__ */ jsx(IconButton, { onClick: onPreviousMonth, size: "small", "data-testid": "calendar-prev-month", children: /* @__PURE__ */ jsx(ChevronLeft, {}) }),
33
+ showPrevious && /* @__PURE__ */ jsx(
34
+ IconButton,
35
+ {
36
+ onClick: onPreviousMonth,
37
+ size: "small",
38
+ "aria-label": labels?.previousMonth,
39
+ "data-testid": "calendar-prev-month",
40
+ children: /* @__PURE__ */ jsx(ChevronLeft, {})
41
+ }
42
+ ),
34
43
  /* @__PURE__ */ jsx(
35
44
  Typography,
36
45
  {
@@ -40,7 +49,16 @@ var MonthNavHeader = ({ title, showPrevious, showNext, onPreviousMonth, onNextMo
40
49
  children: title
41
50
  }
42
51
  ),
43
- showNext && /* @__PURE__ */ jsx(IconButton, { onClick: onNextMonth, size: "small", "data-testid": "calendar-next-month", children: /* @__PURE__ */ jsx(ChevronRight, {}) }),
52
+ showNext && /* @__PURE__ */ jsx(
53
+ IconButton,
54
+ {
55
+ onClick: onNextMonth,
56
+ size: "small",
57
+ "aria-label": labels?.nextMonth,
58
+ "data-testid": "calendar-next-month",
59
+ children: /* @__PURE__ */ jsx(ChevronRight, {})
60
+ }
61
+ ),
44
62
  !showPrevious && !showNext && /* @__PURE__ */ jsx(Box, { sx: { width: SPACER_WIDTH } })
45
63
  ]
46
64
  }
@@ -63,13 +81,13 @@ var WeekdayHeader = ({ weekdayNames }) => /* @__PURE__ */ jsx(Box, { sx: { ...GR
63
81
  },
64
82
  `weekday-${index}`
65
83
  )) });
66
- var MonthDays = ({ matrix, monthIndex, weekdayNames, dayContext }) => /* @__PURE__ */ jsxs(Fragment, { children: [
84
+ var MonthDays = ({ matrix, weekdayNames, dayContext }) => /* @__PURE__ */ jsxs(Fragment, { children: [
67
85
  /* @__PURE__ */ jsx(WeekdayHeader, { weekdayNames }),
68
86
  /* @__PURE__ */ jsx(
69
87
  Box,
70
88
  {
71
89
  role: "grid",
72
- "aria-labelledby": `month-${monthIndex}`,
90
+ "aria-label": getMonthName(matrix.month, matrix.year, dayContext.locale),
73
91
  "data-testid": "calendar-grid",
74
92
  sx: GRID_SX,
75
93
  children: matrix.weeks.flat().map((day) => /* @__PURE__ */ jsx(CalendarDayCell, { day, ...dayContext }, day.key))
@@ -83,6 +101,7 @@ var CalendarMonth = ({
83
101
  locale,
84
102
  weekdayNames,
85
103
  renderHeader,
104
+ labels,
86
105
  onPreviousMonth,
87
106
  onNextMonth,
88
107
  dayContext
@@ -102,6 +121,7 @@ var CalendarMonth = ({
102
121
  title,
103
122
  showPrevious: monthIndex === 0,
104
123
  showNext: monthIndex === monthsToShow - 1,
124
+ labels,
105
125
  onPreviousMonth,
106
126
  onNextMonth
107
127
  }
@@ -124,4 +144,4 @@ export {
124
144
  MonthDays,
125
145
  CalendarMonth
126
146
  };
127
- //# sourceMappingURL=chunk-YDIC6LSP.js.map
147
+ //# sourceMappingURL=chunk-VCQFDQM3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/form/Calendar/CalendarMonth.tsx"],"sourcesContent":["import ChevronLeft from '@mui/icons-material/ChevronLeft';\nimport ChevronRight from '@mui/icons-material/ChevronRight';\nimport Box from '@mui/material/Box/index.js';\nimport IconButton from '@mui/material/IconButton/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport type { FC } from 'react';\nimport React from 'react';\n\nimport type { CalendarLabels } from '../../../copy/labels';\nimport { sxRem } from '../../../tokens/relative';\n\nimport { getMonthName } from './Calendar.dates';\nimport type { CalendarProps, MonthMatrix } from './Calendar.types';\nimport type { DayCellContext } from './CalendarDayCell';\nimport { CalendarDayCell } from './CalendarDayCell';\n\n/** The nav spacer's width and the weekday row's height, 32 design px through the type scale. */\nconst SPACER_WIDTH = sxRem(32);\n\n// `minmax(0, 1fr)`, not `1fr`: a bare `1fr` keeps each column at least its\n// content's width, which is what held the grid at 304px (FUT-3861). No column\n// gap: a selected range is one band across the days, and a gap cut it into\n// tiles (FUT-4162). Rows keep theirs. Items centre in their column: the built-in\n// day stretches across it, a host's `renderDay` cell sits in its middle.\nconst GRID_SX = {\n display: 'grid',\n justifyItems: 'center',\n gridTemplateColumns: 'repeat(7, minmax(0, 1fr))',\n columnGap: 0,\n rowGap: 0.5,\n} as const;\n\n/**\n * A month takes the room it is given, from nothing up to seven full columns\n * (304 design px: what 7 × 40 cells and 6 × 4 gaps came to before the gaps\n * went, FUT-4162). Months side by side keep a 280 basis,\n * so a multi-month calendar still wraps rather than squeezing every month.\n */\nexport const MONTH_SX = { flex: `1 1 ${sxRem(280)}`, minWidth: 0, maxWidth: sxRem(304) } as const;\n\n/** The two arrows' accessible names; an icon alone names nothing. */\nexport type MonthArrowLabels = Pick<CalendarLabels, 'previousMonth' | 'nextMonth'>;\n\n// Only the outermost months carry arrows; the ones between get a spacer so their\n// titles stay centred.\nconst MonthNavHeader: FC<{\n title: React.ReactNode;\n showPrevious: boolean;\n showNext: boolean;\n labels?: MonthArrowLabels;\n onPreviousMonth: () => void;\n onNextMonth: () => void;\n}> = ({ title, showPrevious, showNext, labels, onPreviousMonth, onNextMonth }) => (\n <Box\n sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 2 }}\n data-testid=\"calendar-header\"\n >\n {showPrevious && (\n <IconButton\n onClick={onPreviousMonth}\n size=\"small\"\n aria-label={labels?.previousMonth}\n data-testid=\"calendar-prev-month\"\n >\n <ChevronLeft />\n </IconButton>\n )}\n\n <Typography\n variant=\"h6\"\n component=\"h2\"\n sx={{ fontWeight: 'bold', flex: 1, textAlign: 'center' }}\n >\n {title}\n </Typography>\n\n {showNext && (\n <IconButton\n onClick={onNextMonth}\n size=\"small\"\n aria-label={labels?.nextMonth}\n data-testid=\"calendar-next-month\"\n >\n <ChevronRight />\n </IconButton>\n )}\n\n {!showPrevious && !showNext && <Box sx={{ width: SPACER_WIDTH }} />}\n </Box>\n);\n\nconst WeekdayHeader: FC<{ weekdayNames: string[] }> = ({ weekdayNames }) => (\n <Box sx={{ ...GRID_SX, mb: 1 }}>\n {weekdayNames.map((weekday, index) => (\n <Box\n // Narrow weekday names repeat within a week ('S', 'T'), so position is\n // the only stable key here.\n key={`weekday-${index}`}\n role=\"columnheader\"\n data-testid={`calendar-weekday-${index}`}\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: SPACER_WIDTH,\n fontSize: sxRem(14),\n fontWeight: 'bold',\n color: 'text.secondary',\n }}\n >\n {weekday}\n </Box>\n ))}\n </Box>\n);\n\n/** The weekday row and the day grid under a month's caption. */\nexport const MonthDays: FC<{\n matrix: MonthMatrix;\n monthIndex: number;\n weekdayNames: string[];\n dayContext: DayCellContext;\n}> = ({ matrix, weekdayNames, dayContext }) => (\n <>\n <WeekdayHeader weekdayNames={weekdayNames} />\n\n <Box\n role=\"grid\"\n // Named by its month in words. It pointed at an id nothing carried, so\n // the grid had no name at all and a two-month calendar read as two\n // anonymous grids.\n aria-label={getMonthName(matrix.month, matrix.year, dayContext.locale)}\n data-testid=\"calendar-grid\"\n sx={GRID_SX}\n >\n {matrix.weeks.flat().map((day) => (\n <CalendarDayCell key={day.key} day={day} {...dayContext} />\n ))}\n </Box>\n </>\n);\n\nexport interface CalendarMonthProps {\n matrix: MonthMatrix;\n monthIndex: number;\n monthsToShow: number;\n locale: string;\n weekdayNames: string[];\n renderHeader?: CalendarProps['renderHeader'];\n /** The arrows' accessible names. */\n labels?: MonthArrowLabels;\n onPreviousMonth: () => void;\n onNextMonth: () => void;\n dayContext: DayCellContext;\n}\n\nexport const CalendarMonth: FC<CalendarMonthProps> = ({\n matrix,\n monthIndex,\n monthsToShow,\n locale,\n weekdayNames,\n renderHeader,\n labels,\n onPreviousMonth,\n onNextMonth,\n dayContext,\n}) => {\n const monthName = getMonthName(matrix.month, matrix.year, locale);\n const title = renderHeader ? renderHeader({ month: matrix.month, year: matrix.year }) : monthName;\n\n return (\n /* The month is addressable by its position, because in a multi-month\n calendar every day number appears once PER MONTH — `calendar-date-5` is\n January's 5th and February's. Without a per-month hook a test can only\n reach a day positionally, which is exactly what the flakiness gate\n refuses. Additive: `calendar-grid` below is unchanged. */\n <Box sx={MONTH_SX} data-testid={`calendar-month-${monthIndex}`}>\n <MonthNavHeader\n title={title}\n showPrevious={monthIndex === 0}\n showNext={monthIndex === monthsToShow - 1}\n labels={labels}\n onPreviousMonth={onPreviousMonth}\n onNextMonth={onNextMonth}\n />\n\n <MonthDays\n matrix={matrix}\n monthIndex={monthIndex}\n weekdayNames={weekdayNames}\n dayContext={dayContext}\n />\n </Box>\n );\n};\n"],"mappings":"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","names":[]}
@@ -1,11 +1,11 @@
1
- import {
2
- useLightboxCopy
3
- } from "./chunk-TEQYTEM2.js";
4
1
  import {
5
2
  OVERLAY_Z_INDEX,
6
3
  navButtonSx,
7
4
  overlayButtonSx
8
5
  } from "./chunk-VQU3CBAL.js";
6
+ import {
7
+ useLightboxCopy
8
+ } from "./chunk-TEQYTEM2.js";
9
9
  import {
10
10
  sxRem
11
11
  } from "./chunk-YKCAJ2TN.js";
@@ -156,4 +156,4 @@ export {
156
156
  LightboxZoomControls,
157
157
  LightboxAutoplayButton
158
158
  };
159
- //# sourceMappingURL=chunk-P772HCHI.js.map
159
+ //# sourceMappingURL=chunk-W676GY42.js.map