@12-apps/ui 6.89.2 → 6.90.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 (274) hide show
  1. package/components-catalog.md +1 -1
  2. package/dist/_internal/components/data-display/Alert/Alert.js +3 -3
  3. package/dist/_internal/components/data-display/Avatar/Avatar.js +4 -4
  4. package/dist/_internal/components/data-display/Avatar/Avatar.view.js +2 -2
  5. package/dist/_internal/components/data-display/CardKit/card-actions-context.js +4 -4
  6. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +5 -5
  7. package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +4 -3
  8. package/dist/_internal/components/data-display/Carousel/Carousel.js +6 -5
  9. package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +3 -2
  10. package/dist/_internal/components/data-display/Chart/Chart.js +3 -3
  11. package/dist/_internal/components/data-display/Chart/SpecChart.js +6 -6
  12. package/dist/_internal/components/data-display/Chart/chart-renderers.js +2 -2
  13. package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
  14. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
  15. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +48 -23
  16. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +53 -28
  17. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +1 -1
  18. package/dist/_internal/components/data-display/DataViews/base-list-card-layout.js +1 -1
  19. package/dist/_internal/components/data-display/DataViews/base-list-card.js +3 -3
  20. package/dist/_internal/components/data-display/DataViews/data-views-bar-controls.js +5 -3
  21. package/dist/_internal/components/data-display/DataViews/data-views-day-input.js +1 -1
  22. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +31 -6
  23. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +3 -3
  24. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +47 -22
  25. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +37 -12
  26. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +32 -7
  27. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +33 -8
  28. package/dist/_internal/components/data-display/DataViews/data-views-number-input.js +1 -1
  29. package/dist/_internal/components/data-display/DataViews/data-views-preset-chips.js +10 -3
  30. package/dist/_internal/components/data-display/DataViews/data-views-range-bounds.js +47 -0
  31. package/dist/_internal/components/data-display/DataViews/data-views-range-bounds.js.map +1 -0
  32. package/dist/_internal/components/data-display/DataViews/data-views-range-calendar.js +36 -0
  33. package/dist/_internal/components/data-display/DataViews/data-views-range-calendar.js.map +1 -0
  34. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +32 -6
  35. package/dist/_internal/components/data-display/DataViews/data-views-range-summary.js +12 -0
  36. package/dist/_internal/components/data-display/DataViews/data-views-range-summary.js.map +1 -0
  37. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +3 -3
  38. package/dist/_internal/components/data-display/DataViews/data-views-still-anchor.js +9 -0
  39. package/dist/_internal/components/data-display/DataViews/data-views-still-anchor.js.map +1 -0
  40. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +4 -4
  41. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +2 -2
  42. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +9 -8
  43. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +8 -7
  44. package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js +2 -1
  45. package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js.map +1 -1
  46. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +9 -9
  47. package/dist/_internal/components/data-display/MapPreview/MapControlBar.js +4 -3
  48. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +5 -4
  49. package/dist/_internal/components/data-display/MapPreview/MapMarkers.js +4 -3
  50. package/dist/_internal/components/data-display/MapPreview/MapPreview.helpers.js +3 -2
  51. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +7 -6
  52. package/dist/_internal/components/data-display/index.js +35 -35
  53. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +4 -4
  54. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.js +6 -6
  55. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.overview.js +5 -5
  56. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.parts.js +4 -4
  57. package/dist/_internal/components/feedback/index.js +7 -7
  58. package/dist/_internal/components/form/Calendar/Calendar.js +5 -5
  59. package/dist/_internal/components/form/Calendar/CalendarDay.js +1 -1
  60. package/dist/_internal/components/form/Calendar/CalendarDayCell.js +2 -2
  61. package/dist/_internal/components/form/Calendar/CalendarMonth.js +3 -3
  62. package/dist/_internal/components/form/Calendar/CalendarSelectorsMonth.js +4 -4
  63. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.hooks.js +3 -3
  64. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +10 -10
  65. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.range.js +2 -2
  66. package/dist/_internal/components/form/DateRangePicker/DateRangePickerFields.js +3 -3
  67. package/dist/_internal/components/form/index.js +24 -24
  68. package/dist/_internal/components/index.js +63 -63
  69. package/dist/_internal/en-US.data-display.js +2 -1
  70. package/dist/_internal/pt-BR.data-display.js +2 -1
  71. package/dist/_internal/user-avatar/user-avatar.js +5 -5
  72. package/dist/charts.js +11 -11
  73. package/dist/{chunk-FJ3UZ4RC.js → chunk-2FKWKLSC.js} +5 -3
  74. package/dist/chunk-2FKWKLSC.js.map +1 -0
  75. package/dist/{chunk-BO6MT2S2.js → chunk-3HZKUN5J.js} +7 -6
  76. package/dist/chunk-3HZKUN5J.js.map +1 -0
  77. package/dist/{chunk-TYXFFNPM.js → chunk-3OTGREQG.js} +10 -10
  78. package/dist/{chunk-BEHT4IHH.js → chunk-3X2MA47R.js} +2 -2
  79. package/dist/{chunk-XHIBFBNP.js → chunk-3ZRK3BRN.js} +4 -2
  80. package/dist/chunk-3ZRK3BRN.js.map +1 -0
  81. package/dist/{chunk-X5OGIT2F.js → chunk-4L54KUZV.js} +22 -4
  82. package/dist/chunk-4L54KUZV.js.map +1 -0
  83. package/dist/{chunk-TRYR424I.js → chunk-6LOWZCH7.js} +15 -1
  84. package/dist/chunk-6LOWZCH7.js.map +1 -0
  85. package/dist/{chunk-6WHIJPEF.js → chunk-6PU5P7QT.js} +2 -2
  86. package/dist/chunk-7CUZTWKW.js +52 -0
  87. package/dist/chunk-7CUZTWKW.js.map +1 -0
  88. package/dist/{chunk-JIEVKHOH.js → chunk-7YJYIMWP.js} +7 -7
  89. package/dist/{chunk-YNZUYZ2O.js → chunk-A3DDEKLV.js} +2 -2
  90. package/dist/{chunk-FEKWKWGK.js → chunk-ARGVUTTL.js} +15 -1
  91. package/dist/chunk-ARGVUTTL.js.map +1 -0
  92. package/dist/{chunk-DYHOBKPU.js → chunk-BLZDSCIZ.js} +6 -6
  93. package/dist/{chunk-E2UOEI7N.js → chunk-BV2LOTMC.js} +2 -2
  94. package/dist/{chunk-O63ZROSY.js → chunk-BZBLPXV7.js} +4 -4
  95. package/dist/{chunk-OKRITX4S.js → chunk-CJ6XXM4X.js} +4 -4
  96. package/dist/{chunk-LV6AD6XC.js → chunk-DBI6AMNY.js} +4 -4
  97. package/dist/{chunk-QRRWLLXW.js → chunk-DSBC6O46.js} +2 -2
  98. package/dist/{chunk-3YFDGFEK.js → chunk-DVX4HDNP.js} +2 -2
  99. package/dist/{chunk-CJUK32UH.js → chunk-EEO7M5GU.js} +2 -2
  100. package/dist/{chunk-7XSCEHGA.js → chunk-EOQ6EKTS.js} +7 -7
  101. package/dist/{chunk-5RSK5M6M.js → chunk-FI2CQOGC.js} +63 -126
  102. package/dist/chunk-FI2CQOGC.js.map +1 -0
  103. package/dist/{chunk-Q2ERGAQO.js → chunk-FYAW5GBF.js} +33 -6
  104. package/dist/chunk-FYAW5GBF.js.map +1 -0
  105. package/dist/{chunk-AMLHEKSV.js → chunk-HI7JPDD6.js} +5 -5
  106. package/dist/chunk-J2AVWIMM.js +60 -0
  107. package/dist/chunk-J2AVWIMM.js.map +1 -0
  108. package/dist/{chunk-7QKIL5YF.js → chunk-J2GDA64N.js} +4 -4
  109. package/dist/{chunk-BAQ3ITZV.js → chunk-JFD742C3.js} +2 -2
  110. package/dist/{chunk-OBA75Y5O.js → chunk-JHWEL4NX.js} +61 -33
  111. package/dist/chunk-JHWEL4NX.js.map +1 -0
  112. package/dist/{chunk-HQCZT6TO.js → chunk-JVOEVTCZ.js} +5 -5
  113. package/dist/{chunk-WAO7UQRS.js → chunk-KANCE4MS.js} +3 -3
  114. package/dist/{chunk-XLU5WFSY.js → chunk-KRBPWTXW.js} +2 -2
  115. package/dist/{chunk-S6D7NOV7.js → chunk-L6JAALMX.js} +3 -3
  116. package/dist/{chunk-72HOUWAW.js → chunk-L6YTVXGN.js} +5 -3
  117. package/dist/{chunk-72HOUWAW.js.map → chunk-L6YTVXGN.js.map} +1 -1
  118. package/dist/chunk-LZNUBQ5I.js +181 -0
  119. package/dist/chunk-LZNUBQ5I.js.map +1 -0
  120. package/dist/{chunk-BECKKDYG.js → chunk-M2M4IDFU.js} +2 -2
  121. package/dist/{chunk-CSGBHYW6.js → chunk-M5Y42AZ4.js} +2 -2
  122. package/dist/chunk-MICX23P4.js +122 -0
  123. package/dist/chunk-MICX23P4.js.map +1 -0
  124. package/dist/{chunk-5CP5Z3YU.js → chunk-MPWA55CF.js} +4 -4
  125. package/dist/{chunk-5KK3I42O.js → chunk-NK6O4NE4.js} +13 -10
  126. package/dist/chunk-NK6O4NE4.js.map +1 -0
  127. package/dist/{chunk-RCTHCXS6.js → chunk-PJNIJIE6.js} +2 -2
  128. package/dist/{chunk-6ATXOJVQ.js → chunk-QADTI63U.js} +4 -4
  129. package/dist/{chunk-MW7P2C2C.js → chunk-QAEO52Z4.js} +2 -2
  130. package/dist/{chunk-5S5K73I6.js → chunk-QSOCOXVL.js} +3 -3
  131. package/dist/{chunk-NQCTANF3.js → chunk-QVDEGBME.js} +7 -7
  132. package/dist/{chunk-BQBEN44R.js → chunk-RDCIST7P.js} +2 -2
  133. package/dist/{chunk-HUXAIQC5.js → chunk-RZ3P4X2I.js} +2 -2
  134. package/dist/{chunk-WJMSND5Q.js → chunk-SCXVTNLE.js} +2 -2
  135. package/dist/{chunk-K6FCSB6T.js → chunk-SK2CTB3O.js} +6 -6
  136. package/dist/{chunk-QLJU7UUI.js → chunk-T7OIVPCO.js} +38 -3
  137. package/dist/chunk-T7OIVPCO.js.map +1 -0
  138. package/dist/{chunk-U2ILXZDG.js → chunk-TB5CRHTF.js} +2 -2
  139. package/dist/{chunk-SB2SEGR6.js → chunk-TIM4PXWN.js} +3 -3
  140. package/dist/{chunk-YDIC6LSP.js → chunk-VCQFDQM3.js} +27 -7
  141. package/dist/chunk-VCQFDQM3.js.map +1 -0
  142. package/dist/chunk-VIMMEADQ.js +164 -0
  143. package/dist/chunk-VIMMEADQ.js.map +1 -0
  144. package/dist/{chunk-6D5AMANO.js → chunk-WH3LUOCQ.js} +2 -2
  145. package/dist/{chunk-OWRQOYUE.js → chunk-WWR6APJR.js} +2 -2
  146. package/dist/{chunk-5BVAUUWL.js → chunk-X37NTEVS.js} +2 -2
  147. package/dist/{chunk-WW3F7DCX.js → chunk-Z2WZDVGG.js} +2 -2
  148. package/dist/{chunk-EXVCVXFX.js → chunk-ZH6NYB6Y.js} +3 -3
  149. package/dist/data-display/Alert.js +3 -3
  150. package/dist/data-display/Avatar.js +4 -4
  151. package/dist/data-display/CardKit.js +11 -11
  152. package/dist/data-display/Carousel.js +6 -5
  153. package/dist/data-display/Chart.js +11 -11
  154. package/dist/data-display/DataGrid.js +2 -2
  155. package/dist/data-display/DataViews.js +60 -35
  156. package/dist/data-display/FleetMap.js +9 -9
  157. package/dist/data-display/MapPreview.js +7 -6
  158. package/dist/en-US.js +1 -1
  159. package/dist/feedback/NotificationStatusNotice.js +4 -4
  160. package/dist/feedback/SequenceResolver.js +6 -6
  161. package/dist/form/Calendar.js +5 -5
  162. package/dist/form/DateRangePicker.js +10 -10
  163. package/dist/locales.js +5 -5
  164. package/dist/pt-BR.js +1 -1
  165. package/dist/types/components/data-display/DataViews/data-views-bar-controls.d.ts +15 -1
  166. package/dist/types/components/data-display/DataViews/data-views-bar-controls.d.ts.map +1 -1
  167. package/dist/types/components/data-display/DataViews/data-views-copy.d.ts +35 -0
  168. package/dist/types/components/data-display/DataViews/data-views-copy.d.ts.map +1 -1
  169. package/dist/types/components/data-display/DataViews/data-views-day-input.d.ts +7 -1
  170. package/dist/types/components/data-display/DataViews/data-views-day-input.d.ts.map +1 -1
  171. package/dist/types/components/data-display/DataViews/data-views-more-fields.d.ts.map +1 -1
  172. package/dist/types/components/data-display/DataViews/data-views-more-filters.d.ts +5 -3
  173. package/dist/types/components/data-display/DataViews/data-views-more-filters.d.ts.map +1 -1
  174. package/dist/types/components/data-display/DataViews/data-views-number-input.d.ts +10 -2
  175. package/dist/types/components/data-display/DataViews/data-views-number-input.d.ts.map +1 -1
  176. package/dist/types/components/data-display/DataViews/data-views-preset-chips.d.ts +10 -0
  177. package/dist/types/components/data-display/DataViews/data-views-preset-chips.d.ts.map +1 -1
  178. package/dist/types/components/data-display/DataViews/data-views-range-bounds.d.ts +35 -0
  179. package/dist/types/components/data-display/DataViews/data-views-range-bounds.d.ts.map +1 -0
  180. package/dist/types/components/data-display/DataViews/data-views-range-calendar.d.ts +35 -0
  181. package/dist/types/components/data-display/DataViews/data-views-range-calendar.d.ts.map +1 -0
  182. package/dist/types/components/data-display/DataViews/data-views-range-pill.d.ts +2 -11
  183. package/dist/types/components/data-display/DataViews/data-views-range-pill.d.ts.map +1 -1
  184. package/dist/types/components/data-display/DataViews/data-views-range-summary.d.ts +21 -0
  185. package/dist/types/components/data-display/DataViews/data-views-range-summary.d.ts.map +1 -0
  186. package/dist/types/components/data-display/DataViews/data-views-still-anchor.d.ts +45 -0
  187. package/dist/types/components/data-display/DataViews/data-views-still-anchor.d.ts.map +1 -0
  188. package/dist/types/components/data-display/LazyImage/LazyImage.hooks.d.ts +1 -1
  189. package/dist/types/components/form/Calendar/Calendar.d.ts.map +1 -1
  190. package/dist/types/components/form/Calendar/CalendarDay.d.ts +2 -0
  191. package/dist/types/components/form/Calendar/CalendarDay.d.ts.map +1 -1
  192. package/dist/types/components/form/Calendar/CalendarDayCell.d.ts +2 -0
  193. package/dist/types/components/form/Calendar/CalendarDayCell.d.ts.map +1 -1
  194. package/dist/types/components/form/Calendar/CalendarMonth.d.ts +5 -0
  195. package/dist/types/components/form/Calendar/CalendarMonth.d.ts.map +1 -1
  196. package/dist/types/en-US.data-display.d.ts.map +1 -1
  197. package/dist/types/pt-BR.data-display.d.ts.map +1 -1
  198. package/dist/user-avatar.js +5 -5
  199. package/package.json +1 -1
  200. package/src/components/data-display/DataViews/RESPONSIVE-BEHAVIOUR.md +59 -0
  201. package/src/components/data-display/DataViews/data-views-bar-controls.tsx +56 -1
  202. package/src/components/data-display/DataViews/data-views-copy.ts +36 -0
  203. package/src/components/data-display/DataViews/data-views-day-input.tsx +9 -1
  204. package/src/components/data-display/DataViews/data-views-inline-bar.tsx +5 -3
  205. package/src/components/data-display/DataViews/data-views-more-fields.tsx +1 -0
  206. package/src/components/data-display/DataViews/data-views-more-filters.tsx +82 -29
  207. package/src/components/data-display/DataViews/data-views-number-input.tsx +19 -9
  208. package/src/components/data-display/DataViews/data-views-preset-chips.tsx +165 -16
  209. package/src/components/data-display/DataViews/data-views-range-bounds.tsx +223 -0
  210. package/src/components/data-display/DataViews/data-views-range-calendar.tsx +185 -0
  211. package/src/components/data-display/DataViews/data-views-range-pill.tsx +71 -154
  212. package/src/components/data-display/DataViews/data-views-range-summary.tsx +66 -0
  213. package/src/components/data-display/DataViews/data-views-still-anchor.ts +93 -0
  214. package/src/components/form/Calendar/Calendar.md +17 -2
  215. package/src/components/form/Calendar/Calendar.tsx +56 -3
  216. package/src/components/form/Calendar/CalendarDay.tsx +33 -3
  217. package/src/components/form/Calendar/CalendarDayCell.tsx +4 -0
  218. package/src/components/form/Calendar/CalendarMonth.tsx +27 -5
  219. package/src/en-US.data-display.ts +12 -0
  220. package/src/pt-BR.data-display.ts +12 -0
  221. package/dist/chunk-5KK3I42O.js.map +0 -1
  222. package/dist/chunk-5RSK5M6M.js.map +0 -1
  223. package/dist/chunk-7D7CJRL7.js +0 -78
  224. package/dist/chunk-7D7CJRL7.js.map +0 -1
  225. package/dist/chunk-BO6MT2S2.js.map +0 -1
  226. package/dist/chunk-FEKWKWGK.js.map +0 -1
  227. package/dist/chunk-FJ3UZ4RC.js.map +0 -1
  228. package/dist/chunk-OBA75Y5O.js.map +0 -1
  229. package/dist/chunk-Q2ERGAQO.js.map +0 -1
  230. package/dist/chunk-QLJU7UUI.js.map +0 -1
  231. package/dist/chunk-TRYR424I.js.map +0 -1
  232. package/dist/chunk-X5OGIT2F.js.map +0 -1
  233. package/dist/chunk-XHIBFBNP.js.map +0 -1
  234. package/dist/chunk-YDIC6LSP.js.map +0 -1
  235. /package/dist/{chunk-TYXFFNPM.js.map → chunk-3OTGREQG.js.map} +0 -0
  236. /package/dist/{chunk-BEHT4IHH.js.map → chunk-3X2MA47R.js.map} +0 -0
  237. /package/dist/{chunk-6WHIJPEF.js.map → chunk-6PU5P7QT.js.map} +0 -0
  238. /package/dist/{chunk-JIEVKHOH.js.map → chunk-7YJYIMWP.js.map} +0 -0
  239. /package/dist/{chunk-YNZUYZ2O.js.map → chunk-A3DDEKLV.js.map} +0 -0
  240. /package/dist/{chunk-DYHOBKPU.js.map → chunk-BLZDSCIZ.js.map} +0 -0
  241. /package/dist/{chunk-E2UOEI7N.js.map → chunk-BV2LOTMC.js.map} +0 -0
  242. /package/dist/{chunk-O63ZROSY.js.map → chunk-BZBLPXV7.js.map} +0 -0
  243. /package/dist/{chunk-OKRITX4S.js.map → chunk-CJ6XXM4X.js.map} +0 -0
  244. /package/dist/{chunk-LV6AD6XC.js.map → chunk-DBI6AMNY.js.map} +0 -0
  245. /package/dist/{chunk-QRRWLLXW.js.map → chunk-DSBC6O46.js.map} +0 -0
  246. /package/dist/{chunk-3YFDGFEK.js.map → chunk-DVX4HDNP.js.map} +0 -0
  247. /package/dist/{chunk-CJUK32UH.js.map → chunk-EEO7M5GU.js.map} +0 -0
  248. /package/dist/{chunk-7XSCEHGA.js.map → chunk-EOQ6EKTS.js.map} +0 -0
  249. /package/dist/{chunk-AMLHEKSV.js.map → chunk-HI7JPDD6.js.map} +0 -0
  250. /package/dist/{chunk-7QKIL5YF.js.map → chunk-J2GDA64N.js.map} +0 -0
  251. /package/dist/{chunk-BAQ3ITZV.js.map → chunk-JFD742C3.js.map} +0 -0
  252. /package/dist/{chunk-HQCZT6TO.js.map → chunk-JVOEVTCZ.js.map} +0 -0
  253. /package/dist/{chunk-WAO7UQRS.js.map → chunk-KANCE4MS.js.map} +0 -0
  254. /package/dist/{chunk-XLU5WFSY.js.map → chunk-KRBPWTXW.js.map} +0 -0
  255. /package/dist/{chunk-S6D7NOV7.js.map → chunk-L6JAALMX.js.map} +0 -0
  256. /package/dist/{chunk-BECKKDYG.js.map → chunk-M2M4IDFU.js.map} +0 -0
  257. /package/dist/{chunk-CSGBHYW6.js.map → chunk-M5Y42AZ4.js.map} +0 -0
  258. /package/dist/{chunk-5CP5Z3YU.js.map → chunk-MPWA55CF.js.map} +0 -0
  259. /package/dist/{chunk-RCTHCXS6.js.map → chunk-PJNIJIE6.js.map} +0 -0
  260. /package/dist/{chunk-6ATXOJVQ.js.map → chunk-QADTI63U.js.map} +0 -0
  261. /package/dist/{chunk-MW7P2C2C.js.map → chunk-QAEO52Z4.js.map} +0 -0
  262. /package/dist/{chunk-5S5K73I6.js.map → chunk-QSOCOXVL.js.map} +0 -0
  263. /package/dist/{chunk-NQCTANF3.js.map → chunk-QVDEGBME.js.map} +0 -0
  264. /package/dist/{chunk-BQBEN44R.js.map → chunk-RDCIST7P.js.map} +0 -0
  265. /package/dist/{chunk-HUXAIQC5.js.map → chunk-RZ3P4X2I.js.map} +0 -0
  266. /package/dist/{chunk-WJMSND5Q.js.map → chunk-SCXVTNLE.js.map} +0 -0
  267. /package/dist/{chunk-K6FCSB6T.js.map → chunk-SK2CTB3O.js.map} +0 -0
  268. /package/dist/{chunk-U2ILXZDG.js.map → chunk-TB5CRHTF.js.map} +0 -0
  269. /package/dist/{chunk-SB2SEGR6.js.map → chunk-TIM4PXWN.js.map} +0 -0
  270. /package/dist/{chunk-6D5AMANO.js.map → chunk-WH3LUOCQ.js.map} +0 -0
  271. /package/dist/{chunk-OWRQOYUE.js.map → chunk-WWR6APJR.js.map} +0 -0
  272. /package/dist/{chunk-5BVAUUWL.js.map → chunk-X37NTEVS.js.map} +0 -0
  273. /package/dist/{chunk-WW3F7DCX.js.map → chunk-Z2WZDVGG.js.map} +0 -0
  274. /package/dist/{chunk-EXVCVXFX.js.map → chunk-ZH6NYB6Y.js.map} +0 -0
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-H2J2MTRE.js";
4
4
  import {
5
5
  EN_US_MAP_PREVIEW_COPY
6
- } from "./chunk-FEKWKWGK.js";
6
+ } from "./chunk-ARGVUTTL.js";
7
7
  import {
8
8
  rem
9
9
  } from "./chunk-YKCAJ2TN.js";
@@ -46,4 +46,4 @@ export {
46
46
  resolveMapPreviewProps,
47
47
  glassStyles
48
48
  };
49
- //# sourceMappingURL=chunk-CSGBHYW6.js.map
49
+ //# sourceMappingURL=chunk-M5Y42AZ4.js.map
@@ -0,0 +1,122 @@
1
+ import {
2
+ useDataViewsCopy
3
+ } from "./chunk-KHG57NAE.js";
4
+ import {
5
+ toDayString,
6
+ toLocalDay
7
+ } from "./chunk-SUTOAW7I.js";
8
+ import {
9
+ Calendar
10
+ } from "./chunk-FYAW5GBF.js";
11
+ import {
12
+ EN_US_DATA_VIEWS_COPY
13
+ } from "./chunk-ARGVUTTL.js";
14
+ import {
15
+ rem,
16
+ sxRem
17
+ } from "./chunk-YKCAJ2TN.js";
18
+
19
+ // src/components/data-display/DataViews/data-views-range-calendar.tsx
20
+ import Box from "@mui/material/Box/index.js";
21
+ import Typography from "@mui/material/Typography/index.js";
22
+ import { jsx, jsxs } from "react/jsx-runtime";
23
+ var CALENDAR_CLASS = "data-views-range-calendar";
24
+ var ROOT_SX = (theme) => ({
25
+ mt: { xs: 1, sm: 1.5 },
26
+ // Below `sm` the caption and the weekday row give up their bottom margins,
27
+ // so the whole popover fits a 320×568 screen under its pill (FUT-4144).
28
+ '& :has(> * > [data-testid="calendar-month-select"])': { mb: { xs: 0.5, sm: 2 } },
29
+ '& :has(> [role="columnheader"])': { mb: { xs: 0, sm: 1 } },
30
+ '& [role="columnheader"]': { height: { xs: rem(theme, 24), sm: rem(theme, 32) } },
31
+ // The days carry no column gap of their own (`Calendar`, FUT-4162), so the
32
+ // seven columns are what a day's 40px target is carved from below `sm`; the
33
+ // range band and its round endpoints are the Calendar's, untouched here.
34
+ // The month/year caption on ONE row at 320: the selectors give up the slack
35
+ // around their text before the arrows are pushed onto a second row.
36
+ '& [data-testid="calendar-month-select"], & [data-testid="calendar-year-select"]': { px: 0.5, minWidth: 0 },
37
+ [`& .${CALENDAR_CLASS}`]: {
38
+ p: 0,
39
+ boxShadow: "none",
40
+ backgroundColor: "transparent",
41
+ backgroundImage: "none",
42
+ // A tapped day already rings itself; the whole grid framed in the primary
43
+ // colour after every tap is noise in a popover. The frame stays for the
44
+ // keyboard reaching the grid itself.
45
+ "&:focus-within": { outline: "none" },
46
+ "&:focus-visible": {
47
+ outline: (theme2) => `${rem(theme2, 2)} solid`,
48
+ outlineColor: "primary.main",
49
+ outlineOffset: sxRem(2)
50
+ }
51
+ }
52
+ });
53
+ function rangeOf(value) {
54
+ return {
55
+ start: toLocalDay(typeof value.min === "string" ? value.min : null),
56
+ end: toLocalDay(typeof value.max === "string" ? value.max : null)
57
+ };
58
+ }
59
+ function rangeFromCalendar(previous, picked) {
60
+ const min = dayOf(picked.start);
61
+ const max = dayOf(picked.end) ?? keptEnd(previous, min);
62
+ return { ...min ? { min } : {}, ...max ? { max } : {} };
63
+ }
64
+ var dayOf = (date) => date ? toDayString(date) : void 0;
65
+ function keptEnd(previous, min) {
66
+ if (previous.min != null || typeof previous.max !== "string") return void 0;
67
+ return min && min <= previous.max ? previous.max : void 0;
68
+ }
69
+ function openingMonth(value, months) {
70
+ const end = toLocalDay(typeof value.max === "string" ? value.max : null);
71
+ const anchor = end ?? /* @__PURE__ */ new Date();
72
+ return new Date(anchor.getFullYear(), anchor.getMonth() - (months > 1 ? 1 : 0), 1);
73
+ }
74
+ function DayRangeCalendar({
75
+ fieldLabel,
76
+ value,
77
+ onChange,
78
+ months,
79
+ viewKey,
80
+ testId
81
+ }) {
82
+ const copy = useDataViewsCopy().filters.dayCalendar ?? EN_US_DATA_VIEWS_COPY.filters.dayCalendar;
83
+ const range = rangeOf(value);
84
+ const pick = (picked) => onChange(rangeFromCalendar(value, picked));
85
+ const waitingForEnd = Boolean(range.start && !range.end);
86
+ return /* @__PURE__ */ jsxs(Box, { sx: ROOT_SX, "data-testid": `${testId}-calendar`, children: [
87
+ /* @__PURE__ */ jsx(
88
+ Calendar,
89
+ {
90
+ ariaLabel: copy.label(fieldLabel),
91
+ className: CALENDAR_CLASS,
92
+ selectionMode: "range",
93
+ locale: copy.locale,
94
+ labels: copy.caption,
95
+ firstDayOfWeek: 0,
96
+ numberOfMonths: months,
97
+ showOutsideDays: months === 1,
98
+ captionLayout: months > 1 ? "arrows" : "selectors",
99
+ defaultMonth: openingMonth(value, months),
100
+ range,
101
+ onIntermediateRangeChange: pick
102
+ },
103
+ viewKey
104
+ ),
105
+ /* @__PURE__ */ jsx(
106
+ Typography,
107
+ {
108
+ component: "p",
109
+ "aria-live": "polite",
110
+ "data-testid": `${testId}-calendar-hint`,
111
+ sx: { mt: { xs: 0.25, sm: 1 }, fontSize: sxRem(12), color: "text.secondary" },
112
+ children: waitingForEnd ? copy.pickEnd : copy.pickStart
113
+ }
114
+ )
115
+ ] });
116
+ }
117
+
118
+ export {
119
+ rangeFromCalendar,
120
+ DayRangeCalendar
121
+ };
122
+ //# sourceMappingURL=chunk-MICX23P4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/DataViews/data-views-range-calendar.tsx"],"sourcesContent":["'use client';\n\n/**\n * The range calendar under a day filter's `De`/`Até` boxes (FUT-4144).\n *\n * The owner picked it ALWAYS OPEN (option B of the prototype): a period is\n * three taps — open the filter, the first day, the last day — against five for\n * a calendar button in each box and four for a link to a separate sheet. It\n * sits BELOW the boxes, with no button of its own, so the typed path is not one\n * keystroke longer than it was.\n *\n * The boxes and the calendar are two views of ONE range: a tap writes the\n * boxes, a typed day moves and repaints the calendar, an impossible typed day\n * (which writes nothing) leaves it alone, and \"Limpar\" empties both.\n *\n * It is `Calendar` in `selectionMode=\"range\"`, the same one `DateRangePicker`\n * mounts — not a second calendar. Its own rule picks the period: the first tap\n * starts it, the second closes it, and a second tap BEFORE the first swaps the\n * two, so the boxes never show a period backwards.\n */\nimport Box from '@mui/material/Box/index.js';\nimport Typography from '@mui/material/Typography/index.js';\nimport React from 'react';\n\nimport { EN_US_DATA_VIEWS_COPY } from '../../../en-US.data-display';\nimport type { Theme } from '@mui/material/styles/index.js';\nimport { rem, sxRem } from '../../../tokens/relative';\nimport { Calendar, type DateRange } from '../../form/Calendar';\nimport { toDayString, toLocalDay } from '../../form/DateRangePicker/DateRangePicker.dates';\nimport type { DataViewsDayCalendarCopy } from './data-views-copy';\nimport { useDataViewsCopy } from './data-views-copy-context';\nimport type { RangeValue } from './data-views-types';\n\nconst CALENDAR_CLASS = 'data-views-range-calendar';\n\n/**\n * `Calendar` draws its own `Paper` with 24px of padding and a shadow. Inside\n * the filter's popover that reads as a card inside a card, so the inner frame\n * is flattened through the class hook the component offers for this — the\n * same thing `DateRangePicker` does.\n */\nconst ROOT_SX = (theme: Theme) => ({\n mt: { xs: 1, sm: 1.5 },\n // Below `sm` the caption and the weekday row give up their bottom margins,\n // so the whole popover fits a 320×568 screen under its pill (FUT-4144).\n '& :has(> * > [data-testid=\"calendar-month-select\"])': { mb: { xs: 0.5, sm: 2 } },\n '& :has(> [role=\"columnheader\"])': { mb: { xs: 0, sm: 1 } },\n '& [role=\"columnheader\"]': { height: { xs: rem(theme, 24), sm: rem(theme, 32) } },\n // The days carry no column gap of their own (`Calendar`, FUT-4162), so the\n // seven columns are what a day's 40px target is carved from below `sm`; the\n // range band and its round endpoints are the Calendar's, untouched here.\n // The month/year caption on ONE row at 320: the selectors give up the slack\n // around their text before the arrows are pushed onto a second row.\n '& [data-testid=\"calendar-month-select\"], & [data-testid=\"calendar-year-select\"]': { px: 0.5, minWidth: 0 },\n [`& .${CALENDAR_CLASS}`]: {\n p: 0,\n boxShadow: 'none',\n backgroundColor: 'transparent',\n backgroundImage: 'none',\n // A tapped day already rings itself; the whole grid framed in the primary\n // colour after every tap is noise in a popover. The frame stays for the\n // keyboard reaching the grid itself.\n '&:focus-within': { outline: 'none' },\n '&:focus-visible': {\n outline: (theme: Theme) => `${rem(theme, 2)} solid`,\n outlineColor: 'primary.main',\n outlineOffset: sxRem(2),\n },\n },\n});\n\n/** The two ends of a range, as `Calendar` reads them. */\nfunction rangeOf(value: RangeValue): DateRange {\n return {\n start: toLocalDay(typeof value.min === 'string' ? value.min : null),\n end: toLocalDay(typeof value.max === 'string' ? value.max : null),\n };\n}\n\n/**\n * What a tap on the calendar makes of the range.\n *\n * `Calendar` reports the period it holds after the tap: a fresh start (`end`\n * null) or a closed one, already in order. The one case it cannot see is a\n * range with only `Até` — typed, or left by a saved view — where its first tap\n * would drop that `Até`. A first day on or before it keeps it, so \"até 15/10\"\n * plus one tap on the 3rd is 03/10–15/10, as the prototype does.\n */\nexport function rangeFromCalendar(previous: RangeValue, picked: DateRange): RangeValue {\n const min = dayOf(picked.start);\n const max = dayOf(picked.end) ?? keptEnd(previous, min);\n return { ...(min ? { min } : {}), ...(max ? { max } : {}) };\n}\n\nconst dayOf = (date: Date | null | undefined): string | undefined => (date ? toDayString(date) : undefined);\n\n/** The `Até` of a range that has ONLY one, when the new first day is on or before it. */\nfunction keptEnd(previous: RangeValue, min: string | undefined): string | undefined {\n if (previous.min != null || typeof previous.max !== 'string') return undefined;\n return min && min <= previous.max ? previous.max : undefined;\n}\n\n/**\n * The month the calendar opens on while `De` is empty. With `De` set it opens\n * on De's month, which `Calendar` does by itself.\n *\n * With two months the current month sits on the RIGHT (setembro | outubro), so\n * the days a filter usually asks about — the ones just past — are on screen;\n * with only `Até` set, its month takes that place.\n */\nfunction openingMonth(value: RangeValue, months: number): Date | undefined {\n const end = toLocalDay(typeof value.max === 'string' ? value.max : null);\n const anchor = end ?? new Date();\n return new Date(anchor.getFullYear(), anchor.getMonth() - (months > 1 ? 1 : 0), 1);\n}\n\n/** Props of {@link DayRangeCalendar}. */\nexport interface DayRangeCalendarProps {\n /** The filter's own label (\"Data\"), which names the calendar. */\n fieldLabel: string;\n value: RangeValue;\n /** Called with the range a tap leaves; never for a typed day. */\n onChange: (range: RangeValue) => void;\n /**\n * Months side by side. Two read as a period at a glance where there is room;\n * one, with the month/year selectors, where there is not.\n */\n months: 1 | 2;\n /**\n * Changes when the range moved from OUTSIDE the calendar (typed, a preset,\n * \"Limpar\"), so the calendar re-opens on it. Never for its own taps: a\n * calendar that jumped under the finger picking in it would be unusable.\n */\n viewKey: string;\n testId: string;\n}\n\nexport function DayRangeCalendar({\n fieldLabel,\n value,\n onChange,\n months,\n viewKey,\n testId,\n}: DayRangeCalendarProps): React.JSX.Element {\n const copy: DataViewsDayCalendarCopy =\n useDataViewsCopy().filters.dayCalendar ?? (EN_US_DATA_VIEWS_COPY.filters.dayCalendar as DataViewsDayCalendarCopy);\n const range = rangeOf(value);\n const pick = (picked: DateRange) => onChange(rangeFromCalendar(value, picked));\n const waitingForEnd = Boolean(range.start && !range.end);\n\n return (\n <Box sx={ROOT_SX} data-testid={`${testId}-calendar`}>\n <Calendar\n key={viewKey}\n ariaLabel={copy.label(fieldLabel)}\n className={CALENDAR_CLASS}\n selectionMode=\"range\"\n locale={copy.locale}\n labels={copy.caption}\n // Sunday first, as a pt-BR calendar reads (`D S T Q Q S S`) and as the\n // presets' \"Esta semana\" counts.\n firstDayOfWeek={0}\n numberOfMonths={months}\n // Side by side, a day of the next month in this one is the same day\n // twice; one month alone keeps them, muted, as a six-week frame.\n showOutsideDays={months === 1}\n captionLayout={months > 1 ? 'arrows' : 'selectors'}\n defaultMonth={openingMonth(value, months)}\n range={range}\n // The intermediate callback does the work: the other fires only on the\n // tap that CLOSES a period, so the first tap would write nothing.\n onIntermediateRangeChange={pick}\n />\n <Typography\n component=\"p\"\n aria-live=\"polite\"\n data-testid={`${testId}-calendar-hint`}\n sx={{ mt: { xs: 0.25, sm: 1 }, fontSize: sxRem(12), color: 'text.secondary' }}\n >\n {waitingForEnd ? copy.pickEnd : copy.pickStart}\n </Typography>\n </Box>\n );\n}\n"],"mappings":"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","names":["theme"]}
@@ -1,10 +1,10 @@
1
+ import {
2
+ isoToMasked
3
+ } from "./chunk-L6YTVXGN.js";
1
4
  import {
2
5
  dayCount,
3
6
  isAfterDay
4
7
  } from "./chunk-SUTOAW7I.js";
5
- import {
6
- isoToMasked
7
- } from "./chunk-72HOUWAW.js";
8
8
  import {
9
9
  EN_US_UI_LABELS
10
10
  } from "./chunk-XOXXG7Q5.js";
@@ -65,4 +65,4 @@ export {
65
65
  resolveQuickRanges,
66
66
  activeQuickRangeId
67
67
  };
68
- //# sourceMappingURL=chunk-5CP5Z3YU.js.map
68
+ //# sourceMappingURL=chunk-MPWA55CF.js.map
@@ -1,22 +1,23 @@
1
1
  import {
2
2
  ClearAllControl,
3
- CloseSearchControl
4
- } from "./chunk-QLJU7UUI.js";
3
+ CloseSearchControl,
4
+ useBarFrozen
5
+ } from "./chunk-T7OIVPCO.js";
5
6
  import {
6
7
  MoreFilters
7
- } from "./chunk-OBA75Y5O.js";
8
+ } from "./chunk-JHWEL4NX.js";
8
9
  import {
9
10
  PillControl
10
11
  } from "./chunk-AJ6KFHEE.js";
11
- import {
12
- QuickChip
13
- } from "./chunk-AT6UKTH4.js";
14
12
  import {
15
13
  isQuickActive
16
14
  } from "./chunk-KYUEO2IO.js";
17
15
  import {
18
16
  RangePill
19
- } from "./chunk-5RSK5M6M.js";
17
+ } from "./chunk-FI2CQOGC.js";
18
+ import {
19
+ QuickChip
20
+ } from "./chunk-AT6UKTH4.js";
20
21
  import {
21
22
  CollapsedSearch,
22
23
  InlineKeyword
@@ -201,12 +202,13 @@ function FilterSlots({
201
202
  testIdPrefix,
202
203
  clearKey
203
204
  }) {
205
+ const clear = useBarFrozen(onControlOpenChange);
204
206
  return /* @__PURE__ */ jsxs(Fragment, { children: [
205
207
  inline.map((field) => /* @__PURE__ */ jsx(
206
208
  InlineControl,
207
209
  {
208
210
  field,
209
- onOpenChange: onControlOpenChange,
211
+ onOpenChange: clear.onOpenChange,
210
212
  pills,
211
213
  ranges,
212
214
  onTogglePill,
@@ -221,7 +223,7 @@ function FilterSlots({
221
223
  MoreFilters,
222
224
  {
223
225
  clearKey,
224
- onOpenChange: onControlOpenChange,
226
+ onOpenChange: clear.onOpenChange,
225
227
  onClearAll,
226
228
  anyApplied: activeFilterCount > 0,
227
229
  compact: compactControls,
@@ -239,6 +241,7 @@ function FilterSlots({
239
241
  {
240
242
  onClearAll,
241
243
  compact: compactControls,
244
+ frozen: clear.frozen,
242
245
  testIdPrefix
243
246
  }
244
247
  )
@@ -248,4 +251,4 @@ function FilterSlots({
248
251
  export {
249
252
  InlineFilterControls
250
253
  };
251
- //# sourceMappingURL=chunk-5KK3I42O.js.map
254
+ //# sourceMappingURL=chunk-NK6O4NE4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/data-display/DataViews/data-views-inline-bar.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * The INLINE filter bar — the horizontal row of controls a grid renders instead\n * of the slide-in panel on a wide screen (`inlineFilters`): the compact keyword\n * box, one pill per facet, one pill per range, and \"Mais N\" for whatever had no\n * room.\n *\n * There is no \"Filtros ativos\" row beneath it. Listing every applied filter a\n * second time, under the controls already showing them, was the same\n * information twice — and put the ✕ that removes a filter somewhere other than\n * the control that applied it. Each pill carries its own.\n *\n * Split from `data-views-filter-panel` because they are two surfaces, not one:\n * the panel is a column of stacked fields, this is a row of pills, and the only\n * thing they share is the prop shape they are both driven by.\n */\nimport Box from \"@mui/material/Box/index.js\";\nimport { useState } from \"react\";\n\n\nimport { ClearAllControl, CloseSearchControl, useBarFrozen } from \"./data-views-bar-controls\";\nimport type { GridFilterPanelProps } from \"./data-views-filter-panel\";\nimport { MoreFilters } from \"./data-views-more-filters\";\nimport type { OverflowField, OverflowSplit } from \"./data-views-overflow\";\nimport { CollapsedSearch, InlineKeyword } from \"./data-views-search\";\nimport { PillControl } from \"./data-views-category-pill\";\nimport { isQuickActive } from \"./data-views-overflow\";\nimport { QuickChip } from \"./data-views-quick-chip\";\nimport { RangePill } from \"./data-views-range-pill\";\nimport type { QuickFilterConfig, RangeValue } from \"./data-views-types\";\n\n\n\n/* ── Inline (second-line) filter bar ─────────────────────────────────────── */\n\n/** The search, in whichever of its two forms the measurement asked for. */\nfunction SearchSlot({\n search,\n onSearchChange,\n collapsed,\n expanded,\n fill,\n onOpen,\n onEscape,\n testIdPrefix,\n}: {\n search: string;\n onSearchChange: (value: string) => void;\n collapsed: boolean;\n expanded: boolean;\n /** The box owns the cluster alone, so it may shrink below its usual floor. */\n fill: boolean;\n onOpen: () => void;\n onEscape: () => void;\n testIdPrefix: string;\n}): React.JSX.Element {\n if (collapsed) {\n return (\n <CollapsedSearch active={search !== \"\"} onOpen={onOpen} testId={`${testIdPrefix}-search-all`} />\n );\n }\n return (\n <InlineKeyword\n value={search}\n onChange={onSearchChange}\n testId={`${testIdPrefix}-search-all`}\n autoFocus={expanded}\n onEscape={onEscape}\n fill={fill}\n />\n );\n}\n\n/** Props the inline bar needs (the slide-in panel's, minus its own chrome). */\ntype InlineFilterBarProps<T extends Record<string, unknown>> = Pick<\n GridFilterPanelProps<T>,\n | \"testIdPrefix\"\n | \"search\"\n | \"fields\"\n | \"rangeFields\"\n | \"pills\"\n | \"ranges\"\n | \"onSearchChange\"\n | \"onTogglePill\"\n | \"onChangeRange\"\n | \"onClearField\"\n | \"onClearAll\"\n> & {\n /** The measured degradation state, computed once in `GridShell`. */\n split: OverflowSplit<T>;\n};\n\n/**\n * One filter control on the bar: a multi-select pill or a min/max range. The\n * two are the same thing from the bar's point of view — a labelled control that\n * writes into the view state — so which one to build is decided here rather\n * than in the bar's own render.\n */\nfunction InlineControl<T extends Record<string, unknown>>({\n field,\n pills,\n ranges,\n onTogglePill,\n onChangeRange,\n onClearField,\n onToggleQuick,\n onOpenChange,\n testIdPrefix,\n}: {\n field: OverflowField<T>;\n onToggleQuick?: (quick: QuickFilterConfig) => void;\n onOpenChange?: (open: boolean) => void;\n pills: Record<string, string[]>;\n ranges: Record<string, RangeValue>;\n onTogglePill: (fieldId: string, value: string, checked: boolean) => void;\n onChangeRange: (fieldId: string, range: RangeValue) => void;\n onClearField: (fieldId: string) => void;\n testIdPrefix: string;\n}): React.JSX.Element | null {\n if (field.group === \"quick\" && field.quick) {\n const quick = field.quick;\n return (\n <QuickChip\n quick={quick}\n active={isQuickActive(quick, pills)}\n onToggle={() => onToggleQuick?.(quick)}\n testIdPrefix={testIdPrefix}\n />\n );\n }\n if (field.group === \"pill\" && field.pill) {\n return (\n <PillControl\n fieldId={field.id}\n pill={field.pill}\n selected={pills[field.id] ?? []}\n onTogglePill={onTogglePill}\n onClearField={onClearField}\n onOpenChange={onOpenChange}\n testIdPrefix={testIdPrefix}\n />\n );\n }\n if (field.group === \"range\" && field.range) {\n return (\n <RangePill\n field={field.range}\n value={ranges[field.id] ?? {}}\n onChange={(range) => onChangeRange(field.id, range)}\n onOpenChange={onOpenChange}\n testIdPrefix={testIdPrefix}\n />\n );\n }\n return null;\n}\n\n/**\n * WHICH OF THE SEARCH'S THREE STATES THE BAR IS IN.\n *\n * Resting, expanded-and-sharing, or expanded-and-owning-the-cluster. They were\n * one boolean until a phone showed why they are not:\n *\n * - `fill` — an expanded box drops its usual 200px floor and takes whatever the\n * cluster has. That floor is right for a box that lives on the row; it is\n * wrong for one expanded into a cluster the ladder sized for an icon, where\n * insisting on it made the row scroll sideways (154px of overhang at 320px,\n * 84px at 390px, 42px at 500px).\n * - `takesOver` — the narrower case, where shrinking has run out of road and\n * what is left would be too small to read. Only then do the filters stand\n * down. A large phone has room to share, and evicting them there cost the\n * operator their filters for nothing.\n *\n * Once CLICKED the box stays open until Escape or its ✕, so typing is never\n * interrupted by a re-measure.\n */\nfunction useSearchMode<T extends Record<string, unknown>>(\n split: OverflowSplit<T>,\n): {\n showBox: boolean;\n expanded: boolean;\n fill: boolean;\n takesOver: boolean;\n open: () => void;\n close: () => void;\n} {\n const [searchOpen, setSearchOpen] = useState(false);\n return {\n showBox: !split.searchCollapsed || searchOpen,\n expanded: searchOpen,\n fill: split.searchCollapsed && searchOpen,\n takesOver: searchOpen && split.searchTakeover,\n open: () => setSearchOpen(true),\n close: () => setSearchOpen(false),\n };\n}\n\n/**\n * The filter CONTROLS alone — search, the fields that fit, and \"Mais N\" for the\n * ones that don't — with no row chrome of its own, because it is rendered ON\n * the toolbar line rather than under it (`ContentToolbar`'s `leadingControls`).\n *\n * The measurement driving the collapse lives on the toolbar ROW, not here —\n * see the note on `split` below.\n */\nexport function InlineFilterControls<T extends Record<string, unknown>>({\n testIdPrefix,\n pills,\n ranges,\n search,\n onSearchChange,\n onTogglePill,\n onChangeRange,\n onClearField,\n split,\n onClearAll,\n activeFilterCount,\n onControlOpenChange,\n onToggleQuick,\n clearKey,\n}: Omit<InlineFilterBarProps<T>, \"fields\" | \"rangeFields\"> & {\n /** Changes on every clear-all; the \"Mais\" fields are keyed on it (FUT-4144). */\n clearKey?: number;\n /** Presses or releases a quick chip — see `QuickFilterConfig`. */\n onToggleQuick?: (quick: QuickFilterConfig) => void;\n /** How many filters are applied — decides whether \"Limpar\" is on the bar at all. */\n activeFilterCount: number;\n /** Reports a control opening/closing so the shell can freeze the measurement. */\n onControlOpenChange?: (open: boolean) => void;\n}): React.JSX.Element {\n // MEASURED, not breakpointed — and measured ONCE, in the shell, because the\n // toolbar around it needs the same answer to drop its labels. The measured\n // element is the whole toolbar ROW (see `GridToolbar`), not this cluster:\n // `RESERVED` prices the counter and Exibir/Exportar, so measuring only the\n // controls would charge for that furniture a second time and collapse the\n // ladder while the row still had hundreds of free pixels.\n const { inline, overflow, compactControls, clearAllHidden } = split;\n const { showBox, expanded, fill, takesOver, open, close } = useSearchMode(split);\n return (\n <Box\n data-testid={`${testIdPrefix}-inline-filters`}\n sx={{\n display: \"flex\",\n flexWrap: \"nowrap\",\n alignItems: \"center\",\n gap: 1,\n minWidth: 0,\n // No squeezing: if the estimate over-packs, the row must overflow (and\n // the next measure sheds a control), not shrink labels to an ellipsis.\n \"& > *\": { flexShrink: 0 },\n }}\n >\n <SearchSlot\n search={search}\n onSearchChange={onSearchChange}\n collapsed={!showBox}\n expanded={expanded}\n fill={fill}\n onOpen={open}\n onEscape={close}\n testIdPrefix={testIdPrefix}\n />\n {takesOver && <CloseSearchControl onClose={close} testIdPrefix={testIdPrefix} />}\n {!takesOver && (\n <FilterSlots\n inline={inline}\n overflow={overflow}\n pills={pills}\n ranges={ranges}\n onTogglePill={onTogglePill}\n onChangeRange={onChangeRange}\n onClearField={onClearField}\n onToggleQuick={onToggleQuick}\n onClearAll={onClearAll}\n onControlOpenChange={onControlOpenChange}\n activeFilterCount={activeFilterCount}\n compactControls={compactControls}\n clearAllHidden={clearAllHidden}\n testIdPrefix={testIdPrefix}\n clearKey={clearKey}\n />\n )}\n </Box>\n );\n}\n\n/**\n * Everything to the right of the search: the fields that fit, \"Mais N\" for the\n * ones that don't, and \"Limpar\". Split out of `InlineFilterControls` only to\n * keep that function inside the size gate — the three are one cluster and the\n * order they render in is the order they shed in.\n */\nfunction FilterSlots<T extends Record<string, unknown>>({\n inline,\n overflow,\n pills,\n ranges,\n onTogglePill,\n onChangeRange,\n onClearField,\n onToggleQuick,\n onClearAll,\n onControlOpenChange,\n activeFilterCount,\n compactControls,\n clearAllHidden,\n testIdPrefix,\n clearKey,\n}: {\n clearKey?: number;\n onToggleQuick?: (quick: QuickFilterConfig) => void;\n inline: OverflowField<T>[];\n overflow: OverflowField<T>[];\n pills: Record<string, string[]>;\n ranges: Record<string, RangeValue>;\n onTogglePill: (fieldId: string, value: string, checked: boolean) => void;\n onChangeRange: (fieldId: string, range: RangeValue) => void;\n onClearField: (fieldId: string) => void;\n onClearAll: () => void;\n onControlOpenChange?: (open: boolean) => void;\n activeFilterCount: number;\n compactControls: boolean;\n clearAllHidden: boolean;\n testIdPrefix: string;\n}): React.JSX.Element {\n const clear = useBarFrozen(onControlOpenChange);\n return (\n <>\n {inline.map((field) => (\n <InlineControl\n key={field.id}\n field={field}\n onOpenChange={clear.onOpenChange}\n pills={pills}\n ranges={ranges}\n onTogglePill={onTogglePill}\n onChangeRange={onChangeRange}\n onClearField={onClearField}\n onToggleQuick={onToggleQuick}\n testIdPrefix={testIdPrefix}\n />\n ))}\n <MoreFilters\n clearKey={clearKey}\n onOpenChange={clear.onOpenChange}\n onClearAll={onClearAll}\n anyApplied={activeFilterCount > 0}\n compact={compactControls}\n fields={overflow}\n pills={pills}\n ranges={ranges}\n onTogglePill={onTogglePill}\n onChangeRange={onChangeRange}\n onToggleQuick={onToggleQuick}\n testIdPrefix={testIdPrefix}\n />\n {activeFilterCount > 0 && !clearAllHidden && (\n <ClearAllControl\n onClearAll={onClearAll}\n compact={compactControls}\n frozen={clear.frozen}\n testIdPrefix={testIdPrefix}\n />\n )}\n </>\n );\n}\n\n"],"mappings":"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","names":[]}
@@ -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
@@ -1,10 +1,10 @@
1
- import {
2
- buildChartContext
3
- } from "./chunk-TZC6KIK2.js";
4
1
  import {
5
2
  ChartLegendContent,
6
3
  ChartTooltipContent
7
4
  } from "./chunk-RIRTW5EU.js";
5
+ import {
6
+ buildChartContext
7
+ } from "./chunk-TZC6KIK2.js";
8
8
  import {
9
9
  uiInk
10
10
  } from "./chunk-XJAD6E3V.js";
@@ -318,4 +318,4 @@ function renderChartByType(props, theme) {
318
318
  export {
319
319
  renderChartByType
320
320
  };
321
- //# sourceMappingURL=chunk-6ATXOJVQ.js.map
321
+ //# sourceMappingURL=chunk-QADTI63U.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  MapPreview
3
- } from "./chunk-OKRITX4S.js";
3
+ } from "./chunk-CJ6XXM4X.js";
4
4
 
5
5
  // src/components/data-display/FleetMap/FleetCanvas.tsx
6
6
  import Box from "@mui/material/Box/index.js";
@@ -38,4 +38,4 @@ function FleetCanvas({
38
38
  export {
39
39
  FleetCanvas
40
40
  };
41
- //# sourceMappingURL=chunk-MW7P2C2C.js.map
41
+ //# sourceMappingURL=chunk-QAEO52Z4.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
@@ -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-QVDEGBME.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-WJMSND5Q.js.map
124
+ //# sourceMappingURL=chunk-SCXVTNLE.js.map
@@ -1,7 +1,3 @@
1
- import {
2
- containerStyles,
3
- frameBox
4
- } from "./chunk-Z64TMGYT.js";
5
1
  import {
6
2
  CarouselTrack
7
3
  } from "./chunk-6FDLBWTE.js";
@@ -10,7 +6,11 @@ import {
10
6
  } from "./chunk-RUIV5TVA.js";
11
7
  import {
12
8
  CarouselChrome
13
- } from "./chunk-U2ILXZDG.js";
9
+ } from "./chunk-TB5CRHTF.js";
10
+ import {
11
+ containerStyles,
12
+ frameBox
13
+ } from "./chunk-Z64TMGYT.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-SK2CTB3O.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":"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","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,10 +1,10 @@
1
1
  import {
2
2
  Chart
3
- } from "./chunk-AMLHEKSV.js";
3
+ } from "./chunk-HI7JPDD6.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-TIM4PXWN.js.map