@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
@@ -0,0 +1,36 @@
1
+ import { type PlaneBox, type Projection } from './RegionMap.helpers';
2
+ import type { RegionMapBounds, RegionMapCircle, RegionMapReach, RegionMapRegion, RegionMapRing } from './RegionMap.types';
3
+ /** The smallest box holding every given box, or null with none. */
4
+ export declare function unionBox(boxes: readonly (PlaneBox | null)[]): PlaneBox | null;
5
+ /** The latitude/longitude box around some outlines — a `reach` no radius describes. */
6
+ export declare function boundsOfRings(rings: readonly RegionMapRing[]): RegionMapBounds | null;
7
+ /** A `reach` as a box in projected metres (a radius is a square around the centre). */
8
+ export declare function reachBox(reach: RegionMapReach, projection: Projection): PlaneBox | null;
9
+ /**
10
+ * The view, given what it must fit: the outermost circle and the `reach` with
11
+ * the margin on top, still centred on the centre; else every area and the
12
+ * reach together. Without a reach it is exactly `viewBoxFor`'s.
13
+ */
14
+ export declare function viewWithin(outermostMetres: number | null, reach: PlaneBox | null, areaBoxes: () => readonly (PlaneBox | null)[]): PlaneBox | null;
15
+ /** The middle of every area, for a map with no centre of its own. */
16
+ export declare function centreOf(regions: readonly RegionMapRegion[]): {
17
+ latitude: number;
18
+ longitude: number;
19
+ } | null;
20
+ /**
21
+ * The square `RegionMap` shows for these props, in projected metres around
22
+ * `center` (or the areas' middle) — for a host that lays its own HTML over the
23
+ * drawing at the same scale: a point `p` sits at
24
+ * `(p.x - view.minX) / view.spanX` across. With circles the view is centred,
25
+ * so its half-side is `view.spanX / 2`.
26
+ */
27
+ export declare function regionMapView({ regions, center, circles, reach, }: {
28
+ regions: readonly RegionMapRegion[];
29
+ center: {
30
+ latitude: number;
31
+ longitude: number;
32
+ } | null;
33
+ circles?: readonly RegionMapCircle[];
34
+ reach?: RegionMapReach;
35
+ }): PlaneBox | null;
36
+ //# sourceMappingURL=RegionMap.view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RegionMap.view.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/RegionMap/RegionMap.view.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,QAAQ,EACb,KAAK,UAAU,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,cAAc,EACd,eAAe,EACf,aAAa,EACd,MAAM,mBAAmB,CAAC;AAK3B,mEAAmE;AACnE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,GAAG,QAAQ,GAAG,IAAI,CAM7E;AAED,uFAAuF;AACvF,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,GAAG,eAAe,GAAG,IAAI,CAMrF;AAED,uFAAuF;AACvF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CASvF;AAOD;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,eAAe,EAAE,MAAM,GAAG,IAAI,EAC9B,KAAK,EAAE,QAAQ,GAAG,IAAI,EACtB,SAAS,EAAE,MAAM,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,GAC5C,QAAQ,GAAG,IAAI,CAKjB;AAED,qEAAqE;AACrE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAI5G;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,MAAM,EACN,OAAY,EACZ,KAAK,GACN,EAAE;IACD,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IACpC,MAAM,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACvD,OAAO,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACrC,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB,GAAG,QAAQ,GAAG,IAAI,CASlB"}
@@ -2,10 +2,13 @@ import { type Theme } from '@mui/material/styles/index.js';
2
2
  import React from 'react';
3
3
  import { type PlaneBox } from './RegionMap.helpers';
4
4
  import type { RegionMapModel } from './RegionMap.hooks';
5
+ import type { RegionMapLayer } from './RegionMap.types';
5
6
  export interface RegionMapDrawingProps {
6
7
  model: RegionMapModel & {
7
8
  view: PlaneBox;
8
9
  };
10
+ /** The host's layer, drawn inside the SVG under the circles (`RegionMapProps.overlay`). */
11
+ overlay?: (layer: RegionMapLayer) => React.ReactNode;
9
12
  showCenter: boolean;
10
13
  highlightedIds: readonly string[];
11
14
  maxHeight: string | undefined;
@@ -24,5 +27,5 @@ export interface RegionMapDrawingProps {
24
27
  * The base areas are a memoised layer: a toggle changes `excluded`, not the
25
28
  * geometry, so only the hatch, highlight and label layers re-render.
26
29
  */
27
- export declare function RegionMapDrawing({ model, showCenter, highlightedIds, maxHeight, label, tappable, testId, theme, }: RegionMapDrawingProps): React.JSX.Element;
30
+ export declare function RegionMapDrawing({ model, overlay, showCenter, highlightedIds, maxHeight, label, tappable, testId, theme, }: RegionMapDrawingProps): React.JSX.Element;
28
31
  //# sourceMappingURL=RegionMapDrawing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RegionMapDrawing.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/RegionMap/RegionMapDrawing.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAS,KAAK,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAsD,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACxG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,cAAc,GAAG;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC;IAC3C,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;CACd;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,UAAU,EACV,cAAc,EACd,SAAS,EACT,KAAK,EACL,QAAQ,EACR,MAAM,EACN,KAAK,GACN,EAAE,qBAAqB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CA4D3C"}
1
+ {"version":3,"file":"RegionMapDrawing.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/RegionMap/RegionMapDrawing.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAS,KAAK,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAsD,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACxG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,cAAc,GAAG;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC;IAC3C,2FAA2F;IAC3F,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,KAAK,CAAC,SAAS,CAAC;IACrD,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;CACd;AAED;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,OAAO,EACP,UAAU,EACV,cAAc,EACd,SAAS,EACT,KAAK,EACL,QAAQ,EACR,MAAM,EACN,KAAK,GACN,EAAE,qBAAqB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAmE3C"}
@@ -1,5 +1,6 @@
1
1
  export { RegionMap } from './RegionMap';
2
2
  export { decodePolyline, hitRegion, projectionAt } from './RegionMap.helpers';
3
- export type { AreaGeometry, PlanePoint, PlaneRegion } from './RegionMap.helpers';
4
- export type { RegionMapCircle, RegionMapCopy, RegionMapListMode, RegionMapListSort, RegionMapPoint, RegionMapProps, RegionMapRegion, RegionMapRing, } from './RegionMap.types';
3
+ export { boundsOfRings, regionMapView } from './RegionMap.view';
4
+ export type { AreaGeometry, PlaneBox, PlanePoint, PlaneRegion, Projection } from './RegionMap.helpers';
5
+ export type { RegionMapBounds, RegionMapCircle, RegionMapCopy, RegionMapLayer, RegionMapListMode, RegionMapListSort, RegionMapPoint, RegionMapProps, RegionMapReach, RegionMapRegion, RegionMapRing, } from './RegionMap.types';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/RegionMap/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9E,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACjF,YAAY,EACV,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,eAAe,EACf,aAAa,GACd,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/data-display/RegionMap/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAChE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACvG,YAAY,EACV,eAAe,EACf,eAAe,EACf,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,EACf,aAAa,GACd,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/Calendar/Calendar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA8B,MAAM,OAAO,CAAC;AASnD,OAAO,KAAK,EAAE,aAAa,EAAyB,MAAM,kBAAkB,CAAC;AAkD7E,eAAO,MAAM,QAAQ,sFAmEnB,CAAC;AAIH,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/Calendar/Calendar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAU9D,OAAO,KAAK,EAAE,aAAa,EAAyB,MAAM,kBAAkB,CAAC;AA0F7E,eAAO,MAAM,QAAQ,sFA+EnB,CAAC;AAIH,eAAe,QAAQ,CAAC"}
@@ -3,6 +3,8 @@ import type { DayBand } from './Calendar.band';
3
3
  import type { DayRenderArgs } from './Calendar.types';
4
4
  export interface CalendarDayProps {
5
5
  day: DayRenderArgs;
6
+ /** BCP-47 tag the day's accessible name is written in. Default: en-US. */
7
+ locale?: string;
6
8
  band: DayBand;
7
9
  focused: boolean;
8
10
  showOutsideDays: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarDay.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/Calendar/CalendarDay.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAKhC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAqItD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,aAAa,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM,CAAC;IAC/C,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAqC5C,CAAC"}
1
+ {"version":3,"file":"CalendarDay.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/Calendar/CalendarDay.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAKhC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAgJtD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,aAAa,CAAC;IACnB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM,CAAC;IAC/C,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAsD5C,CAAC"}
@@ -2,6 +2,8 @@ import type { FC } from 'react';
2
2
  import type { CalendarProps, DateRange, MonthMatrixDay, SelectionMode } from './Calendar.types';
3
3
  export interface DayCellContext {
4
4
  selectionMode: SelectionMode;
5
+ /** BCP-47 tag each day's spoken name is written in. */
6
+ locale: string;
5
7
  value: Date | null;
6
8
  range: DateRange;
7
9
  hoveredDate: Date | null;
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarDayCell.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/Calendar/CalendarDayCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAMhC,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIhG,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,IAAI,CAAC;IAClB,KAAK,EAAE,IAAI,CAAC;IACZ,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;IACpC,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACvC,YAAY,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC7C,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,cAAc,GAAG;IAAE,GAAG,EAAE,cAAc,CAAA;CAAE,CA2BxE,CAAC"}
1
+ {"version":3,"file":"CalendarDayCell.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/Calendar/CalendarDayCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAMhC,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIhG,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,aAAa,CAAC;IAC7B,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,IAAI,CAAC;IAClB,KAAK,EAAE,IAAI,CAAC;IACZ,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;IACpC,SAAS,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACvC,YAAY,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC7C,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC/B,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,cAAc,GAAG;IAAE,GAAG,EAAE,cAAc,CAAA;CAAE,CA6BxE,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { FC } from 'react';
2
+ import type { CalendarLabels } from '../../../copy/labels';
2
3
  import type { CalendarProps, MonthMatrix } from './Calendar.types';
3
4
  import type { DayCellContext } from './CalendarDayCell';
4
5
  /**
@@ -12,6 +13,8 @@ export declare const MONTH_SX: {
12
13
  readonly minWidth: 0;
13
14
  readonly maxWidth: (theme: import("@mui/material").Theme) => string;
14
15
  };
16
+ /** The two arrows' accessible names; an icon alone names nothing. */
17
+ export type MonthArrowLabels = Pick<CalendarLabels, 'previousMonth' | 'nextMonth'>;
15
18
  /** The weekday row and the day grid under a month's caption. */
16
19
  export declare const MonthDays: FC<{
17
20
  matrix: MonthMatrix;
@@ -26,6 +29,8 @@ export interface CalendarMonthProps {
26
29
  locale: string;
27
30
  weekdayNames: string[];
28
31
  renderHeader?: CalendarProps['renderHeader'];
32
+ /** The arrows' accessible names. */
33
+ labels?: MonthArrowLabels;
29
34
  onPreviousMonth: () => void;
30
35
  onNextMonth: () => void;
31
36
  dayContext: DayCellContext;
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarMonth.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/Calendar/CalendarMonth.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAMhC,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAmBxD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ;;;;CAA4E,CAAC;AAgElG,gEAAgE;AAChE,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC;IACzB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,cAAc,CAAC;CAC5B,CAeA,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC7C,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAqChD,CAAC"}
1
+ {"version":3,"file":"CalendarMonth.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/Calendar/CalendarMonth.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAmBxD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ;;;;CAA4E,CAAC;AAElG,qEAAqE;AACrE,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,EAAE,eAAe,GAAG,WAAW,CAAC,CAAC;AA2EnF,gEAAgE;AAChE,eAAO,MAAM,SAAS,EAAE,EAAE,CAAC;IACzB,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,cAAc,CAAC;CAC5B,CAkBA,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC7C,oCAAoC;IACpC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAuChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"en-US.data-display.d.ts","sourceRoot":"","sources":["../../src/en-US.data-display.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qDAAqD,CAAC;AACzF,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,EACd,iBAAiB,EAClB,MAAM,QAAQ,CAAC;AAQhB,eAAO,MAAM,mBAAmB,EAAE,YAcjC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,YAOlC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,cAAc,CAa3D,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,YAAY,CAItD,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,iBAUvC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,aAMnC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,aAsMnC,CAAC"}
1
+ {"version":3,"file":"en-US.data-display.d.ts","sourceRoot":"","sources":["../../src/en-US.data-display.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qDAAqD,CAAC;AACzF,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,EACd,iBAAiB,EAClB,MAAM,QAAQ,CAAC;AAShB,eAAO,MAAM,mBAAmB,EAAE,YAcjC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,YAOlC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,cAAc,CAa3D,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,YAAY,CAItD,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,iBAUvC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,aAMnC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,aAiNnC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pt-BR.data-display.d.ts","sourceRoot":"","sources":["../../src/pt-BR.data-display.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qDAAqD,CAAC;AACzF,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,EACd,iBAAiB,EAClB,MAAM,QAAQ,CAAC;AAQhB,eAAO,MAAM,mBAAmB,EAAE,YAcjC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,YAOlC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,cAAc,CAa3D,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,YAAY,CAItD,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,iBAUvC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,aAMnC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,aA8LnC,CAAC"}
1
+ {"version":3,"file":"pt-BR.data-display.d.ts","sourceRoot":"","sources":["../../src/pt-BR.data-display.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qDAAqD,CAAC;AACzF,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,cAAc,EACd,iBAAiB,EAClB,MAAM,QAAQ,CAAC;AAShB,eAAO,MAAM,mBAAmB,EAAE,YAcjC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,YAOlC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,cAAc,CAa3D,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,YAAY,CAItD,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,iBAUvC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,aAMnC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,aAyMnC,CAAC"}
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  UserAvatar,
3
3
  UserMenu
4
- } from "./chunk-E2UOEI7N.js";
4
+ } from "./chunk-Q3SILZTQ.js";
5
5
  import "./chunk-DQ22UKMZ.js";
6
6
  import "./chunk-UDQSIRAP.js";
7
- import "./chunk-JIEVKHOH.js";
8
- import "./chunk-7XSCEHGA.js";
9
- import "./chunk-MTEQEPNY.js";
7
+ import "./chunk-4QR7LM5F.js";
8
+ import "./chunk-EOQ6EKTS.js";
10
9
  import "./chunk-6ZZGK5DT.js";
11
10
  import "./chunk-3ZVUNSFF.js";
11
+ import "./chunk-MTEQEPNY.js";
12
12
  import "./chunk-VUHLNYAE.js";
13
13
  import "./chunk-2GSIEDGN.js";
14
14
  import "./chunk-4XBAEKQQ.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@12-apps/ui",
3
- "version": "6.89.2",
3
+ "version": "6.91.0",
4
4
  "license": "MIT",
5
5
  "packageManager": "pnpm@10.34.5",
6
6
  "type": "module",
@@ -276,6 +276,65 @@ leaves the board with a single populated column, which reads as data loss.
276
276
 
277
277
  ---
278
278
 
279
+ ### A day filter's popover: the range calendar (FUT-4144)
280
+
281
+ A `kind: "day"` range ("Data" on Pedidos, Auditoria, Agendados) opens with a
282
+ range calendar ALWAYS visible under its typed `De`/`Até` boxes — the owner's
283
+ option B. A period is three taps: open the filter, tap the first day, tap the
284
+ last. Nothing was added in front of the boxes, so typing a date costs exactly
285
+ the keystrokes it did.
286
+
287
+ | | below `sm` (320, 390) | `sm` to `md` (600) | from `md` (900, 1280, 1920) |
288
+ | --- | --- | --- | --- |
289
+ | popover width | the screen's, less 8px each side, 8px padding (so seven 40px day columns fit at 320) | 400px | its content's (~670px) |
290
+ | presets | one select ("Atalho") | one select | one row of five equal parts |
291
+ | "Mais" panel | the screen's width less 8px each side, as tall as the screen allows | 320px wide, as tall as the screen allows | — (the pill is on the bar) |
292
+ | months | one, `<Month> ▾ <Year> ▾ ‹ ›` caption | one, same caption | two side by side, `‹ setembro` · `outubro ›`, the current month on the right |
293
+
294
+ - Order in the popover: preset chips, the `De`/`Até` boxes (sharing the row
295
+ equally), the inclusive/inverted note, the calendar, then the line saying
296
+ which tap comes next ("Toque no primeiro e no último dia." / "Agora toque no
297
+ último dia."), then the pill's summary and "Limpar".
298
+ - One view of ONE range: a tap writes the boxes; a typed whole day writes the
299
+ bound and moves the calendar to it; an impossible typed day (`31/02/2026`)
300
+ is refused in its box and the calendar does not move; "Limpar", a preset or a
301
+ saved view re-opens the calendar on the new range. A tap never moves the
302
+ calendar under the finger.
303
+ - The presets are the options of ONE question, so they sit on one line at
304
+ every width (ADR 0190 in the host): equal parts where the row is wide enough
305
+ for the widest label in each part, measured on the row itself; otherwise the
306
+ same options as a select, where "Nenhum" stands for tapping the active one
307
+ again.
308
+ - Day columns are at least 40px wide below `sm`. The range is the Calendar's
309
+ own band (FUT-4162): one tint behind the days, round AA endpoints.
310
+ - A "Mais" panel holding a day range keeps the "Limpar filtros" row's height
311
+ while nothing is applied, so the first tap does not grow the panel under the
312
+ finger; the panel is as tall as the screen allows instead of a fixed 320px,
313
+ so a range's boxes, its month caption and its weeks are on screen together.
314
+ - The presets' fit is measured on their LAYOUT width (padding and border in,
315
+ never a box read while the popover grows in from 75%), for a number range's
316
+ presets too: "Acima de R$ 10" goes to the select rather than to "Acima de …".
317
+ - In a panel (the "Mais" sheet, the slide-in panel) a number pair splits the
318
+ row equally, like a day pair; in the pill's popover it keeps its own width.
319
+ - The pill's popover and the "Mais" panel hold STILL while open: they hang from
320
+ where their trigger was when they opened, so a "Limpar" or a badge appearing
321
+ on the bar after the first tap does not drag them sideways. They are
322
+ re-placed only when their own height changes (a refused day's message), so
323
+ they never leave the screen. A day popover keeps its summary/"Limpar" row's
324
+ height while nothing is applied, so the first tap does not grow it.
325
+ - While a panel is open the bar is frozen; if the "Limpar" that a first filter
326
+ brings in does not fit the row it shows as its icon until the panel closes.
327
+ - A second tap before the first swaps them — the boxes never show a period
328
+ backwards. A tap on or before a lone `Até` keeps that `Até`.
329
+ - The slide-in panel and the "Mais" sheet use the same pair, so they get the
330
+ same calendar, one month wide.
331
+ - The calendar is `Calendar` in `selectionMode="range"`, the one
332
+ `DateRangePicker` mounts; its words are `copy.filters.dayCalendar` (optional:
333
+ a host copy without it gets the en-US pack's).
334
+
335
+ Tested in `__tests__/range-calendar.test.tsx` and
336
+ `data-views-range-calendar.test.stories.tsx`.
337
+
279
338
  ## Where this is tested
280
339
 
281
340
  `__tests__/data-views-responsive.test.tsx` drives a fake `ResizeObserver` at each
@@ -13,6 +13,7 @@
13
13
  import CloseRoundedIcon from "@mui/icons-material/CloseRounded";
14
14
  import FilterAltOffRoundedIcon from "@mui/icons-material/FilterAltOffRounded";
15
15
  import Tooltip from "@mui/material/Tooltip/index.js";
16
+ import React, { useLayoutEffect, useRef, useState } from "react";
16
17
 
17
18
  import { Box } from "../../../mui/Box";
18
19
  import { fieldRadiusPx } from "../../../tokens/field-radius";
@@ -33,16 +34,65 @@ import { sxRem } from "../../../tokens/relative";
33
34
  * tooltip when it does: it is one of the two controls (with the search) whose
34
35
  * icon has to carry the whole meaning on a phone.
35
36
  */
37
+ /**
38
+ * Whether a filter control's panel is open — the stretch during which the bar
39
+ * is measured once and then FROZEN, so the field being edited is not promoted
40
+ * out from under the hand (FUT-4144 UI review round 2).
41
+ *
42
+ * Wraps the controls' `onOpenChange` to count the open panels.
43
+ */
44
+ export function useBarFrozen(report?: (open: boolean) => void): {
45
+ frozen: boolean;
46
+ onOpenChange: (open: boolean) => void;
47
+ } {
48
+ const [openCount, setOpenCount] = useState(0);
49
+ return {
50
+ frozen: openCount > 0,
51
+ onOpenChange: (open) => {
52
+ setOpenCount((count) => Math.max(0, count + (open ? 1 : -1)));
53
+ report?.(open);
54
+ },
55
+ };
56
+ }
57
+
58
+ /**
59
+ * Whether the button runs past the edge of the row that holds it. Only asked
60
+ * while the bar is frozen: a first filter applied from inside an open panel
61
+ * brings "Limpar" in with no room budgeted for its label, and at 900 the row
62
+ * cut it to "Lin". It then shows as its icon (the tooltip and accessible name
63
+ * keep the word) until the panel closes and the row is measured again.
64
+ */
65
+ function useCutByRow(ref: React.RefObject<HTMLElement | null>, frozen: boolean): boolean {
66
+ const [cut, setCut] = useState(false);
67
+ useLayoutEffect(() => {
68
+ if (!frozen) {
69
+ setCut(false);
70
+ return;
71
+ }
72
+ const button = ref.current;
73
+ let row = button?.parentElement ?? null;
74
+ while (row && getComputedStyle(row).overflowX === "visible") row = row.parentElement;
75
+ if (button && row && button.getBoundingClientRect().right > row.getBoundingClientRect().right + 0.5) setCut(true);
76
+ });
77
+ return cut;
78
+ }
79
+
36
80
  export function ClearAllControl({
37
81
  onClearAll,
38
- compact,
82
+ compact: compactRung,
39
83
  testIdPrefix,
84
+ frozen = false,
40
85
  }: {
41
86
  onClearAll: () => void;
42
87
  compact: boolean;
43
88
  testIdPrefix: string;
89
+ /** The bar is frozen while a panel is open; see {@link useCutByRow}. */
90
+ frozen?: boolean;
44
91
  }): React.JSX.Element {
45
92
  const copy = useDataViewsCopy();
93
+ const ref = useRef<HTMLButtonElement>(null);
94
+ const cut = useCutByRow(ref, frozen && !compactRung);
95
+ const compact = compactRung || cut;
46
96
  // No border, no fill. Every other control on this row is an outlined field
47
97
  // because it OPENS something; this one is an escape hatch, and giving it the
48
98
  // same weight made it read as a sixth filter. Quiet until hovered.
@@ -50,6 +100,7 @@ export function ClearAllControl({
50
100
  <Box
51
101
  component="button"
52
102
  type="button"
103
+ ref={ref}
53
104
  onClick={onClearAll}
54
105
  data-testid={`${testIdPrefix}-clear-all`}
55
106
  aria-label={copy.filters.clearAll}
@@ -66,6 +117,10 @@ export function ClearAllControl({
66
117
  font: "inherit",
67
118
  fontSize: sxRem(13),
68
119
  whiteSpace: "nowrap",
120
+ // Never squeezed: the bar is frozen while a panel is open, and when a
121
+ // first filter applied from inside one brought this in, the row had
122
+ // no room budgeted for it and cut "Limpar" to "Lin" (FUT-4144).
123
+ flexShrink: 0,
69
124
  color: "text.secondary",
70
125
  "&:hover": { color: "text.primary", bgcolor: "action.hover" },
71
126
  }}
@@ -1,4 +1,5 @@
1
1
  import type { CategorySelectCopy, ConfirmActionCopy, DataGridCopy, TableFilterCopy } from "../../../copy";
2
+ import type { CalendarLabels } from "../../../copy/labels";
2
3
  import type { SavedViewsLabels } from "../../layout/ContentToolbar/ContentToolbar.types";
3
4
  /**
4
5
  * Every word the DataViews family renders, as REQUIRED host config (FUT-760).
@@ -180,6 +181,24 @@ export interface DataViewsGridCopy extends DataGridCopy {
180
181
  sortDescending: string;
181
182
  }
182
183
 
184
+ /**
185
+ * The words of the range calendar a day filter shows under its typed boxes.
186
+ * Month names, weekday initials and each day's spoken name come from `Intl` in
187
+ * `locale`; only the sentences below are copy.
188
+ */
189
+ export interface DataViewsDayCalendarCopy {
190
+ /** BCP-47 tag the calendar names its months and days in. */
191
+ locale: string;
192
+ /** The calendar's accessible name, from the filter's own label ("Data"). */
193
+ label(fieldLabel: string): string;
194
+ /** Under the calendar while no day, or a whole period, is chosen. */
195
+ pickStart: string;
196
+ /** Under the calendar once the first day is chosen and the last is not. */
197
+ pickEnd: string;
198
+ /** The month/year caption's names — `UI_LABELS[locale].calendar`. */
199
+ caption: CalendarLabels;
200
+ }
201
+
183
202
  export interface DataViewsFiltersCopy {
184
203
  moreFilters(count: number): string;
185
204
  moreFiltersApplied(count: number, appliedCount: number): string;
@@ -212,8 +231,25 @@ export interface DataViewsFiltersCopy {
212
231
  * list read like an answer to a date nobody could have meant (FUT-4144).
213
232
  */
214
233
  dayInvalid: string;
234
+ /**
235
+ * The range calendar under a day range's `De`/`Até` boxes (FUT-4144). Optional
236
+ * so a host that builds its own copy keeps compiling; without it the calendar
237
+ * speaks the en-US pack's words.
238
+ */
239
+ dayCalendar?: DataViewsDayCalendarCopy;
215
240
  /** Drop every applied filter, spelled out in the panel where there is room. */
216
241
  clearAllFilters: string;
242
+ /**
243
+ * The presets asked as a select, where the row is too narrow for them as
244
+ * one line of equal parts (ADR 0190, FUT-4144). Optional: a host copy
245
+ * without it gets the en-US pack's words.
246
+ */
247
+ presetSelect?: {
248
+ /** The select's label. */
249
+ label: string;
250
+ /** The empty option: no preset — picking it clears an applied one. */
251
+ none: string;
252
+ };
217
253
  /** The day-range presets' labels, keyed by preset id. */
218
254
  rangePresets: Readonly<Record<string, string>>;
219
255
  scopesLabel: string;
@@ -239,6 +239,12 @@ interface DayBoundInputProps {
239
239
  * impossible day is still never written, and blur still snaps back.
240
240
  */
241
241
  invalidMessage?: string;
242
+ /**
243
+ * Take the width of the box it sits in rather than its own 165px. Set where
244
+ * the pair stands over the range calendar, so the two boxes span the
245
+ * calendar's width instead of leaving a gap beside them (FUT-4144).
246
+ */
247
+ fill?: boolean;
242
248
  }
243
249
 
244
250
  /** What {@link useDayText} hands the field: its text, its verdict and its handlers. */
@@ -326,6 +332,7 @@ export function DayBoundInput({
326
332
  describedBy,
327
333
  mask,
328
334
  invalidMessage,
335
+ fill = false,
329
336
  }: DayBoundInputProps): React.JSX.Element {
330
337
  const id = useId();
331
338
  const { text, impossible, handleChange, handlePaste, handleBlur } = useDayText(
@@ -351,7 +358,8 @@ export function DayBoundInput({
351
358
  // The placeholder occupies the space an un-shrunk label would render into.
352
359
  InputLabelProps={{ shrink: true }}
353
360
  inputProps={dayInputProps(testId, [impossible ? `${id}-helper-text` : undefined, describedBy])}
354
- sx={[{ width: sxRem(165) }, fieldTextFieldStyles]}
361
+ fullWidth={fill}
362
+ sx={[{ width: fill ? '100%' : sxRem(165) }, fieldTextFieldStyles]}
355
363
  />
356
364
  );
357
365
  }
@@ -19,7 +19,7 @@ import Box from "@mui/material/Box/index.js";
19
19
  import { useState } from "react";
20
20
 
21
21
 
22
- import { ClearAllControl, CloseSearchControl } from "./data-views-bar-controls";
22
+ import { ClearAllControl, CloseSearchControl, useBarFrozen } from "./data-views-bar-controls";
23
23
  import type { GridFilterPanelProps } from "./data-views-filter-panel";
24
24
  import { MoreFilters } from "./data-views-more-filters";
25
25
  import type { OverflowField, OverflowSplit } from "./data-views-overflow";
@@ -324,13 +324,14 @@ function FilterSlots<T extends Record<string, unknown>>({
324
324
  clearAllHidden: boolean;
325
325
  testIdPrefix: string;
326
326
  }): React.JSX.Element {
327
+ const clear = useBarFrozen(onControlOpenChange);
327
328
  return (
328
329
  <>
329
330
  {inline.map((field) => (
330
331
  <InlineControl
331
332
  key={field.id}
332
333
  field={field}
333
- onOpenChange={onControlOpenChange}
334
+ onOpenChange={clear.onOpenChange}
334
335
  pills={pills}
335
336
  ranges={ranges}
336
337
  onTogglePill={onTogglePill}
@@ -342,7 +343,7 @@ function FilterSlots<T extends Record<string, unknown>>({
342
343
  ))}
343
344
  <MoreFilters
344
345
  clearKey={clearKey}
345
- onOpenChange={onControlOpenChange}
346
+ onOpenChange={clear.onOpenChange}
346
347
  onClearAll={onClearAll}
347
348
  anyApplied={activeFilterCount > 0}
348
349
  compact={compactControls}
@@ -358,6 +359,7 @@ function FilterSlots<T extends Record<string, unknown>>({
358
359
  <ClearAllControl
359
360
  onClearAll={onClearAll}
360
361
  compact={compactControls}
362
+ frozen={clear.frozen}
361
363
  testIdPrefix={testIdPrefix}
362
364
  />
363
365
  )}
@@ -185,6 +185,7 @@ function OverflowRange<T extends Record<string, unknown>>({
185
185
  value={value}
186
186
  onChange={onChange}
187
187
  testId={`${testIdPrefix}-more-${field.id}`}
188
+ fillRow
188
189
  />
189
190
  );
190
191
  }