@mui/x-date-pickers 7.22.2 → 8.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AdapterDateFns/AdapterDateFns.d.ts +1 -1
- package/AdapterDateFnsBase/AdapterDateFnsBase.d.ts +3 -3
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +1 -1
- package/AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.d.ts +1 -1
- package/AdapterDateFnsV3/AdapterDateFnsV3.d.ts +1 -1
- package/AdapterDayjs/AdapterDayjs.d.ts +2 -2
- package/AdapterLuxon/AdapterLuxon.d.ts +2 -2
- package/AdapterMoment/AdapterMoment.d.ts +2 -2
- package/AdapterMomentHijri/AdapterMomentHijri.d.ts +2 -2
- package/AdapterMomentJalaali/AdapterMomentJalaali.d.ts +2 -2
- package/CHANGELOG.md +142 -155
- package/DateCalendar/DateCalendar.d.ts +1 -2
- package/DateCalendar/DateCalendar.js +20 -22
- package/DateCalendar/DateCalendar.types.d.ts +21 -31
- package/DateCalendar/DayCalendar.d.ts +25 -24
- package/DateCalendar/DayCalendar.js +13 -10
- package/DateCalendar/index.d.ts +1 -0
- package/DateCalendar/useCalendarState.d.ts +16 -16
- package/DateCalendar/useIsDateDisabled.d.ts +2 -2
- package/DateField/DateField.d.ts +1 -2
- package/DateField/DateField.js +8 -10
- package/DateField/DateField.types.d.ts +8 -9
- package/DateField/index.d.ts +1 -1
- package/DateField/useDateField.d.ts +1 -2
- package/DatePicker/DatePicker.d.ts +1 -2
- package/DatePicker/DatePicker.js +15 -14
- package/DatePicker/DatePicker.types.d.ts +10 -11
- package/DatePicker/DatePickerToolbar.d.ts +2 -2
- package/DatePicker/DatePickerToolbar.js +12 -2
- package/DatePicker/shared.d.ts +11 -11
- package/DateTimeField/DateTimeField.d.ts +1 -2
- package/DateTimeField/DateTimeField.js +9 -12
- package/DateTimeField/DateTimeField.types.d.ts +9 -14
- package/DateTimeField/index.d.ts +1 -1
- package/DateTimeField/useDateTimeField.d.ts +1 -2
- package/DateTimePicker/DateTimePicker.d.ts +1 -2
- package/DateTimePicker/DateTimePicker.js +16 -16
- package/DateTimePicker/DateTimePicker.types.d.ts +10 -13
- package/DateTimePicker/DateTimePickerTabs.d.ts +1 -2
- package/DateTimePicker/DateTimePickerTabs.js +2 -2
- package/DateTimePicker/DateTimePickerToolbar.d.ts +3 -3
- package/DateTimePicker/DateTimePickerToolbar.js +12 -2
- package/DateTimePicker/shared.d.ts +12 -12
- package/DesktopDatePicker/DesktopDatePicker.d.ts +1 -2
- package/DesktopDatePicker/DesktopDatePicker.js +17 -16
- package/DesktopDatePicker/DesktopDatePicker.types.d.ts +7 -7
- package/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +1 -2
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +18 -18
- package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +8 -8
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +1 -2
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +10 -0
- package/DesktopTimePicker/DesktopTimePicker.d.ts +1 -2
- package/DesktopTimePicker/DesktopTimePicker.js +11 -6
- package/DesktopTimePicker/DesktopTimePicker.types.d.ts +8 -8
- package/DigitalClock/DigitalClock.d.ts +1 -2
- package/DigitalClock/DigitalClock.js +7 -6
- package/DigitalClock/DigitalClock.types.d.ts +4 -4
- package/LocalizationProvider/LocalizationProvider.d.ts +12 -12
- package/MobileDatePicker/MobileDatePicker.d.ts +1 -2
- package/MobileDatePicker/MobileDatePicker.js +17 -16
- package/MobileDatePicker/MobileDatePicker.types.d.ts +7 -7
- package/MobileDateTimePicker/MobileDateTimePicker.d.ts +2 -2
- package/MobileDateTimePicker/MobileDateTimePicker.js +18 -18
- package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +7 -7
- package/MobileTimePicker/MobileTimePicker.d.ts +2 -2
- package/MobileTimePicker/MobileTimePicker.js +11 -6
- package/MobileTimePicker/MobileTimePicker.types.d.ts +7 -7
- package/MonthCalendar/MonthCalendar.d.ts +3 -4
- package/MonthCalendar/MonthCalendar.js +17 -14
- package/MonthCalendar/MonthCalendar.types.d.ts +14 -15
- package/MonthCalendar/PickersMonth.js +17 -13
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.d.ts +1 -2
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +7 -6
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +3 -4
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.d.ts +9 -9
- package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +2 -3
- package/PickersActionBar/PickersActionBar.js +2 -2
- package/PickersCalendarHeader/PickersCalendarHeader.d.ts +1 -2
- package/PickersCalendarHeader/PickersCalendarHeader.js +2 -2
- package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +9 -9
- package/PickersDay/PickersDay.d.ts +8 -8
- package/PickersLayout/PickersLayout.d.ts +2 -3
- package/PickersLayout/PickersLayout.js +10 -0
- package/PickersLayout/PickersLayout.types.d.ts +14 -17
- package/PickersLayout/index.d.ts +1 -1
- package/PickersLayout/usePickerLayout.d.ts +1 -2
- package/PickersLayout/usePickerLayout.js +17 -18
- package/README.md +2 -2
- package/StaticDatePicker/StaticDatePicker.d.ts +1 -2
- package/StaticDatePicker/StaticDatePicker.js +14 -13
- package/StaticDatePicker/StaticDatePicker.types.d.ts +7 -7
- package/StaticDateTimePicker/StaticDateTimePicker.d.ts +1 -2
- package/StaticDateTimePicker/StaticDateTimePicker.js +15 -15
- package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +7 -7
- package/StaticTimePicker/StaticTimePicker.d.ts +1 -2
- package/StaticTimePicker/StaticTimePicker.js +8 -3
- package/StaticTimePicker/StaticTimePicker.types.d.ts +7 -7
- package/TimeClock/Clock.d.ts +4 -5
- package/TimeClock/Clock.js +3 -3
- package/TimeClock/ClockNumbers.d.ts +5 -5
- package/TimeClock/TimeClock.d.ts +1 -2
- package/TimeClock/TimeClock.js +7 -6
- package/TimeClock/TimeClock.types.d.ts +4 -4
- package/TimeField/TimeField.d.ts +1 -2
- package/TimeField/TimeField.js +6 -6
- package/TimeField/TimeField.types.d.ts +9 -14
- package/TimeField/index.d.ts +1 -1
- package/TimeField/useTimeField.d.ts +1 -2
- package/TimePicker/TimePicker.d.ts +1 -2
- package/TimePicker/TimePicker.js +9 -4
- package/TimePicker/TimePicker.types.d.ts +10 -13
- package/TimePicker/TimePickerToolbar.d.ts +2 -2
- package/TimePicker/TimePickerToolbar.js +12 -2
- package/TimePicker/shared.d.ts +10 -10
- package/YearCalendar/PickersYear.js +17 -13
- package/YearCalendar/YearCalendar.d.ts +1 -2
- package/YearCalendar/YearCalendar.js +17 -14
- package/YearCalendar/YearCalendar.types.d.ts +14 -15
- package/dateViewRenderers/dateViewRenderers.d.ts +3 -3
- package/hooks/index.d.ts +2 -2
- package/hooks/index.js +2 -2
- package/hooks/useClearableField.js +4 -3
- package/hooks/useParsedFormat.d.ts +2 -3
- package/hooks/useParsedFormat.js +2 -2
- package/hooks/usePickerContext.d.ts +4 -0
- package/hooks/usePickerContext.js +15 -0
- package/hooks/usePickerTranslations.d.ts +1 -0
- package/{modern/hooks/usePickersTranslations.js → hooks/usePickerTranslations.js} +1 -1
- package/index.js +1 -1
- package/internals/components/{PickersProvider.d.ts → PickerProvider.d.ts} +15 -8
- package/internals/components/PickerProvider.js +38 -0
- package/internals/hooks/date-helpers-hooks.d.ts +6 -6
- package/internals/hooks/defaultizedFieldProps.d.ts +7 -8
- package/internals/hooks/useClockReferenceDate.d.ts +5 -5
- package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +1 -2
- package/internals/hooks/useDesktopPicker/useDesktopPicker.js +21 -17
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +15 -15
- package/internals/hooks/useField/buildSectionsFromFormat.d.ts +5 -5
- package/internals/hooks/useField/useField.d.ts +3 -3
- package/internals/hooks/useField/useField.js +1 -1
- package/internals/hooks/useField/useField.types.d.ts +38 -48
- package/internals/hooks/useField/useField.utils.d.ts +13 -13
- package/internals/hooks/useField/useField.utils.js +2 -1
- package/internals/hooks/useField/useFieldCharacterEditing.d.ts +4 -4
- package/internals/hooks/useField/useFieldState.d.ts +4 -4
- package/internals/hooks/useField/useFieldState.js +3 -3
- package/internals/hooks/useField/useFieldV7TextField.js +2 -2
- package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +1 -2
- package/internals/hooks/useMobilePicker/useMobilePicker.js +23 -18
- package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +12 -12
- package/internals/hooks/usePicker/usePicker.d.ts +2 -2
- package/internals/hooks/usePicker/usePicker.js +12 -4
- package/internals/hooks/usePicker/usePicker.types.d.ts +7 -5
- package/internals/hooks/usePicker/usePickerLayoutProps.d.ts +2 -3
- package/internals/hooks/usePicker/usePickerOwnerState.d.ts +4 -3
- package/internals/hooks/usePicker/usePickerOwnerState.js +9 -6
- package/internals/hooks/usePicker/usePickerProvider.d.ts +10 -0
- package/internals/hooks/usePicker/usePickerProvider.js +21 -0
- package/internals/hooks/usePicker/usePickerValue.d.ts +2 -2
- package/internals/hooks/usePicker/usePickerValue.js +2 -7
- package/internals/hooks/usePicker/usePickerValue.types.d.ts +32 -34
- package/internals/hooks/usePicker/usePickerViews.d.ts +6 -11
- package/internals/hooks/usePickerPrivateContext.d.ts +4 -0
- package/internals/hooks/usePickerPrivateContext.js +9 -0
- package/internals/hooks/useStaticPicker/useStaticPicker.d.ts +1 -2
- package/internals/hooks/useStaticPicker/useStaticPicker.js +5 -4
- package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +6 -6
- package/internals/hooks/useUtils.d.ts +7 -7
- package/internals/hooks/useValueWithTimezone.d.ts +5 -5
- package/internals/hooks/useViews.d.ts +3 -3
- package/internals/hooks/useViews.js +1 -1
- package/internals/index.d.ts +6 -4
- package/internals/index.js +2 -1
- package/internals/models/fields.d.ts +32 -7
- package/internals/models/formProps.d.ts +14 -0
- package/internals/models/helpers.d.ts +0 -4
- package/internals/models/index.d.ts +2 -0
- package/internals/models/index.js +3 -1
- package/internals/models/props/basePickerProps.d.ts +5 -6
- package/internals/models/props/{clock.d.ts → time.d.ts} +10 -17
- package/internals/models/props/toolbar.d.ts +2 -3
- package/internals/models/validation.d.ts +21 -25
- package/internals/models/value.d.ts +3 -0
- package/internals/models/value.js +1 -0
- package/internals/utils/date-time-utils.d.ts +7 -7
- package/internals/utils/date-utils.d.ts +16 -16
- package/internals/utils/getDefaultReferenceDate.d.ts +10 -10
- package/internals/utils/time-utils.d.ts +5 -5
- package/internals/utils/valueManagers.d.ts +3 -3
- package/locales/beBY.d.ts +3 -3
- package/locales/beBY.js +3 -3
- package/locales/bgBG.d.ts +3 -3
- package/locales/bgBG.js +3 -3
- package/locales/caES.d.ts +3 -3
- package/locales/caES.js +3 -3
- package/locales/csCZ.d.ts +3 -3
- package/locales/csCZ.js +3 -3
- package/locales/daDK.d.ts +3 -3
- package/locales/daDK.js +3 -3
- package/locales/deDE.d.ts +3 -3
- package/locales/deDE.js +3 -3
- package/locales/elGR.d.ts +3 -3
- package/locales/elGR.js +12 -13
- package/locales/enUS.d.ts +4 -4
- package/locales/enUS.js +3 -3
- package/locales/esES.d.ts +3 -3
- package/locales/esES.js +3 -3
- package/locales/eu.d.ts +3 -3
- package/locales/eu.js +3 -3
- package/locales/faIR.d.ts +3 -3
- package/locales/faIR.js +3 -3
- package/locales/fiFI.d.ts +3 -3
- package/locales/fiFI.js +3 -3
- package/locales/frFR.d.ts +3 -3
- package/locales/frFR.js +3 -3
- package/locales/heIL.d.ts +3 -3
- package/locales/heIL.js +3 -3
- package/locales/hrHR.d.ts +3 -3
- package/locales/hrHR.js +3 -3
- package/locales/huHU.d.ts +3 -3
- package/locales/huHU.js +3 -3
- package/locales/isIS.d.ts +3 -3
- package/locales/isIS.js +3 -3
- package/locales/itIT.d.ts +3 -3
- package/locales/itIT.js +3 -3
- package/locales/jaJP.d.ts +3 -3
- package/locales/jaJP.js +3 -3
- package/locales/koKR.d.ts +3 -3
- package/locales/koKR.js +3 -3
- package/locales/kzKZ.d.ts +3 -3
- package/locales/kzKZ.js +3 -3
- package/locales/mk.d.ts +3 -3
- package/locales/mk.js +3 -3
- package/locales/nbNO.d.ts +3 -3
- package/locales/nbNO.js +3 -3
- package/locales/nlNL.d.ts +3 -3
- package/locales/nlNL.js +3 -3
- package/locales/nnNO.d.ts +3 -3
- package/locales/nnNO.js +3 -3
- package/locales/plPL.d.ts +3 -3
- package/locales/plPL.js +3 -3
- package/locales/ptBR.d.ts +3 -3
- package/locales/ptBR.js +5 -3
- package/locales/ptPT.d.ts +3 -3
- package/locales/ptPT.js +3 -3
- package/locales/roRO.d.ts +3 -3
- package/locales/roRO.js +3 -3
- package/locales/ruRU.d.ts +3 -3
- package/locales/ruRU.js +3 -3
- package/locales/skSK.d.ts +3 -3
- package/locales/skSK.js +3 -3
- package/locales/svSE.d.ts +3 -3
- package/locales/svSE.js +3 -3
- package/locales/trTR.d.ts +3 -3
- package/locales/trTR.js +3 -3
- package/locales/ukUA.d.ts +3 -3
- package/locales/ukUA.js +3 -3
- package/locales/urPK.d.ts +3 -3
- package/locales/urPK.js +3 -3
- package/locales/utils/getPickersLocalization.d.ts +9 -9
- package/locales/utils/getPickersLocalization.js +1 -1
- package/locales/utils/pickersLocaleTextApi.d.ts +12 -36
- package/locales/viVN.d.ts +3 -3
- package/locales/viVN.js +3 -3
- package/locales/zhCN.d.ts +3 -3
- package/locales/zhCN.js +3 -3
- package/locales/zhHK.d.ts +3 -3
- package/locales/zhHK.js +3 -3
- package/models/adapters.d.ts +151 -202
- package/models/fields.d.ts +9 -41
- package/models/pickers.d.ts +10 -6
- package/modern/DateCalendar/DateCalendar.js +20 -22
- package/modern/DateCalendar/DayCalendar.js +13 -10
- package/modern/DateField/DateField.js +8 -10
- package/modern/DatePicker/DatePicker.js +15 -14
- package/modern/DatePicker/DatePickerToolbar.js +12 -2
- package/modern/DateTimeField/DateTimeField.js +9 -12
- package/modern/DateTimePicker/DateTimePicker.js +16 -16
- package/modern/DateTimePicker/DateTimePickerTabs.js +2 -2
- package/modern/DateTimePicker/DateTimePickerToolbar.js +12 -2
- package/modern/DesktopDatePicker/DesktopDatePicker.js +17 -16
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +18 -18
- package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +10 -0
- package/modern/DesktopTimePicker/DesktopTimePicker.js +11 -6
- package/modern/DigitalClock/DigitalClock.js +7 -6
- package/modern/MobileDatePicker/MobileDatePicker.js +17 -16
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +18 -18
- package/modern/MobileTimePicker/MobileTimePicker.js +11 -6
- package/modern/MonthCalendar/MonthCalendar.js +17 -14
- package/modern/MonthCalendar/PickersMonth.js +17 -13
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +7 -6
- package/modern/PickersActionBar/PickersActionBar.js +2 -2
- package/modern/PickersCalendarHeader/PickersCalendarHeader.js +2 -2
- package/modern/PickersLayout/PickersLayout.js +10 -0
- package/modern/PickersLayout/usePickerLayout.js +17 -18
- package/modern/StaticDatePicker/StaticDatePicker.js +14 -13
- package/modern/StaticDateTimePicker/StaticDateTimePicker.js +15 -15
- package/modern/StaticTimePicker/StaticTimePicker.js +8 -3
- package/modern/TimeClock/Clock.js +3 -3
- package/modern/TimeClock/TimeClock.js +7 -6
- package/modern/TimeField/TimeField.js +6 -6
- package/modern/TimePicker/TimePicker.js +9 -4
- package/modern/TimePicker/TimePickerToolbar.js +12 -2
- package/modern/YearCalendar/PickersYear.js +17 -13
- package/modern/YearCalendar/YearCalendar.js +17 -14
- package/modern/hooks/index.js +2 -2
- package/modern/hooks/useClearableField.js +4 -3
- package/modern/hooks/useParsedFormat.js +2 -2
- package/modern/hooks/usePickerContext.js +15 -0
- package/{hooks/usePickersTranslations.js → modern/hooks/usePickerTranslations.js} +1 -1
- package/modern/index.js +1 -1
- package/modern/internals/components/PickerProvider.js +38 -0
- package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +21 -17
- package/modern/internals/hooks/useField/useField.js +1 -1
- package/modern/internals/hooks/useField/useField.utils.js +2 -1
- package/modern/internals/hooks/useField/useFieldState.js +3 -3
- package/modern/internals/hooks/useField/useFieldV7TextField.js +2 -2
- package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +23 -18
- package/modern/internals/hooks/usePicker/usePicker.js +12 -4
- package/modern/internals/hooks/usePicker/usePickerOwnerState.js +9 -6
- package/modern/internals/hooks/usePicker/usePickerProvider.js +21 -0
- package/modern/internals/hooks/usePicker/usePickerValue.js +2 -7
- package/modern/internals/hooks/usePickerPrivateContext.js +9 -0
- package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +5 -4
- package/modern/internals/hooks/useViews.js +1 -1
- package/modern/internals/index.js +2 -1
- package/modern/internals/models/formProps.js +1 -0
- package/modern/internals/models/index.js +3 -1
- package/modern/internals/models/props/time.js +1 -0
- package/modern/internals/models/value.js +1 -0
- package/modern/locales/beBY.js +3 -3
- package/modern/locales/bgBG.js +3 -3
- package/modern/locales/caES.js +3 -3
- package/modern/locales/csCZ.js +3 -3
- package/modern/locales/daDK.js +3 -3
- package/modern/locales/deDE.js +3 -3
- package/modern/locales/elGR.js +12 -13
- package/modern/locales/enUS.js +3 -3
- package/modern/locales/esES.js +3 -3
- package/modern/locales/eu.js +3 -3
- package/modern/locales/faIR.js +3 -3
- package/modern/locales/fiFI.js +3 -3
- package/modern/locales/frFR.js +3 -3
- package/modern/locales/heIL.js +3 -3
- package/modern/locales/hrHR.js +3 -3
- package/modern/locales/huHU.js +3 -3
- package/modern/locales/isIS.js +3 -3
- package/modern/locales/itIT.js +3 -3
- package/modern/locales/jaJP.js +3 -3
- package/modern/locales/koKR.js +3 -3
- package/modern/locales/kzKZ.js +3 -3
- package/modern/locales/mk.js +3 -3
- package/modern/locales/nbNO.js +3 -3
- package/modern/locales/nlNL.js +3 -3
- package/modern/locales/nnNO.js +3 -3
- package/modern/locales/plPL.js +3 -3
- package/modern/locales/ptBR.js +5 -3
- package/modern/locales/ptPT.js +3 -3
- package/modern/locales/roRO.js +3 -3
- package/modern/locales/ruRU.js +3 -3
- package/modern/locales/skSK.js +3 -3
- package/modern/locales/svSE.js +3 -3
- package/modern/locales/trTR.js +3 -3
- package/modern/locales/ukUA.js +3 -3
- package/modern/locales/urPK.js +3 -3
- package/modern/locales/utils/getPickersLocalization.js +1 -1
- package/modern/locales/viVN.js +3 -3
- package/modern/locales/zhCN.js +3 -3
- package/modern/locales/zhHK.js +3 -3
- package/modern/validation/useValidation.js +2 -3
- package/modern/validation/validateDate.js +5 -0
- package/modern/validation/validateDateTime.js +5 -0
- package/modern/validation/validateTime.js +5 -0
- package/node/DateCalendar/DateCalendar.js +20 -22
- package/node/DateCalendar/DayCalendar.js +13 -10
- package/node/DateField/DateField.js +8 -10
- package/node/DatePicker/DatePicker.js +15 -14
- package/node/DatePicker/DatePickerToolbar.js +12 -2
- package/node/DateTimeField/DateTimeField.js +9 -12
- package/node/DateTimePicker/DateTimePicker.js +16 -16
- package/node/DateTimePicker/DateTimePickerTabs.js +2 -2
- package/node/DateTimePicker/DateTimePickerToolbar.js +12 -2
- package/node/DesktopDatePicker/DesktopDatePicker.js +17 -16
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +18 -18
- package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +10 -0
- package/node/DesktopTimePicker/DesktopTimePicker.js +11 -6
- package/node/DigitalClock/DigitalClock.js +7 -6
- package/node/MobileDatePicker/MobileDatePicker.js +17 -16
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +18 -18
- package/node/MobileTimePicker/MobileTimePicker.js +11 -6
- package/node/MonthCalendar/MonthCalendar.js +17 -14
- package/node/MonthCalendar/PickersMonth.js +17 -13
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +7 -6
- package/node/PickersActionBar/PickersActionBar.js +2 -2
- package/node/PickersCalendarHeader/PickersCalendarHeader.js +2 -2
- package/node/PickersLayout/PickersLayout.js +10 -0
- package/node/PickersLayout/usePickerLayout.js +17 -18
- package/node/StaticDatePicker/StaticDatePicker.js +14 -13
- package/node/StaticDateTimePicker/StaticDateTimePicker.js +15 -15
- package/node/StaticTimePicker/StaticTimePicker.js +8 -3
- package/node/TimeClock/Clock.js +3 -3
- package/node/TimeClock/TimeClock.js +7 -6
- package/node/TimeField/TimeField.js +6 -6
- package/node/TimePicker/TimePicker.js +9 -4
- package/node/TimePicker/TimePickerToolbar.js +12 -2
- package/node/YearCalendar/PickersYear.js +17 -13
- package/node/YearCalendar/YearCalendar.js +17 -14
- package/node/hooks/index.js +6 -6
- package/node/hooks/useClearableField.js +4 -3
- package/node/hooks/useParsedFormat.js +2 -2
- package/node/hooks/usePickerContext.js +21 -0
- package/node/hooks/usePickerTranslations.js +10 -0
- package/node/index.js +1 -1
- package/node/internals/components/PickerProvider.js +46 -0
- package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +21 -17
- package/node/internals/hooks/useField/useField.js +1 -1
- package/node/internals/hooks/useField/useField.utils.js +2 -1
- package/node/internals/hooks/useField/useFieldState.js +3 -3
- package/node/internals/hooks/useField/useFieldV7TextField.js +2 -2
- package/node/internals/hooks/useMobilePicker/useMobilePicker.js +23 -18
- package/node/internals/hooks/usePicker/usePicker.js +12 -4
- package/node/internals/hooks/usePicker/usePickerOwnerState.js +9 -6
- package/node/internals/hooks/usePicker/usePickerProvider.js +28 -0
- package/node/internals/hooks/usePicker/usePickerValue.js +1 -7
- package/node/internals/hooks/usePickerPrivateContext.js +15 -0
- package/node/internals/hooks/useStaticPicker/useStaticPicker.js +5 -4
- package/node/internals/hooks/useViews.js +3 -3
- package/node/internals/index.js +14 -7
- package/node/internals/models/index.js +22 -0
- package/node/internals/models/props/time.js +5 -0
- package/node/internals/models/value.js +5 -0
- package/node/locales/beBY.js +3 -3
- package/node/locales/bgBG.js +3 -3
- package/node/locales/caES.js +3 -3
- package/node/locales/csCZ.js +3 -3
- package/node/locales/daDK.js +3 -3
- package/node/locales/deDE.js +3 -3
- package/node/locales/elGR.js +12 -13
- package/node/locales/enUS.js +3 -3
- package/node/locales/esES.js +3 -3
- package/node/locales/eu.js +3 -3
- package/node/locales/faIR.js +3 -3
- package/node/locales/fiFI.js +3 -3
- package/node/locales/frFR.js +3 -3
- package/node/locales/heIL.js +3 -3
- package/node/locales/hrHR.js +3 -3
- package/node/locales/huHU.js +3 -3
- package/node/locales/isIS.js +3 -3
- package/node/locales/itIT.js +3 -3
- package/node/locales/jaJP.js +3 -3
- package/node/locales/koKR.js +3 -3
- package/node/locales/kzKZ.js +3 -3
- package/node/locales/mk.js +3 -3
- package/node/locales/nbNO.js +3 -3
- package/node/locales/nlNL.js +3 -3
- package/node/locales/nnNO.js +3 -3
- package/node/locales/plPL.js +3 -3
- package/node/locales/ptBR.js +5 -3
- package/node/locales/ptPT.js +3 -3
- package/node/locales/roRO.js +3 -3
- package/node/locales/ruRU.js +3 -3
- package/node/locales/skSK.js +3 -3
- package/node/locales/svSE.js +3 -3
- package/node/locales/trTR.js +3 -3
- package/node/locales/ukUA.js +3 -3
- package/node/locales/urPK.js +3 -3
- package/node/locales/utils/getPickersLocalization.js +1 -1
- package/node/locales/viVN.js +3 -3
- package/node/locales/zhCN.js +3 -3
- package/node/locales/zhHK.js +3 -3
- package/node/validation/useValidation.js +2 -3
- package/node/validation/validateDate.js +4 -0
- package/node/validation/validateDateTime.js +4 -0
- package/node/validation/validateTime.js +4 -0
- package/package.json +3 -3
- package/themeAugmentation/props.d.ts +28 -28
- package/timeViewRenderers/timeViewRenderers.d.ts +6 -6
- package/validation/extractValidationProps.d.ts +4 -4
- package/validation/useValidation.d.ts +9 -10
- package/validation/useValidation.js +2 -3
- package/validation/validateDate.d.ts +7 -2
- package/validation/validateDate.js +5 -0
- package/validation/validateDateTime.d.ts +10 -4
- package/validation/validateDateTime.js +5 -0
- package/validation/validateTime.d.ts +7 -2
- package/validation/validateTime.js +5 -0
- package/hooks/usePickersContext.d.ts +0 -4
- package/hooks/usePickersContext.js +0 -15
- package/hooks/usePickersTranslations.d.ts +0 -2
- package/internals/components/PickersProvider.js +0 -26
- package/modern/hooks/usePickersContext.js +0 -15
- package/modern/internals/components/PickersProvider.js +0 -26
- package/node/hooks/usePickersContext.js +0 -21
- package/node/hooks/usePickersTranslations.js +0 -10
- package/node/internals/components/PickersProvider.js +0 -34
- /package/internals/models/{props/clock.js → formProps.js} +0 -0
- /package/{modern/internals/models/props/clock.js → internals/models/props/time.js} +0 -0
- /package/node/internals/models/{props/clock.js → formProps.js} +0 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { PickerContext } from "../internals/components/PickerProvider.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Returns the context passed by the picker that wraps the current component.
|
|
8
|
+
*/
|
|
9
|
+
export const usePickerContext = () => {
|
|
10
|
+
const value = React.useContext(PickerContext);
|
|
11
|
+
if (value == null) {
|
|
12
|
+
throw new Error(['MUI X: The `usePickerContext` can only be called in fields that are used as a slot of a picker component'].join('\n'));
|
|
13
|
+
}
|
|
14
|
+
return value;
|
|
15
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const usePickerTranslations: () => import("..").PickersLocaleText;
|
package/index.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { PickerOwnerState } from '../../models';
|
|
3
3
|
import { PickersInputLocaleText } from '../../locales';
|
|
4
|
-
export declare const
|
|
4
|
+
export declare const PickerContext: React.Context<PickerContextValue | null>;
|
|
5
|
+
export declare const PickerPrivateContext: React.Context<PickerPrivateContextValue>;
|
|
5
6
|
/**
|
|
6
7
|
* Provides the context for the various parts of a picker component:
|
|
7
8
|
* - contextValue: the context for the picker sub-components.
|
|
@@ -9,13 +10,14 @@ export declare const PickersContext: React.Context<PickersContextValue | null>;
|
|
|
9
10
|
*
|
|
10
11
|
* @ignore - do not document.
|
|
11
12
|
*/
|
|
12
|
-
export declare function
|
|
13
|
-
interface
|
|
14
|
-
contextValue:
|
|
15
|
-
|
|
13
|
+
export declare function PickerProvider(props: PickerProviderProps): React.JSX.Element;
|
|
14
|
+
export interface PickerProviderProps {
|
|
15
|
+
contextValue: PickerContextValue;
|
|
16
|
+
privateContextValue: PickerPrivateContextValue;
|
|
17
|
+
localeText: PickersInputLocaleText | undefined;
|
|
16
18
|
children: React.ReactNode;
|
|
17
19
|
}
|
|
18
|
-
export interface
|
|
20
|
+
export interface PickerContextValue {
|
|
19
21
|
/**
|
|
20
22
|
* Open the picker.
|
|
21
23
|
* @param {React.UIEvent} event The DOM event that triggered the change.
|
|
@@ -31,4 +33,9 @@ export interface PickersContextValue {
|
|
|
31
33
|
*/
|
|
32
34
|
open: boolean;
|
|
33
35
|
}
|
|
34
|
-
export {
|
|
36
|
+
export interface PickerPrivateContextValue {
|
|
37
|
+
/**
|
|
38
|
+
* The ownerState of the picker.
|
|
39
|
+
*/
|
|
40
|
+
ownerState: PickerOwnerState;
|
|
41
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { LocalizationProvider } from "../../LocalizationProvider/index.js";
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
|
+
export const PickerContext = /*#__PURE__*/React.createContext(null);
|
|
5
|
+
export const PickerPrivateContext = /*#__PURE__*/React.createContext({
|
|
6
|
+
ownerState: {
|
|
7
|
+
isPickerDisabled: false,
|
|
8
|
+
isPickerReadOnly: false,
|
|
9
|
+
isPickerValueEmpty: false,
|
|
10
|
+
isPickerOpen: false
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Provides the context for the various parts of a picker component:
|
|
16
|
+
* - contextValue: the context for the picker sub-components.
|
|
17
|
+
* - localizationProvider: the translations passed through the props and through a parent LocalizationProvider.
|
|
18
|
+
*
|
|
19
|
+
* @ignore - do not document.
|
|
20
|
+
*/
|
|
21
|
+
export function PickerProvider(props) {
|
|
22
|
+
const {
|
|
23
|
+
contextValue,
|
|
24
|
+
privateContextValue,
|
|
25
|
+
localeText,
|
|
26
|
+
children
|
|
27
|
+
} = props;
|
|
28
|
+
return /*#__PURE__*/_jsx(PickerContext.Provider, {
|
|
29
|
+
value: contextValue,
|
|
30
|
+
children: /*#__PURE__*/_jsx(PickerPrivateContext.Provider, {
|
|
31
|
+
value: privateContextValue,
|
|
32
|
+
children: /*#__PURE__*/_jsx(LocalizationProvider, {
|
|
33
|
+
localeText: localeText,
|
|
34
|
+
children: children
|
|
35
|
+
})
|
|
36
|
+
})
|
|
37
|
+
});
|
|
38
|
+
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { PickerOnChangeFn } from './useViews';
|
|
2
2
|
import { PickerSelectionState } from './usePicker';
|
|
3
3
|
import { PickersTimezone, PickerValidDate } from '../../models';
|
|
4
|
-
export interface MonthValidationOptions
|
|
4
|
+
export interface MonthValidationOptions {
|
|
5
5
|
disablePast?: boolean;
|
|
6
6
|
disableFuture?: boolean;
|
|
7
|
-
minDate:
|
|
8
|
-
maxDate:
|
|
7
|
+
minDate: PickerValidDate;
|
|
8
|
+
maxDate: PickerValidDate;
|
|
9
9
|
timezone: PickersTimezone;
|
|
10
10
|
}
|
|
11
|
-
export declare function useNextMonthDisabled
|
|
12
|
-
export declare function usePreviousMonthDisabled
|
|
13
|
-
export declare function useMeridiemMode
|
|
11
|
+
export declare function useNextMonthDisabled(month: PickerValidDate, { disableFuture, maxDate, timezone, }: Pick<MonthValidationOptions, 'disableFuture' | 'maxDate' | 'timezone'>): boolean;
|
|
12
|
+
export declare function usePreviousMonthDisabled(month: PickerValidDate, { disablePast, minDate, timezone, }: Pick<MonthValidationOptions, 'disablePast' | 'minDate' | 'timezone'>): boolean;
|
|
13
|
+
export declare function useMeridiemMode(date: PickerValidDate | null, ampm: boolean | undefined, onChange: PickerOnChangeFn, selectionState?: PickerSelectionState): {
|
|
14
14
|
meridiemMode: import("../utils/time-utils").Meridiem | null;
|
|
15
15
|
handleMeridiemChange: (mode: "am" | "pm") => void;
|
|
16
16
|
};
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
+
import { DefaultizedProps } from '@mui/x-internals/types';
|
|
1
2
|
import { BaseDateValidationProps, BaseTimeValidationProps, DateTimeValidationProps, TimeValidationProps } from '../models/validation';
|
|
2
|
-
|
|
3
|
-
import { PickerValidDate } from '../../models';
|
|
4
|
-
export interface UseDefaultizedDateFieldBaseProps<TDate extends PickerValidDate> extends BaseDateValidationProps<TDate> {
|
|
3
|
+
export interface UseDefaultizedDateFieldBaseProps extends BaseDateValidationProps {
|
|
5
4
|
format?: string;
|
|
6
5
|
}
|
|
7
|
-
export declare const useDefaultizedDateField: <
|
|
6
|
+
export declare const useDefaultizedDateField: <TKnownProps extends UseDefaultizedDateFieldBaseProps, TAllProps extends {}>(props: TKnownProps & TAllProps) => TAllProps & DefaultizedProps<TKnownProps, keyof UseDefaultizedDateFieldBaseProps>;
|
|
8
7
|
export interface UseDefaultizedTimeFieldBaseProps extends BaseTimeValidationProps {
|
|
9
8
|
format?: string;
|
|
10
9
|
}
|
|
11
|
-
export declare const useDefaultizedTimeField: <
|
|
10
|
+
export declare const useDefaultizedTimeField: <TKnownProps extends UseDefaultizedTimeFieldBaseProps & {
|
|
12
11
|
ampm?: boolean;
|
|
13
12
|
}, TAllProps extends {}>(props: TKnownProps & TAllProps) => TAllProps & DefaultizedProps<TKnownProps, keyof UseDefaultizedTimeFieldBaseProps>;
|
|
14
|
-
export interface UseDefaultizedDateTimeFieldBaseProps
|
|
13
|
+
export interface UseDefaultizedDateTimeFieldBaseProps extends BaseDateValidationProps, BaseTimeValidationProps {
|
|
15
14
|
format?: string;
|
|
16
15
|
}
|
|
17
|
-
export declare const useDefaultizedDateTimeField: <
|
|
16
|
+
export declare const useDefaultizedDateTimeField: <TKnownProps extends UseDefaultizedDateTimeFieldBaseProps & DateTimeValidationProps & TimeValidationProps & {
|
|
18
17
|
ampm?: boolean;
|
|
19
|
-
}, TAllProps extends {}>(props: TKnownProps & TAllProps) => TAllProps & DefaultizedProps<TKnownProps, keyof UseDefaultizedDateTimeFieldBaseProps
|
|
18
|
+
}, TAllProps extends {}>(props: TKnownProps & TAllProps) => TAllProps & DefaultizedProps<TKnownProps, keyof UseDefaultizedDateTimeFieldBaseProps>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { MuiPickersAdapter, PickersTimezone, PickerValidDate } from '../../models';
|
|
2
|
-
export declare const useClockReferenceDate: <
|
|
3
|
-
value:
|
|
4
|
-
referenceDate:
|
|
5
|
-
utils: MuiPickersAdapter
|
|
2
|
+
export declare const useClockReferenceDate: <TProps extends {}>({ value, referenceDate: referenceDateProp, utils, props, timezone, }: {
|
|
3
|
+
value: PickerValidDate;
|
|
4
|
+
referenceDate: PickerValidDate | undefined;
|
|
5
|
+
utils: MuiPickersAdapter;
|
|
6
6
|
props: TProps;
|
|
7
7
|
timezone: PickersTimezone;
|
|
8
|
-
}) =>
|
|
8
|
+
}) => PickerValidDate;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { UseDesktopPickerParams, UseDesktopPickerProps } from './useDesktopPicker.types';
|
|
3
|
-
import { PickerValidDate } from '../../../models';
|
|
4
3
|
import { DateOrTimeViewWithMeridiem } from '../../models';
|
|
5
4
|
/**
|
|
6
5
|
* Hook managing all the single-date desktop pickers:
|
|
@@ -8,6 +7,6 @@ import { DateOrTimeViewWithMeridiem } from '../../models';
|
|
|
8
7
|
* - DesktopDateTimePicker
|
|
9
8
|
* - DesktopTimePicker
|
|
10
9
|
*/
|
|
11
|
-
export declare const useDesktopPicker: <
|
|
10
|
+
export declare const useDesktopPicker: <TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TExternalProps extends UseDesktopPickerProps<TView, TEnableAccessibleFieldDOMStructure, any, TExternalProps>>({ props, getOpenDialogAriaText, ...pickerParams }: UseDesktopPickerParams<TView, TEnableAccessibleFieldDOMStructure, TExternalProps>) => {
|
|
12
11
|
renderPicker: () => React.JSX.Element;
|
|
13
12
|
};
|
|
@@ -12,7 +12,7 @@ import useId from '@mui/utils/useId';
|
|
|
12
12
|
import { PickersPopper } from "../../components/PickersPopper.js";
|
|
13
13
|
import { usePicker } from "../usePicker/index.js";
|
|
14
14
|
import { PickersLayout } from "../../../PickersLayout/index.js";
|
|
15
|
-
import {
|
|
15
|
+
import { PickerProvider } from "../../components/PickerProvider.js";
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* Hook managing all the single-date desktop pickers:
|
|
@@ -56,14 +56,15 @@ export const useDesktopPicker = _ref => {
|
|
|
56
56
|
actions,
|
|
57
57
|
hasUIView,
|
|
58
58
|
layoutProps,
|
|
59
|
+
providerProps,
|
|
59
60
|
renderCurrentView,
|
|
60
61
|
shouldRestoreFocus,
|
|
61
62
|
fieldProps: pickerFieldProps,
|
|
62
|
-
contextValue,
|
|
63
63
|
ownerState
|
|
64
64
|
} = usePicker(_extends({}, pickerParams, {
|
|
65
65
|
props,
|
|
66
66
|
fieldRef,
|
|
67
|
+
localeText,
|
|
67
68
|
autoFocusView: true,
|
|
68
69
|
additionalViewProps: {},
|
|
69
70
|
wrapperVariant: 'desktop'
|
|
@@ -75,7 +76,7 @@ export const useDesktopPicker = _ref => {
|
|
|
75
76
|
additionalProps: {
|
|
76
77
|
position: 'end'
|
|
77
78
|
},
|
|
78
|
-
ownerState
|
|
79
|
+
ownerState
|
|
79
80
|
}),
|
|
80
81
|
inputAdornmentProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
|
|
81
82
|
const OpenPickerButton = slots.openPickerButton ?? IconButton;
|
|
@@ -88,7 +89,7 @@ export const useDesktopPicker = _ref => {
|
|
|
88
89
|
'aria-label': getOpenDialogAriaText(pickerFieldProps.value),
|
|
89
90
|
edge: inputAdornmentProps.position
|
|
90
91
|
},
|
|
91
|
-
ownerState
|
|
92
|
+
ownerState
|
|
92
93
|
}),
|
|
93
94
|
openPickerButtonProps = _objectWithoutPropertiesLoose(_useSlotProps2, _excluded3);
|
|
94
95
|
const OpenPickerIcon = slots.openPickerIcon;
|
|
@@ -101,27 +102,32 @@ export const useDesktopPicker = _ref => {
|
|
|
101
102
|
const fieldProps = useSlotProps({
|
|
102
103
|
elementType: Field,
|
|
103
104
|
externalSlotProps: innerSlotProps?.field,
|
|
104
|
-
additionalProps: _extends({
|
|
105
|
-
|
|
106
|
-
}, {
|
|
105
|
+
additionalProps: _extends({
|
|
106
|
+
// Internal props
|
|
107
107
|
readOnly,
|
|
108
108
|
disabled,
|
|
109
|
-
className,
|
|
110
|
-
sx,
|
|
111
109
|
format,
|
|
112
110
|
formatDensity,
|
|
113
111
|
enableAccessibleFieldDOMStructure,
|
|
114
112
|
selectedSections,
|
|
115
113
|
onSelectedSectionsChange,
|
|
116
114
|
timezone,
|
|
115
|
+
autoFocus: autoFocus && !props.open
|
|
116
|
+
}, pickerFieldProps, {
|
|
117
|
+
// onChange and value
|
|
118
|
+
|
|
119
|
+
// Forwarded props
|
|
120
|
+
className,
|
|
121
|
+
sx,
|
|
117
122
|
label,
|
|
118
123
|
name,
|
|
119
|
-
autoFocus: autoFocus && !props.open,
|
|
120
124
|
focused: open ? true : undefined
|
|
121
|
-
},
|
|
125
|
+
}, isToolbarHidden && {
|
|
126
|
+
id: labelId
|
|
127
|
+
}, !!inputRef && {
|
|
122
128
|
inputRef
|
|
123
|
-
}
|
|
124
|
-
ownerState
|
|
129
|
+
}),
|
|
130
|
+
ownerState
|
|
125
131
|
});
|
|
126
132
|
|
|
127
133
|
// TODO: Move to `useSlotProps` when https://github.com/mui/material-ui/pull/35088 will be merged
|
|
@@ -159,9 +165,7 @@ export const useDesktopPicker = _ref => {
|
|
|
159
165
|
}, innerSlotProps?.popper)
|
|
160
166
|
});
|
|
161
167
|
const handleFieldRef = useForkRef(fieldRef, fieldProps.unstableFieldRef);
|
|
162
|
-
const renderPicker = () => /*#__PURE__*/_jsxs(
|
|
163
|
-
contextValue: contextValue,
|
|
164
|
-
localeText: localeText,
|
|
168
|
+
const renderPicker = () => /*#__PURE__*/_jsxs(PickerProvider, _extends({}, providerProps, {
|
|
165
169
|
children: [/*#__PURE__*/_jsx(Field, _extends({}, fieldProps, {
|
|
166
170
|
slots: slotsForField,
|
|
167
171
|
slotProps: slotProps,
|
|
@@ -182,7 +186,7 @@ export const useDesktopPicker = _ref => {
|
|
|
182
186
|
children: renderCurrentView()
|
|
183
187
|
}))
|
|
184
188
|
}))]
|
|
185
|
-
});
|
|
189
|
+
}));
|
|
186
190
|
return {
|
|
187
191
|
renderPicker
|
|
188
192
|
};
|
|
@@ -3,17 +3,17 @@ import IconButton, { IconButtonProps } from '@mui/material/IconButton';
|
|
|
3
3
|
import { InputAdornmentProps } from '@mui/material/InputAdornment';
|
|
4
4
|
import TextField from '@mui/material/TextField';
|
|
5
5
|
import { SlotComponentProps } from '@mui/utils';
|
|
6
|
+
import { MakeRequired, SlotComponentPropsFromProps } from '@mui/x-internals/types';
|
|
6
7
|
import { BaseNonStaticPickerProps, BasePickerProps, BaseNonRangeNonStaticPickerProps } from '../../models/props/basePickerProps';
|
|
7
8
|
import { PickersPopperSlots, PickersPopperSlotProps } from '../../components/PickersPopper';
|
|
8
|
-
import { UsePickerParams
|
|
9
|
-
import {
|
|
9
|
+
import { UsePickerParams } from '../usePicker';
|
|
10
|
+
import { FieldSection, PickerFieldSlotProps, PickerOwnerState, PickerValidDate } from '../../../models';
|
|
10
11
|
import { ExportedPickersLayoutSlots, ExportedPickersLayoutSlotProps, PickersLayoutSlotProps } from '../../../PickersLayout/PickersLayout.types';
|
|
11
12
|
import { UsePickerValueNonStaticProps } from '../usePicker/usePickerValue.types';
|
|
12
13
|
import { UsePickerViewsNonStaticProps, UsePickerViewsProps } from '../usePicker/usePickerViews';
|
|
13
14
|
import { DateOrTimeViewWithMeridiem } from '../../models';
|
|
14
15
|
import { UseClearableFieldSlots, UseClearableFieldSlotProps } from '../../../hooks/useClearableField';
|
|
15
|
-
|
|
16
|
-
export interface UseDesktopPickerSlots<TDate extends PickerValidDate, TView extends DateOrTimeViewWithMeridiem> extends Pick<PickersPopperSlots, 'desktopPaper' | 'desktopTransition' | 'desktopTrapFocus' | 'popper'>, ExportedPickersLayoutSlots<TDate | null, TDate, TView>, UseClearableFieldSlots {
|
|
16
|
+
export interface UseDesktopPickerSlots<TView extends DateOrTimeViewWithMeridiem> extends Pick<PickersPopperSlots, 'desktopPaper' | 'desktopTransition' | 'desktopTrapFocus' | 'popper'>, ExportedPickersLayoutSlots<PickerValidDate | null, TView>, UseClearableFieldSlots {
|
|
17
17
|
/**
|
|
18
18
|
* Component used to enter the date with the keyboard.
|
|
19
19
|
*/
|
|
@@ -38,14 +38,14 @@ export interface UseDesktopPickerSlots<TDate extends PickerValidDate, TView exte
|
|
|
38
38
|
*/
|
|
39
39
|
openPickerIcon: React.ElementType;
|
|
40
40
|
}
|
|
41
|
-
export interface UseDesktopPickerSlotProps<
|
|
41
|
+
export interface UseDesktopPickerSlotProps<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean> extends ExportedUseDesktopPickerSlotProps<TView, TEnableAccessibleFieldDOMStructure>, Pick<PickersLayoutSlotProps<PickerValidDate | null, TView>, 'toolbar'> {
|
|
42
42
|
}
|
|
43
|
-
export interface ExportedUseDesktopPickerSlotProps<
|
|
44
|
-
field?: SlotComponentPropsFromProps<
|
|
43
|
+
export interface ExportedUseDesktopPickerSlotProps<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean> extends PickersPopperSlotProps, ExportedPickersLayoutSlotProps<PickerValidDate | null, TView>, UseClearableFieldSlotProps {
|
|
44
|
+
field?: SlotComponentPropsFromProps<PickerFieldSlotProps<PickerValidDate | null, FieldSection, TEnableAccessibleFieldDOMStructure>, {}, PickerOwnerState>;
|
|
45
45
|
textField?: SlotComponentProps<typeof TextField, {}, Record<string, any>>;
|
|
46
|
-
inputAdornment?:
|
|
47
|
-
openPickerButton?: SlotComponentProps<typeof IconButton, {},
|
|
48
|
-
openPickerIcon?: SlotComponentPropsFromProps<Record<string, any>, {}, PickerOwnerState
|
|
46
|
+
inputAdornment?: SlotComponentPropsFromProps<InputAdornmentProps, {}, PickerOwnerState>;
|
|
47
|
+
openPickerButton?: SlotComponentProps<typeof IconButton, {}, PickerOwnerState>;
|
|
48
|
+
openPickerIcon?: SlotComponentPropsFromProps<Record<string, any>, {}, PickerOwnerState>;
|
|
49
49
|
}
|
|
50
50
|
export interface DesktopOnlyPickerProps extends BaseNonStaticPickerProps, BaseNonRangeNonStaticPickerProps, UsePickerValueNonStaticProps, UsePickerViewsNonStaticProps {
|
|
51
51
|
/**
|
|
@@ -54,19 +54,19 @@ export interface DesktopOnlyPickerProps extends BaseNonStaticPickerProps, BaseNo
|
|
|
54
54
|
*/
|
|
55
55
|
autoFocus?: boolean;
|
|
56
56
|
}
|
|
57
|
-
export interface UseDesktopPickerProps<
|
|
57
|
+
export interface UseDesktopPickerProps<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TError, TExternalProps extends UsePickerViewsProps<PickerValidDate | null, TView, any, {}>> extends BasePickerProps<PickerValidDate | null, TView, TError, TExternalProps, {}>, MakeRequired<DesktopOnlyPickerProps, 'format'> {
|
|
58
58
|
/**
|
|
59
59
|
* Overridable component slots.
|
|
60
60
|
* @default {}
|
|
61
61
|
*/
|
|
62
|
-
slots: UseDesktopPickerSlots<
|
|
62
|
+
slots: UseDesktopPickerSlots<TView>;
|
|
63
63
|
/**
|
|
64
64
|
* The props used for each component slot.
|
|
65
65
|
* @default {}
|
|
66
66
|
*/
|
|
67
|
-
slotProps?: UseDesktopPickerSlotProps<
|
|
67
|
+
slotProps?: UseDesktopPickerSlotProps<TView, TEnableAccessibleFieldDOMStructure>;
|
|
68
68
|
}
|
|
69
|
-
export interface UseDesktopPickerParams<
|
|
69
|
+
export interface UseDesktopPickerParams<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TExternalProps extends UseDesktopPickerProps<TView, TEnableAccessibleFieldDOMStructure, any, TExternalProps>> extends Pick<UsePickerParams<PickerValidDate | null, TView, FieldSection, TExternalProps, {}>, 'valueManager' | 'valueType' | 'validator' | 'rendererInterceptor'> {
|
|
70
70
|
props: TExternalProps;
|
|
71
|
-
getOpenDialogAriaText: (date:
|
|
71
|
+
getOpenDialogAriaText: (date: PickerValidDate | null) => string;
|
|
72
72
|
}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { FieldSection, MuiPickersAdapter, PickerValidDate } from '../../../models';
|
|
2
2
|
import { PickersLocaleText } from '../../../locales';
|
|
3
|
-
interface BuildSectionsFromFormatParams
|
|
4
|
-
utils: MuiPickersAdapter
|
|
3
|
+
interface BuildSectionsFromFormatParams {
|
|
4
|
+
utils: MuiPickersAdapter;
|
|
5
5
|
format: string;
|
|
6
6
|
formatDensity: 'dense' | 'spacious';
|
|
7
7
|
isRtl: boolean;
|
|
8
8
|
shouldRespectLeadingZeros: boolean;
|
|
9
|
-
localeText: PickersLocaleText
|
|
9
|
+
localeText: PickersLocaleText;
|
|
10
10
|
localizedDigits: string[];
|
|
11
|
-
date:
|
|
11
|
+
date: PickerValidDate | null;
|
|
12
12
|
enableAccessibleFieldDOMStructure: boolean;
|
|
13
13
|
}
|
|
14
|
-
export declare const buildSectionsFromFormat:
|
|
14
|
+
export declare const buildSectionsFromFormat: (params: BuildSectionsFromFormatParams) => FieldSection[];
|
|
15
15
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { UseFieldParams, UseFieldResponse, UseFieldCommonForwardedProps, UseFieldInternalProps, UseFieldForwardedProps } from './useField.types';
|
|
2
|
-
import {
|
|
3
|
-
export declare const useField: <TValue,
|
|
2
|
+
import { FieldSection } from '../../../models';
|
|
3
|
+
export declare const useField: <TValue, TSection extends FieldSection, TEnableAccessibleFieldDOMStructure extends boolean, TForwardedProps extends UseFieldCommonForwardedProps & UseFieldForwardedProps<TEnableAccessibleFieldDOMStructure>, TInternalProps extends UseFieldInternalProps<any, any, TEnableAccessibleFieldDOMStructure, any> & {
|
|
4
4
|
minutesStep?: number;
|
|
5
|
-
}>(params: UseFieldParams<TValue,
|
|
5
|
+
}>(params: UseFieldParams<TValue, TSection, TEnableAccessibleFieldDOMStructure, TForwardedProps, TInternalProps>) => UseFieldResponse<TEnableAccessibleFieldDOMStructure, TForwardedProps>;
|
|
@@ -6,15 +6,16 @@ import type { UseFieldStateResponse } from './useFieldState';
|
|
|
6
6
|
import type { UseFieldCharacterEditingResponse } from './useFieldCharacterEditing';
|
|
7
7
|
import { PickersSectionElement, PickersSectionListRef } from '../../../PickersSectionList';
|
|
8
8
|
import { ExportedUseClearableFieldProps } from '../../../hooks/useClearableField';
|
|
9
|
-
|
|
9
|
+
import { FormProps } from '../../models';
|
|
10
|
+
export interface UseFieldParams<TValue, TSection extends FieldSection, TEnableAccessibleFieldDOMStructure extends boolean, TForwardedProps extends UseFieldCommonForwardedProps & UseFieldForwardedProps<TEnableAccessibleFieldDOMStructure>, TInternalProps extends UseFieldInternalProps<any, any, TEnableAccessibleFieldDOMStructure, any>> {
|
|
10
11
|
forwardedProps: TForwardedProps;
|
|
11
12
|
internalProps: TInternalProps;
|
|
12
|
-
valueManager: PickerValueManager<TValue,
|
|
13
|
-
fieldValueManager: FieldValueManager<TValue,
|
|
14
|
-
validator: Validator<TValue,
|
|
13
|
+
valueManager: PickerValueManager<TValue, InferError<TInternalProps>>;
|
|
14
|
+
fieldValueManager: FieldValueManager<TValue, TSection>;
|
|
15
|
+
validator: Validator<TValue, InferError<TInternalProps>, TInternalProps>;
|
|
15
16
|
valueType: FieldValueType;
|
|
16
17
|
}
|
|
17
|
-
export interface UseFieldInternalProps<TValue,
|
|
18
|
+
export interface UseFieldInternalProps<TValue, TSection extends FieldSection, TEnableAccessibleFieldDOMStructure extends boolean, TError> extends TimezoneProps, FormProps, OnErrorProps<TValue, TError> {
|
|
18
19
|
/**
|
|
19
20
|
* The selected value.
|
|
20
21
|
* Used when the component is controlled.
|
|
@@ -29,7 +30,7 @@ export interface UseFieldInternalProps<TValue, TDate extends PickerValidDate, TS
|
|
|
29
30
|
* For example, on time fields it will be used to determine the date to set.
|
|
30
31
|
* @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.
|
|
31
32
|
*/
|
|
32
|
-
referenceDate?:
|
|
33
|
+
referenceDate?: PickerValidDate;
|
|
33
34
|
/**
|
|
34
35
|
* Callback fired when the value changes.
|
|
35
36
|
* @template TValue The value type. It will be the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.
|
|
@@ -63,12 +64,6 @@ export interface UseFieldInternalProps<TValue, TDate extends PickerValidDate, TS
|
|
|
63
64
|
* @default false
|
|
64
65
|
*/
|
|
65
66
|
shouldRespectLeadingZeros?: boolean;
|
|
66
|
-
/**
|
|
67
|
-
* It prevents the user from changing the value of the field
|
|
68
|
-
* (not from interacting with the field).
|
|
69
|
-
* @default false
|
|
70
|
-
*/
|
|
71
|
-
readOnly?: boolean;
|
|
72
67
|
/**
|
|
73
68
|
* The currently selected sections.
|
|
74
69
|
* This prop accepts four formats:
|
|
@@ -89,7 +84,7 @@ export interface UseFieldInternalProps<TValue, TDate extends PickerValidDate, TS
|
|
|
89
84
|
*/
|
|
90
85
|
unstableFieldRef?: React.Ref<FieldRef<TSection>>;
|
|
91
86
|
/**
|
|
92
|
-
* @default
|
|
87
|
+
* @default true
|
|
93
88
|
*/
|
|
94
89
|
enableAccessibleFieldDOMStructure?: TEnableAccessibleFieldDOMStructure;
|
|
95
90
|
/**
|
|
@@ -97,13 +92,8 @@ export interface UseFieldInternalProps<TValue, TDate extends PickerValidDate, TS
|
|
|
97
92
|
* @default false
|
|
98
93
|
*/
|
|
99
94
|
autoFocus?: boolean;
|
|
100
|
-
/**
|
|
101
|
-
* If `true`, the component is disabled.
|
|
102
|
-
* @default false
|
|
103
|
-
*/
|
|
104
|
-
disabled?: boolean;
|
|
105
95
|
}
|
|
106
|
-
export interface UseFieldCommonAdditionalProps extends Required<Pick<UseFieldInternalProps<any, any, any, any
|
|
96
|
+
export interface UseFieldCommonAdditionalProps extends Required<Pick<UseFieldInternalProps<any, any, any, any>, 'disabled' | 'readOnly'>> {
|
|
107
97
|
}
|
|
108
98
|
export interface UseFieldCommonForwardedProps extends ExportedUseClearableFieldProps {
|
|
109
99
|
onKeyDown?: React.KeyboardEventHandler;
|
|
@@ -143,18 +133,18 @@ interface UseFieldV7AdditionalProps {
|
|
|
143
133
|
export type UseFieldResponse<TEnableAccessibleFieldDOMStructure extends boolean, TForwardedProps extends UseFieldCommonForwardedProps & {
|
|
144
134
|
[key: string]: any;
|
|
145
135
|
}> = Omit<TForwardedProps, keyof UseFieldCommonForwardedProps> & Required<UseFieldCommonForwardedProps> & UseFieldCommonAdditionalProps & (TEnableAccessibleFieldDOMStructure extends false ? UseFieldV6AdditionalProps & Required<UseFieldV6ForwardedProps> : UseFieldV7AdditionalProps & Required<UseFieldV7ForwardedProps>);
|
|
146
|
-
export type FieldSectionValueBoundaries<
|
|
136
|
+
export type FieldSectionValueBoundaries<SectionType extends FieldSectionType> = {
|
|
147
137
|
minimum: number;
|
|
148
138
|
maximum: number;
|
|
149
139
|
} & (SectionType extends 'day' ? {
|
|
150
|
-
longestMonth:
|
|
140
|
+
longestMonth: PickerValidDate;
|
|
151
141
|
} : {});
|
|
152
|
-
export type FieldSectionsValueBoundaries
|
|
142
|
+
export type FieldSectionsValueBoundaries = {
|
|
153
143
|
[SectionType in FieldSectionType]: (params: {
|
|
154
|
-
currentDate:
|
|
144
|
+
currentDate: PickerValidDate | null;
|
|
155
145
|
format: string;
|
|
156
146
|
contentType: FieldSectionContentType;
|
|
157
|
-
}) => FieldSectionValueBoundaries<
|
|
147
|
+
}) => FieldSectionValueBoundaries<SectionType>;
|
|
158
148
|
};
|
|
159
149
|
export type FieldSectionsBoundaries = {
|
|
160
150
|
[SectionType in FieldSectionType]: {
|
|
@@ -170,15 +160,15 @@ export interface FieldChangeHandlerContext<TError> {
|
|
|
170
160
|
* Object used to access and update the active date (i.e: the date containing the active section).
|
|
171
161
|
* Mainly useful in the range fields where we need to update the date containing the active section without impacting the other one.
|
|
172
162
|
*/
|
|
173
|
-
interface FieldActiveDateManager<TValue,
|
|
163
|
+
interface FieldActiveDateManager<TValue, TSection extends FieldSection> {
|
|
174
164
|
/**
|
|
175
165
|
* Active date from `state.value`.
|
|
176
166
|
*/
|
|
177
|
-
date:
|
|
167
|
+
date: PickerValidDate | null;
|
|
178
168
|
/**
|
|
179
169
|
* Active date from the `state.referenceValue`.
|
|
180
170
|
*/
|
|
181
|
-
referenceDate:
|
|
171
|
+
referenceDate: PickerValidDate;
|
|
182
172
|
/**
|
|
183
173
|
* @template TSection
|
|
184
174
|
* @param {TSection[]} sections The sections of the full value.
|
|
@@ -188,25 +178,25 @@ interface FieldActiveDateManager<TValue, TDate extends PickerValidDate, TSection
|
|
|
188
178
|
getSections: (sections: TSection[]) => TSection[];
|
|
189
179
|
/**
|
|
190
180
|
* Creates the new value and reference value based on the new active date and the current state.
|
|
191
|
-
* @template TValue
|
|
192
|
-
* @param {
|
|
181
|
+
* @template TValue
|
|
182
|
+
* @param {PickerValidDate | null} newActiveDate The new value of the date containing the active section.
|
|
193
183
|
* @returns {Pick<UseFieldState<TValue, any>, 'value' | 'referenceValue'>} The new value and reference value to publish and store in the state.
|
|
194
184
|
*/
|
|
195
|
-
getNewValuesFromNewActiveDate: (newActiveDate:
|
|
185
|
+
getNewValuesFromNewActiveDate: (newActiveDate: PickerValidDate | null) => Pick<UseFieldState<TValue, any>, 'value' | 'referenceValue'>;
|
|
196
186
|
}
|
|
197
187
|
export type FieldParsedSelectedSections = number | 'all' | null;
|
|
198
|
-
export interface FieldValueManager<TValue,
|
|
188
|
+
export interface FieldValueManager<TValue, TSection extends FieldSection> {
|
|
199
189
|
/**
|
|
200
190
|
* Creates the section list from the current value.
|
|
201
191
|
* The `prevSections` are used on the range fields to avoid losing the sections of a partially filled date when editing the other date.
|
|
202
|
-
* @template TValue,
|
|
203
|
-
* @param {MuiPickersAdapter
|
|
192
|
+
* @template TValue, TSection
|
|
193
|
+
* @param {MuiPickersAdapter} utils The utils to manipulate the date.
|
|
204
194
|
* @param {TValue} value The current value to generate sections from.
|
|
205
195
|
* @param {TSection[] | null} fallbackSections The sections to use as a fallback if a date is null or invalid.
|
|
206
|
-
* @param {(date:
|
|
196
|
+
* @param {(date: PickerValidDate) => FieldSection[]} getSectionsFromDate Returns the sections of the given date.
|
|
207
197
|
* @returns {TSection[]} The new section list.
|
|
208
198
|
*/
|
|
209
|
-
getSectionsFromValue: (utils: MuiPickersAdapter
|
|
199
|
+
getSectionsFromValue: (utils: MuiPickersAdapter, value: TValue, fallbackSections: TSection[] | null, getSectionsFromDate: (date: PickerValidDate) => FieldSection[]) => TSection[];
|
|
210
200
|
/**
|
|
211
201
|
* Creates the string value to render in the input based on the current section list.
|
|
212
202
|
* @template TSection
|
|
@@ -225,33 +215,33 @@ export interface FieldValueManager<TValue, TDate extends PickerValidDate, TSecti
|
|
|
225
215
|
getV7HiddenInputValueFromSections: (sections: TSection[]) => string;
|
|
226
216
|
/**
|
|
227
217
|
* Returns the manager of the active date.
|
|
228
|
-
* @template TValue,
|
|
229
|
-
* @param {MuiPickersAdapter
|
|
218
|
+
* @template TValue, TSection
|
|
219
|
+
* @param {MuiPickersAdapter} utils The utils to manipulate the date.
|
|
230
220
|
* @param {UseFieldState<TValue, TSection>} state The current state of the field.
|
|
231
221
|
* @param {TSection} activeSection The active section.
|
|
232
|
-
* @returns {FieldActiveDateManager<TValue,
|
|
222
|
+
* @returns {FieldActiveDateManager<TValue, TSection>} The manager of the active date.
|
|
233
223
|
*/
|
|
234
|
-
getActiveDateManager: (utils: MuiPickersAdapter
|
|
224
|
+
getActiveDateManager: (utils: MuiPickersAdapter, state: UseFieldState<TValue, TSection>, activeSection: TSection) => FieldActiveDateManager<TValue, TSection>;
|
|
235
225
|
/**
|
|
236
226
|
* Parses a string version (most of the time coming from the input).
|
|
237
227
|
* This method should only be used when the change does not come from a single section.
|
|
238
|
-
* @template TValue
|
|
228
|
+
* @template TValue
|
|
239
229
|
* @param {string} valueStr The string value to parse.
|
|
240
230
|
* @param {TValue} referenceValue The reference value currently stored in state.
|
|
241
|
-
* @param {(dateStr: string, referenceDate:
|
|
231
|
+
* @param {(dateStr: string, referenceDate: PickerValidDate) => PickerValidDate | null} parseDate A method to convert a string date into a parsed one.
|
|
242
232
|
* @returns {TValue} The new parsed value.
|
|
243
233
|
*/
|
|
244
|
-
parseValueStr: (valueStr: string, referenceValue: TValue, parseDate: (dateStr: string, referenceDate:
|
|
234
|
+
parseValueStr: (valueStr: string, referenceValue: TValue, parseDate: (dateStr: string, referenceDate: PickerValidDate) => PickerValidDate | null) => TValue;
|
|
245
235
|
/**
|
|
246
236
|
* Update the reference value with the new value.
|
|
247
237
|
* This method must make sure that no date inside the returned `referenceValue` is invalid.
|
|
248
|
-
* @template TValue
|
|
249
|
-
* @param {MuiPickersAdapter
|
|
238
|
+
* @template TValue
|
|
239
|
+
* @param {MuiPickersAdapter} utils The utils to manipulate the date.
|
|
250
240
|
* @param {TValue} value The new value from which we want to take all valid dates in the `referenceValue` state.
|
|
251
241
|
* @param {TValue} prevReferenceValue The previous reference value. It is used as a fallback for invalid dates in the new value.
|
|
252
242
|
* @returns {TValue} The new reference value with no invalid date.
|
|
253
243
|
*/
|
|
254
|
-
updateReferenceValue: (utils: MuiPickersAdapter
|
|
244
|
+
updateReferenceValue: (utils: MuiPickersAdapter, value: TValue, prevReferenceValue: TValue) => TValue;
|
|
255
245
|
}
|
|
256
246
|
export interface UseFieldState<TValue, TSection extends FieldSection> {
|
|
257
247
|
value: TValue;
|
|
@@ -327,13 +317,13 @@ export interface UseFieldTextFieldInteractions {
|
|
|
327
317
|
setSelectedSections: (newSelectedSections: FieldSelectedSections) => void;
|
|
328
318
|
isFieldFocused: () => boolean;
|
|
329
319
|
}
|
|
330
|
-
export type UseFieldTextField<TEnableAccessibleFieldDOMStructure extends boolean> = <TValue,
|
|
320
|
+
export type UseFieldTextField<TEnableAccessibleFieldDOMStructure extends boolean> = <TValue, TSection extends FieldSection, TForwardedProps extends TEnableAccessibleFieldDOMStructure extends false ? UseFieldV6ForwardedProps : UseFieldV7ForwardedProps, TInternalProps extends UseFieldInternalProps<any, any, TEnableAccessibleFieldDOMStructure, any> & {
|
|
331
321
|
minutesStep?: number;
|
|
332
|
-
}>(params: UseFieldTextFieldParams<TValue,
|
|
322
|
+
}>(params: UseFieldTextFieldParams<TValue, TSection, TEnableAccessibleFieldDOMStructure, TForwardedProps, TInternalProps>) => {
|
|
333
323
|
interactions: UseFieldTextFieldInteractions;
|
|
334
324
|
returnedValue: TEnableAccessibleFieldDOMStructure extends false ? UseFieldV6AdditionalProps & Required<UseFieldV6ForwardedProps> : UseFieldV7AdditionalProps & Required<UseFieldV7ForwardedProps>;
|
|
335
325
|
};
|
|
336
|
-
interface UseFieldTextFieldParams<TValue,
|
|
326
|
+
interface UseFieldTextFieldParams<TValue, TSection extends FieldSection, TEnableAccessibleFieldDOMStructure extends boolean, TForwardedProps extends TEnableAccessibleFieldDOMStructure extends false ? UseFieldV6ForwardedProps : UseFieldV7ForwardedProps, TInternalProps extends UseFieldInternalProps<any, any, TEnableAccessibleFieldDOMStructure, any>> extends UseFieldParams<TValue, TSection, TEnableAccessibleFieldDOMStructure, TForwardedProps, TInternalProps>, UseFieldStateResponse<TValue, TSection>, UseFieldCharacterEditingResponse {
|
|
337
327
|
areAllSectionsEmpty: boolean;
|
|
338
328
|
sectionOrder: SectionOrdering;
|
|
339
329
|
}
|