@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.
- package/components-catalog.md +1 -1
- package/dist/_internal/components/data-display/Alert/Alert.content.js +4 -2
- package/dist/_internal/components/data-display/Alert/Alert.ink.js +27 -0
- package/dist/_internal/components/data-display/Alert/Alert.js +5 -4
- package/dist/_internal/components/data-display/Alert/Alert.metrics.js +5 -1
- package/dist/_internal/components/data-display/Alert/Alert.styles.js +2 -2
- package/dist/_internal/components/data-display/AlertDialog/AlertDialog.js +3 -3
- package/dist/_internal/components/data-display/AlertDialog/AlertDialog.parts.js +2 -2
- package/dist/_internal/components/data-display/AsyncStateContainer/AsyncStateContainer.js +5 -5
- package/dist/_internal/components/data-display/Avatar/Avatar.js +5 -5
- package/dist/_internal/components/data-display/Avatar/Avatar.view.js +2 -2
- package/dist/_internal/components/data-display/Banner/Banner.js +3 -3
- package/dist/_internal/components/data-display/Banner/Banner.styles.js +2 -2
- package/dist/_internal/components/data-display/CardKit/card-actions-context.js +7 -6
- package/dist/_internal/components/data-display/CardKit/use-remove-confirm.js +15 -14
- package/dist/_internal/components/data-display/CardKit/use-row-confirm.js +8 -8
- package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +4 -4
- package/dist/_internal/components/data-display/Carousel/Carousel.js +6 -6
- package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +3 -3
- package/dist/_internal/components/data-display/Chart/Chart.js +3 -3
- package/dist/_internal/components/data-display/Chart/SpecChart.js +7 -7
- package/dist/_internal/components/data-display/Chart/chart-renderers.js +2 -2
- package/dist/_internal/components/data-display/Chart/chart-spec.js +2 -2
- package/dist/_internal/components/data-display/DataGrid/DataGrid.js +2 -2
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +51 -51
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +72 -71
- package/dist/_internal/components/data-display/DataViews/DeleteViewDialog.js +3 -3
- package/dist/_internal/components/data-display/DataViews/ManageViewsDialog.js +9 -9
- package/dist/_internal/components/data-display/DataViews/SaveViewModal.js +3 -3
- package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +2 -2
- package/dist/_internal/components/data-display/DataViews/base-list-card-layout.js +2 -2
- package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +2 -2
- package/dist/_internal/components/data-display/DataViews/base-list-card.js +4 -4
- package/dist/_internal/components/data-display/DataViews/data-views-category-pill.js +11 -11
- package/dist/_internal/components/data-display/DataViews/data-views-day-input.js +1 -1
- package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +1 -1
- package/dist/_internal/components/data-display/DataViews/data-views-filter-panel.js +32 -32
- package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +6 -6
- package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +48 -48
- package/dist/_internal/components/data-display/DataViews/data-views-inline-bar.js +31 -31
- package/dist/_internal/components/data-display/DataViews/data-views-more-fields.js +29 -29
- package/dist/_internal/components/data-display/DataViews/data-views-more-filters.js +30 -30
- package/dist/_internal/components/data-display/DataViews/data-views-preset-chips.js +3 -3
- package/dist/_internal/components/data-display/DataViews/data-views-range-bounds.js +15 -15
- package/dist/_internal/components/data-display/DataViews/data-views-range-calendar.js +12 -12
- package/dist/_internal/components/data-display/DataViews/data-views-range-pill.js +18 -18
- package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +10 -10
- package/dist/_internal/components/data-display/DataViews/data-views-table-parts.js +22 -21
- package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +9 -9
- package/dist/_internal/components/data-display/DataViews/list-card-rails.js +2 -2
- package/dist/_internal/components/data-display/DataViews/use-data-views-state.js +2 -2
- package/dist/_internal/components/data-display/DayRuler/DayRuler.js +7 -7
- package/dist/_internal/components/data-display/DayRuler/DayRuler.parts.js +2 -2
- package/dist/_internal/components/data-display/EmptyState/EmptyState.js +2 -2
- package/dist/_internal/components/data-display/ErrorState/ErrorState.js +2 -2
- package/dist/_internal/components/data-display/FleetMap/FleetBody.js +10 -10
- package/dist/_internal/components/data-display/FleetMap/FleetCanvas.js +9 -9
- package/dist/_internal/components/data-display/FleetMap/FleetMap.fixtures.js +2 -2
- package/dist/_internal/components/data-display/FleetMap/FleetMap.js +12 -12
- package/dist/_internal/components/data-display/HoverCard/HoverCard.js +3 -3
- package/dist/_internal/components/data-display/LazyImage/LazyImage.js +2 -2
- package/dist/_internal/components/data-display/Lightbox/Lightbox.js +3 -3
- package/dist/_internal/components/data-display/LoadingState/LoadingState.js +2 -2
- package/dist/_internal/components/data-display/MapPreview/MapControlBar.js +4 -4
- package/dist/_internal/components/data-display/MapPreview/MapLayers.js +6 -6
- package/dist/_internal/components/data-display/MapPreview/MapMarkers.js +4 -4
- package/dist/_internal/components/data-display/MapPreview/MapPreview.helpers.js +3 -3
- package/dist/_internal/components/data-display/MapPreview/MapPreview.js +8 -8
- package/dist/_internal/components/data-display/RegionMap/RegionMap.js +5 -5
- package/dist/_internal/components/data-display/RegionMap/RegionMapDrawing.js +2 -2
- package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.js +6 -6
- package/dist/_internal/components/data-display/ScheduleGrid/ScheduleGrid.labels.js +2 -2
- package/dist/_internal/components/data-display/SectionOnboarding/SectionOnboarding.js +4 -4
- package/dist/_internal/components/data-display/Sheet/Sheet.body.js +3 -3
- package/dist/_internal/components/data-display/Sheet/Sheet.hooks.js +2 -2
- package/dist/_internal/components/data-display/Sheet/Sheet.js +6 -6
- package/dist/_internal/components/data-display/Sheet/Sheet.parts.js +2 -2
- package/dist/_internal/components/data-display/Stepper/Stepper.js +2 -2
- package/dist/_internal/components/data-display/Table/Table.js +4 -4
- package/dist/_internal/components/data-display/Table/TableParts.hooks.js +2 -2
- package/dist/_internal/components/data-display/Table/TableParts.js +2 -2
- package/dist/_internal/components/data-display/Timeline/Timeline.js +2 -2
- package/dist/_internal/components/data-display/index.js +97 -93
- package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.js +5 -5
- package/dist/_internal/components/feedback/ConfirmAction/ConfirmAction.parts.js +4 -4
- package/dist/_internal/components/feedback/ConfirmAction/ConfirmButton.js +6 -6
- package/dist/_internal/components/feedback/ConfirmAction/with-confirmation.js +5 -5
- package/dist/_internal/components/feedback/Dialog/Dialog.js +2 -2
- package/dist/_internal/components/feedback/Modal/Modal.js +2 -2
- package/dist/_internal/components/feedback/NotificationStatusNotice/NotificationStatusNotice.js +6 -5
- package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.frame.js +3 -3
- package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.js +12 -11
- package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.overview.js +8 -7
- package/dist/_internal/components/feedback/SequenceResolver/SequenceResolver.parts.js +7 -6
- package/dist/_internal/components/feedback/Sonner/Sonner.js +2 -2
- package/dist/_internal/components/feedback/StackedModal/StackedModal.js +4 -4
- package/dist/_internal/components/feedback/StackedModal/StackedModal.parts.js +2 -2
- package/dist/_internal/components/feedback/Toast/Toast.js +2 -2
- package/dist/_internal/components/feedback/TutorialOverlay/TutorialOverlay.js +2 -2
- package/dist/_internal/components/feedback/UsableModal/UsableModal.js +1 -1
- package/dist/_internal/components/feedback/UsableModal/UsableModal.modal.js +4 -4
- package/dist/_internal/components/feedback/UsableModal/UsableModal.sheet.js +6 -6
- package/dist/_internal/components/feedback/index.js +30 -29
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.hooks.js +4 -4
- package/dist/_internal/components/form/AddressAutocomplete/AddressAutocomplete.js +7 -7
- package/dist/_internal/components/form/Autocomplete/Autocomplete.js +2 -2
- package/dist/_internal/components/form/Calendar/Calendar.band.js +1 -1
- package/dist/_internal/components/form/Calendar/Calendar.helpers.js +1 -1
- package/dist/_internal/components/form/Calendar/Calendar.hooks.js +1 -1
- package/dist/_internal/components/form/Calendar/Calendar.js +10 -10
- package/dist/_internal/components/form/Calendar/CalendarDay.js +2 -2
- package/dist/_internal/components/form/Calendar/CalendarDayCell.js +3 -3
- package/dist/_internal/components/form/Calendar/CalendarMonth.js +10 -6
- package/dist/_internal/components/form/Calendar/CalendarSelectorsMonth.js +6 -6
- package/dist/_internal/components/form/CategorySelect/CategoryPanel.js +2 -2
- package/dist/_internal/components/form/CategorySelect/CategorySelect.js +4 -4
- package/dist/_internal/components/form/CodeEditor/CodeEditor.js +3 -3
- package/dist/_internal/components/form/Command/Command.hooks.js +2 -2
- package/dist/_internal/components/form/Command/Command.js +4 -4
- package/dist/_internal/components/form/Command/Command.parts.js +2 -2
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.frame.js +22 -0
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.frame.js.map +1 -0
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.hooks.js +4 -4
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.js +20 -15
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.layout.js +13 -0
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.layout.js.map +1 -0
- package/dist/_internal/components/form/DateRangePicker/DateRangePicker.range.js +3 -3
- package/dist/_internal/components/form/DateRangePicker/DateRangePickerFields.js +4 -4
- package/dist/_internal/components/form/RichTextEditor/RichTextEditor.dom.js +2 -2
- package/dist/_internal/components/form/RichTextEditor/RichTextEditor.format.js +3 -3
- package/dist/_internal/components/form/RichTextEditor/RichTextEditor.hooks.js +4 -4
- package/dist/_internal/components/form/RichTextEditor/RichTextEditor.js +5 -5
- package/dist/_internal/components/form/index.js +37 -34
- package/dist/_internal/components/form/total-form/Fields/CategoryField.js +5 -5
- package/dist/_internal/components/form/total-form/Fields/index.js +6 -6
- package/dist/_internal/components/form/total-form/FormErrorSnackbar.js +3 -3
- package/dist/_internal/components/index.js +178 -172
- package/dist/_internal/components/layout/ContentToolbar/ColumnsMenu.js +2 -2
- package/dist/_internal/components/layout/ContentToolbar/FilterTrigger.js +3 -3
- package/dist/_internal/components/layout/ContentToolbar/MultiSelectDropdown.js +2 -2
- package/dist/_internal/components/layout/ContentToolbar/ViewSelector.js +2 -2
- package/dist/_internal/components/layout/Dashboard/Dashboard.js +2 -2
- package/dist/_internal/components/layout/Drawer/Drawer.js +2 -2
- package/dist/_internal/components/layout/SettingsLayout/SettingsLayout.js +2 -2
- package/dist/_internal/components/layout/TableFilter/TableFilter.js +2 -2
- package/dist/_internal/components/layout/index.js +9 -9
- package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +8 -8
- package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +2 -2
- package/dist/_internal/components/navigation/Breadcrumbs/Breadcrumbs.js +2 -2
- package/dist/_internal/components/navigation/NavigationMenu/NavigationMenu.js +3 -3
- package/dist/_internal/components/navigation/NavigationMenu/NavigationStandardBody.js +2 -2
- package/dist/_internal/components/navigation/SectionNav/SectionNav.bar.js +4 -4
- package/dist/_internal/components/navigation/SectionNav/SectionNav.js +5 -5
- package/dist/_internal/components/navigation/SectionNav/SectionNav.sheet.js +3 -3
- package/dist/_internal/components/navigation/Tabs/Tabs.js +1 -1
- package/dist/_internal/components/navigation/index.js +18 -18
- package/dist/_internal/components/typography/Code/Code.js +2 -2
- package/dist/_internal/components/typography/index.js +2 -2
- package/dist/_internal/components/utility/AnimatedIcon/AnimatedIcon.js +2 -2
- package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.js +3 -3
- package/dist/_internal/components/utility/InfiniteScroll/InfiniteScroll.parts.js +2 -2
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.helpers.js +2 -2
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.js +5 -5
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.parts.js +3 -3
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStepRow.js +4 -4
- package/dist/_internal/components/utility/index.js +8 -8
- package/dist/_internal/en-US.data-display.js +2 -2
- package/dist/_internal/en-US.labels.js +1 -1
- package/dist/_internal/pt-BR.data-display.js +2 -2
- package/dist/_internal/pt-BR.labels.js +1 -1
- package/dist/_internal/social-login-button/social-login-button.js +2 -2
- package/dist/_internal/user-avatar/user-avatar.js +6 -6
- package/dist/charts.js +17 -17
- package/dist/{chunk-UBVKMM3V.js → chunk-2A5GHOL3.js} +2 -2
- package/dist/{chunk-QIP37Y2C.js → chunk-2RC6EAGD.js} +2 -2
- package/dist/{chunk-YGLAGY74.js → chunk-332KWE5H.js} +2 -2
- package/dist/{chunk-HNEZWVDR.js → chunk-364NT46L.js} +3 -3
- package/dist/{chunk-RLTGD5WJ.js → chunk-3AKQHYTM.js} +4 -4
- package/dist/{chunk-5I75WRXT.js → chunk-3CXRHRGE.js} +7 -7
- package/dist/{chunk-G6NMSBSQ.js → chunk-3LD42RNV.js} +2 -2
- package/dist/{chunk-3BMG6VMB.js → chunk-3N2HWNKT.js} +2 -2
- package/dist/{chunk-MSJP2AEN.js → chunk-3N3W4TID.js} +2 -2
- package/dist/{chunk-H2UUMZQR.js → chunk-3PWDVJWD.js} +2 -1
- package/dist/chunk-3PWDVJWD.js.map +1 -0
- package/dist/{chunk-ZBUMGMWP.js → chunk-3R5MCSYO.js} +6 -6
- package/dist/{chunk-YNVTUQ5B.js → chunk-3V7OTBUZ.js} +2 -2
- package/dist/{chunk-LZNUBQ5I.js → chunk-4A454JZN.js} +2 -2
- package/dist/{chunk-TPMT3J32.js → chunk-4I2SDWSF.js} +2 -1
- package/dist/chunk-4I2SDWSF.js.map +1 -0
- package/dist/{chunk-RCTHCXS6.js → chunk-4N4M237A.js} +2 -2
- package/dist/{chunk-SW7JCF4Z.js → chunk-4P63RSSY.js} +2 -2
- package/dist/{chunk-7QKFMMWK.js → chunk-4W4C4Q46.js} +2 -2
- package/dist/{chunk-B32XH7NK.js → chunk-4WVUX7IU.js} +3 -3
- package/dist/{chunk-Z6QFIRD7.js → chunk-4X2TOMK6.js} +7 -7
- package/dist/{chunk-MYTV353T.js → chunk-4Y3QLISA.js} +2 -2
- package/dist/{chunk-IMYKJTVX.js → chunk-5J6LN2O7.js} +2 -2
- package/dist/{chunk-QWI7IPYJ.js → chunk-5V7IZBRY.js} +4 -4
- package/dist/{chunk-Y7BOP7VZ.js → chunk-67GTAPK6.js} +3 -3
- package/dist/{chunk-T77OVQEO.js → chunk-6D7CASMK.js} +2 -2
- package/dist/{chunk-YNZUYZ2O.js → chunk-6FGP7RMV.js} +2 -2
- package/dist/{chunk-YVDNCV2D.js → chunk-6RYSSNOO.js} +3 -3
- package/dist/{chunk-CPQJFHNZ.js → chunk-74IH3ZGD.js} +2 -2
- package/dist/{chunk-UQ5GJPVZ.js → chunk-76GAXLNC.js} +3 -3
- package/dist/{chunk-X4J576GR.js → chunk-7LFST3PW.js} +2 -2
- package/dist/{chunk-XCUHGPPZ.js → chunk-7MLT66DE.js} +2 -2
- package/dist/{chunk-EOIRU62W.js → chunk-7P544IWT.js} +3 -3
- package/dist/{chunk-XTYBJAZG.js → chunk-7TENMQNQ.js} +7 -7
- package/dist/{chunk-EB25XITI.js → chunk-A27J4CIZ.js} +10 -10
- package/dist/{chunk-2KSFBZ2H.js → chunk-ABZJNKR6.js} +2 -2
- package/dist/{chunk-GTE4TW3W.js → chunk-AESKKFA5.js} +6 -6
- package/dist/chunk-AG4F6NVT.js +1 -0
- package/dist/chunk-AG4F6NVT.js.map +1 -0
- package/dist/{chunk-6LOWZCH7.js → chunk-AHXQN4VL.js} +2 -2
- package/dist/{chunk-U2SAW6DH.js → chunk-B4OZU7J4.js} +7 -7
- package/dist/{chunk-DDGYTY4E.js → chunk-BIHZXB5P.js} +4 -4
- package/dist/{chunk-4QGMUHAU.js → chunk-BWNZVMBT.js} +2 -2
- package/dist/{chunk-CY4XIZNW.js → chunk-CAH5XNHT.js} +2 -2
- package/dist/{chunk-KILA7LCC.js → chunk-CFDWKQZT.js} +4 -4
- package/dist/{chunk-USHVG4UQ.js → chunk-CGLMWS7K.js} +4 -4
- package/dist/{chunk-EWFBDAB7.js → chunk-CKGRSCRT.js} +2 -2
- package/dist/{chunk-YOLLISEY.js → chunk-CRD2WCU7.js} +9 -9
- package/dist/{chunk-L5KPBMMF.js → chunk-CXL3TT3K.js} +2 -2
- package/dist/{chunk-KOGJBAFI.js → chunk-D3KLIC5N.js} +2 -2
- package/dist/{chunk-2SBQ47RI.js → chunk-D4JL5725.js} +3 -3
- package/dist/{chunk-NI3MC742.js → chunk-DBJLYURK.js} +2 -2
- package/dist/{chunk-75GAQL2Q.js → chunk-DKPELKGL.js} +12 -12
- package/dist/{chunk-NGXL4R54.js → chunk-E4MJA52O.js} +4 -4
- package/dist/{chunk-QSOCOXVL.js → chunk-EASEJDBQ.js} +13 -8
- package/dist/chunk-EASEJDBQ.js.map +1 -0
- package/dist/{chunk-5HXVXW22.js → chunk-EGBQR5GH.js} +5 -5
- package/dist/{chunk-FTYOCFTV.js → chunk-EGYJUJMR.js} +2 -2
- package/dist/{chunk-7XSCEHGA.js → chunk-EOQ6EKTS.js} +7 -7
- package/dist/{chunk-6AKDAQSS.js → chunk-ERAMSYPR.js} +2 -2
- package/dist/{chunk-WYRH6OSN.js → chunk-F5EH5BJN.js} +2 -2
- package/dist/{chunk-HBRBIPNF.js → chunk-F7JRQ2EI.js} +6 -6
- package/dist/chunk-F7JRQ2EI.js.map +1 -0
- package/dist/{chunk-QCYQL3ST.js → chunk-FJLPVPRG.js} +2 -2
- package/dist/{chunk-MAHY7PK3.js → chunk-FQMLTCXT.js} +4 -4
- package/dist/{chunk-TMINUTQQ.js → chunk-FRQGZIYU.js} +2 -2
- package/dist/{chunk-LV6AD6XC.js → chunk-FT3LJZWZ.js} +2 -2
- package/dist/{chunk-IS3L67TF.js → chunk-FW5GTAUY.js} +6 -6
- package/dist/{chunk-VMTOLAZ5.js → chunk-FZZMNKVF.js} +5 -5
- package/dist/{chunk-FGZIEZEP.js → chunk-G6TKWNF2.js} +4 -4
- package/dist/{chunk-I6IFUFLW.js → chunk-G7MHDZTL.js} +2 -2
- package/dist/{chunk-KES3HNSU.js → chunk-GB2DQOZ7.js} +2 -2
- package/dist/{chunk-7HZ36QDH.js → chunk-GDWU7WF4.js} +9 -3
- package/dist/chunk-GDWU7WF4.js.map +1 -0
- package/dist/{chunk-W3IFJA35.js → chunk-GFYDOH7D.js} +3 -3
- package/dist/{chunk-M2M4IDFU.js → chunk-GXYOBTOY.js} +2 -2
- package/dist/{chunk-OLHAUGVQ.js → chunk-GZQQSTKR.js} +2 -2
- package/dist/{chunk-N2J24TJ3.js → chunk-HAWOS4SF.js} +2 -2
- package/dist/{chunk-S2VZUBM7.js → chunk-HCTHY66U.js} +6 -6
- package/dist/{chunk-ABVIMFSD.js → chunk-HG52QQ2L.js} +2 -2
- package/dist/{chunk-AMLHEKSV.js → chunk-HI7JPDD6.js} +5 -5
- package/dist/{chunk-F5OERPU4.js → chunk-HOWAMSUY.js} +6 -6
- package/dist/{chunk-3TZUZXY5.js → chunk-HTXYBKLK.js} +2 -2
- package/dist/{chunk-WW3F7DCX.js → chunk-IFOHCY4O.js} +2 -2
- package/dist/{chunk-S46LGAQ2.js → chunk-IJVBLU25.js} +2 -2
- package/dist/{chunk-ARGVUTTL.js → chunk-IPVGWENM.js} +2 -2
- package/dist/{chunk-MPWA55CF.js → chunk-IXXB7CTR.js} +9 -5
- package/dist/chunk-IXXB7CTR.js.map +1 -0
- package/dist/{chunk-MWXZXCVX.js → chunk-J43PARXM.js} +6 -6
- package/dist/{chunk-UYKIUUWP.js → chunk-JJTJ7DCV.js} +2 -2
- package/dist/{chunk-HQCZT6TO.js → chunk-JVOEVTCZ.js} +5 -5
- package/dist/{chunk-RZ3P4X2I.js → chunk-K62L5JFC.js} +25 -4
- package/dist/chunk-K62L5JFC.js.map +1 -0
- package/dist/{chunk-2365CQJU.js → chunk-KAQDWEG6.js} +2 -2
- package/dist/{chunk-TB5CRHTF.js → chunk-KEPLO2AB.js} +2 -2
- package/dist/chunk-KNW63H63.js +263 -0
- package/dist/chunk-KNW63H63.js.map +1 -0
- package/dist/{chunk-PVIQDBUN.js → chunk-KUQ4XHVV.js} +2 -2
- package/dist/{chunk-DAFFZED3.js → chunk-KWBMM6MJ.js} +2 -2
- package/dist/{chunk-QPCHABOZ.js → chunk-L5YGVLPH.js} +8 -4
- package/dist/chunk-L5YGVLPH.js.map +1 -0
- package/dist/{chunk-JJYECKEL.js → chunk-LFECE4R7.js} +2 -2
- package/dist/{chunk-LXIPBHNJ.js → chunk-LKTJ26ST.js} +2 -2
- package/dist/chunk-LNZJJFZQ.js +41 -0
- package/dist/chunk-LNZJJFZQ.js.map +1 -0
- package/dist/{chunk-56JF5PZK.js → chunk-LYVTJLCF.js} +4 -4
- package/dist/{chunk-EYFDIUVR.js → chunk-M4G4LRQK.js} +2 -2
- package/dist/{chunk-TJUWSQYQ.js → chunk-MDU5Q2HW.js} +3 -2
- package/dist/{chunk-TJUWSQYQ.js.map → chunk-MDU5Q2HW.js.map} +1 -1
- package/dist/{chunk-KMMFN24G.js → chunk-MKHNLRVX.js} +4 -4
- package/dist/{chunk-4IG73U2X.js → chunk-MSPLIRBH.js} +2 -2
- package/dist/{chunk-55MYYWOV.js → chunk-O4UXH7BM.js} +7 -7
- package/dist/{chunk-DYHOBKPU.js → chunk-OA6T2ME3.js} +5 -5
- package/dist/{chunk-VNMD6BA4.js → chunk-OFRQMFWD.js} +3 -3
- package/dist/{chunk-LTJC7TGB.js → chunk-OHA2PAAA.js} +2 -2
- package/dist/{chunk-6D5AMANO.js → chunk-OV5NM4FY.js} +2 -2
- package/dist/{chunk-ZANWHTXH.js → chunk-OVJV2ZN7.js} +2 -2
- package/dist/{chunk-SKQPUAMK.js → chunk-PDWQJFMK.js} +6 -6
- package/dist/{chunk-6EZQLNPK.js → chunk-PGJIWCQR.js} +4 -4
- package/dist/{chunk-FRAFGRRD.js → chunk-PIELY4BJ.js} +1 -1
- package/dist/{chunk-BQBEN44R.js → chunk-PNAKRHRT.js} +2 -2
- package/dist/{chunk-3Z6JX7UN.js → chunk-PZJEF232.js} +2 -2
- package/dist/{chunk-6ATXOJVQ.js → chunk-QADTI63U.js} +4 -4
- package/dist/chunk-QAF76E6U.js +43 -0
- package/dist/chunk-QAF76E6U.js.map +1 -0
- package/dist/{chunk-4RF4BALN.js → chunk-R775ISK6.js} +4 -4
- package/dist/{chunk-YBAK2WN5.js → chunk-RFMQBIE6.js} +4 -4
- package/dist/{chunk-NQCTANF3.js → chunk-RKAX37F4.js} +14 -7
- package/dist/chunk-RKAX37F4.js.map +1 -0
- package/dist/{chunk-43EFQ3DU.js → chunk-RVBLOR32.js} +2 -2
- package/dist/{chunk-XNAI7QGU.js → chunk-SA3KLZDZ.js} +5 -5
- package/dist/{chunk-CAOL4AIB.js → chunk-SARK3GHS.js} +2 -2
- package/dist/chunk-SIY64A6O.js +60 -0
- package/dist/chunk-SIY64A6O.js.map +1 -0
- package/dist/{chunk-CQOJUYTT.js → chunk-SOXO2VN3.js} +3 -3
- package/dist/{chunk-Z4ZFJ565.js → chunk-SRAIV6U6.js} +3 -3
- package/dist/{chunk-5ZY3IIIG.js → chunk-TBQR5VCN.js} +11 -1
- package/dist/chunk-TBQR5VCN.js.map +1 -0
- package/dist/{chunk-6PU5P7QT.js → chunk-TDXEWGY2.js} +2 -2
- package/dist/{chunk-SB2SEGR6.js → chunk-TIM4PXWN.js} +3 -3
- package/dist/{chunk-OGSTMHT6.js → chunk-TTBLQZVT.js} +3 -3
- package/dist/{chunk-VHE7UEG5.js → chunk-UC7DLGMP.js} +2 -2
- package/dist/{chunk-TI4FGQYV.js → chunk-UHLGJHTD.js} +2 -2
- package/dist/{chunk-TAHO2LCU.js → chunk-UIZIEU4X.js} +3 -3
- package/dist/{chunk-F7LBTMCA.js → chunk-ULC4SCFC.js} +2 -2
- package/dist/{chunk-FORQEHRQ.js → chunk-UXVWGNPG.js} +2 -2
- package/dist/{chunk-3ZRK3BRN.js → chunk-UXYCBPCE.js} +12 -6
- package/dist/chunk-UXYCBPCE.js.map +1 -0
- package/dist/{chunk-L6YTVXGN.js → chunk-VCYYL23C.js} +4 -2
- package/dist/{chunk-L6YTVXGN.js.map → chunk-VCYYL23C.js.map} +1 -1
- package/dist/{chunk-KF3Q3C3P.js → chunk-VGIBWJ72.js} +2 -2
- package/dist/{chunk-I54YFYBS.js → chunk-VMACQT3T.js} +3 -3
- package/dist/{chunk-XOXXG7Q5.js → chunk-VWKMN3ZZ.js} +3 -2
- package/dist/{chunk-XOXXG7Q5.js.map → chunk-VWKMN3ZZ.js.map} +1 -1
- package/dist/{chunk-EXEBN5ZP.js → chunk-W56KN53D.js} +8 -8
- package/dist/{chunk-KURE5R7Z.js → chunk-WGK7VNCO.js} +2 -2
- package/dist/{chunk-UIS3E72B.js → chunk-WK577LQL.js} +3 -3
- package/dist/{chunk-G3WG77QY.js → chunk-WN6LR4HX.js} +21 -6
- package/dist/chunk-WN6LR4HX.js.map +1 -0
- package/dist/{chunk-LLPPIO3K.js → chunk-WNTXHLVJ.js} +2 -2
- package/dist/{chunk-PEVBSNCD.js → chunk-WPRQPKLV.js} +2 -2
- package/dist/{chunk-C347NNZJ.js → chunk-WVCHMTPG.js} +2 -2
- package/dist/{chunk-CSD6SWBZ.js → chunk-WYNGH2WL.js} +6 -6
- package/dist/{chunk-4L54KUZV.js → chunk-X5GCAXZS.js} +38 -16
- package/dist/chunk-X5GCAXZS.js.map +1 -0
- package/dist/{chunk-PJDAZG65.js → chunk-XA5ES25V.js} +3 -3
- package/dist/{chunk-L5RS6QAT.js → chunk-YBF2WUGQ.js} +2 -2
- package/dist/{chunk-FWTVIRZZ.js → chunk-YLZXIR6B.js} +4 -4
- package/dist/{chunk-STOZ6JB5.js → chunk-YQMJJ7AL.js} +33 -16
- package/dist/chunk-YQMJJ7AL.js.map +1 -0
- package/dist/{chunk-JOQGKXR5.js → chunk-Z2J4MRTF.js} +4 -4
- package/dist/{chunk-I4K5JMS4.js → chunk-ZDLC4BN4.js} +4 -2
- package/dist/chunk-ZDLC4BN4.js.map +1 -0
- package/dist/{chunk-TE6HAWDM.js → chunk-ZP2GPRNQ.js} +2 -2
- package/dist/{chunk-3PQL2EN5.js → chunk-ZW7Q3IRL.js} +6 -6
- package/dist/{chunk-M5Y42AZ4.js → chunk-ZX4ORMBC.js} +2 -2
- package/dist/data-display/Alert.js +9 -5
- package/dist/data-display/AlertDialog.js +3 -3
- package/dist/data-display/AsyncStateContainer.js +5 -5
- package/dist/data-display/Avatar.js +5 -5
- package/dist/data-display/Banner.js +3 -3
- package/dist/data-display/CardKit.js +19 -18
- package/dist/data-display/Carousel.js +6 -6
- package/dist/data-display/Chart.js +17 -17
- package/dist/data-display/DataGrid.js +2 -2
- package/dist/data-display/DataViews.js +78 -77
- package/dist/data-display/DayRuler.js +11 -11
- package/dist/data-display/EmptyState.js +2 -2
- package/dist/data-display/ErrorState.js +2 -2
- package/dist/data-display/FleetMap.js +12 -12
- package/dist/data-display/HoverCard.js +3 -3
- package/dist/data-display/LazyImage.js +2 -2
- package/dist/data-display/Lightbox.js +3 -3
- package/dist/data-display/LoadingState.js +2 -2
- package/dist/data-display/MapPreview.js +8 -8
- package/dist/data-display/RegionMap.js +5 -5
- package/dist/data-display/ScheduleGrid.js +10 -10
- package/dist/data-display/SectionOnboarding.js +4 -4
- package/dist/data-display/Sheet.js +6 -6
- package/dist/data-display/Stepper.js +2 -2
- package/dist/data-display/Table.js +4 -4
- package/dist/data-display/Timeline.js +2 -2
- package/dist/en-US.js +2 -2
- package/dist/feedback/ConfirmAction.js +9 -9
- package/dist/feedback/Dialog.js +2 -2
- package/dist/feedback/Modal.js +2 -2
- package/dist/feedback/NotificationStatusNotice.js +6 -5
- package/dist/feedback/SequenceResolver.js +12 -11
- package/dist/feedback/Sonner.js +2 -2
- package/dist/feedback/StackedModal.js +4 -4
- package/dist/feedback/Toast.js +2 -2
- package/dist/feedback/TutorialOverlay.js +2 -2
- package/dist/feedback/UsableModal.js +1 -1
- package/dist/form/AddressAutocomplete.js +7 -7
- package/dist/form/Autocomplete.js +2 -2
- package/dist/form/Calendar.js +10 -10
- package/dist/form/CategorySelect.js +4 -4
- package/dist/form/CodeEditor.js +3 -3
- package/dist/form/Command.js +4 -4
- package/dist/form/DateRangePicker.js +20 -15
- package/dist/form/RichTextEditor.js +5 -5
- package/dist/form/total-form.js +9 -9
- package/dist/layout/ContentToolbar.js +6 -6
- package/dist/layout/Dashboard.js +2 -2
- package/dist/layout/Drawer.js +2 -2
- package/dist/layout/SettingsLayout.js +2 -2
- package/dist/layout/TableFilter.js +2 -2
- package/dist/locales.js +4 -4
- package/dist/native/chunks/{chunk-QHW7JEPZ.js → chunk-O76COY56.js} +3 -2
- package/dist/native/chunks/{chunk-QHW7JEPZ.js.map → chunk-O76COY56.js.map} +1 -1
- package/dist/native/chunks/{chunk-FXA5DLKR.js → chunk-UQ272RI2.js} +3 -3
- package/dist/native/chunks/{chunk-IN3XZ7EK.js → chunk-X65TVC3B.js} +2 -2
- package/dist/native/data-display/Alert.js +10 -0
- package/dist/native/data-display/Alert.js.map +1 -1
- package/dist/native/data-display/Avatar.js +1 -1
- package/dist/native/data-display/Badge.js +1 -1
- package/dist/native/data-display/Chip.js +1 -1
- package/dist/native/data-display/EmptyState.js +3 -3
- package/dist/native/data-display/ErrorState.js +2 -2
- package/dist/native/data-display/FleetMap.js +3 -3
- package/dist/native/data-display/LoadingState.js +1 -1
- package/dist/native/feedback/Dialog.js +1 -1
- package/dist/native/form/Button.js +2 -2
- package/dist/native/form/Checkbox.js +1 -1
- package/dist/native/form/Input.js +1 -1
- package/dist/native/form/Switch.js +1 -1
- package/dist/navigation/AppHeader.js +10 -10
- package/dist/navigation/Breadcrumbs.js +2 -2
- package/dist/navigation/NavigationMenu.js +3 -3
- package/dist/navigation/SectionNav.js +5 -5
- package/dist/navigation/Tabs.js +1 -1
- package/dist/pt-BR.js +2 -2
- package/dist/social-login-button.js +2 -2
- package/dist/types/components/data-display/Alert/Alert.content.d.ts.map +1 -1
- package/dist/types/components/data-display/Alert/Alert.d.ts.map +1 -1
- package/dist/types/components/data-display/Alert/Alert.ink.d.ts +65 -0
- package/dist/types/components/data-display/Alert/Alert.ink.d.ts.map +1 -0
- package/dist/types/components/data-display/Alert/Alert.metrics.d.ts +73 -5
- package/dist/types/components/data-display/Alert/Alert.metrics.d.ts.map +1 -1
- package/dist/types/components/data-display/Alert/index.d.ts +1 -0
- package/dist/types/components/data-display/Alert/index.d.ts.map +1 -1
- package/dist/types/components/data-display/DataViews/data-views-day-input.d.ts +3 -1
- package/dist/types/components/data-display/DataViews/data-views-day-input.d.ts.map +1 -1
- package/dist/types/components/form/Calendar/Calendar.band.d.ts.map +1 -1
- package/dist/types/components/form/Calendar/Calendar.d.ts.map +1 -1
- package/dist/types/components/form/Calendar/Calendar.helpers.d.ts.map +1 -1
- package/dist/types/components/form/Calendar/Calendar.hooks.d.ts.map +1 -1
- package/dist/types/components/form/Calendar/Calendar.types.d.ts +24 -1
- package/dist/types/components/form/Calendar/Calendar.types.d.ts.map +1 -1
- package/dist/types/components/form/Calendar/CalendarDay.d.ts +6 -0
- package/dist/types/components/form/Calendar/CalendarDay.d.ts.map +1 -1
- package/dist/types/components/form/Calendar/CalendarDayCell.d.ts +11 -1
- package/dist/types/components/form/Calendar/CalendarDayCell.d.ts.map +1 -1
- package/dist/types/components/form/Calendar/CalendarMonth.d.ts +22 -0
- package/dist/types/components/form/Calendar/CalendarMonth.d.ts.map +1 -1
- package/dist/types/components/form/Calendar/index.d.ts +1 -1
- package/dist/types/components/form/Calendar/index.d.ts.map +1 -1
- package/dist/types/components/form/DateRangePicker/DateRangePicker.d.ts +1 -1
- package/dist/types/components/form/DateRangePicker/DateRangePicker.d.ts.map +1 -1
- package/dist/types/components/form/DateRangePicker/DateRangePicker.frame.d.ts +93 -0
- package/dist/types/components/form/DateRangePicker/DateRangePicker.frame.d.ts.map +1 -0
- package/dist/types/components/form/DateRangePicker/DateRangePicker.hooks.d.ts +1 -1
- package/dist/types/components/form/DateRangePicker/DateRangePicker.hooks.d.ts.map +1 -1
- package/dist/types/components/form/DateRangePicker/DateRangePicker.layout.d.ts +27 -0
- package/dist/types/components/form/DateRangePicker/DateRangePicker.layout.d.ts.map +1 -0
- package/dist/types/components/form/DateRangePicker/DateRangePicker.range.d.ts +8 -2
- package/dist/types/components/form/DateRangePicker/DateRangePicker.range.d.ts.map +1 -1
- package/dist/types/components/form/DateRangePicker/DateRangePicker.types.d.ts +90 -1
- package/dist/types/components/form/DateRangePicker/DateRangePicker.types.d.ts.map +1 -1
- package/dist/types/components/form/DateRangePicker/DateRangePickerFields.d.ts +7 -1
- package/dist/types/components/form/DateRangePicker/DateRangePickerFields.d.ts.map +1 -1
- package/dist/types/components/navigation/Tabs/Tabs.d.ts.map +1 -1
- package/dist/types/components/navigation/Tabs/Tabs.types.d.ts +18 -3
- package/dist/types/components/navigation/Tabs/Tabs.types.d.ts.map +1 -1
- package/dist/types/copy/labels.d.ts +6 -0
- package/dist/types/copy/labels.d.ts.map +1 -1
- package/dist/types/en-US.labels.d.ts.map +1 -1
- package/dist/types/pt-BR.labels.d.ts.map +1 -1
- package/dist/types-native/components/data-display/Alert/Alert.metrics.d.ts +73 -5
- package/dist/types-native/components/data-display/Alert/Alert.metrics.d.ts.map +1 -1
- package/dist/types-native/copy/labels.d.ts +6 -0
- package/dist/types-native/copy/labels.d.ts.map +1 -1
- package/dist/types-native/en-US.labels.d.ts.map +1 -1
- package/dist/typography/Code.js +2 -2
- package/dist/user-avatar.js +6 -6
- package/dist/utility/AnimatedIcon.js +2 -2
- package/dist/utility/InfiniteScroll.js +3 -3
- package/dist/utility/WorkflowStep.js +5 -5
- package/package.json +1 -1
- package/src/components/data-display/Alert/Alert.content.tsx +16 -1
- package/src/components/data-display/Alert/Alert.ink.ts +106 -0
- package/src/components/data-display/Alert/Alert.md +40 -0
- package/src/components/data-display/Alert/Alert.metrics.ts +57 -5
- package/src/components/data-display/Alert/Alert.tsx +18 -7
- package/src/components/data-display/Alert/index.ts +1 -0
- package/src/components/data-display/DataViews/data-views-day-input.tsx +4 -0
- package/src/components/form/Calendar/Calendar.band.ts +3 -0
- package/src/components/form/Calendar/Calendar.helpers.ts +2 -0
- package/src/components/form/Calendar/Calendar.hooks.ts +4 -2
- package/src/components/form/Calendar/Calendar.md +12 -1
- package/src/components/form/Calendar/Calendar.tsx +30 -10
- package/src/components/form/Calendar/Calendar.types.ts +27 -1
- package/src/components/form/Calendar/CalendarDay.tsx +85 -13
- package/src/components/form/Calendar/CalendarDayCell.tsx +17 -1
- package/src/components/form/Calendar/CalendarMonth.tsx +40 -4
- package/src/components/form/Calendar/CalendarSelectorsMonth.tsx +2 -2
- package/src/components/form/Calendar/index.ts +1 -0
- package/src/components/form/DateRangePicker/DateRangePicker.frame.ts +92 -0
- package/src/components/form/DateRangePicker/DateRangePicker.hooks.ts +43 -1
- package/src/components/form/DateRangePicker/DateRangePicker.layout.ts +69 -0
- package/src/components/form/DateRangePicker/DateRangePicker.md +77 -2
- package/src/components/form/DateRangePicker/DateRangePicker.range.ts +10 -2
- package/src/components/form/DateRangePicker/DateRangePicker.tsx +177 -57
- package/src/components/form/DateRangePicker/DateRangePicker.types.ts +88 -1
- package/src/components/form/DateRangePicker/DateRangePickerFields.tsx +13 -2
- package/src/components/navigation/Tabs/Tabs.md +22 -1
- package/src/components/navigation/Tabs/Tabs.tsx +25 -9
- package/src/components/navigation/Tabs/Tabs.types.ts +18 -2
- package/src/copy/labels.ts +6 -0
- package/src/en-US.labels.ts +1 -0
- package/src/pt-BR.labels.ts +1 -0
- package/dist/chunk-3CSKB57B.js +0 -184
- package/dist/chunk-3CSKB57B.js.map +0 -1
- package/dist/chunk-3ZRK3BRN.js.map +0 -1
- package/dist/chunk-4L54KUZV.js.map +0 -1
- package/dist/chunk-5ZY3IIIG.js.map +0 -1
- package/dist/chunk-7HZ36QDH.js.map +0 -1
- package/dist/chunk-G3WG77QY.js.map +0 -1
- package/dist/chunk-H2UUMZQR.js.map +0 -1
- package/dist/chunk-HBRBIPNF.js.map +0 -1
- package/dist/chunk-I4K5JMS4.js.map +0 -1
- package/dist/chunk-MPWA55CF.js.map +0 -1
- package/dist/chunk-NQCTANF3.js.map +0 -1
- package/dist/chunk-NUGT7LMR.js +0 -1
- package/dist/chunk-QPCHABOZ.js.map +0 -1
- package/dist/chunk-QSOCOXVL.js.map +0 -1
- package/dist/chunk-RZ3P4X2I.js.map +0 -1
- package/dist/chunk-STOZ6JB5.js.map +0 -1
- package/dist/chunk-TPMT3J32.js.map +0 -1
- /package/dist/{chunk-NUGT7LMR.js.map → _internal/components/data-display/Alert/Alert.ink.js.map} +0 -0
- /package/dist/{chunk-UBVKMM3V.js.map → chunk-2A5GHOL3.js.map} +0 -0
- /package/dist/{chunk-QIP37Y2C.js.map → chunk-2RC6EAGD.js.map} +0 -0
- /package/dist/{chunk-YGLAGY74.js.map → chunk-332KWE5H.js.map} +0 -0
- /package/dist/{chunk-HNEZWVDR.js.map → chunk-364NT46L.js.map} +0 -0
- /package/dist/{chunk-RLTGD5WJ.js.map → chunk-3AKQHYTM.js.map} +0 -0
- /package/dist/{chunk-5I75WRXT.js.map → chunk-3CXRHRGE.js.map} +0 -0
- /package/dist/{chunk-G6NMSBSQ.js.map → chunk-3LD42RNV.js.map} +0 -0
- /package/dist/{chunk-3BMG6VMB.js.map → chunk-3N2HWNKT.js.map} +0 -0
- /package/dist/{chunk-MSJP2AEN.js.map → chunk-3N3W4TID.js.map} +0 -0
- /package/dist/{chunk-ZBUMGMWP.js.map → chunk-3R5MCSYO.js.map} +0 -0
- /package/dist/{chunk-YNVTUQ5B.js.map → chunk-3V7OTBUZ.js.map} +0 -0
- /package/dist/{chunk-LZNUBQ5I.js.map → chunk-4A454JZN.js.map} +0 -0
- /package/dist/{chunk-RCTHCXS6.js.map → chunk-4N4M237A.js.map} +0 -0
- /package/dist/{chunk-SW7JCF4Z.js.map → chunk-4P63RSSY.js.map} +0 -0
- /package/dist/{chunk-7QKFMMWK.js.map → chunk-4W4C4Q46.js.map} +0 -0
- /package/dist/{chunk-B32XH7NK.js.map → chunk-4WVUX7IU.js.map} +0 -0
- /package/dist/{chunk-Z6QFIRD7.js.map → chunk-4X2TOMK6.js.map} +0 -0
- /package/dist/{chunk-MYTV353T.js.map → chunk-4Y3QLISA.js.map} +0 -0
- /package/dist/{chunk-IMYKJTVX.js.map → chunk-5J6LN2O7.js.map} +0 -0
- /package/dist/{chunk-QWI7IPYJ.js.map → chunk-5V7IZBRY.js.map} +0 -0
- /package/dist/{chunk-Y7BOP7VZ.js.map → chunk-67GTAPK6.js.map} +0 -0
- /package/dist/{chunk-T77OVQEO.js.map → chunk-6D7CASMK.js.map} +0 -0
- /package/dist/{chunk-YNZUYZ2O.js.map → chunk-6FGP7RMV.js.map} +0 -0
- /package/dist/{chunk-YVDNCV2D.js.map → chunk-6RYSSNOO.js.map} +0 -0
- /package/dist/{chunk-CPQJFHNZ.js.map → chunk-74IH3ZGD.js.map} +0 -0
- /package/dist/{chunk-UQ5GJPVZ.js.map → chunk-76GAXLNC.js.map} +0 -0
- /package/dist/{chunk-X4J576GR.js.map → chunk-7LFST3PW.js.map} +0 -0
- /package/dist/{chunk-XCUHGPPZ.js.map → chunk-7MLT66DE.js.map} +0 -0
- /package/dist/{chunk-EOIRU62W.js.map → chunk-7P544IWT.js.map} +0 -0
- /package/dist/{chunk-XTYBJAZG.js.map → chunk-7TENMQNQ.js.map} +0 -0
- /package/dist/{chunk-EB25XITI.js.map → chunk-A27J4CIZ.js.map} +0 -0
- /package/dist/{chunk-2KSFBZ2H.js.map → chunk-ABZJNKR6.js.map} +0 -0
- /package/dist/{chunk-GTE4TW3W.js.map → chunk-AESKKFA5.js.map} +0 -0
- /package/dist/{chunk-6LOWZCH7.js.map → chunk-AHXQN4VL.js.map} +0 -0
- /package/dist/{chunk-U2SAW6DH.js.map → chunk-B4OZU7J4.js.map} +0 -0
- /package/dist/{chunk-DDGYTY4E.js.map → chunk-BIHZXB5P.js.map} +0 -0
- /package/dist/{chunk-4QGMUHAU.js.map → chunk-BWNZVMBT.js.map} +0 -0
- /package/dist/{chunk-CY4XIZNW.js.map → chunk-CAH5XNHT.js.map} +0 -0
- /package/dist/{chunk-KILA7LCC.js.map → chunk-CFDWKQZT.js.map} +0 -0
- /package/dist/{chunk-USHVG4UQ.js.map → chunk-CGLMWS7K.js.map} +0 -0
- /package/dist/{chunk-EWFBDAB7.js.map → chunk-CKGRSCRT.js.map} +0 -0
- /package/dist/{chunk-YOLLISEY.js.map → chunk-CRD2WCU7.js.map} +0 -0
- /package/dist/{chunk-L5KPBMMF.js.map → chunk-CXL3TT3K.js.map} +0 -0
- /package/dist/{chunk-KOGJBAFI.js.map → chunk-D3KLIC5N.js.map} +0 -0
- /package/dist/{chunk-2SBQ47RI.js.map → chunk-D4JL5725.js.map} +0 -0
- /package/dist/{chunk-NI3MC742.js.map → chunk-DBJLYURK.js.map} +0 -0
- /package/dist/{chunk-75GAQL2Q.js.map → chunk-DKPELKGL.js.map} +0 -0
- /package/dist/{chunk-NGXL4R54.js.map → chunk-E4MJA52O.js.map} +0 -0
- /package/dist/{chunk-5HXVXW22.js.map → chunk-EGBQR5GH.js.map} +0 -0
- /package/dist/{chunk-FTYOCFTV.js.map → chunk-EGYJUJMR.js.map} +0 -0
- /package/dist/{chunk-7XSCEHGA.js.map → chunk-EOQ6EKTS.js.map} +0 -0
- /package/dist/{chunk-6AKDAQSS.js.map → chunk-ERAMSYPR.js.map} +0 -0
- /package/dist/{chunk-WYRH6OSN.js.map → chunk-F5EH5BJN.js.map} +0 -0
- /package/dist/{chunk-QCYQL3ST.js.map → chunk-FJLPVPRG.js.map} +0 -0
- /package/dist/{chunk-MAHY7PK3.js.map → chunk-FQMLTCXT.js.map} +0 -0
- /package/dist/{chunk-TMINUTQQ.js.map → chunk-FRQGZIYU.js.map} +0 -0
- /package/dist/{chunk-LV6AD6XC.js.map → chunk-FT3LJZWZ.js.map} +0 -0
- /package/dist/{chunk-IS3L67TF.js.map → chunk-FW5GTAUY.js.map} +0 -0
- /package/dist/{chunk-VMTOLAZ5.js.map → chunk-FZZMNKVF.js.map} +0 -0
- /package/dist/{chunk-FGZIEZEP.js.map → chunk-G6TKWNF2.js.map} +0 -0
- /package/dist/{chunk-I6IFUFLW.js.map → chunk-G7MHDZTL.js.map} +0 -0
- /package/dist/{chunk-KES3HNSU.js.map → chunk-GB2DQOZ7.js.map} +0 -0
- /package/dist/{chunk-W3IFJA35.js.map → chunk-GFYDOH7D.js.map} +0 -0
- /package/dist/{chunk-M2M4IDFU.js.map → chunk-GXYOBTOY.js.map} +0 -0
- /package/dist/{chunk-OLHAUGVQ.js.map → chunk-GZQQSTKR.js.map} +0 -0
- /package/dist/{chunk-N2J24TJ3.js.map → chunk-HAWOS4SF.js.map} +0 -0
- /package/dist/{chunk-S2VZUBM7.js.map → chunk-HCTHY66U.js.map} +0 -0
- /package/dist/{chunk-ABVIMFSD.js.map → chunk-HG52QQ2L.js.map} +0 -0
- /package/dist/{chunk-AMLHEKSV.js.map → chunk-HI7JPDD6.js.map} +0 -0
- /package/dist/{chunk-F5OERPU4.js.map → chunk-HOWAMSUY.js.map} +0 -0
- /package/dist/{chunk-3TZUZXY5.js.map → chunk-HTXYBKLK.js.map} +0 -0
- /package/dist/{chunk-WW3F7DCX.js.map → chunk-IFOHCY4O.js.map} +0 -0
- /package/dist/{chunk-S46LGAQ2.js.map → chunk-IJVBLU25.js.map} +0 -0
- /package/dist/{chunk-ARGVUTTL.js.map → chunk-IPVGWENM.js.map} +0 -0
- /package/dist/{chunk-MWXZXCVX.js.map → chunk-J43PARXM.js.map} +0 -0
- /package/dist/{chunk-UYKIUUWP.js.map → chunk-JJTJ7DCV.js.map} +0 -0
- /package/dist/{chunk-HQCZT6TO.js.map → chunk-JVOEVTCZ.js.map} +0 -0
- /package/dist/{chunk-2365CQJU.js.map → chunk-KAQDWEG6.js.map} +0 -0
- /package/dist/{chunk-TB5CRHTF.js.map → chunk-KEPLO2AB.js.map} +0 -0
- /package/dist/{chunk-PVIQDBUN.js.map → chunk-KUQ4XHVV.js.map} +0 -0
- /package/dist/{chunk-DAFFZED3.js.map → chunk-KWBMM6MJ.js.map} +0 -0
- /package/dist/{chunk-JJYECKEL.js.map → chunk-LFECE4R7.js.map} +0 -0
- /package/dist/{chunk-LXIPBHNJ.js.map → chunk-LKTJ26ST.js.map} +0 -0
- /package/dist/{chunk-56JF5PZK.js.map → chunk-LYVTJLCF.js.map} +0 -0
- /package/dist/{chunk-EYFDIUVR.js.map → chunk-M4G4LRQK.js.map} +0 -0
- /package/dist/{chunk-KMMFN24G.js.map → chunk-MKHNLRVX.js.map} +0 -0
- /package/dist/{chunk-4IG73U2X.js.map → chunk-MSPLIRBH.js.map} +0 -0
- /package/dist/{chunk-55MYYWOV.js.map → chunk-O4UXH7BM.js.map} +0 -0
- /package/dist/{chunk-DYHOBKPU.js.map → chunk-OA6T2ME3.js.map} +0 -0
- /package/dist/{chunk-VNMD6BA4.js.map → chunk-OFRQMFWD.js.map} +0 -0
- /package/dist/{chunk-LTJC7TGB.js.map → chunk-OHA2PAAA.js.map} +0 -0
- /package/dist/{chunk-6D5AMANO.js.map → chunk-OV5NM4FY.js.map} +0 -0
- /package/dist/{chunk-ZANWHTXH.js.map → chunk-OVJV2ZN7.js.map} +0 -0
- /package/dist/{chunk-SKQPUAMK.js.map → chunk-PDWQJFMK.js.map} +0 -0
- /package/dist/{chunk-6EZQLNPK.js.map → chunk-PGJIWCQR.js.map} +0 -0
- /package/dist/{chunk-FRAFGRRD.js.map → chunk-PIELY4BJ.js.map} +0 -0
- /package/dist/{chunk-BQBEN44R.js.map → chunk-PNAKRHRT.js.map} +0 -0
- /package/dist/{chunk-3Z6JX7UN.js.map → chunk-PZJEF232.js.map} +0 -0
- /package/dist/{chunk-6ATXOJVQ.js.map → chunk-QADTI63U.js.map} +0 -0
- /package/dist/{chunk-4RF4BALN.js.map → chunk-R775ISK6.js.map} +0 -0
- /package/dist/{chunk-YBAK2WN5.js.map → chunk-RFMQBIE6.js.map} +0 -0
- /package/dist/{chunk-43EFQ3DU.js.map → chunk-RVBLOR32.js.map} +0 -0
- /package/dist/{chunk-XNAI7QGU.js.map → chunk-SA3KLZDZ.js.map} +0 -0
- /package/dist/{chunk-CAOL4AIB.js.map → chunk-SARK3GHS.js.map} +0 -0
- /package/dist/{chunk-CQOJUYTT.js.map → chunk-SOXO2VN3.js.map} +0 -0
- /package/dist/{chunk-Z4ZFJ565.js.map → chunk-SRAIV6U6.js.map} +0 -0
- /package/dist/{chunk-6PU5P7QT.js.map → chunk-TDXEWGY2.js.map} +0 -0
- /package/dist/{chunk-SB2SEGR6.js.map → chunk-TIM4PXWN.js.map} +0 -0
- /package/dist/{chunk-OGSTMHT6.js.map → chunk-TTBLQZVT.js.map} +0 -0
- /package/dist/{chunk-VHE7UEG5.js.map → chunk-UC7DLGMP.js.map} +0 -0
- /package/dist/{chunk-TI4FGQYV.js.map → chunk-UHLGJHTD.js.map} +0 -0
- /package/dist/{chunk-TAHO2LCU.js.map → chunk-UIZIEU4X.js.map} +0 -0
- /package/dist/{chunk-F7LBTMCA.js.map → chunk-ULC4SCFC.js.map} +0 -0
- /package/dist/{chunk-FORQEHRQ.js.map → chunk-UXVWGNPG.js.map} +0 -0
- /package/dist/{chunk-KF3Q3C3P.js.map → chunk-VGIBWJ72.js.map} +0 -0
- /package/dist/{chunk-I54YFYBS.js.map → chunk-VMACQT3T.js.map} +0 -0
- /package/dist/{chunk-EXEBN5ZP.js.map → chunk-W56KN53D.js.map} +0 -0
- /package/dist/{chunk-KURE5R7Z.js.map → chunk-WGK7VNCO.js.map} +0 -0
- /package/dist/{chunk-UIS3E72B.js.map → chunk-WK577LQL.js.map} +0 -0
- /package/dist/{chunk-LLPPIO3K.js.map → chunk-WNTXHLVJ.js.map} +0 -0
- /package/dist/{chunk-PEVBSNCD.js.map → chunk-WPRQPKLV.js.map} +0 -0
- /package/dist/{chunk-C347NNZJ.js.map → chunk-WVCHMTPG.js.map} +0 -0
- /package/dist/{chunk-CSD6SWBZ.js.map → chunk-WYNGH2WL.js.map} +0 -0
- /package/dist/{chunk-PJDAZG65.js.map → chunk-XA5ES25V.js.map} +0 -0
- /package/dist/{chunk-L5RS6QAT.js.map → chunk-YBF2WUGQ.js.map} +0 -0
- /package/dist/{chunk-FWTVIRZZ.js.map → chunk-YLZXIR6B.js.map} +0 -0
- /package/dist/{chunk-JOQGKXR5.js.map → chunk-Z2J4MRTF.js.map} +0 -0
- /package/dist/{chunk-TE6HAWDM.js.map → chunk-ZP2GPRNQ.js.map} +0 -0
- /package/dist/{chunk-3PQL2EN5.js.map → chunk-ZW7Q3IRL.js.map} +0 -0
- /package/dist/{chunk-M5Y42AZ4.js.map → chunk-ZX4ORMBC.js.map} +0 -0
- /package/dist/native/chunks/{chunk-FXA5DLKR.js.map → chunk-UQ272RI2.js.map} +0 -0
- /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
|
|
98
|
-
*
|
|
99
|
-
*
|
|
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
|
|
121
|
-
*
|
|
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,
|
|
52
|
-
*
|
|
53
|
-
*
|
|
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
|
|
65
|
-
// the
|
|
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`.
|
|
@@ -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
|
|
12
|
-
//
|
|
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
|
|
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
|
-
'
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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={
|
|
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
|
|
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.
|