@12-apps/ui 6.97.1 → 6.98.1

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 (665) hide show
  1. package/components-catalog.md +1 -1
  2. package/dist/_internal/components/data-display/Alert/Alert.content.js +4 -2
  3. package/dist/_internal/components/data-display/Alert/Alert.ink.js +27 -0
  4. package/dist/_internal/components/data-display/Alert/Alert.js +5 -4
  5. package/dist/_internal/components/data-display/Alert/Alert.metrics.js +5 -1
  6. package/dist/_internal/components/data-display/Alert/Alert.styles.js +2 -2
  7. package/dist/_internal/components/data-display/AlertDialog/AlertDialog.js +3 -3
  8. package/dist/_internal/components/data-display/AlertDialog/AlertDialog.parts.js +2 -2
  9. package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +5 -5
  10. package/dist/_internal/components/data-display/Avatar/Avatar.js +5 -5
  11. package/dist/_internal/components/data-display/Avatar/Avatar.view.js +2 -2
  12. package/dist/_internal/components/data-display/Banner/Banner.js +3 -3
  13. package/dist/_internal/components/data-display/Banner/Banner.styles.js +2 -2
  14. package/dist/_internal/components/data-display/CardKit/card-actions-context.js +7 -6
  15. package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +15 -14
  16. package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +8 -8
  17. package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +4 -4
  18. package/dist/_internal/components/data-display/Carousel/Carousel.js +6 -6
  19. package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +3 -3
  20. package/dist/_internal/components/data-display/Chart/Chart.js +3 -3
  21. package/dist/_internal/components/data-display/Chart/SpecChart.js +7 -7
  22. package/dist/_internal/components/data-display/Chart/chart-renderers.js +2 -2
  23. package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
  24. package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
  25. package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +51 -51
  26. package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +72 -71
  27. package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +3 -3
  28. package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +9 -9
  29. package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +3 -3
  30. package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +2 -2
  31. package/dist/_internal/components/data-display/DataViews/base-list-card-layout.js +2 -2
  32. package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +2 -2
  33. package/dist/_internal/components/data-display/DataViews/base-list-card.js +4 -4
  34. package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +11 -11
  35. package/dist/_internal/components/data-display/DataViews/data-views-day-input.js +1 -1
  36. package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +1 -1
  37. package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +32 -32
  38. package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +6 -6
  39. package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +48 -48
  40. package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +31 -31
  41. package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +29 -29
  42. package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +30 -30
  43. package/dist/_internal/components/data-display/DataViews/data-views-preset-chips.js +3 -3
  44. package/dist/_internal/components/data-display/DataViews/data-views-range-bounds.js +15 -15
  45. package/dist/_internal/components/data-display/DataViews/data-views-range-calendar.js +12 -12
  46. package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +18 -18
  47. package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +10 -10
  48. package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +22 -21
  49. package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +9 -9
  50. package/dist/_internal/components/data-display/DataViews/list-card-rails.js +2 -2
  51. package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +2 -2
  52. package/dist/_internal/components/data-display/DayRuler/DayRuler.js +7 -7
  53. package/dist/_internal/components/data-display/DayRuler/DayRuler.parts.js +2 -2
  54. package/dist/_internal/components/data-display/EmptyState/EmptyState.js +2 -2
  55. package/dist/_internal/components/data-display/ErrorState/ErrorState.js +2 -2
  56. package/dist/_internal/components/data-display/FleetMap/FleetBody.js +10 -10
  57. package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +9 -9
  58. package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js +2 -2
  59. package/dist/_internal/components/data-display/FleetMap/FleetMap.js +12 -12
  60. package/dist/_internal/components/data-display/HoverCard/HoverCard.js +3 -3
  61. package/dist/_internal/components/data-display/LazyImage/LazyImage.js +2 -2
  62. package/dist/_internal/components/data-display/Lightbox/Lightbox.js +3 -3
  63. package/dist/_internal/components/data-display/LoadingState/LoadingState.js +2 -2
  64. package/dist/_internal/components/data-display/MapPreview/MapControlBar.js +4 -4
  65. package/dist/_internal/components/data-display/MapPreview/MapLayers.js +6 -6
  66. package/dist/_internal/components/data-display/MapPreview/MapMarkers.js +4 -4
  67. package/dist/_internal/components/data-display/MapPreview/MapPreview.helpers.js +3 -3
  68. package/dist/_internal/components/data-display/MapPreview/MapPreview.js +8 -8
  69. package/dist/_internal/components/data-display/RegionMap/RegionMap.js +5 -5
  70. package/dist/_internal/components/data-display/RegionMap/RegionMapDrawing.js +2 -2
  71. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.js +6 -6
  72. package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.labels.js +2 -2
  73. package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +4 -4
  74. package/dist/_internal/components/data-display/Sheet/Sheet.body.js +3 -3
  75. package/dist/_internal/components/data-display/Sheet/Sheet.hooks.js +2 -2
  76. package/dist/_internal/components/data-display/Sheet/Sheet.js +6 -6
  77. package/dist/_internal/components/data-display/Sheet/Sheet.parts.js +2 -2
  78. package/dist/_internal/components/data-display/Stepper/Stepper.js +2 -2
  79. package/dist/_internal/components/data-display/Table/Table.js +4 -4
  80. package/dist/_internal/components/data-display/Table/TableParts.hooks.js +2 -2
  81. package/dist/_internal/components/data-display/Table/TableParts.js +2 -2
  82. package/dist/_internal/components/data-display/Timeline/Timeline.js +2 -2
  83. package/dist/_internal/components/data-display/index.js +97 -93
  84. package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.js +5 -5
  85. package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.parts.js +4 -4
  86. package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +6 -6
  87. package/dist/_internal/components/feedback/ConfirmAction/with-confirmation.js +5 -5
  88. package/dist/_internal/components/feedback/Dialog/Dialog.js +2 -2
  89. package/dist/_internal/components/feedback/Modal/Modal.js +2 -2
  90. package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +6 -5
  91. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.frame.js +3 -3
  92. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.js +12 -11
  93. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.overview.js +8 -7
  94. package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.parts.js +7 -6
  95. package/dist/_internal/components/feedback/Sonner/Sonner.js +2 -2
  96. package/dist/_internal/components/feedback/StackedModal/StackedModal.js +4 -4
  97. package/dist/_internal/components/feedback/StackedModal/StackedModal.parts.js +2 -2
  98. package/dist/_internal/components/feedback/Toast/Toast.js +2 -2
  99. package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +2 -2
  100. package/dist/_internal/components/feedback/UsableModal/UsableModal.js +1 -1
  101. package/dist/_internal/components/feedback/UsableModal/UsableModal.modal.js +4 -4
  102. package/dist/_internal/components/feedback/UsableModal/UsableModal.sheet.js +6 -6
  103. package/dist/_internal/components/feedback/index.js +30 -29
  104. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +4 -4
  105. package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +7 -7
  106. package/dist/_internal/components/form/Autocomplete/Autocomplete.js +2 -2
  107. package/dist/_internal/components/form/Calendar/Calendar.band.js +1 -1
  108. package/dist/_internal/components/form/Calendar/Calendar.helpers.js +1 -1
  109. package/dist/_internal/components/form/Calendar/Calendar.hooks.js +1 -1
  110. package/dist/_internal/components/form/Calendar/Calendar.js +10 -10
  111. package/dist/_internal/components/form/Calendar/CalendarDay.js +2 -2
  112. package/dist/_internal/components/form/Calendar/CalendarDayCell.js +3 -3
  113. package/dist/_internal/components/form/Calendar/CalendarMonth.js +10 -6
  114. package/dist/_internal/components/form/Calendar/CalendarSelectorsMonth.js +6 -6
  115. package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +2 -2
  116. package/dist/_internal/components/form/CategorySelect/CategorySelect.js +4 -4
  117. package/dist/_internal/components/form/CodeEditor/CodeEditor.js +3 -3
  118. package/dist/_internal/components/form/Command/Command.hooks.js +2 -2
  119. package/dist/_internal/components/form/Command/Command.js +4 -4
  120. package/dist/_internal/components/form/Command/Command.parts.js +2 -2
  121. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.frame.js +22 -0
  122. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.frame.js.map +1 -0
  123. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.hooks.js +4 -4
  124. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +20 -15
  125. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.layout.js +13 -0
  126. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.layout.js.map +1 -0
  127. package/dist/_internal/components/form/DateRangePicker/DateRangePicker.range.js +3 -3
  128. package/dist/_internal/components/form/DateRangePicker/DateRangePickerFields.js +4 -4
  129. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.dom.js +2 -2
  130. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.format.js +3 -3
  131. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.hooks.js +4 -4
  132. package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +5 -5
  133. package/dist/_internal/components/form/index.js +37 -34
  134. package/dist/_internal/components/form/total-form/Fields/CategoryField.js +5 -5
  135. package/dist/_internal/components/form/total-form/Fields/index.js +6 -6
  136. package/dist/_internal/components/form/total-form/FormErrorSnackbar.js +3 -3
  137. package/dist/_internal/components/index.js +178 -172
  138. package/dist/_internal/components/layout/ContentToolbar/ColumnsMenu.js +2 -2
  139. package/dist/_internal/components/layout/ContentToolbar/FilterTrigger.js +3 -3
  140. package/dist/_internal/components/layout/ContentToolbar/MultiSelectDropdown.js +2 -2
  141. package/dist/_internal/components/layout/ContentToolbar/ViewSelector.js +2 -2
  142. package/dist/_internal/components/layout/Dashboard/Dashboard.js +2 -2
  143. package/dist/_internal/components/layout/Drawer/Drawer.js +2 -2
  144. package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +2 -2
  145. package/dist/_internal/components/layout/TableFilter/TableFilter.js +2 -2
  146. package/dist/_internal/components/layout/index.js +9 -9
  147. package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +8 -8
  148. package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +2 -2
  149. package/dist/_internal/components/navigation/Breadcrumbs/Breadcrumbs.js +2 -2
  150. package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +3 -3
  151. package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +2 -2
  152. package/dist/_internal/components/navigation/SectionNav/SectionNav.bar.js +4 -4
  153. package/dist/_internal/components/navigation/SectionNav/SectionNav.js +5 -5
  154. package/dist/_internal/components/navigation/SectionNav/SectionNav.sheet.js +3 -3
  155. package/dist/_internal/components/navigation/Tabs/Tabs.js +1 -1
  156. package/dist/_internal/components/navigation/index.js +18 -18
  157. package/dist/_internal/components/typography/Code/Code.js +2 -2
  158. package/dist/_internal/components/typography/index.js +2 -2
  159. package/dist/_internal/components/utility/AnimatedIcon/AnimatedIcon.js +2 -2
  160. package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.js +3 -3
  161. package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.parts.js +2 -2
  162. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.helpers.js +2 -2
  163. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.js +5 -5
  164. package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.parts.js +3 -3
  165. package/dist/_internal/components/utility/WorkflowStep/WorkflowStepRow.js +4 -4
  166. package/dist/_internal/components/utility/index.js +8 -8
  167. package/dist/_internal/en-US.data-display.js +2 -2
  168. package/dist/_internal/en-US.labels.js +1 -1
  169. package/dist/_internal/pt-BR.data-display.js +2 -2
  170. package/dist/_internal/pt-BR.labels.js +1 -1
  171. package/dist/_internal/social-login-button/social-login-button.js +2 -2
  172. package/dist/_internal/user-avatar/user-avatar.js +6 -6
  173. package/dist/charts.js +17 -17
  174. package/dist/{chunk-UBVKMM3V.js → chunk-2A5GHOL3.js} +2 -2
  175. package/dist/{chunk-QIP37Y2C.js → chunk-2RC6EAGD.js} +2 -2
  176. package/dist/{chunk-YGLAGY74.js → chunk-332KWE5H.js} +2 -2
  177. package/dist/{chunk-HNEZWVDR.js → chunk-364NT46L.js} +3 -3
  178. package/dist/{chunk-RLTGD5WJ.js → chunk-3AKQHYTM.js} +4 -4
  179. package/dist/{chunk-5I75WRXT.js → chunk-3CXRHRGE.js} +7 -7
  180. package/dist/{chunk-G6NMSBSQ.js → chunk-3LD42RNV.js} +2 -2
  181. package/dist/{chunk-3BMG6VMB.js → chunk-3N2HWNKT.js} +2 -2
  182. package/dist/{chunk-MSJP2AEN.js → chunk-3N3W4TID.js} +2 -2
  183. package/dist/{chunk-H2UUMZQR.js → chunk-3PWDVJWD.js} +2 -1
  184. package/dist/chunk-3PWDVJWD.js.map +1 -0
  185. package/dist/{chunk-ZBUMGMWP.js → chunk-3R5MCSYO.js} +6 -6
  186. package/dist/{chunk-YNVTUQ5B.js → chunk-3V7OTBUZ.js} +2 -2
  187. package/dist/{chunk-LZNUBQ5I.js → chunk-4A454JZN.js} +2 -2
  188. package/dist/{chunk-TPMT3J32.js → chunk-4I2SDWSF.js} +2 -1
  189. package/dist/chunk-4I2SDWSF.js.map +1 -0
  190. package/dist/{chunk-RCTHCXS6.js → chunk-4N4M237A.js} +2 -2
  191. package/dist/{chunk-SW7JCF4Z.js → chunk-4P63RSSY.js} +2 -2
  192. package/dist/{chunk-7QKFMMWK.js → chunk-4W4C4Q46.js} +2 -2
  193. package/dist/{chunk-B32XH7NK.js → chunk-4WVUX7IU.js} +3 -3
  194. package/dist/{chunk-Z6QFIRD7.js → chunk-4X2TOMK6.js} +7 -7
  195. package/dist/{chunk-MYTV353T.js → chunk-4Y3QLISA.js} +2 -2
  196. package/dist/{chunk-IMYKJTVX.js → chunk-5J6LN2O7.js} +2 -2
  197. package/dist/{chunk-QWI7IPYJ.js → chunk-5V7IZBRY.js} +4 -4
  198. package/dist/{chunk-Y7BOP7VZ.js → chunk-67GTAPK6.js} +3 -3
  199. package/dist/{chunk-T77OVQEO.js → chunk-6D7CASMK.js} +2 -2
  200. package/dist/{chunk-YNZUYZ2O.js → chunk-6FGP7RMV.js} +2 -2
  201. package/dist/{chunk-YVDNCV2D.js → chunk-6RYSSNOO.js} +3 -3
  202. package/dist/{chunk-CPQJFHNZ.js → chunk-74IH3ZGD.js} +2 -2
  203. package/dist/{chunk-UQ5GJPVZ.js → chunk-76GAXLNC.js} +3 -3
  204. package/dist/{chunk-X4J576GR.js → chunk-7LFST3PW.js} +2 -2
  205. package/dist/{chunk-XCUHGPPZ.js → chunk-7MLT66DE.js} +2 -2
  206. package/dist/{chunk-EOIRU62W.js → chunk-7P544IWT.js} +3 -3
  207. package/dist/{chunk-XTYBJAZG.js → chunk-7TENMQNQ.js} +7 -7
  208. package/dist/{chunk-EB25XITI.js → chunk-A27J4CIZ.js} +10 -10
  209. package/dist/{chunk-2KSFBZ2H.js → chunk-ABZJNKR6.js} +2 -2
  210. package/dist/{chunk-GTE4TW3W.js → chunk-AESKKFA5.js} +6 -6
  211. package/dist/chunk-AG4F6NVT.js +1 -0
  212. package/dist/chunk-AG4F6NVT.js.map +1 -0
  213. package/dist/{chunk-6LOWZCH7.js → chunk-AHXQN4VL.js} +2 -2
  214. package/dist/{chunk-U2SAW6DH.js → chunk-B4OZU7J4.js} +7 -7
  215. package/dist/{chunk-DDGYTY4E.js → chunk-BIHZXB5P.js} +4 -4
  216. package/dist/{chunk-4QGMUHAU.js → chunk-BWNZVMBT.js} +2 -2
  217. package/dist/{chunk-CY4XIZNW.js → chunk-CAH5XNHT.js} +2 -2
  218. package/dist/{chunk-KILA7LCC.js → chunk-CFDWKQZT.js} +4 -4
  219. package/dist/{chunk-USHVG4UQ.js → chunk-CGLMWS7K.js} +4 -4
  220. package/dist/{chunk-EWFBDAB7.js → chunk-CKGRSCRT.js} +2 -2
  221. package/dist/{chunk-YOLLISEY.js → chunk-CRD2WCU7.js} +9 -9
  222. package/dist/{chunk-L5KPBMMF.js → chunk-CXL3TT3K.js} +2 -2
  223. package/dist/{chunk-KOGJBAFI.js → chunk-D3KLIC5N.js} +2 -2
  224. package/dist/{chunk-2SBQ47RI.js → chunk-D4JL5725.js} +3 -3
  225. package/dist/{chunk-NI3MC742.js → chunk-DBJLYURK.js} +2 -2
  226. package/dist/{chunk-75GAQL2Q.js → chunk-DKPELKGL.js} +12 -12
  227. package/dist/{chunk-NGXL4R54.js → chunk-E4MJA52O.js} +4 -4
  228. package/dist/{chunk-QSOCOXVL.js → chunk-EASEJDBQ.js} +13 -8
  229. package/dist/chunk-EASEJDBQ.js.map +1 -0
  230. package/dist/{chunk-5HXVXW22.js → chunk-EGBQR5GH.js} +5 -5
  231. package/dist/{chunk-FTYOCFTV.js → chunk-EGYJUJMR.js} +2 -2
  232. package/dist/{chunk-7XSCEHGA.js → chunk-EOQ6EKTS.js} +7 -7
  233. package/dist/{chunk-6AKDAQSS.js → chunk-ERAMSYPR.js} +2 -2
  234. package/dist/{chunk-WYRH6OSN.js → chunk-F5EH5BJN.js} +2 -2
  235. package/dist/{chunk-HBRBIPNF.js → chunk-F7JRQ2EI.js} +6 -6
  236. package/dist/chunk-F7JRQ2EI.js.map +1 -0
  237. package/dist/{chunk-QCYQL3ST.js → chunk-FJLPVPRG.js} +2 -2
  238. package/dist/{chunk-MAHY7PK3.js → chunk-FQMLTCXT.js} +4 -4
  239. package/dist/{chunk-TMINUTQQ.js → chunk-FRQGZIYU.js} +2 -2
  240. package/dist/{chunk-LV6AD6XC.js → chunk-FT3LJZWZ.js} +2 -2
  241. package/dist/{chunk-IS3L67TF.js → chunk-FW5GTAUY.js} +6 -6
  242. package/dist/{chunk-VMTOLAZ5.js → chunk-FZZMNKVF.js} +5 -5
  243. package/dist/{chunk-FGZIEZEP.js → chunk-G6TKWNF2.js} +4 -4
  244. package/dist/{chunk-I6IFUFLW.js → chunk-G7MHDZTL.js} +2 -2
  245. package/dist/{chunk-KES3HNSU.js → chunk-GB2DQOZ7.js} +2 -2
  246. package/dist/{chunk-7HZ36QDH.js → chunk-GDWU7WF4.js} +9 -3
  247. package/dist/chunk-GDWU7WF4.js.map +1 -0
  248. package/dist/{chunk-W3IFJA35.js → chunk-GFYDOH7D.js} +3 -3
  249. package/dist/{chunk-M2M4IDFU.js → chunk-GXYOBTOY.js} +2 -2
  250. package/dist/{chunk-OLHAUGVQ.js → chunk-GZQQSTKR.js} +2 -2
  251. package/dist/{chunk-N2J24TJ3.js → chunk-HAWOS4SF.js} +2 -2
  252. package/dist/{chunk-S2VZUBM7.js → chunk-HCTHY66U.js} +6 -6
  253. package/dist/{chunk-ABVIMFSD.js → chunk-HG52QQ2L.js} +2 -2
  254. package/dist/{chunk-AMLHEKSV.js → chunk-HI7JPDD6.js} +5 -5
  255. package/dist/{chunk-F5OERPU4.js → chunk-HOWAMSUY.js} +6 -6
  256. package/dist/{chunk-3TZUZXY5.js → chunk-HTXYBKLK.js} +2 -2
  257. package/dist/{chunk-WW3F7DCX.js → chunk-IFOHCY4O.js} +2 -2
  258. package/dist/{chunk-S46LGAQ2.js → chunk-IJVBLU25.js} +2 -2
  259. package/dist/{chunk-ARGVUTTL.js → chunk-IPVGWENM.js} +2 -2
  260. package/dist/{chunk-MPWA55CF.js → chunk-IXXB7CTR.js} +9 -5
  261. package/dist/chunk-IXXB7CTR.js.map +1 -0
  262. package/dist/{chunk-MWXZXCVX.js → chunk-J43PARXM.js} +6 -6
  263. package/dist/{chunk-UYKIUUWP.js → chunk-JJTJ7DCV.js} +2 -2
  264. package/dist/{chunk-HQCZT6TO.js → chunk-JVOEVTCZ.js} +5 -5
  265. package/dist/{chunk-RZ3P4X2I.js → chunk-K62L5JFC.js} +25 -4
  266. package/dist/chunk-K62L5JFC.js.map +1 -0
  267. package/dist/{chunk-2365CQJU.js → chunk-KAQDWEG6.js} +2 -2
  268. package/dist/{chunk-TB5CRHTF.js → chunk-KEPLO2AB.js} +2 -2
  269. package/dist/chunk-KNW63H63.js +263 -0
  270. package/dist/chunk-KNW63H63.js.map +1 -0
  271. package/dist/{chunk-PVIQDBUN.js → chunk-KUQ4XHVV.js} +2 -2
  272. package/dist/{chunk-DAFFZED3.js → chunk-KWBMM6MJ.js} +2 -2
  273. package/dist/{chunk-QPCHABOZ.js → chunk-L5YGVLPH.js} +8 -4
  274. package/dist/chunk-L5YGVLPH.js.map +1 -0
  275. package/dist/{chunk-JJYECKEL.js → chunk-LFECE4R7.js} +2 -2
  276. package/dist/{chunk-LXIPBHNJ.js → chunk-LKTJ26ST.js} +2 -2
  277. package/dist/chunk-LNZJJFZQ.js +41 -0
  278. package/dist/chunk-LNZJJFZQ.js.map +1 -0
  279. package/dist/{chunk-56JF5PZK.js → chunk-LYVTJLCF.js} +4 -4
  280. package/dist/{chunk-EYFDIUVR.js → chunk-M4G4LRQK.js} +2 -2
  281. package/dist/{chunk-TJUWSQYQ.js → chunk-MDU5Q2HW.js} +3 -2
  282. package/dist/{chunk-TJUWSQYQ.js.map → chunk-MDU5Q2HW.js.map} +1 -1
  283. package/dist/{chunk-KMMFN24G.js → chunk-MKHNLRVX.js} +4 -4
  284. package/dist/{chunk-4IG73U2X.js → chunk-MSPLIRBH.js} +2 -2
  285. package/dist/{chunk-55MYYWOV.js → chunk-O4UXH7BM.js} +7 -7
  286. package/dist/{chunk-DYHOBKPU.js → chunk-OA6T2ME3.js} +5 -5
  287. package/dist/{chunk-VNMD6BA4.js → chunk-OFRQMFWD.js} +3 -3
  288. package/dist/{chunk-LTJC7TGB.js → chunk-OHA2PAAA.js} +2 -2
  289. package/dist/{chunk-6D5AMANO.js → chunk-OV5NM4FY.js} +2 -2
  290. package/dist/{chunk-ZANWHTXH.js → chunk-OVJV2ZN7.js} +2 -2
  291. package/dist/{chunk-SKQPUAMK.js → chunk-PDWQJFMK.js} +6 -6
  292. package/dist/{chunk-6EZQLNPK.js → chunk-PGJIWCQR.js} +4 -4
  293. package/dist/{chunk-FRAFGRRD.js → chunk-PIELY4BJ.js} +1 -1
  294. package/dist/{chunk-BQBEN44R.js → chunk-PNAKRHRT.js} +2 -2
  295. package/dist/{chunk-3Z6JX7UN.js → chunk-PZJEF232.js} +2 -2
  296. package/dist/{chunk-6ATXOJVQ.js → chunk-QADTI63U.js} +4 -4
  297. package/dist/chunk-QAF76E6U.js +43 -0
  298. package/dist/chunk-QAF76E6U.js.map +1 -0
  299. package/dist/{chunk-4RF4BALN.js → chunk-R775ISK6.js} +4 -4
  300. package/dist/{chunk-YBAK2WN5.js → chunk-RFMQBIE6.js} +4 -4
  301. package/dist/{chunk-NQCTANF3.js → chunk-RKAX37F4.js} +14 -7
  302. package/dist/chunk-RKAX37F4.js.map +1 -0
  303. package/dist/{chunk-43EFQ3DU.js → chunk-RVBLOR32.js} +2 -2
  304. package/dist/{chunk-XNAI7QGU.js → chunk-SA3KLZDZ.js} +5 -5
  305. package/dist/{chunk-CAOL4AIB.js → chunk-SARK3GHS.js} +2 -2
  306. package/dist/chunk-SIY64A6O.js +60 -0
  307. package/dist/chunk-SIY64A6O.js.map +1 -0
  308. package/dist/{chunk-CQOJUYTT.js → chunk-SOXO2VN3.js} +3 -3
  309. package/dist/{chunk-Z4ZFJ565.js → chunk-SRAIV6U6.js} +3 -3
  310. package/dist/{chunk-5ZY3IIIG.js → chunk-TBQR5VCN.js} +11 -1
  311. package/dist/chunk-TBQR5VCN.js.map +1 -0
  312. package/dist/{chunk-6PU5P7QT.js → chunk-TDXEWGY2.js} +2 -2
  313. package/dist/{chunk-SB2SEGR6.js → chunk-TIM4PXWN.js} +3 -3
  314. package/dist/{chunk-OGSTMHT6.js → chunk-TTBLQZVT.js} +3 -3
  315. package/dist/{chunk-VHE7UEG5.js → chunk-UC7DLGMP.js} +2 -2
  316. package/dist/{chunk-TI4FGQYV.js → chunk-UHLGJHTD.js} +2 -2
  317. package/dist/{chunk-TAHO2LCU.js → chunk-UIZIEU4X.js} +3 -3
  318. package/dist/{chunk-F7LBTMCA.js → chunk-ULC4SCFC.js} +2 -2
  319. package/dist/{chunk-FORQEHRQ.js → chunk-UXVWGNPG.js} +2 -2
  320. package/dist/{chunk-3ZRK3BRN.js → chunk-UXYCBPCE.js} +12 -6
  321. package/dist/chunk-UXYCBPCE.js.map +1 -0
  322. package/dist/{chunk-L6YTVXGN.js → chunk-VCYYL23C.js} +4 -2
  323. package/dist/{chunk-L6YTVXGN.js.map → chunk-VCYYL23C.js.map} +1 -1
  324. package/dist/{chunk-KF3Q3C3P.js → chunk-VGIBWJ72.js} +2 -2
  325. package/dist/{chunk-I54YFYBS.js → chunk-VMACQT3T.js} +3 -3
  326. package/dist/{chunk-XOXXG7Q5.js → chunk-VWKMN3ZZ.js} +3 -2
  327. package/dist/{chunk-XOXXG7Q5.js.map → chunk-VWKMN3ZZ.js.map} +1 -1
  328. package/dist/{chunk-EXEBN5ZP.js → chunk-W56KN53D.js} +8 -8
  329. package/dist/{chunk-KURE5R7Z.js → chunk-WGK7VNCO.js} +2 -2
  330. package/dist/{chunk-UIS3E72B.js → chunk-WK577LQL.js} +3 -3
  331. package/dist/{chunk-G3WG77QY.js → chunk-WN6LR4HX.js} +21 -6
  332. package/dist/chunk-WN6LR4HX.js.map +1 -0
  333. package/dist/{chunk-LLPPIO3K.js → chunk-WNTXHLVJ.js} +2 -2
  334. package/dist/{chunk-PEVBSNCD.js → chunk-WPRQPKLV.js} +2 -2
  335. package/dist/{chunk-C347NNZJ.js → chunk-WVCHMTPG.js} +2 -2
  336. package/dist/{chunk-CSD6SWBZ.js → chunk-WYNGH2WL.js} +6 -6
  337. package/dist/{chunk-4L54KUZV.js → chunk-X5GCAXZS.js} +38 -16
  338. package/dist/chunk-X5GCAXZS.js.map +1 -0
  339. package/dist/{chunk-PJDAZG65.js → chunk-XA5ES25V.js} +3 -3
  340. package/dist/{chunk-L5RS6QAT.js → chunk-YBF2WUGQ.js} +2 -2
  341. package/dist/{chunk-FWTVIRZZ.js → chunk-YLZXIR6B.js} +4 -4
  342. package/dist/{chunk-STOZ6JB5.js → chunk-YQMJJ7AL.js} +33 -16
  343. package/dist/chunk-YQMJJ7AL.js.map +1 -0
  344. package/dist/{chunk-JOQGKXR5.js → chunk-Z2J4MRTF.js} +4 -4
  345. package/dist/{chunk-I4K5JMS4.js → chunk-ZDLC4BN4.js} +4 -2
  346. package/dist/chunk-ZDLC4BN4.js.map +1 -0
  347. package/dist/{chunk-TE6HAWDM.js → chunk-ZP2GPRNQ.js} +2 -2
  348. package/dist/{chunk-3PQL2EN5.js → chunk-ZW7Q3IRL.js} +6 -6
  349. package/dist/{chunk-M5Y42AZ4.js → chunk-ZX4ORMBC.js} +2 -2
  350. package/dist/data-display/Alert.js +9 -5
  351. package/dist/data-display/AlertDialog.js +3 -3
  352. package/dist/data-display/AsyncStateContainer.js +5 -5
  353. package/dist/data-display/Avatar.js +5 -5
  354. package/dist/data-display/Banner.js +3 -3
  355. package/dist/data-display/CardKit.js +19 -18
  356. package/dist/data-display/Carousel.js +6 -6
  357. package/dist/data-display/Chart.js +17 -17
  358. package/dist/data-display/DataGrid.js +2 -2
  359. package/dist/data-display/DataViews.js +78 -77
  360. package/dist/data-display/DayRuler.js +11 -11
  361. package/dist/data-display/EmptyState.js +2 -2
  362. package/dist/data-display/ErrorState.js +2 -2
  363. package/dist/data-display/FleetMap.js +12 -12
  364. package/dist/data-display/HoverCard.js +3 -3
  365. package/dist/data-display/LazyImage.js +2 -2
  366. package/dist/data-display/Lightbox.js +3 -3
  367. package/dist/data-display/LoadingState.js +2 -2
  368. package/dist/data-display/MapPreview.js +8 -8
  369. package/dist/data-display/RegionMap.js +5 -5
  370. package/dist/data-display/ScheduleGrid.js +10 -10
  371. package/dist/data-display/SectionOnboarding.js +4 -4
  372. package/dist/data-display/Sheet.js +6 -6
  373. package/dist/data-display/Stepper.js +2 -2
  374. package/dist/data-display/Table.js +4 -4
  375. package/dist/data-display/Timeline.js +2 -2
  376. package/dist/en-US.js +2 -2
  377. package/dist/feedback/ConfirmAction.js +9 -9
  378. package/dist/feedback/Dialog.js +2 -2
  379. package/dist/feedback/Modal.js +2 -2
  380. package/dist/feedback/NotificationStatusNotice.js +6 -5
  381. package/dist/feedback/SequenceResolver.js +12 -11
  382. package/dist/feedback/Sonner.js +2 -2
  383. package/dist/feedback/StackedModal.js +4 -4
  384. package/dist/feedback/Toast.js +2 -2
  385. package/dist/feedback/TutorialOverlay.js +2 -2
  386. package/dist/feedback/UsableModal.js +1 -1
  387. package/dist/form/AddressAutocomplete.js +7 -7
  388. package/dist/form/Autocomplete.js +2 -2
  389. package/dist/form/Calendar.js +10 -10
  390. package/dist/form/CategorySelect.js +4 -4
  391. package/dist/form/CodeEditor.js +3 -3
  392. package/dist/form/Command.js +4 -4
  393. package/dist/form/DateRangePicker.js +20 -15
  394. package/dist/form/RichTextEditor.js +5 -5
  395. package/dist/form/total-form.js +9 -9
  396. package/dist/layout/ContentToolbar.js +6 -6
  397. package/dist/layout/Dashboard.js +2 -2
  398. package/dist/layout/Drawer.js +2 -2
  399. package/dist/layout/SettingsLayout.js +2 -2
  400. package/dist/layout/TableFilter.js +2 -2
  401. package/dist/locales.js +4 -4
  402. package/dist/native/chunks/{chunk-QHW7JEPZ.js → chunk-O76COY56.js} +3 -2
  403. package/dist/native/chunks/{chunk-QHW7JEPZ.js.map → chunk-O76COY56.js.map} +1 -1
  404. package/dist/native/chunks/{chunk-FXA5DLKR.js → chunk-UQ272RI2.js} +3 -3
  405. package/dist/native/chunks/{chunk-IN3XZ7EK.js → chunk-X65TVC3B.js} +2 -2
  406. package/dist/native/data-display/Alert.js +10 -0
  407. package/dist/native/data-display/Alert.js.map +1 -1
  408. package/dist/native/data-display/Avatar.js +1 -1
  409. package/dist/native/data-display/Badge.js +1 -1
  410. package/dist/native/data-display/Chip.js +1 -1
  411. package/dist/native/data-display/EmptyState.js +3 -3
  412. package/dist/native/data-display/ErrorState.js +2 -2
  413. package/dist/native/data-display/FleetMap.js +3 -3
  414. package/dist/native/data-display/LoadingState.js +1 -1
  415. package/dist/native/feedback/Dialog.js +1 -1
  416. package/dist/native/form/Button.js +2 -2
  417. package/dist/native/form/Checkbox.js +1 -1
  418. package/dist/native/form/Input.js +1 -1
  419. package/dist/native/form/Switch.js +1 -1
  420. package/dist/navigation/AppHeader.js +10 -10
  421. package/dist/navigation/Breadcrumbs.js +2 -2
  422. package/dist/navigation/NavigationMenu.js +3 -3
  423. package/dist/navigation/SectionNav.js +5 -5
  424. package/dist/navigation/Tabs.js +1 -1
  425. package/dist/pt-BR.js +2 -2
  426. package/dist/social-login-button.js +2 -2
  427. package/dist/types/components/data-display/Alert/Alert.content.d.ts.map +1 -1
  428. package/dist/types/components/data-display/Alert/Alert.d.ts.map +1 -1
  429. package/dist/types/components/data-display/Alert/Alert.ink.d.ts +65 -0
  430. package/dist/types/components/data-display/Alert/Alert.ink.d.ts.map +1 -0
  431. package/dist/types/components/data-display/Alert/Alert.metrics.d.ts +73 -5
  432. package/dist/types/components/data-display/Alert/Alert.metrics.d.ts.map +1 -1
  433. package/dist/types/components/data-display/Alert/index.d.ts +1 -0
  434. package/dist/types/components/data-display/Alert/index.d.ts.map +1 -1
  435. package/dist/types/components/data-display/DataViews/data-views-day-input.d.ts +3 -1
  436. package/dist/types/components/data-display/DataViews/data-views-day-input.d.ts.map +1 -1
  437. package/dist/types/components/form/Calendar/Calendar.band.d.ts.map +1 -1
  438. package/dist/types/components/form/Calendar/Calendar.d.ts.map +1 -1
  439. package/dist/types/components/form/Calendar/Calendar.helpers.d.ts.map +1 -1
  440. package/dist/types/components/form/Calendar/Calendar.hooks.d.ts.map +1 -1
  441. package/dist/types/components/form/Calendar/Calendar.types.d.ts +24 -1
  442. package/dist/types/components/form/Calendar/Calendar.types.d.ts.map +1 -1
  443. package/dist/types/components/form/Calendar/CalendarDay.d.ts +6 -0
  444. package/dist/types/components/form/Calendar/CalendarDay.d.ts.map +1 -1
  445. package/dist/types/components/form/Calendar/CalendarDayCell.d.ts +11 -1
  446. package/dist/types/components/form/Calendar/CalendarDayCell.d.ts.map +1 -1
  447. package/dist/types/components/form/Calendar/CalendarMonth.d.ts +22 -0
  448. package/dist/types/components/form/Calendar/CalendarMonth.d.ts.map +1 -1
  449. package/dist/types/components/form/Calendar/index.d.ts +1 -1
  450. package/dist/types/components/form/Calendar/index.d.ts.map +1 -1
  451. package/dist/types/components/form/DateRangePicker/DateRangePicker.d.ts +1 -1
  452. package/dist/types/components/form/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  453. package/dist/types/components/form/DateRangePicker/DateRangePicker.frame.d.ts +93 -0
  454. package/dist/types/components/form/DateRangePicker/DateRangePicker.frame.d.ts.map +1 -0
  455. package/dist/types/components/form/DateRangePicker/DateRangePicker.hooks.d.ts +1 -1
  456. package/dist/types/components/form/DateRangePicker/DateRangePicker.hooks.d.ts.map +1 -1
  457. package/dist/types/components/form/DateRangePicker/DateRangePicker.layout.d.ts +27 -0
  458. package/dist/types/components/form/DateRangePicker/DateRangePicker.layout.d.ts.map +1 -0
  459. package/dist/types/components/form/DateRangePicker/DateRangePicker.range.d.ts +8 -2
  460. package/dist/types/components/form/DateRangePicker/DateRangePicker.range.d.ts.map +1 -1
  461. package/dist/types/components/form/DateRangePicker/DateRangePicker.types.d.ts +90 -1
  462. package/dist/types/components/form/DateRangePicker/DateRangePicker.types.d.ts.map +1 -1
  463. package/dist/types/components/form/DateRangePicker/DateRangePickerFields.d.ts +7 -1
  464. package/dist/types/components/form/DateRangePicker/DateRangePickerFields.d.ts.map +1 -1
  465. package/dist/types/components/navigation/Tabs/Tabs.d.ts.map +1 -1
  466. package/dist/types/components/navigation/Tabs/Tabs.types.d.ts +18 -3
  467. package/dist/types/components/navigation/Tabs/Tabs.types.d.ts.map +1 -1
  468. package/dist/types/copy/labels.d.ts +6 -0
  469. package/dist/types/copy/labels.d.ts.map +1 -1
  470. package/dist/types/en-US.labels.d.ts.map +1 -1
  471. package/dist/types/pt-BR.labels.d.ts.map +1 -1
  472. package/dist/types-native/components/data-display/Alert/Alert.metrics.d.ts +73 -5
  473. package/dist/types-native/components/data-display/Alert/Alert.metrics.d.ts.map +1 -1
  474. package/dist/types-native/copy/labels.d.ts +6 -0
  475. package/dist/types-native/copy/labels.d.ts.map +1 -1
  476. package/dist/types-native/en-US.labels.d.ts.map +1 -1
  477. package/dist/typography/Code.js +2 -2
  478. package/dist/user-avatar.js +6 -6
  479. package/dist/utility/AnimatedIcon.js +2 -2
  480. package/dist/utility/InfiniteScroll.js +3 -3
  481. package/dist/utility/WorkflowStep.js +5 -5
  482. package/package.json +1 -1
  483. package/src/components/data-display/Alert/Alert.content.tsx +16 -1
  484. package/src/components/data-display/Alert/Alert.ink.ts +106 -0
  485. package/src/components/data-display/Alert/Alert.md +40 -0
  486. package/src/components/data-display/Alert/Alert.metrics.ts +57 -5
  487. package/src/components/data-display/Alert/Alert.tsx +18 -7
  488. package/src/components/data-display/Alert/index.ts +1 -0
  489. package/src/components/data-display/DataViews/data-views-day-input.tsx +4 -0
  490. package/src/components/form/Calendar/Calendar.band.ts +3 -0
  491. package/src/components/form/Calendar/Calendar.helpers.ts +2 -0
  492. package/src/components/form/Calendar/Calendar.hooks.ts +4 -2
  493. package/src/components/form/Calendar/Calendar.md +12 -1
  494. package/src/components/form/Calendar/Calendar.tsx +30 -10
  495. package/src/components/form/Calendar/Calendar.types.ts +27 -1
  496. package/src/components/form/Calendar/CalendarDay.tsx +85 -13
  497. package/src/components/form/Calendar/CalendarDayCell.tsx +17 -1
  498. package/src/components/form/Calendar/CalendarMonth.tsx +40 -4
  499. package/src/components/form/Calendar/CalendarSelectorsMonth.tsx +2 -2
  500. package/src/components/form/Calendar/index.ts +1 -0
  501. package/src/components/form/DateRangePicker/DateRangePicker.frame.ts +92 -0
  502. package/src/components/form/DateRangePicker/DateRangePicker.hooks.ts +43 -1
  503. package/src/components/form/DateRangePicker/DateRangePicker.layout.ts +69 -0
  504. package/src/components/form/DateRangePicker/DateRangePicker.md +77 -2
  505. package/src/components/form/DateRangePicker/DateRangePicker.range.ts +10 -2
  506. package/src/components/form/DateRangePicker/DateRangePicker.tsx +177 -57
  507. package/src/components/form/DateRangePicker/DateRangePicker.types.ts +88 -1
  508. package/src/components/form/DateRangePicker/DateRangePickerFields.tsx +13 -2
  509. package/src/components/navigation/Tabs/Tabs.md +22 -1
  510. package/src/components/navigation/Tabs/Tabs.tsx +25 -9
  511. package/src/components/navigation/Tabs/Tabs.types.ts +18 -2
  512. package/src/copy/labels.ts +6 -0
  513. package/src/en-US.labels.ts +1 -0
  514. package/src/pt-BR.labels.ts +1 -0
  515. package/dist/chunk-3CSKB57B.js +0 -184
  516. package/dist/chunk-3CSKB57B.js.map +0 -1
  517. package/dist/chunk-3ZRK3BRN.js.map +0 -1
  518. package/dist/chunk-4L54KUZV.js.map +0 -1
  519. package/dist/chunk-5ZY3IIIG.js.map +0 -1
  520. package/dist/chunk-7HZ36QDH.js.map +0 -1
  521. package/dist/chunk-G3WG77QY.js.map +0 -1
  522. package/dist/chunk-H2UUMZQR.js.map +0 -1
  523. package/dist/chunk-HBRBIPNF.js.map +0 -1
  524. package/dist/chunk-I4K5JMS4.js.map +0 -1
  525. package/dist/chunk-MPWA55CF.js.map +0 -1
  526. package/dist/chunk-NQCTANF3.js.map +0 -1
  527. package/dist/chunk-NUGT7LMR.js +0 -1
  528. package/dist/chunk-QPCHABOZ.js.map +0 -1
  529. package/dist/chunk-QSOCOXVL.js.map +0 -1
  530. package/dist/chunk-RZ3P4X2I.js.map +0 -1
  531. package/dist/chunk-STOZ6JB5.js.map +0 -1
  532. package/dist/chunk-TPMT3J32.js.map +0 -1
  533. /package/dist/{chunk-NUGT7LMR.js.map → _internal/components/data-display/Alert/Alert.ink.js.map} +0 -0
  534. /package/dist/{chunk-UBVKMM3V.js.map → chunk-2A5GHOL3.js.map} +0 -0
  535. /package/dist/{chunk-QIP37Y2C.js.map → chunk-2RC6EAGD.js.map} +0 -0
  536. /package/dist/{chunk-YGLAGY74.js.map → chunk-332KWE5H.js.map} +0 -0
  537. /package/dist/{chunk-HNEZWVDR.js.map → chunk-364NT46L.js.map} +0 -0
  538. /package/dist/{chunk-RLTGD5WJ.js.map → chunk-3AKQHYTM.js.map} +0 -0
  539. /package/dist/{chunk-5I75WRXT.js.map → chunk-3CXRHRGE.js.map} +0 -0
  540. /package/dist/{chunk-G6NMSBSQ.js.map → chunk-3LD42RNV.js.map} +0 -0
  541. /package/dist/{chunk-3BMG6VMB.js.map → chunk-3N2HWNKT.js.map} +0 -0
  542. /package/dist/{chunk-MSJP2AEN.js.map → chunk-3N3W4TID.js.map} +0 -0
  543. /package/dist/{chunk-ZBUMGMWP.js.map → chunk-3R5MCSYO.js.map} +0 -0
  544. /package/dist/{chunk-YNVTUQ5B.js.map → chunk-3V7OTBUZ.js.map} +0 -0
  545. /package/dist/{chunk-LZNUBQ5I.js.map → chunk-4A454JZN.js.map} +0 -0
  546. /package/dist/{chunk-RCTHCXS6.js.map → chunk-4N4M237A.js.map} +0 -0
  547. /package/dist/{chunk-SW7JCF4Z.js.map → chunk-4P63RSSY.js.map} +0 -0
  548. /package/dist/{chunk-7QKFMMWK.js.map → chunk-4W4C4Q46.js.map} +0 -0
  549. /package/dist/{chunk-B32XH7NK.js.map → chunk-4WVUX7IU.js.map} +0 -0
  550. /package/dist/{chunk-Z6QFIRD7.js.map → chunk-4X2TOMK6.js.map} +0 -0
  551. /package/dist/{chunk-MYTV353T.js.map → chunk-4Y3QLISA.js.map} +0 -0
  552. /package/dist/{chunk-IMYKJTVX.js.map → chunk-5J6LN2O7.js.map} +0 -0
  553. /package/dist/{chunk-QWI7IPYJ.js.map → chunk-5V7IZBRY.js.map} +0 -0
  554. /package/dist/{chunk-Y7BOP7VZ.js.map → chunk-67GTAPK6.js.map} +0 -0
  555. /package/dist/{chunk-T77OVQEO.js.map → chunk-6D7CASMK.js.map} +0 -0
  556. /package/dist/{chunk-YNZUYZ2O.js.map → chunk-6FGP7RMV.js.map} +0 -0
  557. /package/dist/{chunk-YVDNCV2D.js.map → chunk-6RYSSNOO.js.map} +0 -0
  558. /package/dist/{chunk-CPQJFHNZ.js.map → chunk-74IH3ZGD.js.map} +0 -0
  559. /package/dist/{chunk-UQ5GJPVZ.js.map → chunk-76GAXLNC.js.map} +0 -0
  560. /package/dist/{chunk-X4J576GR.js.map → chunk-7LFST3PW.js.map} +0 -0
  561. /package/dist/{chunk-XCUHGPPZ.js.map → chunk-7MLT66DE.js.map} +0 -0
  562. /package/dist/{chunk-EOIRU62W.js.map → chunk-7P544IWT.js.map} +0 -0
  563. /package/dist/{chunk-XTYBJAZG.js.map → chunk-7TENMQNQ.js.map} +0 -0
  564. /package/dist/{chunk-EB25XITI.js.map → chunk-A27J4CIZ.js.map} +0 -0
  565. /package/dist/{chunk-2KSFBZ2H.js.map → chunk-ABZJNKR6.js.map} +0 -0
  566. /package/dist/{chunk-GTE4TW3W.js.map → chunk-AESKKFA5.js.map} +0 -0
  567. /package/dist/{chunk-6LOWZCH7.js.map → chunk-AHXQN4VL.js.map} +0 -0
  568. /package/dist/{chunk-U2SAW6DH.js.map → chunk-B4OZU7J4.js.map} +0 -0
  569. /package/dist/{chunk-DDGYTY4E.js.map → chunk-BIHZXB5P.js.map} +0 -0
  570. /package/dist/{chunk-4QGMUHAU.js.map → chunk-BWNZVMBT.js.map} +0 -0
  571. /package/dist/{chunk-CY4XIZNW.js.map → chunk-CAH5XNHT.js.map} +0 -0
  572. /package/dist/{chunk-KILA7LCC.js.map → chunk-CFDWKQZT.js.map} +0 -0
  573. /package/dist/{chunk-USHVG4UQ.js.map → chunk-CGLMWS7K.js.map} +0 -0
  574. /package/dist/{chunk-EWFBDAB7.js.map → chunk-CKGRSCRT.js.map} +0 -0
  575. /package/dist/{chunk-YOLLISEY.js.map → chunk-CRD2WCU7.js.map} +0 -0
  576. /package/dist/{chunk-L5KPBMMF.js.map → chunk-CXL3TT3K.js.map} +0 -0
  577. /package/dist/{chunk-KOGJBAFI.js.map → chunk-D3KLIC5N.js.map} +0 -0
  578. /package/dist/{chunk-2SBQ47RI.js.map → chunk-D4JL5725.js.map} +0 -0
  579. /package/dist/{chunk-NI3MC742.js.map → chunk-DBJLYURK.js.map} +0 -0
  580. /package/dist/{chunk-75GAQL2Q.js.map → chunk-DKPELKGL.js.map} +0 -0
  581. /package/dist/{chunk-NGXL4R54.js.map → chunk-E4MJA52O.js.map} +0 -0
  582. /package/dist/{chunk-5HXVXW22.js.map → chunk-EGBQR5GH.js.map} +0 -0
  583. /package/dist/{chunk-FTYOCFTV.js.map → chunk-EGYJUJMR.js.map} +0 -0
  584. /package/dist/{chunk-7XSCEHGA.js.map → chunk-EOQ6EKTS.js.map} +0 -0
  585. /package/dist/{chunk-6AKDAQSS.js.map → chunk-ERAMSYPR.js.map} +0 -0
  586. /package/dist/{chunk-WYRH6OSN.js.map → chunk-F5EH5BJN.js.map} +0 -0
  587. /package/dist/{chunk-QCYQL3ST.js.map → chunk-FJLPVPRG.js.map} +0 -0
  588. /package/dist/{chunk-MAHY7PK3.js.map → chunk-FQMLTCXT.js.map} +0 -0
  589. /package/dist/{chunk-TMINUTQQ.js.map → chunk-FRQGZIYU.js.map} +0 -0
  590. /package/dist/{chunk-LV6AD6XC.js.map → chunk-FT3LJZWZ.js.map} +0 -0
  591. /package/dist/{chunk-IS3L67TF.js.map → chunk-FW5GTAUY.js.map} +0 -0
  592. /package/dist/{chunk-VMTOLAZ5.js.map → chunk-FZZMNKVF.js.map} +0 -0
  593. /package/dist/{chunk-FGZIEZEP.js.map → chunk-G6TKWNF2.js.map} +0 -0
  594. /package/dist/{chunk-I6IFUFLW.js.map → chunk-G7MHDZTL.js.map} +0 -0
  595. /package/dist/{chunk-KES3HNSU.js.map → chunk-GB2DQOZ7.js.map} +0 -0
  596. /package/dist/{chunk-W3IFJA35.js.map → chunk-GFYDOH7D.js.map} +0 -0
  597. /package/dist/{chunk-M2M4IDFU.js.map → chunk-GXYOBTOY.js.map} +0 -0
  598. /package/dist/{chunk-OLHAUGVQ.js.map → chunk-GZQQSTKR.js.map} +0 -0
  599. /package/dist/{chunk-N2J24TJ3.js.map → chunk-HAWOS4SF.js.map} +0 -0
  600. /package/dist/{chunk-S2VZUBM7.js.map → chunk-HCTHY66U.js.map} +0 -0
  601. /package/dist/{chunk-ABVIMFSD.js.map → chunk-HG52QQ2L.js.map} +0 -0
  602. /package/dist/{chunk-AMLHEKSV.js.map → chunk-HI7JPDD6.js.map} +0 -0
  603. /package/dist/{chunk-F5OERPU4.js.map → chunk-HOWAMSUY.js.map} +0 -0
  604. /package/dist/{chunk-3TZUZXY5.js.map → chunk-HTXYBKLK.js.map} +0 -0
  605. /package/dist/{chunk-WW3F7DCX.js.map → chunk-IFOHCY4O.js.map} +0 -0
  606. /package/dist/{chunk-S46LGAQ2.js.map → chunk-IJVBLU25.js.map} +0 -0
  607. /package/dist/{chunk-ARGVUTTL.js.map → chunk-IPVGWENM.js.map} +0 -0
  608. /package/dist/{chunk-MWXZXCVX.js.map → chunk-J43PARXM.js.map} +0 -0
  609. /package/dist/{chunk-UYKIUUWP.js.map → chunk-JJTJ7DCV.js.map} +0 -0
  610. /package/dist/{chunk-HQCZT6TO.js.map → chunk-JVOEVTCZ.js.map} +0 -0
  611. /package/dist/{chunk-2365CQJU.js.map → chunk-KAQDWEG6.js.map} +0 -0
  612. /package/dist/{chunk-TB5CRHTF.js.map → chunk-KEPLO2AB.js.map} +0 -0
  613. /package/dist/{chunk-PVIQDBUN.js.map → chunk-KUQ4XHVV.js.map} +0 -0
  614. /package/dist/{chunk-DAFFZED3.js.map → chunk-KWBMM6MJ.js.map} +0 -0
  615. /package/dist/{chunk-JJYECKEL.js.map → chunk-LFECE4R7.js.map} +0 -0
  616. /package/dist/{chunk-LXIPBHNJ.js.map → chunk-LKTJ26ST.js.map} +0 -0
  617. /package/dist/{chunk-56JF5PZK.js.map → chunk-LYVTJLCF.js.map} +0 -0
  618. /package/dist/{chunk-EYFDIUVR.js.map → chunk-M4G4LRQK.js.map} +0 -0
  619. /package/dist/{chunk-KMMFN24G.js.map → chunk-MKHNLRVX.js.map} +0 -0
  620. /package/dist/{chunk-4IG73U2X.js.map → chunk-MSPLIRBH.js.map} +0 -0
  621. /package/dist/{chunk-55MYYWOV.js.map → chunk-O4UXH7BM.js.map} +0 -0
  622. /package/dist/{chunk-DYHOBKPU.js.map → chunk-OA6T2ME3.js.map} +0 -0
  623. /package/dist/{chunk-VNMD6BA4.js.map → chunk-OFRQMFWD.js.map} +0 -0
  624. /package/dist/{chunk-LTJC7TGB.js.map → chunk-OHA2PAAA.js.map} +0 -0
  625. /package/dist/{chunk-6D5AMANO.js.map → chunk-OV5NM4FY.js.map} +0 -0
  626. /package/dist/{chunk-ZANWHTXH.js.map → chunk-OVJV2ZN7.js.map} +0 -0
  627. /package/dist/{chunk-SKQPUAMK.js.map → chunk-PDWQJFMK.js.map} +0 -0
  628. /package/dist/{chunk-6EZQLNPK.js.map → chunk-PGJIWCQR.js.map} +0 -0
  629. /package/dist/{chunk-FRAFGRRD.js.map → chunk-PIELY4BJ.js.map} +0 -0
  630. /package/dist/{chunk-BQBEN44R.js.map → chunk-PNAKRHRT.js.map} +0 -0
  631. /package/dist/{chunk-3Z6JX7UN.js.map → chunk-PZJEF232.js.map} +0 -0
  632. /package/dist/{chunk-6ATXOJVQ.js.map → chunk-QADTI63U.js.map} +0 -0
  633. /package/dist/{chunk-4RF4BALN.js.map → chunk-R775ISK6.js.map} +0 -0
  634. /package/dist/{chunk-YBAK2WN5.js.map → chunk-RFMQBIE6.js.map} +0 -0
  635. /package/dist/{chunk-43EFQ3DU.js.map → chunk-RVBLOR32.js.map} +0 -0
  636. /package/dist/{chunk-XNAI7QGU.js.map → chunk-SA3KLZDZ.js.map} +0 -0
  637. /package/dist/{chunk-CAOL4AIB.js.map → chunk-SARK3GHS.js.map} +0 -0
  638. /package/dist/{chunk-CQOJUYTT.js.map → chunk-SOXO2VN3.js.map} +0 -0
  639. /package/dist/{chunk-Z4ZFJ565.js.map → chunk-SRAIV6U6.js.map} +0 -0
  640. /package/dist/{chunk-6PU5P7QT.js.map → chunk-TDXEWGY2.js.map} +0 -0
  641. /package/dist/{chunk-SB2SEGR6.js.map → chunk-TIM4PXWN.js.map} +0 -0
  642. /package/dist/{chunk-OGSTMHT6.js.map → chunk-TTBLQZVT.js.map} +0 -0
  643. /package/dist/{chunk-VHE7UEG5.js.map → chunk-UC7DLGMP.js.map} +0 -0
  644. /package/dist/{chunk-TI4FGQYV.js.map → chunk-UHLGJHTD.js.map} +0 -0
  645. /package/dist/{chunk-TAHO2LCU.js.map → chunk-UIZIEU4X.js.map} +0 -0
  646. /package/dist/{chunk-F7LBTMCA.js.map → chunk-ULC4SCFC.js.map} +0 -0
  647. /package/dist/{chunk-FORQEHRQ.js.map → chunk-UXVWGNPG.js.map} +0 -0
  648. /package/dist/{chunk-KF3Q3C3P.js.map → chunk-VGIBWJ72.js.map} +0 -0
  649. /package/dist/{chunk-I54YFYBS.js.map → chunk-VMACQT3T.js.map} +0 -0
  650. /package/dist/{chunk-EXEBN5ZP.js.map → chunk-W56KN53D.js.map} +0 -0
  651. /package/dist/{chunk-KURE5R7Z.js.map → chunk-WGK7VNCO.js.map} +0 -0
  652. /package/dist/{chunk-UIS3E72B.js.map → chunk-WK577LQL.js.map} +0 -0
  653. /package/dist/{chunk-LLPPIO3K.js.map → chunk-WNTXHLVJ.js.map} +0 -0
  654. /package/dist/{chunk-PEVBSNCD.js.map → chunk-WPRQPKLV.js.map} +0 -0
  655. /package/dist/{chunk-C347NNZJ.js.map → chunk-WVCHMTPG.js.map} +0 -0
  656. /package/dist/{chunk-CSD6SWBZ.js.map → chunk-WYNGH2WL.js.map} +0 -0
  657. /package/dist/{chunk-PJDAZG65.js.map → chunk-XA5ES25V.js.map} +0 -0
  658. /package/dist/{chunk-L5RS6QAT.js.map → chunk-YBF2WUGQ.js.map} +0 -0
  659. /package/dist/{chunk-FWTVIRZZ.js.map → chunk-YLZXIR6B.js.map} +0 -0
  660. /package/dist/{chunk-JOQGKXR5.js.map → chunk-Z2J4MRTF.js.map} +0 -0
  661. /package/dist/{chunk-TE6HAWDM.js.map → chunk-ZP2GPRNQ.js.map} +0 -0
  662. /package/dist/{chunk-3PQL2EN5.js.map → chunk-ZW7Q3IRL.js.map} +0 -0
  663. /package/dist/{chunk-M5Y42AZ4.js.map → chunk-ZX4ORMBC.js.map} +0 -0
  664. /package/dist/native/chunks/{chunk-FXA5DLKR.js.map → chunk-UQ272RI2.js.map} +0 -0
  665. /package/dist/native/chunks/{chunk-IN3XZ7EK.js.map → chunk-X65TVC3B.js.map} +0 -0
@@ -0,0 +1,106 @@
1
+ import type { CSSObject, Theme } from '@mui/material/styles/index.js';
2
+
3
+ import { absoluteInk } from '../../../tokens/ink';
4
+
5
+ import { ACTIVE, ALERT_EASING, POINTER_INK_STEP, seconds } from './Alert.metrics';
6
+
7
+ /**
8
+ * THE INK HALF OF THE POINTER STATES (FUT-4506, option C).
9
+ *
10
+ * The hover and press tint (`pointerShadow` in `Alert.tsx`) moves the SURFACE
11
+ * toward an absolute. On every surface that tracks the mode that is the side
12
+ * the ink is on, so the gap the message is read across closed under the
13
+ * pointer — a host summary at 4.71:1 idle fell to 3.17:1 pressed. These rules
14
+ * move the INK further the same way, by {@link POINTER_INK_STEP}, so it
15
+ * re-opens.
16
+ */
17
+
18
+ /** The summary's class, so the pointer states can reach it without a test id. */
19
+ export const ALERT_DESCRIPTION_CLASS = 'alert-description';
20
+ /**
21
+ * The wrapper `AlertContent` puts around `children`, at `display: contents`:
22
+ * no box of its own, so the column's flex layout is what it was, and a bare
23
+ * text node still inherits its colour.
24
+ */
25
+ export const ALERT_CHILDREN_CLASS = 'alert-children';
26
+
27
+ /**
28
+ * What steps: the WORDS of the message — the title, the description and
29
+ * whatever the caller passed as `children` — each one step, none nested in
30
+ * another. Stepping only the title and the description left a children-only
31
+ * alert (about one in six in the first host measured) at its rest ink under
32
+ * the press tint.
33
+ *
34
+ * Not the whole message column, because the column is not only words: with
35
+ * `iconPlacement: 'title'` the icon sits in it, on the title's row, beside
36
+ * `.MuiAlertTitle-root` rather than inside it. The icon is the variant's
37
+ * meaning, not an affordance, so it stays still in both placements; the close
38
+ * button (`.MuiAlert-action`) is outside the column altogether. A control
39
+ * inside `children` keeps its own colour, because it declares one; only a
40
+ * `color="inherit"` one follows the step, on the same tinted surface as the
41
+ * words around it.
42
+ */
43
+ const MESSAGE_INK = `& .MuiAlertTitle-root, & .${ALERT_DESCRIPTION_CLASS}, & .${ALERT_CHILDREN_CLASS}`;
44
+
45
+ export type PointerInkState = keyof typeof POINTER_INK_STEP;
46
+ export type InkAbsolute = 'black' | 'white';
47
+
48
+ /**
49
+ * The absolute the ink steps toward — the mode's, the side the ink is on — or
50
+ * `null` for `gradient`, which does not step at all.
51
+ *
52
+ * Every other variant's surface tracks the mode: a dark ink on a light tint,
53
+ * a light ink on a dark one, so the step is toward black in light mode and
54
+ * toward white in dark, the same absolute the tint layer moves the surface to.
55
+ *
56
+ * `gradient` is the one surface where the package cannot know which side its
57
+ * ink is on. Its own ink is `getContrastText` of the hue, but a host that
58
+ * repaints alerts repaints the gradient too: a light pane and a dark ink under
59
+ * the variant's BLACK layer. Stepping by the package's own ink then moved that
60
+ * dark ink toward white — 1.02:1 pressed. A step that reads `currentColor` for
61
+ * its amount but not for its direction is only safe where the direction is the
62
+ * mode's, so `gradient` keeps today's ink. Its rest contrast and its dark ink
63
+ * on dark mode's light hues are FUT-4516's.
64
+ */
65
+ export function inkAbsolute(theme: Theme, variant: string | undefined): InkAbsolute | null {
66
+ if (variant === 'gradient') return null;
67
+ return theme.palette.mode === 'dark' ? 'white' : 'black';
68
+ }
69
+
70
+ /**
71
+ * The CSS for the ink at one pointer state: the ink actually painted
72
+ * (`currentColor`, inherited from the root — a host's repaint included) mixed
73
+ * toward the absolute by the state's step.
74
+ *
75
+ * `currentColor` in a `color` declaration is the PARENT's colour, which is why
76
+ * this sits on the message's parts and never on the root: on the root it would
77
+ * read the page's text colour instead of the alert's ink. None of the three
78
+ * parts is nested in another, so nothing steps twice.
79
+ */
80
+ export function steppedInkCss(absolute: string, step: number): string {
81
+ return `color-mix(in srgb, currentColor ${Math.round((1 - step) * 100)}%, ${absolute})`;
82
+ }
83
+
84
+ /**
85
+ * The three pieces of the ink's pointer behaviour, spread into the root's
86
+ * blocks by `Alert.tsx`:
87
+ *
88
+ * - `rest` eases the ink on the box-shadow's own clock, so ink and tint arrive
89
+ * together rather than the ink snapping while the surface eases;
90
+ * - `hover` and `press` step it. The press declares `transition: none` for the
91
+ * same reason the root's `:active` does: a click's `:active` is too short to
92
+ * ease into. A `:hover` block declares no transition, ever (see `ACTIVE`).
93
+ *
94
+ * All three are empty for a variant that does not step.
95
+ */
96
+ export function pointerInkStyles(theme: Theme, variant: string | undefined): Record<'rest' | PointerInkState, CSSObject> {
97
+ const side = inkAbsolute(theme, variant);
98
+ if (side === null) return { rest: {}, hover: {}, press: {} };
99
+ const absolute = absoluteInk(theme)[side];
100
+ const at = (state: PointerInkState): string => steppedInkCss(absolute, POINTER_INK_STEP[state][side]);
101
+ return {
102
+ rest: { [MESSAGE_INK]: { transition: `color ${seconds(ACTIVE.ms)} ${ALERT_EASING}` } },
103
+ hover: { [MESSAGE_INK]: { color: at('hover') } },
104
+ press: { [MESSAGE_INK]: { color: at('press'), transition: 'none' } },
105
+ };
106
+ }
@@ -145,6 +145,46 @@ The Alert component implements comprehensive accessibility features:
145
145
  - High contrast colors meeting WCAG guidelines
146
146
  - Screen reader compatible content structure
147
147
 
148
+ ### Hover and press keep the words at 4.5:1
149
+
150
+ An alert answers a pointer with a flat tint layer (`HOVER.tintAlpha` 0.06,
151
+ `ACTIVE.tintAlpha` 0.2, eased back over `ACTIVE.ms`), and nothing moves. That
152
+ layer moves the surface toward the mode's absolute — black in light mode, white
153
+ in dark — which is the side the ink is on, so on its own it CLOSED the gap the
154
+ words are read across: a summary at 4.71:1 idle fell to 3.17:1 pressed in
155
+ light mode and 2.68:1 in dark (FUT-4506).
156
+
157
+ So while the tint is on, the **message** — title, description and whatever
158
+ is passed as `children` — steps its ink toward
159
+ that same absolute (`POINTER_INK_STEP`; both states' tint and step are
160
+ exported as `ALERT_POINTER_STATES` for a theme that asserts its own tones):
161
+
162
+ | state | toward black (light mode) | toward white (dark mode) |
163
+ |---|---|---|
164
+ | hover | 0.15 | 0.2 |
165
+ | press | 0.35 | 0.6 |
166
+
167
+ The message holds 4.5:1 at rest, hovered and pressed — the title too, since
168
+ 16.8px/600 is not WCAG "large" text. The step sits on the title
169
+ (`.MuiAlertTitle-root`), the description (`.alert-description`) and the
170
+ children (wrapped in `.alert-children` at `display: contents`, so the layout
171
+ does not change), each one step. It is a `color-mix()` over `currentColor`:
172
+ its amount lands on whatever ink is actually painted, so a theme that repaints
173
+ a semantic or `glass` alert's `color` gets the same step on its own ink. It
174
+ eases on the tint's clock and lands at once on a press, like the tint.
175
+
176
+ The icon does not step, in either placement: in the gutter (`.MuiAlert-icon`)
177
+ and on the title's row (`iconPlacement: 'title'`), where it sits in the
178
+ message column beside the title rather than inside it. The close button
179
+ (`.MuiAlert-action`), the focus ring and any control in `children` that
180
+ declares its own colour keep their colours and states; a `color="inherit"`
181
+ control in `children` steps with the words around it.
182
+
183
+ `gradient` is not stepped. The step's direction is the mode's, and a host that
184
+ repaints a gradient to a light pane with a dark ink would have had that ink
185
+ stepped toward white under the variant's black layer. Its rest contrast is
186
+ FUT-4516's.
187
+
148
188
  ### `announce` — whether the alert interrupts
149
189
 
150
190
  `role` and `aria-live` are two attributes with one meaning between them, and by
@@ -94,9 +94,12 @@ export const PULSE = { alpha: 0.2, ms: 2000, spread: 10 } as const;
94
94
  * dark one. A `filter: brightness()` fixed the direction but is MULTIPLICATIVE,
95
95
  * so it moved a near-black `glass` by four counts (ΔE76 1.71, under the JND)
96
96
  * and Banner's 10%-alpha wash by ΔE76 0.44. A layer is additive: it reads the
97
- * same on an opaque tint, a translucent wash and a gradient, and because it
98
- * paints above the background and below the content the ink keeps its own
99
- * contrast.
97
+ * same on an opaque tint, a translucent wash and a gradient.
98
+ *
99
+ * Painting above the background and below the content keeps the layer off the
100
+ * INK, but not off the ink's CONTRAST: the layer moves the surface toward the
101
+ * mode's absolute, which is the side the ink is on, so the two close in. That
102
+ * is what {@link POINTER_INK_STEP} answers (FUT-4506).
100
103
  */
101
104
  export const HOVER = { tintAlpha: 0.06 } as const;
102
105
 
@@ -117,8 +120,11 @@ export const HOVER = { tintAlpha: 0.06 } as const;
117
120
  *
118
121
  * An inset shadow at 100vmax is a flat tint over the whole surface: ADDITIVE,
119
122
  * so it reads the same on an opaque tint, a translucent wash and a gradient;
120
- * painted above the background and below the content, so the ink keeps its
121
- * own contrast; and animatable, which `background-image` is not.
123
+ * painted above the background and below the content, so it never dims the
124
+ * ink itself; and animatable, which `background-image` is not. It DOES dim the
125
+ * ink's contrast, because it darkens a light surface toward a dark ink (and
126
+ * lightens a dark one toward a light ink) — on Alert, {@link POINTER_INK_STEP}
127
+ * is the other half of the press.
122
128
  *
123
129
  * `ms` is 250 and not the 1000 first asked for, and the reason is that ONE
124
130
  * property carries both states. CSS runs a transition from the DESTINATION
@@ -133,6 +139,52 @@ export const HOVER = { tintAlpha: 0.06 } as const;
133
139
  */
134
140
  export const ACTIVE = { tintAlpha: 0.2, ms: 250 } as const;
135
141
 
142
+ /**
143
+ * How far the MESSAGE ink — title, description and children — steps toward the
144
+ * absolute on its own side while the alert is hovered or pressed (FUT-4506,
145
+ * option C).
146
+ *
147
+ * The tint layer above moves the surface toward the mode's absolute — black in
148
+ * light mode, white in dark — which is the side the ink sits on, so every
149
+ * pointer state CLOSED the gap the ink is read across. Measured on a host pane
150
+ * whose summary sat at 4.71:1 idle: 4.22 hovered, 3.17 pressed in light mode,
151
+ * and down to 2.68 pressed in dark. The title, at 16.8px/600, is not WCAG
152
+ * "large" text, so it is held to 4.5:1 as well.
153
+ *
154
+ * The answer keeps the layer (the pointer still gets its feedback) and moves
155
+ * the ink FURTHER the same way, so the gap re-opens. The amounts are the
156
+ * prototype's measured steps on that host pane, the worst case in reach: they
157
+ * hold the 0.9 summary at 4.75–6.07:1 there, and at 6.38:1 or more on this
158
+ * package's default palette in both modes. White needs the bigger step because
159
+ * a light ink has less room above it than a dark ink has below it, and dark
160
+ * mode's pressed step needs at least 0.55.
161
+ *
162
+ * Keyed by the absolute the ink moves TOWARD, which is the mode's: black in
163
+ * light mode, white in dark. The web applies the step as `color-mix()` over
164
+ * `currentColor`, so its AMOUNT lands on whatever ink is actually painted — a
165
+ * host's repaint of a semantic or `glass` alert included. Its DIRECTION is the
166
+ * mode's, which is only safe where the surface tracks the mode, so `gradient`
167
+ * is not stepped at all (`inkAbsolute` in `Alert.ink.ts`): a host that
168
+ * repaints it to a light pane and a dark ink would otherwise have its ink
169
+ * stepped toward white under a black layer. DOM only; native has no pointer
170
+ * states. `Banner` paints the same tint and does not step yet.
171
+ */
172
+ export const POINTER_INK_STEP = {
173
+ hover: { black: 0.15, white: 0.2 },
174
+ press: { black: 0.35, white: 0.6 },
175
+ } as const;
176
+
177
+ /**
178
+ * Both pointer states as a host reads them: the tint layer's alpha and the ink
179
+ * step, per absolute. Exported (as `ALERT_POINTER_STATES`) so a theme that
180
+ * repaints the alert's pane and ink can assert its own tones still clear 4.5:1
181
+ * hovered and pressed, against the numbers the package actually draws with.
182
+ */
183
+ export const POINTER_STATES = {
184
+ hover: { tintAlpha: HOVER.tintAlpha, inkStep: POINTER_INK_STEP.hover },
185
+ press: { tintAlpha: ACTIVE.tintAlpha, inkStep: POINTER_INK_STEP.press },
186
+ } as const;
187
+
136
188
  export const FOCUS = { ringWidth: 2, ringAlpha: 1, offset: 2 } as const;
137
189
 
138
190
  /** `neutral` has no palette slot; the web has always drawn it from three greys. */
@@ -10,6 +10,7 @@ import React from 'react';
10
10
  import { absoluteInk, modeInk } from '../../../tokens/ink';
11
11
 
12
12
  import { AlertContent } from './Alert.content';
13
+ import { pointerInkStyles } from './Alert.ink';
13
14
  import { resolveAlertProps, resolveAnnouncement, testIdFor } from './Alert.helpers';
14
15
  import { resolveIconPlacement, type AlertIconPlacement } from './Alert.placement';
15
16
  import type { AlertPalette } from './Alert.metrics';
@@ -48,9 +49,11 @@ const transition = `all ${seconds(ALERT_TRANSITION_MS)} ${ALERT_EASING}`;
48
49
  *
49
50
  * The tint is an inset spread at 100vmax, which always exceeds the element, so
50
51
  * it covers the surface edge to edge. It paints ABOVE the background and BELOW
51
- * the content, which is what keeps the ink's own contrast out of these states
52
- * entirely — see `ACTIVE` in `Alert.metrics.ts` for why a layer replaced the
53
- * opacity dip and the brightness multiplier that each preceded it.
52
+ * the content, so it never dims the ink itself — see `ACTIVE` in
53
+ * `Alert.metrics.ts` for why a layer replaced the opacity dip and the
54
+ * brightness multiplier that each preceded it. It does move the surface toward
55
+ * the ink's side, which is the contrast `pointerInkStyles` (`Alert.ink.ts`)
56
+ * wins back by stepping the message's words the same way.
54
57
  *
55
58
  * The glow is COMPOSED rather than replaced, so hovering a glowing alert keeps
56
59
  * its glow; `glowStyles` gave up its `!important` for this.
@@ -61,15 +64,19 @@ function pointerShadow(
61
64
  glow: boolean,
62
65
  variant: string | undefined,
63
66
  ): (alpha_: number) => string {
64
- // The tint moves the surface AWAY from its own ink, which is why this reads
65
- // the variant and not only the mode.
67
+ // The tint's colour reads the variant and not only the mode. On every
68
+ // surface that tracks the mode it moves the surface TOWARD its ink's side —
69
+ // the contrast cost `pointerInkStyles` pays back.
66
70
  //
67
71
  // `gradient` is the one variant where the two disagree: it paints a
68
72
  // mid-lightness sweep (L* 42–61) under WHITE ink in BOTH modes, so the
69
73
  // mode-keyed answer tinted it white in dark mode — toward the text. Measured:
70
74
  // white-on-gradient fell to 2.90:1 on hover and 2.41:1 pressed, under the 3:1
71
75
  // floor and below its own idle. Every other variant's surface tracks the mode,
72
- // so for them the two rules agree.
76
+ // so for them the two rules agree. (Not quite WHITE in both modes: dark
77
+ // mode's light hues get a dark `getContrastText` ink, which this black layer
78
+ // closes on. That ink is not stepped (`inkAbsolute`); its rest contrast is
79
+ // FUT-4516's.)
73
80
  const ink = variant === 'gradient' ? absoluteInk(theme).black : modeInk(theme);
74
81
  const glowShadow = glow
75
82
  ? `0 0 ${rems(theme, GLOW.blur, GLOW.spread)} ${alpha(colorPalette.main, GLOW.alpha)}`
@@ -91,6 +98,7 @@ const StyledAlert = styled(MuiAlert, {
91
98
  const colorPalette = getColorFromTheme(theme, customColor || customVariant || 'info');
92
99
 
93
100
  const withTint = pointerShadow(theme, colorPalette, Boolean(glow), customVariant);
101
+ const ink = pointerInkStyles(theme, customVariant);
94
102
 
95
103
  return {
96
104
  borderRadius: theme.spacing(ALERT_RADIUS_UNITS),
@@ -101,13 +109,15 @@ const StyledAlert = styled(MuiAlert, {
101
109
  willChange: 'transform, opacity',
102
110
 
103
111
  ...alertLayoutStyles(theme, colorPalette, animate),
112
+ ...ink.rest,
104
113
 
105
114
  // Hover: one tint step, and nothing that moves. An alert is a surface
106
115
  // rather than a control, so the pointer only needs telling it is here. The
107
116
  // icon keeps its own place for the same reason — it is the variant's
108
- // meaning, not an affordance to animate.
117
+ // meaning, not an affordance to animate. The message's ink steps too.
109
118
  '&:hover': {
110
119
  boxShadow: withTint(HOVER.tintAlpha),
120
+ ...ink.hover,
111
121
 
112
122
  '&::before': {
113
123
  opacity: 1,
@@ -136,6 +146,7 @@ const StyledAlert = styled(MuiAlert, {
136
146
  '&:active:not(:has(button:active, a:active, [role="button"]:active))': {
137
147
  boxShadow: withTint(ACTIVE.tintAlpha),
138
148
  transition: 'none',
149
+ ...ink.press,
139
150
  },
140
151
 
141
152
  // Focus: `:focus-visible`, not `:focus-within`.
@@ -6,3 +6,4 @@ export type {
6
6
  AlertVariant,
7
7
  UiAlertTheme,
8
8
  } from './Alert.types';
9
+ export { POINTER_STATES as ALERT_POINTER_STATES } from './Alert.metrics';
@@ -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.