@12-apps/ui 6.97.0 → 6.98.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 (604) hide show
  1. package/components-catalog.md +1 -1
  2. package/dist/_internal/components/data-display/AlertDialog/AlertDialog.js +3 -3
  3. package/dist/_internal/components/data-display/AlertDialog/AlertDialog.parts.js +2 -2
  4. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +5 -5
  5. package/dist/_internal/components/data-display/Avatar/Avatar.js +5 -5
  6. package/dist/_internal/components/data-display/Avatar/Avatar.view.js +2 -2
  7. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +8 -8
  8. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +8 -8
  9. package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +4 -4
  10. package/dist/_internal/components/data-display/Carousel/Carousel.js +6 -6
  11. package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +3 -3
  12. package/dist/_internal/components/data-display/Chart/Chart.js +3 -3
  13. package/dist/_internal/components/data-display/Chart/SpecChart.js +7 -7
  14. package/dist/_internal/components/data-display/Chart/chart-renderers.js +2 -2
  15. package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
  16. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
  17. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +51 -51
  18. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +66 -66
  19. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +3 -3
  20. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +9 -9
  21. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +3 -3
  22. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +2 -2
  23. package/dist/_internal/components/data-display/DataViews/base-list-card-layout.js +2 -2
  24. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +2 -2
  25. package/dist/_internal/components/data-display/DataViews/base-list-card.js +4 -4
  26. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +11 -11
  27. package/dist/_internal/components/data-display/DataViews/data-views-day-input.js +1 -1
  28. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +1 -1
  29. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +32 -32
  30. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +6 -6
  31. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +48 -48
  32. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +31 -31
  33. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +29 -29
  34. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +30 -30
  35. package/dist/_internal/components/data-display/DataViews/data-views-preset-chips.js +3 -3
  36. package/dist/_internal/components/data-display/DataViews/data-views-range-bounds.js +15 -15
  37. package/dist/_internal/components/data-display/DataViews/data-views-range-calendar.js +12 -12
  38. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +18 -18
  39. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +10 -10
  40. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +16 -16
  41. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +9 -9
  42. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +2 -2
  43. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +2 -2
  44. package/dist/_internal/components/data-display/DayRuler/DayRuler.js +7 -7
  45. package/dist/_internal/components/data-display/DayRuler/DayRuler.parts.js +2 -2
  46. package/dist/_internal/components/data-display/EmptyState/EmptyState.js +2 -2
  47. package/dist/_internal/components/data-display/ErrorState/ErrorState.js +2 -2
  48. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +10 -10
  49. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +9 -9
  50. package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js +2 -2
  51. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +12 -12
  52. package/dist/_internal/components/data-display/HoverCard/HoverCard.js +3 -3
  53. package/dist/_internal/components/data-display/LazyImage/LazyImage.js +2 -2
  54. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +3 -3
  55. package/dist/_internal/components/data-display/LoadingState/LoadingState.js +2 -2
  56. package/dist/_internal/components/data-display/MapPreview/MapControlBar.js +4 -4
  57. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +6 -6
  58. package/dist/_internal/components/data-display/MapPreview/MapMarkers.js +4 -4
  59. package/dist/_internal/components/data-display/MapPreview/MapPreview.helpers.js +3 -3
  60. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +8 -8
  61. package/dist/_internal/components/data-display/RegionMap/RegionMap.js +5 -5
  62. package/dist/_internal/components/data-display/RegionMap/RegionMapDrawing.js +2 -2
  63. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.js +6 -6
  64. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.labels.js +2 -2
  65. package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +4 -4
  66. package/dist/_internal/components/data-display/Sheet/Sheet.body.js +3 -3
  67. package/dist/_internal/components/data-display/Sheet/Sheet.hooks.js +2 -2
  68. package/dist/_internal/components/data-display/Sheet/Sheet.js +6 -6
  69. package/dist/_internal/components/data-display/Sheet/Sheet.parts.js +2 -2
  70. package/dist/_internal/components/data-display/Stepper/Stepper.js +2 -2
  71. package/dist/_internal/components/data-display/Table/Table.js +4 -4
  72. package/dist/_internal/components/data-display/Table/TableParts.hooks.js +2 -2
  73. package/dist/_internal/components/data-display/Table/TableParts.js +2 -2
  74. package/dist/_internal/components/data-display/Timeline/Timeline.js +2 -2
  75. package/dist/_internal/components/data-display/index.js +86 -86
  76. package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.js +5 -5
  77. package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.parts.js +4 -4
  78. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +6 -6
  79. package/dist/_internal/components/feedback/ConfirmAction/with-confirmation.js +5 -5
  80. package/dist/_internal/components/feedback/Dialog/Dialog.js +2 -2
  81. package/dist/_internal/components/feedback/Modal/Modal.js +2 -2
  82. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.frame.js +3 -3
  83. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.js +4 -4
  84. package/dist/_internal/components/feedback/Sonner/Sonner.js +2 -2
  85. package/dist/_internal/components/feedback/StackedModal/StackedModal.js +4 -4
  86. package/dist/_internal/components/feedback/StackedModal/StackedModal.parts.js +2 -2
  87. package/dist/_internal/components/feedback/Toast/Toast.js +2 -2
  88. package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +2 -2
  89. package/dist/_internal/components/feedback/UsableModal/UsableModal.js +1 -1
  90. package/dist/_internal/components/feedback/UsableModal/UsableModal.modal.js +4 -4
  91. package/dist/_internal/components/feedback/UsableModal/UsableModal.sheet.js +6 -6
  92. package/dist/_internal/components/feedback/index.js +21 -21
  93. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +4 -4
  94. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +7 -7
  95. package/dist/_internal/components/form/Autocomplete/Autocomplete.js +2 -2
  96. package/dist/_internal/components/form/Calendar/Calendar.band.js +1 -1
  97. package/dist/_internal/components/form/Calendar/Calendar.helpers.js +1 -1
  98. package/dist/_internal/components/form/Calendar/Calendar.hooks.js +1 -1
  99. package/dist/_internal/components/form/Calendar/Calendar.js +10 -10
  100. package/dist/_internal/components/form/Calendar/CalendarDay.js +2 -2
  101. package/dist/_internal/components/form/Calendar/CalendarDayCell.js +3 -3
  102. package/dist/_internal/components/form/Calendar/CalendarMonth.js +10 -6
  103. package/dist/_internal/components/form/Calendar/CalendarSelectorsMonth.js +6 -6
  104. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +2 -2
  105. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +4 -4
  106. package/dist/_internal/components/form/CodeEditor/CodeEditor.js +3 -3
  107. package/dist/_internal/components/form/Command/Command.hooks.js +2 -2
  108. package/dist/_internal/components/form/Command/Command.js +4 -4
  109. package/dist/_internal/components/form/Command/Command.parts.js +2 -2
  110. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.frame.js +22 -0
  111. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.frame.js.map +1 -0
  112. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.hooks.js +4 -4
  113. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +20 -15
  114. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.layout.js +13 -0
  115. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.layout.js.map +1 -0
  116. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.range.js +3 -3
  117. package/dist/_internal/components/form/DateRangePicker/DateRangePickerFields.js +4 -4
  118. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.dom.js +2 -2
  119. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.format.js +3 -3
  120. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.hooks.js +4 -4
  121. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +5 -5
  122. package/dist/_internal/components/form/index.js +37 -34
  123. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +5 -5
  124. package/dist/_internal/components/form/total-form/Fields/index.js +6 -6
  125. package/dist/_internal/components/form/total-form/FormErrorSnackbar.js +3 -3
  126. package/dist/_internal/components/index.js +164 -162
  127. package/dist/_internal/components/layout/ContentToolbar/ColumnsMenu.js +2 -2
  128. package/dist/_internal/components/layout/ContentToolbar/FilterTrigger.js +3 -3
  129. package/dist/_internal/components/layout/ContentToolbar/MultiSelectDropdown.js +2 -2
  130. package/dist/_internal/components/layout/ContentToolbar/ViewSelector.js +2 -2
  131. package/dist/_internal/components/layout/Dashboard/Dashboard.js +2 -2
  132. package/dist/_internal/components/layout/Drawer/Drawer.js +2 -2
  133. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +2 -2
  134. package/dist/_internal/components/layout/TableFilter/TableFilter.js +2 -2
  135. package/dist/_internal/components/layout/index.js +9 -9
  136. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +8 -8
  137. package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +2 -2
  138. package/dist/_internal/components/navigation/Breadcrumbs/Breadcrumbs.js +2 -2
  139. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +3 -3
  140. package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +2 -2
  141. package/dist/_internal/components/navigation/SectionNav/SectionNav.bar.js +4 -4
  142. package/dist/_internal/components/navigation/SectionNav/SectionNav.js +5 -5
  143. package/dist/_internal/components/navigation/SectionNav/SectionNav.sheet.js +3 -3
  144. package/dist/_internal/components/navigation/Tabs/Tabs.js +1 -1
  145. package/dist/_internal/components/navigation/index.js +18 -18
  146. package/dist/_internal/components/typography/Code/Code.js +2 -2
  147. package/dist/_internal/components/typography/index.js +2 -2
  148. package/dist/_internal/components/utility/AnimatedIcon/AnimatedIcon.js +2 -2
  149. package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.js +3 -3
  150. package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.parts.js +2 -2
  151. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.helpers.js +2 -2
  152. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.js +5 -5
  153. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.parts.js +3 -3
  154. package/dist/_internal/components/utility/WorkflowStep/WorkflowStepRow.js +4 -4
  155. package/dist/_internal/components/utility/index.js +8 -8
  156. package/dist/_internal/en-US.data-display.js +2 -2
  157. package/dist/_internal/en-US.labels.js +1 -1
  158. package/dist/_internal/pt-BR.data-display.js +2 -2
  159. package/dist/_internal/pt-BR.labels.js +1 -1
  160. package/dist/_internal/social-login-button/social-login-button.js +2 -2
  161. package/dist/_internal/user-avatar/user-avatar.js +6 -6
  162. package/dist/charts.js +17 -17
  163. package/dist/{chunk-UBVKMM3V.js → chunk-2A5GHOL3.js} +2 -2
  164. package/dist/{chunk-YGLAGY74.js → chunk-332KWE5H.js} +2 -2
  165. package/dist/{chunk-HNEZWVDR.js → chunk-364NT46L.js} +3 -3
  166. package/dist/{chunk-RLTGD5WJ.js → chunk-3AKQHYTM.js} +4 -4
  167. package/dist/{chunk-5I75WRXT.js → chunk-3CXRHRGE.js} +7 -7
  168. package/dist/{chunk-G6NMSBSQ.js → chunk-3LD42RNV.js} +2 -2
  169. package/dist/{chunk-24G3BWKD.js → chunk-3N2HWNKT.js} +2 -2
  170. package/dist/{chunk-MSJP2AEN.js → chunk-3N3W4TID.js} +2 -2
  171. package/dist/{chunk-H2UUMZQR.js → chunk-3PWDVJWD.js} +2 -1
  172. package/dist/chunk-3PWDVJWD.js.map +1 -0
  173. package/dist/{chunk-YNVTUQ5B.js → chunk-3V7OTBUZ.js} +2 -2
  174. package/dist/{chunk-LZNUBQ5I.js → chunk-4A454JZN.js} +2 -2
  175. package/dist/{chunk-TPMT3J32.js → chunk-4I2SDWSF.js} +2 -1
  176. package/dist/chunk-4I2SDWSF.js.map +1 -0
  177. package/dist/{chunk-SW7JCF4Z.js → chunk-4P63RSSY.js} +2 -2
  178. package/dist/{chunk-7QKFMMWK.js → chunk-4W4C4Q46.js} +2 -2
  179. package/dist/{chunk-B32XH7NK.js → chunk-4WVUX7IU.js} +3 -3
  180. package/dist/{chunk-Z6QFIRD7.js → chunk-4X2TOMK6.js} +7 -7
  181. package/dist/{chunk-MYTV353T.js → chunk-4Y3QLISA.js} +2 -2
  182. package/dist/{chunk-IMYKJTVX.js → chunk-5J6LN2O7.js} +2 -2
  183. package/dist/{chunk-BMC5KGH2.js → chunk-5V7IZBRY.js} +4 -4
  184. package/dist/{chunk-ZBUMGMWP.js → chunk-64LNNC54.js} +4 -4
  185. package/dist/{chunk-T77OVQEO.js → chunk-6D7CASMK.js} +2 -2
  186. package/dist/{chunk-YVDNCV2D.js → chunk-6RYSSNOO.js} +3 -3
  187. package/dist/{chunk-CPQJFHNZ.js → chunk-74IH3ZGD.js} +2 -2
  188. package/dist/{chunk-UQ5GJPVZ.js → chunk-76GAXLNC.js} +3 -3
  189. package/dist/{chunk-X4J576GR.js → chunk-7LFST3PW.js} +2 -2
  190. package/dist/{chunk-XCUHGPPZ.js → chunk-7MLT66DE.js} +2 -2
  191. package/dist/{chunk-EOIRU62W.js → chunk-7P544IWT.js} +3 -3
  192. package/dist/{chunk-XTYBJAZG.js → chunk-7TENMQNQ.js} +7 -7
  193. package/dist/{chunk-C7IFBYIJ.js → chunk-A27J4CIZ.js} +10 -10
  194. package/dist/{chunk-2KSFBZ2H.js → chunk-ABZJNKR6.js} +2 -2
  195. package/dist/{chunk-6LOWZCH7.js → chunk-AHXQN4VL.js} +2 -2
  196. package/dist/{chunk-Y7BOP7VZ.js → chunk-AP7GEUJS.js} +2 -2
  197. package/dist/{chunk-U2SAW6DH.js → chunk-B4OZU7J4.js} +7 -7
  198. package/dist/{chunk-DDGYTY4E.js → chunk-BIHZXB5P.js} +4 -4
  199. package/dist/{chunk-4QGMUHAU.js → chunk-BWNZVMBT.js} +2 -2
  200. package/dist/{chunk-CY4XIZNW.js → chunk-CAH5XNHT.js} +2 -2
  201. package/dist/{chunk-KILA7LCC.js → chunk-CFDWKQZT.js} +4 -4
  202. package/dist/{chunk-EWFBDAB7.js → chunk-CKGRSCRT.js} +2 -2
  203. package/dist/{chunk-YOLLISEY.js → chunk-CRD2WCU7.js} +9 -9
  204. package/dist/{chunk-L5KPBMMF.js → chunk-CXL3TT3K.js} +2 -2
  205. package/dist/{chunk-KOGJBAFI.js → chunk-D3KLIC5N.js} +2 -2
  206. package/dist/{chunk-2SBQ47RI.js → chunk-D4JL5725.js} +3 -3
  207. package/dist/{chunk-NI3MC742.js → chunk-DBJLYURK.js} +2 -2
  208. package/dist/{chunk-75GAQL2Q.js → chunk-DKPELKGL.js} +12 -12
  209. package/dist/{chunk-NGXL4R54.js → chunk-E4MJA52O.js} +4 -4
  210. package/dist/{chunk-QSOCOXVL.js → chunk-EASEJDBQ.js} +13 -8
  211. package/dist/chunk-EASEJDBQ.js.map +1 -0
  212. package/dist/{chunk-5HXVXW22.js → chunk-EGBQR5GH.js} +5 -5
  213. package/dist/{chunk-FTYOCFTV.js → chunk-EGYJUJMR.js} +2 -2
  214. package/dist/{chunk-7XSCEHGA.js → chunk-EOQ6EKTS.js} +7 -7
  215. package/dist/{chunk-6AKDAQSS.js → chunk-ERAMSYPR.js} +2 -2
  216. package/dist/{chunk-WYRH6OSN.js → chunk-F5EH5BJN.js} +2 -2
  217. package/dist/{chunk-X37NTEVS.js → chunk-F7JRQ2EI.js} +6 -6
  218. package/dist/chunk-F7JRQ2EI.js.map +1 -0
  219. package/dist/{chunk-QCYQL3ST.js → chunk-FJLPVPRG.js} +2 -2
  220. package/dist/{chunk-MAHY7PK3.js → chunk-FQMLTCXT.js} +4 -4
  221. package/dist/{chunk-TMINUTQQ.js → chunk-FRQGZIYU.js} +2 -2
  222. package/dist/{chunk-LV6AD6XC.js → chunk-FT3LJZWZ.js} +2 -2
  223. package/dist/{chunk-ZPWPA6FR.js → chunk-FW5GTAUY.js} +6 -6
  224. package/dist/{chunk-VMTOLAZ5.js → chunk-FZZMNKVF.js} +5 -5
  225. package/dist/{chunk-FGZIEZEP.js → chunk-G6TKWNF2.js} +4 -4
  226. package/dist/{chunk-I6IFUFLW.js → chunk-G7MHDZTL.js} +2 -2
  227. package/dist/{chunk-KES3HNSU.js → chunk-GB2DQOZ7.js} +2 -2
  228. package/dist/{chunk-HRES2S3Q.js → chunk-GFYDOH7D.js} +3 -3
  229. package/dist/{chunk-M2M4IDFU.js → chunk-GXYOBTOY.js} +2 -2
  230. package/dist/{chunk-OLHAUGVQ.js → chunk-GZQQSTKR.js} +2 -2
  231. package/dist/{chunk-N2J24TJ3.js → chunk-HAWOS4SF.js} +2 -2
  232. package/dist/{chunk-S2VZUBM7.js → chunk-HCTHY66U.js} +6 -6
  233. package/dist/{chunk-ABVIMFSD.js → chunk-HG52QQ2L.js} +2 -2
  234. package/dist/{chunk-AMLHEKSV.js → chunk-HI7JPDD6.js} +5 -5
  235. package/dist/{chunk-OKDKKBLI.js → chunk-HOWAMSUY.js} +6 -6
  236. package/dist/{chunk-3TZUZXY5.js → chunk-HTXYBKLK.js} +2 -2
  237. package/dist/{chunk-WW3F7DCX.js → chunk-IFOHCY4O.js} +2 -2
  238. package/dist/{chunk-S46LGAQ2.js → chunk-IJVBLU25.js} +2 -2
  239. package/dist/{chunk-ARGVUTTL.js → chunk-IPVGWENM.js} +2 -2
  240. package/dist/{chunk-MPWA55CF.js → chunk-IXXB7CTR.js} +9 -5
  241. package/dist/chunk-IXXB7CTR.js.map +1 -0
  242. package/dist/{chunk-MWXZXCVX.js → chunk-J43PARXM.js} +6 -6
  243. package/dist/{chunk-UYKIUUWP.js → chunk-JJTJ7DCV.js} +2 -2
  244. package/dist/{chunk-HQCZT6TO.js → chunk-JVOEVTCZ.js} +5 -5
  245. package/dist/{chunk-RZ3P4X2I.js → chunk-K62L5JFC.js} +25 -4
  246. package/dist/chunk-K62L5JFC.js.map +1 -0
  247. package/dist/{chunk-2365CQJU.js → chunk-KAQDWEG6.js} +2 -2
  248. package/dist/{chunk-TB5CRHTF.js → chunk-KEPLO2AB.js} +2 -2
  249. package/dist/chunk-KNW63H63.js +263 -0
  250. package/dist/chunk-KNW63H63.js.map +1 -0
  251. package/dist/{chunk-PVIQDBUN.js → chunk-KUQ4XHVV.js} +2 -2
  252. package/dist/{chunk-DAFFZED3.js → chunk-KWBMM6MJ.js} +2 -2
  253. package/dist/{chunk-QPCHABOZ.js → chunk-L5YGVLPH.js} +8 -4
  254. package/dist/chunk-L5YGVLPH.js.map +1 -0
  255. package/dist/{chunk-JJYECKEL.js → chunk-LFECE4R7.js} +2 -2
  256. package/dist/{chunk-LXIPBHNJ.js → chunk-LKTJ26ST.js} +2 -2
  257. package/dist/{chunk-56JF5PZK.js → chunk-LYVTJLCF.js} +4 -4
  258. package/dist/{chunk-EYFDIUVR.js → chunk-M4G4LRQK.js} +2 -2
  259. package/dist/{chunk-TJUWSQYQ.js → chunk-MDU5Q2HW.js} +3 -2
  260. package/dist/{chunk-TJUWSQYQ.js.map → chunk-MDU5Q2HW.js.map} +1 -1
  261. package/dist/{chunk-KMMFN24G.js → chunk-MKHNLRVX.js} +4 -4
  262. package/dist/{chunk-4IG73U2X.js → chunk-MSPLIRBH.js} +2 -2
  263. package/dist/{chunk-RNIJL54W.js → chunk-O4UXH7BM.js} +7 -7
  264. package/dist/{chunk-DYHOBKPU.js → chunk-OA6T2ME3.js} +5 -5
  265. package/dist/{chunk-VNMD6BA4.js → chunk-OFRQMFWD.js} +3 -3
  266. package/dist/{chunk-LTJC7TGB.js → chunk-OHA2PAAA.js} +2 -2
  267. package/dist/{chunk-ZANWHTXH.js → chunk-OVJV2ZN7.js} +2 -2
  268. package/dist/{chunk-SKQPUAMK.js → chunk-PDWQJFMK.js} +6 -6
  269. package/dist/{chunk-6EZQLNPK.js → chunk-PGJIWCQR.js} +4 -4
  270. package/dist/{chunk-FRAFGRRD.js → chunk-PIELY4BJ.js} +1 -1
  271. package/dist/{chunk-3Z6JX7UN.js → chunk-PZJEF232.js} +2 -2
  272. package/dist/{chunk-6ATXOJVQ.js → chunk-QADTI63U.js} +4 -4
  273. package/dist/chunk-QAF76E6U.js +43 -0
  274. package/dist/chunk-QAF76E6U.js.map +1 -0
  275. package/dist/{chunk-4RF4BALN.js → chunk-R775ISK6.js} +4 -4
  276. package/dist/{chunk-YBAK2WN5.js → chunk-RFMQBIE6.js} +4 -4
  277. package/dist/{chunk-43EFQ3DU.js → chunk-RVBLOR32.js} +2 -2
  278. package/dist/{chunk-XNAI7QGU.js → chunk-SA3KLZDZ.js} +5 -5
  279. package/dist/{chunk-CAOL4AIB.js → chunk-SARK3GHS.js} +2 -2
  280. package/dist/chunk-SIY64A6O.js +60 -0
  281. package/dist/chunk-SIY64A6O.js.map +1 -0
  282. package/dist/{chunk-37SNQQ7P.js → chunk-SOXO2VN3.js} +3 -3
  283. package/dist/{chunk-6PU5P7QT.js → chunk-TDXEWGY2.js} +2 -2
  284. package/dist/{chunk-SB2SEGR6.js → chunk-TIM4PXWN.js} +3 -3
  285. package/dist/{chunk-OGSTMHT6.js → chunk-TTBLQZVT.js} +3 -3
  286. package/dist/{chunk-KHDKG7XB.js → chunk-U4PV2ZKK.js} +6 -6
  287. package/dist/{chunk-VHE7UEG5.js → chunk-UC7DLGMP.js} +2 -2
  288. package/dist/{chunk-TI4FGQYV.js → chunk-UHLGJHTD.js} +2 -2
  289. package/dist/{chunk-TAHO2LCU.js → chunk-UIZIEU4X.js} +3 -3
  290. package/dist/{chunk-F7LBTMCA.js → chunk-ULC4SCFC.js} +2 -2
  291. package/dist/{chunk-FORQEHRQ.js → chunk-UXVWGNPG.js} +2 -2
  292. package/dist/{chunk-3ZRK3BRN.js → chunk-UXYCBPCE.js} +12 -6
  293. package/dist/chunk-UXYCBPCE.js.map +1 -0
  294. package/dist/{chunk-L6YTVXGN.js → chunk-VCYYL23C.js} +4 -2
  295. package/dist/{chunk-L6YTVXGN.js.map → chunk-VCYYL23C.js.map} +1 -1
  296. package/dist/{chunk-KF3Q3C3P.js → chunk-VGIBWJ72.js} +2 -2
  297. package/dist/{chunk-I54YFYBS.js → chunk-VMACQT3T.js} +3 -3
  298. package/dist/{native/chunks/chunk-QHW7JEPZ.js → chunk-VWKMN3ZZ.js} +3 -2
  299. package/dist/{chunk-XOXXG7Q5.js.map → chunk-VWKMN3ZZ.js.map} +1 -1
  300. package/dist/{chunk-EXEBN5ZP.js → chunk-W56KN53D.js} +8 -8
  301. package/dist/{chunk-KURE5R7Z.js → chunk-WGK7VNCO.js} +2 -2
  302. package/dist/{chunk-XALDXR3F.js → chunk-WK577LQL.js} +3 -3
  303. package/dist/{chunk-VCQFDQM3.js → chunk-WN6LR4HX.js} +27 -7
  304. package/dist/chunk-WN6LR4HX.js.map +1 -0
  305. package/dist/{chunk-LLPPIO3K.js → chunk-WNTXHLVJ.js} +2 -2
  306. package/dist/{chunk-PEVBSNCD.js → chunk-WPRQPKLV.js} +2 -2
  307. package/dist/{chunk-C347NNZJ.js → chunk-WVCHMTPG.js} +2 -2
  308. package/dist/{chunk-CSD6SWBZ.js → chunk-WYNGH2WL.js} +6 -6
  309. package/dist/{chunk-4L54KUZV.js → chunk-X5GCAXZS.js} +38 -16
  310. package/dist/chunk-X5GCAXZS.js.map +1 -0
  311. package/dist/{chunk-PJDAZG65.js → chunk-XA5ES25V.js} +3 -3
  312. package/dist/{chunk-FWTVIRZZ.js → chunk-YLZXIR6B.js} +4 -4
  313. package/dist/{chunk-FYAW5GBF.js → chunk-YQMJJ7AL.js} +33 -16
  314. package/dist/chunk-YQMJJ7AL.js.map +1 -0
  315. package/dist/{chunk-JOQGKXR5.js → chunk-Z2J4MRTF.js} +4 -4
  316. package/dist/{chunk-I4K5JMS4.js → chunk-ZDLC4BN4.js} +4 -2
  317. package/dist/chunk-ZDLC4BN4.js.map +1 -0
  318. package/dist/{chunk-USHVG4UQ.js → chunk-ZKVSFVIA.js} +3 -3
  319. package/dist/{chunk-TE6HAWDM.js → chunk-ZP2GPRNQ.js} +2 -2
  320. package/dist/{chunk-3PQL2EN5.js → chunk-ZW7Q3IRL.js} +6 -6
  321. package/dist/{chunk-M5Y42AZ4.js → chunk-ZX4ORMBC.js} +2 -2
  322. package/dist/data-display/AlertDialog.js +3 -3
  323. package/dist/data-display/AsyncStateContainer.js +5 -5
  324. package/dist/data-display/Avatar.js +5 -5
  325. package/dist/data-display/CardKit.js +12 -12
  326. package/dist/data-display/Carousel.js +6 -6
  327. package/dist/data-display/Chart.js +17 -17
  328. package/dist/data-display/DataGrid.js +2 -2
  329. package/dist/data-display/DataViews.js +72 -72
  330. package/dist/data-display/DayRuler.js +11 -11
  331. package/dist/data-display/EmptyState.js +2 -2
  332. package/dist/data-display/ErrorState.js +2 -2
  333. package/dist/data-display/FleetMap.js +12 -12
  334. package/dist/data-display/HoverCard.js +3 -3
  335. package/dist/data-display/LazyImage.js +2 -2
  336. package/dist/data-display/Lightbox.js +3 -3
  337. package/dist/data-display/LoadingState.js +2 -2
  338. package/dist/data-display/MapPreview.js +8 -8
  339. package/dist/data-display/RegionMap.js +5 -5
  340. package/dist/data-display/ScheduleGrid.js +10 -10
  341. package/dist/data-display/SectionOnboarding.js +4 -4
  342. package/dist/data-display/Sheet.js +6 -6
  343. package/dist/data-display/Stepper.js +2 -2
  344. package/dist/data-display/Table.js +4 -4
  345. package/dist/data-display/Timeline.js +2 -2
  346. package/dist/en-US.js +2 -2
  347. package/dist/feedback/ConfirmAction.js +9 -9
  348. package/dist/feedback/Dialog.js +2 -2
  349. package/dist/feedback/Modal.js +2 -2
  350. package/dist/feedback/SequenceResolver.js +4 -4
  351. package/dist/feedback/Sonner.js +2 -2
  352. package/dist/feedback/StackedModal.js +4 -4
  353. package/dist/feedback/Toast.js +2 -2
  354. package/dist/feedback/TutorialOverlay.js +2 -2
  355. package/dist/feedback/UsableModal.js +1 -1
  356. package/dist/form/AddressAutocomplete.js +7 -7
  357. package/dist/form/Autocomplete.js +2 -2
  358. package/dist/form/Calendar.js +10 -10
  359. package/dist/form/CategorySelect.js +4 -4
  360. package/dist/form/CodeEditor.js +3 -3
  361. package/dist/form/Command.js +4 -4
  362. package/dist/form/DateRangePicker.js +20 -15
  363. package/dist/form/RichTextEditor.js +5 -5
  364. package/dist/form/total-form.js +9 -9
  365. package/dist/layout/ContentToolbar.js +6 -6
  366. package/dist/layout/Dashboard.js +2 -2
  367. package/dist/layout/Drawer.js +2 -2
  368. package/dist/layout/SettingsLayout.js +2 -2
  369. package/dist/layout/TableFilter.js +2 -2
  370. package/dist/locales.js +4 -4
  371. package/dist/{chunk-XOXXG7Q5.js → native/chunks/chunk-O76COY56.js} +3 -2
  372. package/dist/native/chunks/{chunk-QHW7JEPZ.js.map → chunk-O76COY56.js.map} +1 -1
  373. package/dist/native/chunks/{chunk-FXA5DLKR.js → chunk-UQ272RI2.js} +3 -3
  374. package/dist/native/chunks/{chunk-IN3XZ7EK.js → chunk-X65TVC3B.js} +2 -2
  375. package/dist/native/data-display/Avatar.js +1 -1
  376. package/dist/native/data-display/Badge.js +1 -1
  377. package/dist/native/data-display/Chip.js +1 -1
  378. package/dist/native/data-display/EmptyState.js +3 -3
  379. package/dist/native/data-display/ErrorState.js +2 -2
  380. package/dist/native/data-display/FleetMap.js +3 -3
  381. package/dist/native/data-display/LoadingState.js +1 -1
  382. package/dist/native/feedback/Dialog.js +1 -1
  383. package/dist/native/form/Button.js +2 -2
  384. package/dist/native/form/Checkbox.js +1 -1
  385. package/dist/native/form/Input.js +1 -1
  386. package/dist/native/form/Switch.js +1 -1
  387. package/dist/navigation/AppHeader.js +10 -10
  388. package/dist/navigation/Breadcrumbs.js +2 -2
  389. package/dist/navigation/NavigationMenu.js +3 -3
  390. package/dist/navigation/SectionNav.js +5 -5
  391. package/dist/navigation/Tabs.js +1 -1
  392. package/dist/pt-BR.js +2 -2
  393. package/dist/social-login-button.js +2 -2
  394. package/dist/types/components/data-display/DataViews/data-views-day-input.d.ts +3 -1
  395. package/dist/types/components/data-display/DataViews/data-views-day-input.d.ts.map +1 -1
  396. package/dist/types/components/form/Calendar/Calendar.band.d.ts.map +1 -1
  397. package/dist/types/components/form/Calendar/Calendar.d.ts.map +1 -1
  398. package/dist/types/components/form/Calendar/Calendar.helpers.d.ts.map +1 -1
  399. package/dist/types/components/form/Calendar/Calendar.hooks.d.ts.map +1 -1
  400. package/dist/types/components/form/Calendar/Calendar.types.d.ts +24 -1
  401. package/dist/types/components/form/Calendar/Calendar.types.d.ts.map +1 -1
  402. package/dist/types/components/form/Calendar/CalendarDay.d.ts +6 -0
  403. package/dist/types/components/form/Calendar/CalendarDay.d.ts.map +1 -1
  404. package/dist/types/components/form/Calendar/CalendarDayCell.d.ts +11 -1
  405. package/dist/types/components/form/Calendar/CalendarDayCell.d.ts.map +1 -1
  406. package/dist/types/components/form/Calendar/CalendarMonth.d.ts +27 -2
  407. package/dist/types/components/form/Calendar/CalendarMonth.d.ts.map +1 -1
  408. package/dist/types/components/form/Calendar/index.d.ts +1 -1
  409. package/dist/types/components/form/Calendar/index.d.ts.map +1 -1
  410. package/dist/types/components/form/DateRangePicker/DateRangePicker.d.ts +1 -1
  411. package/dist/types/components/form/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  412. package/dist/types/components/form/DateRangePicker/DateRangePicker.frame.d.ts +93 -0
  413. package/dist/types/components/form/DateRangePicker/DateRangePicker.frame.d.ts.map +1 -0
  414. package/dist/types/components/form/DateRangePicker/DateRangePicker.hooks.d.ts +1 -1
  415. package/dist/types/components/form/DateRangePicker/DateRangePicker.hooks.d.ts.map +1 -1
  416. package/dist/types/components/form/DateRangePicker/DateRangePicker.layout.d.ts +27 -0
  417. package/dist/types/components/form/DateRangePicker/DateRangePicker.layout.d.ts.map +1 -0
  418. package/dist/types/components/form/DateRangePicker/DateRangePicker.range.d.ts +8 -2
  419. package/dist/types/components/form/DateRangePicker/DateRangePicker.range.d.ts.map +1 -1
  420. package/dist/types/components/form/DateRangePicker/DateRangePicker.types.d.ts +90 -1
  421. package/dist/types/components/form/DateRangePicker/DateRangePicker.types.d.ts.map +1 -1
  422. package/dist/types/components/form/DateRangePicker/DateRangePickerFields.d.ts +7 -1
  423. package/dist/types/components/form/DateRangePicker/DateRangePickerFields.d.ts.map +1 -1
  424. package/dist/types/components/navigation/Tabs/Tabs.d.ts.map +1 -1
  425. package/dist/types/components/navigation/Tabs/Tabs.types.d.ts +18 -3
  426. package/dist/types/components/navigation/Tabs/Tabs.types.d.ts.map +1 -1
  427. package/dist/types/copy/labels.d.ts +6 -0
  428. package/dist/types/copy/labels.d.ts.map +1 -1
  429. package/dist/types/en-US.labels.d.ts.map +1 -1
  430. package/dist/types/pt-BR.labels.d.ts.map +1 -1
  431. package/dist/types-native/copy/labels.d.ts +6 -0
  432. package/dist/types-native/copy/labels.d.ts.map +1 -1
  433. package/dist/types-native/en-US.labels.d.ts.map +1 -1
  434. package/dist/typography/Code.js +2 -2
  435. package/dist/user-avatar.js +6 -6
  436. package/dist/utility/AnimatedIcon.js +2 -2
  437. package/dist/utility/InfiniteScroll.js +3 -3
  438. package/dist/utility/WorkflowStep.js +5 -5
  439. package/package.json +1 -1
  440. package/src/components/data-display/DataViews/data-views-day-input.tsx +4 -0
  441. package/src/components/form/Calendar/Calendar.band.ts +3 -0
  442. package/src/components/form/Calendar/Calendar.helpers.ts +2 -0
  443. package/src/components/form/Calendar/Calendar.hooks.ts +4 -2
  444. package/src/components/form/Calendar/Calendar.md +12 -1
  445. package/src/components/form/Calendar/Calendar.tsx +30 -10
  446. package/src/components/form/Calendar/Calendar.types.ts +27 -1
  447. package/src/components/form/Calendar/CalendarDay.tsx +85 -13
  448. package/src/components/form/Calendar/CalendarDayCell.tsx +17 -1
  449. package/src/components/form/Calendar/CalendarMonth.tsx +49 -6
  450. package/src/components/form/Calendar/CalendarSelectorsMonth.tsx +2 -2
  451. package/src/components/form/Calendar/index.ts +1 -0
  452. package/src/components/form/DateRangePicker/DateRangePicker.frame.ts +92 -0
  453. package/src/components/form/DateRangePicker/DateRangePicker.hooks.ts +43 -1
  454. package/src/components/form/DateRangePicker/DateRangePicker.layout.ts +69 -0
  455. package/src/components/form/DateRangePicker/DateRangePicker.md +77 -2
  456. package/src/components/form/DateRangePicker/DateRangePicker.range.ts +10 -2
  457. package/src/components/form/DateRangePicker/DateRangePicker.tsx +177 -57
  458. package/src/components/form/DateRangePicker/DateRangePicker.types.ts +88 -1
  459. package/src/components/form/DateRangePicker/DateRangePickerFields.tsx +13 -2
  460. package/src/components/navigation/Tabs/Tabs.md +22 -1
  461. package/src/components/navigation/Tabs/Tabs.tsx +25 -9
  462. package/src/components/navigation/Tabs/Tabs.types.ts +18 -2
  463. package/src/copy/labels.ts +6 -0
  464. package/src/en-US.labels.ts +1 -0
  465. package/src/pt-BR.labels.ts +1 -0
  466. package/dist/chunk-3ZRK3BRN.js.map +0 -1
  467. package/dist/chunk-4L54KUZV.js.map +0 -1
  468. package/dist/chunk-FYAW5GBF.js.map +0 -1
  469. package/dist/chunk-H2UUMZQR.js.map +0 -1
  470. package/dist/chunk-I4K5JMS4.js.map +0 -1
  471. package/dist/chunk-J2GDA64N.js +0 -184
  472. package/dist/chunk-J2GDA64N.js.map +0 -1
  473. package/dist/chunk-MPWA55CF.js.map +0 -1
  474. package/dist/chunk-QPCHABOZ.js.map +0 -1
  475. package/dist/chunk-QSOCOXVL.js.map +0 -1
  476. package/dist/chunk-RZ3P4X2I.js.map +0 -1
  477. package/dist/chunk-TPMT3J32.js.map +0 -1
  478. package/dist/chunk-VCQFDQM3.js.map +0 -1
  479. package/dist/chunk-X37NTEVS.js.map +0 -1
  480. /package/dist/{chunk-UBVKMM3V.js.map → chunk-2A5GHOL3.js.map} +0 -0
  481. /package/dist/{chunk-YGLAGY74.js.map → chunk-332KWE5H.js.map} +0 -0
  482. /package/dist/{chunk-HNEZWVDR.js.map → chunk-364NT46L.js.map} +0 -0
  483. /package/dist/{chunk-RLTGD5WJ.js.map → chunk-3AKQHYTM.js.map} +0 -0
  484. /package/dist/{chunk-5I75WRXT.js.map → chunk-3CXRHRGE.js.map} +0 -0
  485. /package/dist/{chunk-G6NMSBSQ.js.map → chunk-3LD42RNV.js.map} +0 -0
  486. /package/dist/{chunk-24G3BWKD.js.map → chunk-3N2HWNKT.js.map} +0 -0
  487. /package/dist/{chunk-MSJP2AEN.js.map → chunk-3N3W4TID.js.map} +0 -0
  488. /package/dist/{chunk-YNVTUQ5B.js.map → chunk-3V7OTBUZ.js.map} +0 -0
  489. /package/dist/{chunk-LZNUBQ5I.js.map → chunk-4A454JZN.js.map} +0 -0
  490. /package/dist/{chunk-SW7JCF4Z.js.map → chunk-4P63RSSY.js.map} +0 -0
  491. /package/dist/{chunk-7QKFMMWK.js.map → chunk-4W4C4Q46.js.map} +0 -0
  492. /package/dist/{chunk-B32XH7NK.js.map → chunk-4WVUX7IU.js.map} +0 -0
  493. /package/dist/{chunk-Z6QFIRD7.js.map → chunk-4X2TOMK6.js.map} +0 -0
  494. /package/dist/{chunk-MYTV353T.js.map → chunk-4Y3QLISA.js.map} +0 -0
  495. /package/dist/{chunk-IMYKJTVX.js.map → chunk-5J6LN2O7.js.map} +0 -0
  496. /package/dist/{chunk-BMC5KGH2.js.map → chunk-5V7IZBRY.js.map} +0 -0
  497. /package/dist/{chunk-ZBUMGMWP.js.map → chunk-64LNNC54.js.map} +0 -0
  498. /package/dist/{chunk-T77OVQEO.js.map → chunk-6D7CASMK.js.map} +0 -0
  499. /package/dist/{chunk-YVDNCV2D.js.map → chunk-6RYSSNOO.js.map} +0 -0
  500. /package/dist/{chunk-CPQJFHNZ.js.map → chunk-74IH3ZGD.js.map} +0 -0
  501. /package/dist/{chunk-UQ5GJPVZ.js.map → chunk-76GAXLNC.js.map} +0 -0
  502. /package/dist/{chunk-X4J576GR.js.map → chunk-7LFST3PW.js.map} +0 -0
  503. /package/dist/{chunk-XCUHGPPZ.js.map → chunk-7MLT66DE.js.map} +0 -0
  504. /package/dist/{chunk-EOIRU62W.js.map → chunk-7P544IWT.js.map} +0 -0
  505. /package/dist/{chunk-XTYBJAZG.js.map → chunk-7TENMQNQ.js.map} +0 -0
  506. /package/dist/{chunk-C7IFBYIJ.js.map → chunk-A27J4CIZ.js.map} +0 -0
  507. /package/dist/{chunk-2KSFBZ2H.js.map → chunk-ABZJNKR6.js.map} +0 -0
  508. /package/dist/{chunk-6LOWZCH7.js.map → chunk-AHXQN4VL.js.map} +0 -0
  509. /package/dist/{chunk-Y7BOP7VZ.js.map → chunk-AP7GEUJS.js.map} +0 -0
  510. /package/dist/{chunk-U2SAW6DH.js.map → chunk-B4OZU7J4.js.map} +0 -0
  511. /package/dist/{chunk-DDGYTY4E.js.map → chunk-BIHZXB5P.js.map} +0 -0
  512. /package/dist/{chunk-4QGMUHAU.js.map → chunk-BWNZVMBT.js.map} +0 -0
  513. /package/dist/{chunk-CY4XIZNW.js.map → chunk-CAH5XNHT.js.map} +0 -0
  514. /package/dist/{chunk-KILA7LCC.js.map → chunk-CFDWKQZT.js.map} +0 -0
  515. /package/dist/{chunk-EWFBDAB7.js.map → chunk-CKGRSCRT.js.map} +0 -0
  516. /package/dist/{chunk-YOLLISEY.js.map → chunk-CRD2WCU7.js.map} +0 -0
  517. /package/dist/{chunk-L5KPBMMF.js.map → chunk-CXL3TT3K.js.map} +0 -0
  518. /package/dist/{chunk-KOGJBAFI.js.map → chunk-D3KLIC5N.js.map} +0 -0
  519. /package/dist/{chunk-2SBQ47RI.js.map → chunk-D4JL5725.js.map} +0 -0
  520. /package/dist/{chunk-NI3MC742.js.map → chunk-DBJLYURK.js.map} +0 -0
  521. /package/dist/{chunk-75GAQL2Q.js.map → chunk-DKPELKGL.js.map} +0 -0
  522. /package/dist/{chunk-NGXL4R54.js.map → chunk-E4MJA52O.js.map} +0 -0
  523. /package/dist/{chunk-5HXVXW22.js.map → chunk-EGBQR5GH.js.map} +0 -0
  524. /package/dist/{chunk-FTYOCFTV.js.map → chunk-EGYJUJMR.js.map} +0 -0
  525. /package/dist/{chunk-7XSCEHGA.js.map → chunk-EOQ6EKTS.js.map} +0 -0
  526. /package/dist/{chunk-6AKDAQSS.js.map → chunk-ERAMSYPR.js.map} +0 -0
  527. /package/dist/{chunk-WYRH6OSN.js.map → chunk-F5EH5BJN.js.map} +0 -0
  528. /package/dist/{chunk-QCYQL3ST.js.map → chunk-FJLPVPRG.js.map} +0 -0
  529. /package/dist/{chunk-MAHY7PK3.js.map → chunk-FQMLTCXT.js.map} +0 -0
  530. /package/dist/{chunk-TMINUTQQ.js.map → chunk-FRQGZIYU.js.map} +0 -0
  531. /package/dist/{chunk-LV6AD6XC.js.map → chunk-FT3LJZWZ.js.map} +0 -0
  532. /package/dist/{chunk-ZPWPA6FR.js.map → chunk-FW5GTAUY.js.map} +0 -0
  533. /package/dist/{chunk-VMTOLAZ5.js.map → chunk-FZZMNKVF.js.map} +0 -0
  534. /package/dist/{chunk-FGZIEZEP.js.map → chunk-G6TKWNF2.js.map} +0 -0
  535. /package/dist/{chunk-I6IFUFLW.js.map → chunk-G7MHDZTL.js.map} +0 -0
  536. /package/dist/{chunk-KES3HNSU.js.map → chunk-GB2DQOZ7.js.map} +0 -0
  537. /package/dist/{chunk-HRES2S3Q.js.map → chunk-GFYDOH7D.js.map} +0 -0
  538. /package/dist/{chunk-M2M4IDFU.js.map → chunk-GXYOBTOY.js.map} +0 -0
  539. /package/dist/{chunk-OLHAUGVQ.js.map → chunk-GZQQSTKR.js.map} +0 -0
  540. /package/dist/{chunk-N2J24TJ3.js.map → chunk-HAWOS4SF.js.map} +0 -0
  541. /package/dist/{chunk-S2VZUBM7.js.map → chunk-HCTHY66U.js.map} +0 -0
  542. /package/dist/{chunk-ABVIMFSD.js.map → chunk-HG52QQ2L.js.map} +0 -0
  543. /package/dist/{chunk-AMLHEKSV.js.map → chunk-HI7JPDD6.js.map} +0 -0
  544. /package/dist/{chunk-OKDKKBLI.js.map → chunk-HOWAMSUY.js.map} +0 -0
  545. /package/dist/{chunk-3TZUZXY5.js.map → chunk-HTXYBKLK.js.map} +0 -0
  546. /package/dist/{chunk-WW3F7DCX.js.map → chunk-IFOHCY4O.js.map} +0 -0
  547. /package/dist/{chunk-S46LGAQ2.js.map → chunk-IJVBLU25.js.map} +0 -0
  548. /package/dist/{chunk-ARGVUTTL.js.map → chunk-IPVGWENM.js.map} +0 -0
  549. /package/dist/{chunk-MWXZXCVX.js.map → chunk-J43PARXM.js.map} +0 -0
  550. /package/dist/{chunk-UYKIUUWP.js.map → chunk-JJTJ7DCV.js.map} +0 -0
  551. /package/dist/{chunk-HQCZT6TO.js.map → chunk-JVOEVTCZ.js.map} +0 -0
  552. /package/dist/{chunk-2365CQJU.js.map → chunk-KAQDWEG6.js.map} +0 -0
  553. /package/dist/{chunk-TB5CRHTF.js.map → chunk-KEPLO2AB.js.map} +0 -0
  554. /package/dist/{chunk-PVIQDBUN.js.map → chunk-KUQ4XHVV.js.map} +0 -0
  555. /package/dist/{chunk-DAFFZED3.js.map → chunk-KWBMM6MJ.js.map} +0 -0
  556. /package/dist/{chunk-JJYECKEL.js.map → chunk-LFECE4R7.js.map} +0 -0
  557. /package/dist/{chunk-LXIPBHNJ.js.map → chunk-LKTJ26ST.js.map} +0 -0
  558. /package/dist/{chunk-56JF5PZK.js.map → chunk-LYVTJLCF.js.map} +0 -0
  559. /package/dist/{chunk-EYFDIUVR.js.map → chunk-M4G4LRQK.js.map} +0 -0
  560. /package/dist/{chunk-KMMFN24G.js.map → chunk-MKHNLRVX.js.map} +0 -0
  561. /package/dist/{chunk-4IG73U2X.js.map → chunk-MSPLIRBH.js.map} +0 -0
  562. /package/dist/{chunk-RNIJL54W.js.map → chunk-O4UXH7BM.js.map} +0 -0
  563. /package/dist/{chunk-DYHOBKPU.js.map → chunk-OA6T2ME3.js.map} +0 -0
  564. /package/dist/{chunk-VNMD6BA4.js.map → chunk-OFRQMFWD.js.map} +0 -0
  565. /package/dist/{chunk-LTJC7TGB.js.map → chunk-OHA2PAAA.js.map} +0 -0
  566. /package/dist/{chunk-ZANWHTXH.js.map → chunk-OVJV2ZN7.js.map} +0 -0
  567. /package/dist/{chunk-SKQPUAMK.js.map → chunk-PDWQJFMK.js.map} +0 -0
  568. /package/dist/{chunk-6EZQLNPK.js.map → chunk-PGJIWCQR.js.map} +0 -0
  569. /package/dist/{chunk-FRAFGRRD.js.map → chunk-PIELY4BJ.js.map} +0 -0
  570. /package/dist/{chunk-3Z6JX7UN.js.map → chunk-PZJEF232.js.map} +0 -0
  571. /package/dist/{chunk-6ATXOJVQ.js.map → chunk-QADTI63U.js.map} +0 -0
  572. /package/dist/{chunk-4RF4BALN.js.map → chunk-R775ISK6.js.map} +0 -0
  573. /package/dist/{chunk-YBAK2WN5.js.map → chunk-RFMQBIE6.js.map} +0 -0
  574. /package/dist/{chunk-43EFQ3DU.js.map → chunk-RVBLOR32.js.map} +0 -0
  575. /package/dist/{chunk-XNAI7QGU.js.map → chunk-SA3KLZDZ.js.map} +0 -0
  576. /package/dist/{chunk-CAOL4AIB.js.map → chunk-SARK3GHS.js.map} +0 -0
  577. /package/dist/{chunk-37SNQQ7P.js.map → chunk-SOXO2VN3.js.map} +0 -0
  578. /package/dist/{chunk-6PU5P7QT.js.map → chunk-TDXEWGY2.js.map} +0 -0
  579. /package/dist/{chunk-SB2SEGR6.js.map → chunk-TIM4PXWN.js.map} +0 -0
  580. /package/dist/{chunk-OGSTMHT6.js.map → chunk-TTBLQZVT.js.map} +0 -0
  581. /package/dist/{chunk-KHDKG7XB.js.map → chunk-U4PV2ZKK.js.map} +0 -0
  582. /package/dist/{chunk-VHE7UEG5.js.map → chunk-UC7DLGMP.js.map} +0 -0
  583. /package/dist/{chunk-TI4FGQYV.js.map → chunk-UHLGJHTD.js.map} +0 -0
  584. /package/dist/{chunk-TAHO2LCU.js.map → chunk-UIZIEU4X.js.map} +0 -0
  585. /package/dist/{chunk-F7LBTMCA.js.map → chunk-ULC4SCFC.js.map} +0 -0
  586. /package/dist/{chunk-FORQEHRQ.js.map → chunk-UXVWGNPG.js.map} +0 -0
  587. /package/dist/{chunk-KF3Q3C3P.js.map → chunk-VGIBWJ72.js.map} +0 -0
  588. /package/dist/{chunk-I54YFYBS.js.map → chunk-VMACQT3T.js.map} +0 -0
  589. /package/dist/{chunk-EXEBN5ZP.js.map → chunk-W56KN53D.js.map} +0 -0
  590. /package/dist/{chunk-KURE5R7Z.js.map → chunk-WGK7VNCO.js.map} +0 -0
  591. /package/dist/{chunk-XALDXR3F.js.map → chunk-WK577LQL.js.map} +0 -0
  592. /package/dist/{chunk-LLPPIO3K.js.map → chunk-WNTXHLVJ.js.map} +0 -0
  593. /package/dist/{chunk-PEVBSNCD.js.map → chunk-WPRQPKLV.js.map} +0 -0
  594. /package/dist/{chunk-C347NNZJ.js.map → chunk-WVCHMTPG.js.map} +0 -0
  595. /package/dist/{chunk-CSD6SWBZ.js.map → chunk-WYNGH2WL.js.map} +0 -0
  596. /package/dist/{chunk-PJDAZG65.js.map → chunk-XA5ES25V.js.map} +0 -0
  597. /package/dist/{chunk-FWTVIRZZ.js.map → chunk-YLZXIR6B.js.map} +0 -0
  598. /package/dist/{chunk-JOQGKXR5.js.map → chunk-Z2J4MRTF.js.map} +0 -0
  599. /package/dist/{chunk-USHVG4UQ.js.map → chunk-ZKVSFVIA.js.map} +0 -0
  600. /package/dist/{chunk-TE6HAWDM.js.map → chunk-ZP2GPRNQ.js.map} +0 -0
  601. /package/dist/{chunk-3PQL2EN5.js.map → chunk-ZW7Q3IRL.js.map} +0 -0
  602. /package/dist/{chunk-M5Y42AZ4.js.map → chunk-ZX4ORMBC.js.map} +0 -0
  603. /package/dist/native/chunks/{chunk-FXA5DLKR.js.map → chunk-UQ272RI2.js.map} +0 -0
  604. /package/dist/native/chunks/{chunk-IN3XZ7EK.js.map → chunk-X65TVC3B.js.map} +0 -0
@@ -1,10 +1,10 @@
1
1
  import "../chunk-H7NA4TXY.js";
2
2
  import {
3
3
  InfiniteScroll
4
- } from "../chunk-7QKFMMWK.js";
5
- import "../chunk-PEVBSNCD.js";
4
+ } from "../chunk-4W4C4Q46.js";
5
+ import "../chunk-WPRQPKLV.js";
6
6
  import "../chunk-Y2X7LYIN.js";
7
- import "../chunk-XOXXG7Q5.js";
7
+ import "../chunk-VWKMN3ZZ.js";
8
8
  import "../chunk-YKCAJ2TN.js";
9
9
  import "../chunk-PZ5AY32C.js";
10
10
  export {
@@ -1,12 +1,12 @@
1
1
  import "../chunk-IO36MEBD.js";
2
2
  import {
3
3
  WorkflowStep
4
- } from "../chunk-UQ5GJPVZ.js";
5
- import "../chunk-CAOL4AIB.js";
6
- import "../chunk-IMYKJTVX.js";
7
- import "../chunk-UBVKMM3V.js";
4
+ } from "../chunk-76GAXLNC.js";
5
+ import "../chunk-SARK3GHS.js";
6
+ import "../chunk-5J6LN2O7.js";
7
+ import "../chunk-2A5GHOL3.js";
8
8
  import "../chunk-LL2BWQPM.js";
9
- import "../chunk-XOXXG7Q5.js";
9
+ import "../chunk-VWKMN3ZZ.js";
10
10
  import "../chunk-B7ZHEOQQ.js";
11
11
  import "../chunk-BRHRK7BK.js";
12
12
  import "../chunk-25MSGLNU.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@12-apps/ui",
3
- "version": "6.97.0",
3
+ "version": "6.98.0",
4
4
  "license": "MIT",
5
5
  "packageManager": "pnpm@10.34.5",
6
6
  "type": "module",
@@ -245,6 +245,8 @@ interface DayBoundInputProps {
245
245
  * calendar's width instead of leaving a gap beside them (FUT-4144).
246
246
  */
247
247
  fill?: boolean;
248
+ /** Shown, never editable. Default: false. */
249
+ disabled?: boolean;
248
250
  }
249
251
 
250
252
  /** What {@link useDayText} hands the field: its text, its verdict and its handlers. */
@@ -333,6 +335,7 @@ export function DayBoundInput({
333
335
  mask,
334
336
  invalidMessage,
335
337
  fill = false,
338
+ disabled = false,
336
339
  }: DayBoundInputProps): React.JSX.Element {
337
340
  const id = useId();
338
341
  const { text, impossible, handleChange, handlePaste, handleBlur } = useDayText(
@@ -351,6 +354,7 @@ export function DayBoundInput({
351
354
  error={error || impossible}
352
355
  helperText={impossible ? invalidMessage : undefined}
353
356
  placeholder={mask}
357
+ disabled={disabled}
354
358
  value={text}
355
359
  onChange={handleChange}
356
360
  onPaste={handlePaste}
@@ -49,6 +49,9 @@ export const bandFor = ({
49
49
  if (selectionMode !== 'range') return 'none';
50
50
  if (args.inRange) return 'full';
51
51
 
52
+ // A chosen end before the start is a pair being fixed, not a range: its
53
+ // inside is not filled, so neither end reaches towards the other.
54
+ if (range.start && range.end && range.end < range.start) return 'none';
52
55
  const other = otherEnd(range, hoveredDate, isDisabled);
53
56
  if (!range.start || !other || isSameDay(range.start, other)) return 'none';
54
57
  return endpointBand(args.date, range.start, other);
@@ -11,6 +11,8 @@ const CALENDAR_DEFAULTS = {
11
11
  allowSameDayRange: true,
12
12
  autoFocus: false,
13
13
  captionLayout: 'arrows',
14
+ todayIndicator: 'bold',
15
+ fullWidth: false,
14
16
  } as const satisfies Partial<CalendarProps>;
15
17
 
16
18
  // Strips explicitly-undefined props before the merge, so `prop={undefined}` still
@@ -8,11 +8,13 @@ import type { MonthMatrix, ResolvedCalendarProps } from './Calendar.types';
8
8
 
9
9
  const startOfMonth = (date: Date): Date => new Date(date.getFullYear(), date.getMonth(), 1);
10
10
 
11
- // Which day the calendar opens on: whatever is already chosen, else the first
12
- // of `defaultMonth`, else today.
11
+ // Which day the calendar opens on: whatever is already chosen — a range's
12
+ // start, or its end when only the end is (FUT-4156) — else the first of
13
+ // `defaultMonth`, else today.
13
14
  const initialFocus = (props: ResolvedCalendarProps, today: Date): Date => {
14
15
  if (props.selectionMode === 'single' && props.value) return normalizeDate(props.value);
15
16
  if (props.selectionMode === 'range' && props.range.start) return normalizeDate(props.range.start);
17
+ if (props.selectionMode === 'range' && props.range.end) return normalizeDate(props.range.end);
16
18
  if (props.defaultMonth) return normalizeDate(startOfMonth(props.defaultMonth));
17
19
  return today;
18
20
  };
@@ -18,7 +18,10 @@ A reusable calendar that supports **single date selection** and **date range sel
18
18
  - **Month grid** (role `grid`) with weekday headers and day cells (role `gridcell`).
19
19
  - **Range hover preview**: when a start date is chosen, hovering days previews the end.
20
20
  - **Dual month** layout for range mode (configurable).
21
- - **Disabled/unavailable days** visibly blocked and non-interactive.
21
+ - **Disabled/unavailable days** visibly blocked and non-interactive, in the disabled ink — a
22
+ blocked day inside a live range included (a range CAN span one: Sundays, holidays). Only a
23
+ calendar shown locked (`navigationDisabled`, which a disabled `DateRangePicker` sets) draws its
24
+ in-range days in the secondary ink, so the period it states stays legible on the band.
22
25
  - Optional **footer** with Clear/Apply.
23
26
 
24
27
  ---
@@ -49,6 +52,9 @@ export interface CalendarProps {
49
52
  firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6; // default: locale
50
53
  locale?: string; // e.g. 'en-US'
51
54
  showOutsideDays?: boolean; // days from prev/next month
55
+ todayIndicator?: 'bold' | 'ring'; // default 'bold'; 'ring' adds a primary-colour ring
56
+ fullWidth?: boolean; // default false; months fill the width, columns spread, faces stay 40
57
+ navigationDisabled?: boolean; // default false; the month arrows are disabled (a calendar whose days are all disabled)
52
58
  showWeekNumbers?: boolean;
53
59
  captionLayout?: 'arrows' | 'selectors'; // default: 'arrows'; 'selectors' shows one month
54
60
  defaultMonth?: Date; // month shown while nothing is chosen; default: today's month
@@ -219,10 +225,15 @@ month/year buttons rather than squeezing them (`SelectorsFitA320Sheet`).
219
225
  two-month range calendar names two different days (FUT-4144).
220
226
  - The arrows of the default caption carry `labels.previousMonth`/`nextMonth`
221
227
  when the host passes `labels`; without `labels` they stay as they were.
228
+ - The default caption is a title: its first letter upper-cased in `locale`
229
+ (`"Novembro de 2026"`, FUT-4156). The grid's own name keeps `Intl`'s words
230
+ (`aria-label="novembro de 2026"`).
222
231
  - Disabled days: `aria-disabled="true"`.
223
232
  - With `showOutsideDays={false}` an outside day is an inert, `aria-hidden`
224
233
  placeholder: no button, no name, no tab stop. Visible outside days are
225
234
  unchanged.
235
+ - The focus ring (2px, primary) shows on KEYBOARD focus only
236
+ (`:focus-visible`) — on the container or a day — never after a tap.
226
237
  - Keyboard support (roving focus within the grid). When a NAVIGATION key is
227
238
  pressed on a day (the reader tabbed or clicked onto it), focus follows the tab
228
239
  stop to the new day in its own month (never its muted copy in the month
@@ -16,17 +16,34 @@ import type { DayCellContext } from './CalendarDayCell';
16
16
  import { CalendarMonth } from './CalendarMonth';
17
17
  import { CalendarSelectorsMonth } from './CalendarSelectorsMonth';
18
18
 
19
- const containerSx = (monthsToShow: number): SxProps<Theme> => ({
19
+ const KEYBOARD_RING = {
20
+ outline: (theme: Theme) => `${rem(theme, 2)} solid`,
21
+ outlineColor: 'primary.main',
22
+ outlineOffset: sxRem(2),
23
+ } as const;
24
+
25
+ const containerSx = (monthsToShow: number, fullWidth: boolean): SxProps<Theme> => ({
20
26
  p: 3,
27
+ ...(fullWidth ? { width: '100%', boxSizing: 'border-box' } : {}),
21
28
  display: 'flex',
22
29
  flexDirection: monthsToShow > 1 ? 'row' : 'column',
23
30
  gap: 3,
24
31
  outline: 'none',
25
- '&:focus-within': {
26
- outline: (theme: Theme) => `${rem(theme, 2)} solid`,
27
- outlineColor: 'primary.main',
28
- outlineOffset: sxRem(2),
29
- },
32
+ // The ring is for a KEYBOARD reader's place, so it shows on keyboard focus
33
+ // only — on the container, or on a day inside it — and never after a tap.
34
+ // Two rules, not one list: a browser without `:has` drops a whole selector
35
+ // list it cannot parse, and would lose the container's own ring with it.
36
+ '&:focus-visible': KEYBOARD_RING,
37
+ '&:has(:focus-visible)': KEYBOARD_RING,
38
+ });
39
+
40
+ // The months' row. Filling, it takes the container's whole width even where
41
+ // the container lays it out in a row (two months or more).
42
+ const monthsSx = (fullWidth: boolean): SxProps<Theme> => ({
43
+ display: 'flex',
44
+ gap: 3,
45
+ flexWrap: 'wrap',
46
+ ...(fullWidth ? { flex: '1 1 auto', minWidth: 0 } : {}),
30
47
  });
31
48
 
32
49
  type CalendarState = ReturnType<typeof useCalendar>;
@@ -37,6 +54,9 @@ const buildDayContext = (props: ResolvedCalendarProps, calendar: CalendarState):
37
54
  value: props.value,
38
55
  range: props.range,
39
56
  showOutsideDays: props.showOutsideDays,
57
+ todayIndicator: props.todayIndicator,
58
+ fullWidth: props.fullWidth,
59
+ locked: props.navigationDisabled === true,
40
60
  renderDay: props.renderDay,
41
61
  dayClassName: props.dayClassName,
42
62
  hoveredDate: calendar.hoveredDate,
@@ -133,9 +153,9 @@ export const Calendar = React.forwardRef<HTMLDivElement, CalendarProps>((compone
133
153
  : undefined
134
154
  }
135
155
  data-testid="calendar-container"
136
- sx={containerSx(monthsToShow)}
156
+ sx={containerSx(monthsToShow, props.fullWidth)}
137
157
  >
138
- <Box ref={calendar.gridRef} sx={{ display: 'flex', gap: 3, flexWrap: 'wrap' }}>
158
+ <Box ref={calendar.gridRef} sx={monthsSx(props.fullWidth)}>
139
159
  {props.captionLayout === 'selectors' && firstMonth ? (
140
160
  <CalendarSelectorsMonth
141
161
  matrix={firstMonth}
@@ -164,11 +184,11 @@ export const Calendar = React.forwardRef<HTMLDivElement, CalendarProps>((compone
164
184
  locale={locale}
165
185
  weekdayNames={calendar.weekdayNames}
166
186
  renderHeader={renderHeader}
167
- // Only a host that passed `labels` gets named arrows: without
168
- // them the arrows caption stays exactly as it always was.
187
+ // Only a host that passed `labels` gets named arrows; without them the caption is as it was.
169
188
  labels={props.labels ? labels : undefined}
170
189
  onPreviousMonth={calendar.goToPreviousMonth}
171
190
  onNextMonth={calendar.goToNextMonth}
191
+ navigationDisabled={props.navigationDisabled === true}
172
192
  dayContext={dayContext}
173
193
  />
174
194
  ))
@@ -27,6 +27,9 @@ export interface DayRenderArgs {
27
27
  */
28
28
  export type CalendarCaptionLayout = 'arrows' | 'selectors';
29
29
 
30
+ /** How today's day is marked — see `CalendarProps.todayIndicator`. */
31
+ export type CalendarTodayIndicator = 'bold' | 'ring';
32
+
30
33
  export interface HeaderRenderContext {
31
34
  month: number;
32
35
  year: number;
@@ -55,7 +58,28 @@ export interface CalendarProps {
55
58
  firstDayOfWeek?: 0 | 1 | 2 | 3 | 4 | 5 | 6; // default: locale
56
59
  locale?: string; // e.g. 'en-US'
57
60
  showOutsideDays?: boolean; // days from prev/next month
61
+ /**
62
+ * How today is marked. `'bold'` (the default) is the bold number it always
63
+ * was; `'ring'` adds a hairline ring in the primary colour around the day's
64
+ * face, for a calendar a reader must place a period against today on.
65
+ */
66
+ todayIndicator?: CalendarTodayIndicator;
58
67
  showWeekNumbers?: boolean;
68
+ /**
69
+ * Fill the width the calendar is given instead of stopping at a month's
70
+ * intrinsic 304 design px. The seven columns spread across it and the day
71
+ * faces keep their size (40 design px at most): only the spacing grows, and a
72
+ * range's band still runs unbroken across the columns. For a calendar laid
73
+ * into a page section whose edges it must meet. Default: false.
74
+ */
75
+ fullWidth?: boolean;
76
+ /**
77
+ * The month arrows are disabled (`'arrows'` caption): for a calendar shown
78
+ * for a period that cannot change right now, whose days are all disabled
79
+ * too — a live arrow beside a dead grid reads as the one control left.
80
+ * Default: false.
81
+ */
82
+ navigationDisabled?: boolean;
59
83
  /** default: 'arrows'. `'selectors'` always shows one month. */
60
84
  captionLayout?: CalendarCaptionLayout;
61
85
  /**
@@ -103,7 +127,9 @@ type CalendarDefaultedKeys =
103
127
  | 'minRangeLength'
104
128
  | 'allowSameDayRange'
105
129
  | 'autoFocus'
106
- | 'captionLayout';
130
+ | 'captionLayout'
131
+ | 'todayIndicator'
132
+ | 'fullWidth';
107
133
 
108
134
  // CalendarProps with the defaults already applied, plus the month count resolved
109
135
  // from numberOfMonths and the selection mode.
@@ -20,6 +20,10 @@ const COLUMN_SIZE = sxRem(304 / 7);
20
20
  /** 304/7 wide to 40 tall: the day's face is a 40 design px circle at full size. */
21
21
  const CELL_RATIO = '38 / 35';
22
22
 
23
+ /** Emotion's documented flag for a positional selector known safe here. */
24
+ const NTH_CHILD_IS_SAFE =
25
+ ' /* emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason */';
26
+
23
27
  interface DayState extends DayRenderArgs {
24
28
  outside: boolean;
25
29
  focused: boolean;
@@ -66,9 +70,15 @@ const inDirection = (band: Exclude<DayBand, 'none'>, theme: Theme): Exclude<DayB
66
70
  const faceBackgroundFor = (day: DayRenderArgs): ((theme: Theme) => string) | string =>
67
71
  isEndpoint(day) ? endpointFill : 'transparent';
68
72
 
69
- const colorFor = (day: DayRenderArgs, visible: boolean): string => {
73
+ const colorFor = (day: DayRenderArgs, visible: boolean, locked: boolean): string => {
70
74
  if (isEndpoint(day)) return 'primary.contrastText';
71
- if (day.disabled) return 'text.disabled';
75
+ // On a calendar shown LOCKED (`navigationDisabled`, a disabled picker) every
76
+ // day is disabled, and the ones inside the range are the value the grid
77
+ // states: on the band the disabled ink was 1.56:1, so they take the secondary
78
+ // ink (FUT-4482, review round 9). A live range CAN span a blocked day (a
79
+ // host's `isDateDisabled`: Sundays, holidays); that day keeps the disabled
80
+ // ink, so it still reads as the one that cannot be picked.
81
+ if (day.disabled) return locked && day.inRange ? 'text.secondary' : 'text.disabled';
72
82
  // Outside days that are switched off still occupy the grid, they just have
73
83
  // nothing to show.
74
84
  if (!visible) return 'transparent';
@@ -85,13 +95,59 @@ const hoverBackgroundFor = (day: DayRenderArgs): ((theme: Theme) => string) | st
85
95
  // is a half-round cap on a cell as tall as it is wide.
86
96
  const BAND_RADIUS = '50%';
87
97
 
98
+ const capRadius = (side: 'start' | 'end', fill: boolean) => {
99
+ const radius = fill ? FILL_CAP_RADIUS : BAND_RADIUS;
100
+ return side === 'start'
101
+ ? { borderStartStartRadius: radius, borderEndStartRadius: radius }
102
+ : { borderStartEndRadius: radius, borderEndEndRadius: radius };
103
+ };
104
+
88
105
  /**
89
106
  * One cell: the band, painted on the button across its whole column, and the
90
107
  * day's round face, a `::before` circle behind the number. The face is a
91
108
  * pseudo-element so the button's own content stays the bare day number a host's
92
109
  * tests query (`getByText('27')` is the cell, as it always was).
93
110
  */
94
- const dayCellSx = (day: DayRenderArgs, band: DayBand, visible: boolean): SxProps<Theme> => ({
111
+ /**
112
+ * Today's ring, opt-in (`todayIndicator="ring"`): a hairline-and-a-half inset
113
+ * on the face, in the primary colour. An endpoint is already filled with that
114
+ * colour, so it carries none.
115
+ */
116
+ const todayRingFor = (day: DayRenderArgs, ring: boolean): ((theme: Theme) => string) | undefined =>
117
+ ring && day.today && !isEndpoint(day)
118
+ ? // A disabled today keeps its ring in the disabled ink, like its number:
119
+ // a primary ring on a dead grid reads as the one live day (round 6).
120
+ (theme: Theme) =>
121
+ `inset 0 0 0 ${rem(theme, 1.5)} ${day.disabled ? theme.palette.text.disabled : theme.palette.primary.main}`
122
+ : undefined;
123
+
124
+ /**
125
+ * A filling calendar's cell (`fullWidth`): the whole column wide, so a range's
126
+ * band runs unbroken however far the columns spread, and exactly as tall as the
127
+ * 40 design px face — the face is as tall as the cell, so it keeps its size
128
+ * while only the spacing grows. A row's end caps round at half that height
129
+ * (the radius clamps on a smaller cell) rather than half a wide cell's width.
130
+ */
131
+ const FILL_CELL_HEIGHT = sxRem(40);
132
+ const FILL_CAP_RADIUS = sxRem(20);
133
+
134
+ // A filling cell is 40 tall at every width, never a ratio of its column: a
135
+ // tap target under 600 wide is 40 design px each way, and a ratio made a 36px
136
+ // column 33 tall at 320 (FUT-4156, round 3). The frame gives the columns their
137
+ // 40 (`DateRangePicker.frame`).
138
+ const cellSize = (fill: boolean) =>
139
+ fill
140
+ ? { width: '100%', maxWidth: '100%', height: FILL_CELL_HEIGHT, justifySelf: 'stretch' }
141
+ : { width: COLUMN_SIZE, maxWidth: '100%', aspectRatio: CELL_RATIO, justifySelf: 'stretch' };
142
+
143
+ const dayCellSx = (
144
+ day: DayRenderArgs,
145
+ band: DayBand,
146
+ visible: boolean,
147
+ ring: boolean,
148
+ fill: boolean,
149
+ locked: boolean,
150
+ ): SxProps<Theme> => ({
95
151
  position: 'relative',
96
152
  isolation: 'isolate',
97
153
  display: 'flex',
@@ -101,24 +157,27 @@ const dayCellSx = (day: DayRenderArgs, band: DayBand, visible: boolean): SxProps
101
157
  // now that the seven columns carry no gap between them; `maxWidth` and the
102
158
  // column's `minmax(0, 1fr)` let it give way below that, and the ratio keeps
103
159
  // it 40 tall at full size and shrinking with it.
104
- width: COLUMN_SIZE,
105
- maxWidth: '100%',
106
- aspectRatio: CELL_RATIO,
107
- justifySelf: 'stretch',
160
+ ...cellSize(fill),
108
161
  boxSizing: 'border-box',
109
162
  padding: 0,
110
163
  border: 'none',
111
164
  background: 'none',
112
165
  backgroundImage: band === 'none' ? 'none' : (theme: Theme) => BAND_IMAGE[inDirection(band, theme)](bandColor(theme)),
113
166
  cursor: day.disabled ? 'not-allowed' : 'pointer',
114
- color: colorFor(day, visible),
167
+ color: colorFor(day, visible, locked),
115
168
  opacity: !day.inCurrentMonth && visible ? 0.5 : 1,
116
169
  fontWeight: day.today || isEndpoint(day) ? 'bold' : 'normal',
117
170
  // `nth-child`, counting every cell of the week: a hidden outside day is an
118
171
  // inert `span` placeholder (FUT-4144), and `nth-of-type` counted only the
119
172
  // buttons, so the caps landed mid-week in a month with hidden outside days.
120
- '&:nth-child(7n + 1)': { borderStartStartRadius: BAND_RADIUS, borderEndStartRadius: BAND_RADIUS },
121
- '&:nth-child(7n)': { borderStartEndRadius: BAND_RADIUS, borderEndEndRadius: BAND_RADIUS },
173
+ //
174
+ // Emotion warns on `:nth-child` in development, because a server render can
175
+ // put its style tag between the cells and shift the count. The calendar is
176
+ // never server-rendered into that position, and every screen that showed one
177
+ // printed the warning as a console error (FUT-4156), so the selectors carry
178
+ // Emotion's own opt-out flag.
179
+ [`&:nth-child(7n + 1)${NTH_CHILD_IS_SAFE}`]: capRadius('start', fill),
180
+ [`&:nth-child(7n)${NTH_CHILD_IS_SAFE}`]: capRadius('end', fill),
122
181
  '&::before': {
123
182
  content: '""',
124
183
  position: 'absolute',
@@ -131,12 +190,14 @@ const dayCellSx = (day: DayRenderArgs, band: DayBand, visible: boolean): SxProps
131
190
  maxWidth: '100%',
132
191
  borderRadius: '50%',
133
192
  backgroundColor: faceBackgroundFor(day),
193
+ boxShadow: todayRingFor(day, ring),
134
194
  },
135
195
  '&:hover::before': {
136
196
  backgroundColor: hoverBackgroundFor(day),
137
197
  },
138
198
  '&:focus': { outline: 'none' },
139
- '&:focus::before': {
199
+ // Keyboard focus only: a tapped day is already marked by what the tap did.
200
+ '&:focus-visible::before': {
140
201
  outline: (theme: Theme) => `${rem(theme, 2)} solid`,
141
202
  outlineColor: 'primary.main',
142
203
  outlineOffset: sxRem(1),
@@ -158,6 +219,12 @@ export interface CalendarDayProps {
158
219
  band: DayBand;
159
220
  focused: boolean;
160
221
  showOutsideDays: boolean;
222
+ /** Ring today's face (`todayIndicator="ring"`). */
223
+ todayRing?: boolean;
224
+ /** Fill the column (`CalendarProps.fullWidth`). */
225
+ fullWidth?: boolean;
226
+ /** The whole calendar is shown locked (`CalendarProps.navigationDisabled`). */
227
+ locked?: boolean;
161
228
  dayClassName?: (args: DayRenderArgs) => string;
162
229
  onSelect: (date: Date) => void;
163
230
  onHover: (date: Date) => void;
@@ -170,6 +237,9 @@ export const CalendarDay: FC<CalendarDayProps> = ({
170
237
  band,
171
238
  focused,
172
239
  showOutsideDays,
240
+ todayRing = false,
241
+ fullWidth,
242
+ locked,
173
243
  dayClassName,
174
244
  onSelect,
175
245
  onHover,
@@ -187,7 +257,7 @@ export const CalendarDay: FC<CalendarDayProps> = ({
187
257
  component="span"
188
258
  aria-hidden="true"
189
259
  data-testid="calendar-outside-placeholder"
190
- sx={{ width: COLUMN_SIZE, maxWidth: '100%', aspectRatio: CELL_RATIO, justifySelf: 'stretch' }}
260
+ sx={cellSize(fullWidth === true)}
191
261
  />
192
262
  );
193
263
  }
@@ -195,6 +265,8 @@ export const CalendarDay: FC<CalendarDayProps> = ({
195
265
  return (
196
266
  <Box
197
267
  component="button"
268
+ // A day picks; it never submits the form a calendar sits in (FUT-4156).
269
+ type="button"
198
270
  role="gridcell"
199
271
  tabIndex={focused ? 0 : -1}
200
272
  aria-selected={day.selected}
@@ -207,7 +279,7 @@ export const CalendarDay: FC<CalendarDayProps> = ({
207
279
  onClick={() => onSelect(day.date)}
208
280
  onMouseEnter={() => onHover(day.date)}
209
281
  onMouseLeave={onHoverEnd}
210
- sx={dayCellSx(day, band, visible)}
282
+ sx={dayCellSx(day, band, visible, todayRing, fullWidth === true, locked === true)}
211
283
  >
212
284
  {day.selected && (
213
285
  <Box component="span" data-testid="calendar-selected-date" sx={{ display: 'none' }} />
@@ -4,7 +4,7 @@ import React from 'react';
4
4
  import { bandFor } from './Calendar.band';
5
5
  import { isSameDay } from './Calendar.dates';
6
6
  import { buildDayArgs } from './Calendar.selection';
7
- import type { CalendarProps, DateRange, MonthMatrixDay, SelectionMode } from './Calendar.types';
7
+ import type { CalendarProps, CalendarTodayIndicator, DateRange, MonthMatrixDay, SelectionMode } from './Calendar.types';
8
8
  import { CalendarDay } from './CalendarDay';
9
9
 
10
10
  // Everything a cell needs that is the same for every cell in the calendar.
@@ -18,6 +18,16 @@ export interface DayCellContext {
18
18
  focusedDate: Date;
19
19
  today: Date;
20
20
  showOutsideDays: boolean;
21
+ /** How today is marked (`CalendarProps.todayIndicator`). */
22
+ todayIndicator: CalendarTodayIndicator;
23
+ /** Spread the columns across the width (`CalendarProps.fullWidth`). */
24
+ fullWidth: boolean;
25
+ /**
26
+ * The whole calendar is shown locked (`CalendarProps.navigationDisabled`,
27
+ * which a disabled `DateRangePicker` sets): its in-range days keep the
28
+ * secondary ink. A live calendar's blocked days keep the disabled ink.
29
+ */
30
+ locked: boolean;
21
31
  isDisabled: (date: Date) => boolean;
22
32
  renderDay?: CalendarProps['renderDay'];
23
33
  dayClassName?: CalendarProps['dayClassName'];
@@ -30,6 +40,9 @@ export const CalendarDayCell: FC<DayCellContext & { day: MonthMatrixDay }> = ({
30
40
  day,
31
41
  focusedDate,
32
42
  showOutsideDays,
43
+ todayIndicator,
44
+ fullWidth,
45
+ locked,
33
46
  renderDay,
34
47
  dayClassName,
35
48
  onSelect,
@@ -49,6 +62,9 @@ export const CalendarDayCell: FC<DayCellContext & { day: MonthMatrixDay }> = ({
49
62
  band={bandFor({ args, ...context })}
50
63
  focused={isSameDay(args.date, focusedDate)}
51
64
  showOutsideDays={showOutsideDays}
65
+ todayRing={todayIndicator === 'ring'}
66
+ fullWidth={fullWidth}
67
+ locked={locked}
52
68
  dayClassName={dayClassName}
53
69
  onSelect={onSelect}
54
70
  onHover={onHover}
@@ -7,7 +7,8 @@ import type { FC } from 'react';
7
7
  import React from 'react';
8
8
 
9
9
  import type { CalendarLabels } from '../../../copy/labels';
10
- import { sxRem } from '../../../tokens/relative';
10
+ import type { Theme } from '@mui/material/styles/index.js';
11
+ import { rem, sxRem } from '../../../tokens/relative';
11
12
 
12
13
  import { getMonthName } from './Calendar.dates';
13
14
  import type { CalendarProps, MonthMatrix } from './Calendar.types';
@@ -35,8 +36,42 @@ const GRID_SX = {
35
36
  * (304 design px: what 7 × 40 cells and 6 × 4 gaps came to before the gaps
36
37
  * went, FUT-4162). Months side by side keep a 280 basis,
37
38
  * so a multi-month calendar still wraps rather than squeezing every month.
39
+ * The basis is a theme callback: `sxRem` interpolated into the string wrote a
40
+ * function's source, and Emotion's whole `flex` was dropped (FUT-4486).
38
41
  */
39
- export const MONTH_SX = { flex: `1 1 ${sxRem(280)}`, minWidth: 0, maxWidth: sxRem(304) } as const;
42
+ export const MONTH_SX = {
43
+ flex: (theme: Theme) => `1 1 ${rem(theme, 280)}`,
44
+ minWidth: 0,
45
+ maxWidth: sxRem(304),
46
+ } as const;
47
+
48
+ /**
49
+ * A filling month (`fullWidth`) drops the 304 ceiling and takes its share of
50
+ * the row; its columns spread, its day faces do not grow (`CalendarDay`).
51
+ */
52
+ export const monthSx = (fullWidth: boolean) => (fullWidth ? FILL_MONTH_SX : MONTH_SX);
53
+
54
+ /**
55
+ * The basis as a theme function: interpolated into a string, `sxRem` is a
56
+ * function and the whole `flex` value is dropped as invalid CSS. A filling
57
+ * month's cells have no intrinsic width to fall back on, so it must grow.
58
+ */
59
+ const FILL_MONTH_SX = {
60
+ flex: (theme: Theme) => `1 1 ${rem(theme, 280)}`,
61
+ minWidth: 0,
62
+ maxWidth: 'none',
63
+ } as const;
64
+
65
+ /**
66
+ * The caption as a title: its first letter upper-cased in the calendar's own
67
+ * language ("novembro de 2026" → "Novembro de 2026"), as a heading reads in
68
+ * pt-BR; `Intl` writes month names lower-case there. The caption only — the
69
+ * grid's name and a day's name keep `Intl`'s words, which a sentence quotes.
70
+ */
71
+ export const captionOf = (monthName: string, locale: string): string => {
72
+ const [first = '', ...rest] = [...monthName];
73
+ return `${first.toLocaleUpperCase(locale)}${rest.join('')}`;
74
+ };
40
75
 
41
76
  /** The two arrows' accessible names; an icon alone names nothing. */
42
77
  export type MonthArrowLabels = Pick<CalendarLabels, 'previousMonth' | 'nextMonth'>;
@@ -48,9 +83,10 @@ const MonthNavHeader: FC<{
48
83
  showPrevious: boolean;
49
84
  showNext: boolean;
50
85
  labels?: MonthArrowLabels;
86
+ disabled: boolean;
51
87
  onPreviousMonth: () => void;
52
88
  onNextMonth: () => void;
53
- }> = ({ title, showPrevious, showNext, labels, onPreviousMonth, onNextMonth }) => (
89
+ }> = ({ title, showPrevious, showNext, labels, disabled, onPreviousMonth, onNextMonth }) => (
54
90
  <Box
55
91
  sx={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', mb: 2 }}
56
92
  data-testid="calendar-header"
@@ -58,6 +94,7 @@ const MonthNavHeader: FC<{
58
94
  {showPrevious && (
59
95
  <IconButton
60
96
  onClick={onPreviousMonth}
97
+ disabled={disabled}
61
98
  size="small"
62
99
  aria-label={labels?.previousMonth}
63
100
  data-testid="calendar-prev-month"
@@ -77,6 +114,7 @@ const MonthNavHeader: FC<{
77
114
  {showNext && (
78
115
  <IconButton
79
116
  onClick={onNextMonth}
117
+ disabled={disabled}
80
118
  size="small"
81
119
  aria-label={labels?.nextMonth}
82
120
  data-testid="calendar-next-month"
@@ -149,6 +187,8 @@ export interface CalendarMonthProps {
149
187
  renderHeader?: CalendarProps['renderHeader'];
150
188
  /** The arrows' accessible names. */
151
189
  labels?: MonthArrowLabels;
190
+ /** `CalendarProps.navigationDisabled`. */
191
+ navigationDisabled?: boolean;
152
192
  onPreviousMonth: () => void;
153
193
  onNextMonth: () => void;
154
194
  dayContext: DayCellContext;
@@ -162,12 +202,14 @@ export const CalendarMonth: FC<CalendarMonthProps> = ({
162
202
  weekdayNames,
163
203
  renderHeader,
164
204
  labels,
205
+ navigationDisabled = false,
165
206
  onPreviousMonth,
166
207
  onNextMonth,
167
208
  dayContext,
168
209
  }) => {
169
- const monthName = getMonthName(matrix.month, matrix.year, locale);
170
- const title = renderHeader ? renderHeader({ month: matrix.month, year: matrix.year }) : monthName;
210
+ const title = renderHeader
211
+ ? renderHeader({ month: matrix.month, year: matrix.year })
212
+ : captionOf(getMonthName(matrix.month, matrix.year, locale), locale);
171
213
 
172
214
  return (
173
215
  /* The month is addressable by its position, because in a multi-month
@@ -175,12 +217,13 @@ export const CalendarMonth: FC<CalendarMonthProps> = ({
175
217
  January's 5th and February's. Without a per-month hook a test can only
176
218
  reach a day positionally, which is exactly what the flakiness gate
177
219
  refuses. Additive: `calendar-grid` below is unchanged. */
178
- <Box sx={MONTH_SX} data-testid={`calendar-month-${monthIndex}`}>
220
+ <Box sx={monthSx(dayContext.fullWidth)} data-testid={`calendar-month-${monthIndex}`}>
179
221
  <MonthNavHeader
180
222
  title={title}
181
223
  showPrevious={monthIndex === 0}
182
224
  showNext={monthIndex === monthsToShow - 1}
183
225
  labels={labels}
226
+ disabled={navigationDisabled}
184
227
  onPreviousMonth={onPreviousMonth}
185
228
  onNextMonth={onNextMonth}
186
229
  />
@@ -10,7 +10,7 @@ import type { MonthMatrix } from './Calendar.types';
10
10
  import type { DateBounds } from './Calendar.views';
11
11
  import { MONTH_INDEXES, canShiftMonth, isMonthOutOfBounds, isYearOutOfBounds, yearOptions } from './Calendar.views';
12
12
  import type { DayCellContext } from './CalendarDayCell';
13
- import { MONTH_SX, MonthDays } from './CalendarMonth';
13
+ import { MonthDays, monthSx } from './CalendarMonth';
14
14
  import type { PickerOption } from './CalendarPickerGrid';
15
15
  import { CalendarPickerGrid } from './CalendarPickerGrid';
16
16
  import { CalendarSelectorsCaption } from './CalendarSelectorsCaption';
@@ -82,7 +82,7 @@ export const CalendarSelectorsMonth: FC<CalendarSelectorsMonthProps> = ({
82
82
  const picking = picker.view !== 'days';
83
83
 
84
84
  return (
85
- <Box sx={MONTH_SX} data-testid="calendar-month-0">
85
+ <Box sx={monthSx(dayContext.fullWidth)} data-testid="calendar-month-0">
86
86
  <CalendarSelectorsCaption
87
87
  monthText={getMonthLabel(matrix.month, locale, 'long')}
88
88
  monthNames={MONTH_INDEXES.map((index) => getMonthLabel(index, locale, 'long'))}
@@ -2,6 +2,7 @@ export { Calendar,Calendar as default } from './Calendar';
2
2
  export type {
3
3
  CalendarCaptionLayout,
4
4
  CalendarInternalState,
5
+ CalendarTodayIndicator,
5
6
  CalendarProps,
6
7
  DateRange,
7
8
  DayRenderArgs,