@mui/x-date-pickers 8.0.0-alpha.1 → 8.0.0-alpha.11
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 +2 -4
- package/AdapterDateFns/AdapterDateFns.js +49 -47
- package/AdapterDateFnsBase/AdapterDateFnsBase.d.ts +1 -1
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +2 -4
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +48 -46
- package/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.d.ts → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.d.ts} +2 -2
- package/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +45 -52
- package/AdapterDateFnsJalaliV2/index.d.ts +1 -0
- package/AdapterDateFnsJalaliV2/index.js +1 -0
- package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/package.json +1 -1
- package/{AdapterDateFnsV3/AdapterDateFnsV3.d.ts → AdapterDateFnsV2/AdapterDateFnsV2.d.ts} +2 -2
- package/{AdapterDateFnsV3/AdapterDateFnsV3.js → AdapterDateFnsV2/AdapterDateFnsV2.js} +46 -54
- package/AdapterDateFnsV2/index.d.ts +1 -0
- package/AdapterDateFnsV2/index.js +1 -0
- package/{AdapterDateFnsV3 → AdapterDateFnsV2}/package.json +1 -1
- package/AdapterDayjs/AdapterDayjs.d.ts +1 -1
- package/AdapterLuxon/AdapterLuxon.d.ts +1 -1
- package/AdapterMoment/AdapterMoment.d.ts +1 -1
- package/AdapterMoment/AdapterMoment.js +10 -0
- package/CHANGELOG.md +2007 -230
- package/DateCalendar/DateCalendar.js +41 -22
- package/DateCalendar/DateCalendar.types.d.ts +2 -1
- package/DateCalendar/DayCalendar.d.ts +1 -2
- package/DateCalendar/DayCalendar.js +12 -36
- package/DateCalendar/PickersFadeTransitionGroup.d.ts +1 -1
- package/DateCalendar/PickersFadeTransitionGroup.js +4 -6
- package/DateCalendar/PickersSlideTransition.d.ts +1 -1
- package/DateCalendar/PickersSlideTransition.js +12 -5
- package/DateCalendar/useCalendarState.d.ts +13 -27
- package/DateCalendar/useCalendarState.js +65 -55
- package/DateField/DateField.js +29 -33
- package/DateField/DateField.types.d.ts +7 -15
- package/DateField/useDateField.d.ts +1 -1
- package/DateField/useDateField.js +14 -11
- package/DatePicker/DatePicker.js +1 -1
- package/DatePicker/DatePicker.types.d.ts +7 -3
- package/DatePicker/DatePickerToolbar.d.ts +1 -2
- package/DatePicker/DatePickerToolbar.js +17 -33
- package/DatePicker/shared.d.ts +6 -5
- package/DateTimeField/DateTimeField.js +29 -33
- package/DateTimeField/DateTimeField.types.d.ts +7 -16
- package/DateTimeField/useDateTimeField.d.ts +1 -1
- package/DateTimeField/useDateTimeField.js +14 -11
- package/DateTimePicker/DateTimePicker.js +2 -2
- package/DateTimePicker/DateTimePicker.types.d.ts +4 -5
- package/DateTimePicker/DateTimePickerTabs.d.ts +2 -5
- package/DateTimePicker/DateTimePickerTabs.js +15 -20
- package/DateTimePicker/DateTimePickerToolbar.d.ts +16 -5
- package/DateTimePicker/DateTimePickerToolbar.js +88 -80
- package/DateTimePicker/shared.d.ts +8 -8
- package/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
- package/DesktopDatePicker/DesktopDatePicker.js +11 -17
- package/DesktopDatePicker/DesktopDatePicker.types.d.ts +7 -3
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +17 -27
- package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +2 -2
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +2 -2
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +9 -34
- package/DesktopTimePicker/DesktopTimePicker.js +6 -22
- package/DesktopTimePicker/DesktopTimePicker.types.d.ts +2 -2
- package/DigitalClock/DigitalClock.js +13 -11
- package/DigitalClock/DigitalClock.types.d.ts +8 -2
- package/MobileDatePicker/MobileDatePicker.js +4 -14
- package/MobileDatePicker/MobileDatePicker.types.d.ts +2 -3
- package/MobileDateTimePicker/MobileDateTimePicker.js +4 -14
- package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +4 -4
- package/MobileTimePicker/MobileTimePicker.js +4 -14
- package/MobileTimePicker/MobileTimePicker.types.d.ts +4 -4
- package/MonthCalendar/MonthCalendar.d.ts +1 -1
- package/MonthCalendar/MonthCalendar.js +31 -11
- package/MonthCalendar/MonthCalendar.types.d.ts +2 -2
- package/MonthCalendar/MonthCalendarButton.d.ts +24 -0
- package/{modern/MonthCalendar/PickersMonth.js → MonthCalendar/MonthCalendarButton.js} +20 -61
- package/MonthCalendar/index.d.ts +0 -3
- package/MonthCalendar/index.js +1 -2
- package/MonthCalendar/monthCalendarClasses.d.ts +7 -1
- package/MonthCalendar/monthCalendarClasses.js +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +11 -7
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +6 -6
- package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +4 -4
- package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +14 -10
- package/PickersActionBar/PickersActionBar.d.ts +6 -7
- package/PickersActionBar/PickersActionBar.js +26 -17
- package/PickersCalendarHeader/PickersCalendarHeader.js +12 -9
- package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +4 -6
- package/PickersLayout/PickersLayout.d.ts +7 -5
- package/PickersLayout/PickersLayout.js +23 -42
- package/PickersLayout/PickersLayout.types.d.ts +20 -22
- package/PickersLayout/usePickerLayout.d.ts +5 -4
- package/PickersLayout/usePickerLayout.js +26 -53
- package/PickersSectionList/PickersSectionList.js +21 -16
- package/PickersSectionList/PickersSectionList.types.d.ts +13 -6
- package/PickersShortcuts/PickersShortcuts.d.ts +9 -11
- package/PickersShortcuts/PickersShortcuts.js +21 -11
- package/PickersShortcuts/index.d.ts +1 -1
- package/PickersTextField/PickersFilledInput/PickersFilledInput.d.ts +7 -0
- package/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
- package/PickersTextField/PickersFilledInput/pickersFilledInputClasses.d.ts +1 -1
- package/PickersTextField/PickersInput/PickersInput.js +20 -14
- package/PickersTextField/PickersInput/pickersInputClasses.d.ts +3 -2
- package/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
- package/PickersTextField/PickersInputBase/PickersInputBase.d.ts +3 -6
- package/PickersTextField/PickersInputBase/PickersInputBase.js +45 -38
- package/PickersTextField/PickersInputBase/PickersInputBase.types.d.ts +1 -0
- package/PickersTextField/PickersOutlinedInput/Outline.d.ts +0 -1
- package/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
- package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
- package/PickersTextField/PickersTextField.js +75 -62
- package/PickersTextField/PickersTextField.types.d.ts +43 -4
- package/PickersTextField/usePickerTextFieldOwnerState.d.ts +4 -0
- package/PickersTextField/usePickerTextFieldOwnerState.js +11 -0
- package/README.md +8 -5
- package/StaticDatePicker/StaticDatePicker.js +2 -2
- package/StaticDatePicker/StaticDatePicker.types.d.ts +2 -3
- package/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
- package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +2 -2
- package/StaticTimePicker/StaticTimePicker.js +2 -2
- package/StaticTimePicker/StaticTimePicker.types.d.ts +2 -2
- package/TimeClock/Clock.d.ts +4 -0
- package/TimeClock/Clock.js +27 -27
- package/TimeClock/ClockNumber.js +15 -11
- package/TimeClock/ClockPointer.d.ts +6 -1
- package/TimeClock/ClockPointer.js +16 -10
- package/TimeClock/TimeClock.js +30 -12
- package/TimeField/TimeField.js +28 -32
- package/TimeField/TimeField.types.d.ts +7 -16
- package/TimeField/useTimeField.d.ts +1 -1
- package/TimeField/useTimeField.js +14 -11
- package/TimePicker/TimePicker.js +2 -2
- package/TimePicker/TimePicker.types.d.ts +4 -5
- package/TimePicker/TimePickerToolbar.d.ts +1 -3
- package/TimePicker/TimePickerToolbar.js +36 -51
- package/TimePicker/shared.d.ts +6 -6
- package/YearCalendar/YearCalendar.js +46 -13
- package/YearCalendar/YearCalendar.types.d.ts +2 -2
- package/YearCalendar/YearCalendarButton.d.ts +23 -0
- package/{modern/YearCalendar/PickersYear.js → YearCalendar/YearCalendarButton.js} +20 -59
- package/YearCalendar/index.d.ts +0 -3
- package/YearCalendar/index.js +1 -2
- package/YearCalendar/yearCalendarClasses.d.ts +7 -1
- package/YearCalendar/yearCalendarClasses.js +1 -1
- package/hooks/index.d.ts +2 -0
- package/hooks/index.js +3 -1
- package/hooks/useClearableField.d.ts +5 -3
- package/hooks/useClearableField.js +4 -2
- package/hooks/useIsValidValue.d.ts +7 -0
- package/hooks/useIsValidValue.js +11 -0
- package/hooks/useParsedFormat.d.ts +9 -7
- package/hooks/useParsedFormat.js +11 -13
- package/hooks/usePickerActionsContext.d.ts +7 -0
- package/hooks/usePickerActionsContext.js +15 -0
- package/hooks/usePickerContext.d.ts +5 -1
- package/hooks/usePickerContext.js +2 -2
- package/hooks/useSplitFieldProps.d.ts +12 -3
- package/hooks/useSplitFieldProps.js +8 -3
- package/index.d.ts +1 -0
- package/index.js +3 -2
- package/internals/components/PickerFieldUI.d.ts +133 -0
- package/internals/components/PickerFieldUI.js +317 -0
- package/internals/components/{PickersPopper.d.ts → PickerPopper/PickerPopper.d.ts} +26 -25
- package/{modern/internals/components/PickersPopper.js → internals/components/PickerPopper/PickerPopper.js} +47 -47
- package/internals/components/PickerPopper/index.d.ts +4 -0
- package/internals/components/PickerPopper/index.js +2 -0
- package/internals/components/PickerPopper/pickerPopperClasses.d.ts +9 -0
- package/internals/components/PickerPopper/pickerPopperClasses.js +6 -0
- package/internals/components/PickerProvider.d.ts +86 -32
- package/internals/components/PickerProvider.js +25 -7
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +11 -8
- package/internals/components/PickersModalDialog.d.ts +1 -3
- package/internals/components/PickersModalDialog.js +9 -3
- package/internals/components/PickersToolbar.d.ts +2 -3
- package/internals/components/PickersToolbar.js +15 -12
- package/internals/components/PickersToolbarButton.js +4 -6
- package/internals/components/PickersToolbarText.js +11 -13
- package/internals/hooks/date-helpers-hooks.js +4 -3
- package/internals/hooks/useClockReferenceDate.d.ts +2 -1
- package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +1 -1
- package/internals/hooks/useDesktopPicker/useDesktopPicker.js +35 -120
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +16 -38
- package/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
- package/internals/hooks/useField/index.d.ts +2 -0
- package/internals/hooks/useField/index.js +2 -1
- package/internals/hooks/useField/useField.d.ts +3 -3
- package/internals/hooks/useField/useField.js +17 -4
- package/internals/hooks/useField/useField.types.d.ts +55 -48
- package/internals/hooks/useField/useField.utils.d.ts +4 -3
- package/internals/hooks/useField/useField.utils.js +2 -2
- package/internals/hooks/useField/useFieldCharacterEditing.d.ts +6 -5
- package/internals/hooks/useField/useFieldInternalPropsWithDefaults.d.ts +15 -0
- package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +47 -0
- package/internals/hooks/useField/useFieldState.d.ts +9 -8
- package/internals/hooks/useField/useFieldState.js +2 -3
- package/internals/hooks/useField/useFieldV6TextField.d.ts +4 -3
- package/internals/hooks/useField/useFieldV6TextField.js +5 -2
- package/internals/hooks/useField/useFieldV7TextField.js +6 -3
- package/internals/hooks/useFieldOwnerState.d.ts +6 -0
- package/internals/hooks/useFieldOwnerState.js +16 -0
- package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +1 -1
- package/internals/hooks/useMobilePicker/useMobilePicker.js +34 -68
- package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +15 -22
- package/internals/hooks/useNullablePickerContext.d.ts +5 -0
- package/internals/hooks/useNullablePickerContext.js +10 -0
- package/internals/hooks/useOpenState.d.ts +3 -2
- package/internals/hooks/useOpenState.js +11 -9
- package/internals/hooks/usePicker/index.d.ts +1 -1
- package/internals/hooks/usePicker/usePicker.d.ts +3 -4
- package/internals/hooks/usePicker/usePicker.js +4 -20
- package/internals/hooks/usePicker/usePicker.types.d.ts +10 -10
- package/internals/hooks/usePicker/usePickerProvider.d.ts +45 -10
- package/internals/hooks/usePicker/usePickerProvider.js +50 -16
- package/internals/hooks/usePicker/usePickerValue.d.ts +3 -2
- package/internals/hooks/usePicker/usePickerValue.js +84 -214
- package/internals/hooks/usePicker/usePickerValue.types.d.ts +130 -75
- package/internals/hooks/usePicker/usePickerViews.d.ts +59 -41
- package/internals/hooks/usePicker/usePickerViews.js +31 -20
- package/internals/hooks/useReduceAnimations.d.ts +2 -0
- package/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +5 -2
- package/internals/hooks/useStaticPicker/useStaticPicker.d.ts +1 -1
- package/internals/hooks/useStaticPicker/useStaticPicker.js +7 -12
- package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +7 -13
- package/internals/hooks/useToolbarOwnerState.d.ts +10 -0
- package/internals/hooks/useToolbarOwnerState.js +13 -0
- package/internals/hooks/useUtils.d.ts +4 -3
- package/internals/hooks/useUtils.js +1 -1
- package/internals/hooks/useValueWithTimezone.d.ts +5 -4
- package/internals/hooks/useViews.d.ts +5 -5
- package/internals/index.d.ts +27 -18
- package/internals/index.js +13 -8
- package/internals/models/common.d.ts +1 -1
- package/internals/models/fields.d.ts +8 -24
- package/internals/models/index.d.ts +1 -0
- package/internals/models/index.js +2 -1
- package/internals/models/manager.d.ts +15 -0
- package/internals/models/manager.js +1 -0
- package/internals/models/pickers.d.ts +1 -0
- package/internals/models/pickers.js +1 -0
- package/internals/models/props/basePickerProps.d.ts +3 -33
- package/internals/models/props/tabs.d.ts +0 -13
- package/internals/models/props/time.d.ts +2 -1
- package/internals/models/props/toolbar.d.ts +1 -19
- package/internals/models/value.d.ts +9 -0
- package/internals/utils/date-utils.d.ts +1 -1
- package/internals/utils/date-utils.js +1 -1
- package/internals/utils/utils.d.ts +3 -0
- package/internals/utils/utils.js +11 -1
- package/internals/utils/valueManagers.d.ts +4 -3
- package/internals/utils/valueManagers.js +4 -4
- package/locales/index.d.ts +1 -0
- package/locales/index.js +1 -0
- package/locales/nbNO.js +15 -19
- package/locales/nlNL.js +7 -7
- package/locales/roRO.js +15 -18
- package/locales/utils/getPickersLocalization.d.ts +0 -7
- package/locales/utils/getPickersLocalization.js +0 -13
- package/locales/zhTW.d.ts +80 -0
- package/locales/zhTW.js +73 -0
- package/managers/index.d.ts +6 -0
- package/managers/index.js +3 -0
- package/managers/package.json +6 -0
- package/managers/useDateManager.d.ts +27 -0
- package/managers/useDateManager.js +55 -0
- package/managers/useDateTimeManager.d.ts +28 -0
- package/managers/useDateTimeManager.js +60 -0
- package/managers/useTimeManager.d.ts +28 -0
- package/managers/useTimeManager.js +51 -0
- package/models/adapters.d.ts +5 -5
- package/models/fields.d.ts +33 -9
- package/models/index.d.ts +1 -0
- package/models/index.js +1 -0
- package/models/manager.d.ts +87 -0
- package/models/manager.js +1 -0
- package/models/pickers.d.ts +7 -0
- package/models/validation.d.ts +2 -1
- package/modern/AdapterDateFns/AdapterDateFns.js +49 -47
- package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +48 -46
- package/modern/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +45 -52
- package/modern/AdapterDateFnsJalaliV2/index.js +1 -0
- package/modern/{AdapterDateFnsV3/AdapterDateFnsV3.js → AdapterDateFnsV2/AdapterDateFnsV2.js} +46 -54
- package/modern/AdapterDateFnsV2/index.js +1 -0
- package/modern/AdapterMoment/AdapterMoment.js +10 -0
- package/modern/DateCalendar/DateCalendar.js +41 -22
- package/modern/DateCalendar/DayCalendar.js +12 -36
- package/modern/DateCalendar/PickersFadeTransitionGroup.js +4 -6
- package/modern/DateCalendar/PickersSlideTransition.js +12 -5
- package/modern/DateCalendar/useCalendarState.js +65 -55
- package/modern/DateField/DateField.js +29 -33
- package/modern/DateField/useDateField.js +14 -11
- package/modern/DatePicker/DatePicker.js +1 -1
- package/modern/DatePicker/DatePickerToolbar.js +17 -33
- package/modern/DateTimeField/DateTimeField.js +29 -33
- package/modern/DateTimeField/useDateTimeField.js +14 -11
- package/modern/DateTimePicker/DateTimePicker.js +2 -2
- package/modern/DateTimePicker/DateTimePickerTabs.js +15 -20
- package/modern/DateTimePicker/DateTimePickerToolbar.js +88 -80
- package/modern/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
- package/modern/DesktopDatePicker/DesktopDatePicker.js +11 -17
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +17 -27
- package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +9 -34
- package/modern/DesktopTimePicker/DesktopTimePicker.js +6 -22
- package/modern/DigitalClock/DigitalClock.js +13 -11
- package/modern/MobileDatePicker/MobileDatePicker.js +4 -14
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +4 -14
- package/modern/MobileTimePicker/MobileTimePicker.js +4 -14
- package/modern/MonthCalendar/MonthCalendar.js +31 -11
- package/{MonthCalendar/PickersMonth.js → modern/MonthCalendar/MonthCalendarButton.js} +20 -61
- package/modern/MonthCalendar/index.js +1 -2
- package/modern/MonthCalendar/monthCalendarClasses.js +1 -1
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +11 -7
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +14 -10
- package/modern/PickersActionBar/PickersActionBar.js +26 -17
- package/modern/PickersCalendarHeader/PickersCalendarHeader.js +12 -9
- package/modern/PickersLayout/PickersLayout.js +23 -42
- package/modern/PickersLayout/usePickerLayout.js +26 -53
- package/modern/PickersSectionList/PickersSectionList.js +21 -16
- package/modern/PickersShortcuts/PickersShortcuts.js +21 -11
- package/modern/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
- package/modern/PickersTextField/PickersInput/PickersInput.js +20 -14
- package/modern/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
- package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +45 -38
- package/modern/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
- package/modern/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
- package/modern/PickersTextField/PickersTextField.js +75 -62
- package/modern/PickersTextField/usePickerTextFieldOwnerState.js +11 -0
- package/modern/StaticDatePicker/StaticDatePicker.js +2 -2
- package/modern/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
- package/modern/StaticTimePicker/StaticTimePicker.js +2 -2
- package/modern/TimeClock/Clock.js +27 -27
- package/modern/TimeClock/ClockNumber.js +15 -11
- package/modern/TimeClock/ClockPointer.js +16 -10
- package/modern/TimeClock/TimeClock.js +30 -12
- package/modern/TimeField/TimeField.js +28 -32
- package/modern/TimeField/useTimeField.js +14 -11
- package/modern/TimePicker/TimePicker.js +2 -2
- package/modern/TimePicker/TimePickerToolbar.js +36 -51
- package/modern/YearCalendar/YearCalendar.js +46 -13
- package/{YearCalendar/PickersYear.js → modern/YearCalendar/YearCalendarButton.js} +20 -59
- package/modern/YearCalendar/index.js +1 -2
- package/modern/YearCalendar/yearCalendarClasses.js +1 -1
- package/modern/hooks/index.js +3 -1
- package/modern/hooks/useClearableField.js +4 -2
- package/modern/hooks/useIsValidValue.js +11 -0
- package/modern/hooks/useParsedFormat.js +11 -13
- package/modern/hooks/usePickerActionsContext.js +15 -0
- package/modern/hooks/usePickerContext.js +2 -2
- package/modern/hooks/useSplitFieldProps.js +8 -3
- package/modern/index.js +3 -2
- package/modern/internals/components/PickerFieldUI.js +317 -0
- package/{internals/components/PickersPopper.js → modern/internals/components/PickerPopper/PickerPopper.js} +47 -47
- package/modern/internals/components/PickerPopper/index.js +2 -0
- package/modern/internals/components/PickerPopper/pickerPopperClasses.js +6 -0
- package/modern/internals/components/PickerProvider.js +25 -7
- package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
- package/modern/internals/components/PickersModalDialog.js +9 -3
- package/modern/internals/components/PickersToolbar.js +15 -12
- package/modern/internals/components/PickersToolbarButton.js +4 -6
- package/modern/internals/components/PickersToolbarText.js +11 -13
- package/modern/internals/hooks/date-helpers-hooks.js +4 -3
- package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +35 -120
- package/modern/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
- package/modern/internals/hooks/useField/index.js +2 -1
- package/modern/internals/hooks/useField/useField.js +17 -4
- package/modern/internals/hooks/useField/useField.utils.js +2 -2
- package/modern/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +47 -0
- package/modern/internals/hooks/useField/useFieldState.js +2 -3
- package/modern/internals/hooks/useField/useFieldV6TextField.js +5 -2
- package/modern/internals/hooks/useField/useFieldV7TextField.js +6 -3
- package/modern/internals/hooks/useFieldOwnerState.js +16 -0
- package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +34 -68
- package/modern/internals/hooks/useNullablePickerContext.js +10 -0
- package/modern/internals/hooks/useOpenState.js +11 -9
- package/modern/internals/hooks/usePicker/usePicker.js +4 -20
- package/modern/internals/hooks/usePicker/usePickerProvider.js +50 -16
- package/modern/internals/hooks/usePicker/usePickerValue.js +84 -214
- package/modern/internals/hooks/usePicker/usePickerViews.js +31 -20
- package/modern/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +5 -2
- package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +7 -12
- package/modern/internals/hooks/useToolbarOwnerState.js +13 -0
- package/modern/internals/hooks/useUtils.js +1 -1
- package/modern/internals/index.js +13 -8
- package/modern/internals/models/index.js +2 -1
- package/modern/internals/models/manager.js +1 -0
- package/modern/internals/models/pickers.js +1 -0
- package/modern/internals/utils/date-utils.js +1 -1
- package/modern/internals/utils/utils.js +11 -1
- package/modern/internals/utils/valueManagers.js +4 -4
- package/modern/locales/index.js +1 -0
- package/modern/locales/nbNO.js +15 -19
- package/modern/locales/nlNL.js +7 -7
- package/modern/locales/roRO.js +15 -18
- package/modern/locales/utils/getPickersLocalization.js +0 -13
- package/modern/locales/zhTW.js +73 -0
- package/modern/managers/index.js +3 -0
- package/modern/managers/useDateManager.js +55 -0
- package/modern/managers/useDateTimeManager.js +60 -0
- package/modern/managers/useTimeManager.js +51 -0
- package/modern/models/index.js +1 -0
- package/modern/models/manager.js +1 -0
- package/modern/validation/useValidation.js +1 -1
- package/modern/validation/validateDate.js +8 -0
- package/modern/validation/validateDateTime.js +8 -0
- package/modern/validation/validateTime.js +8 -0
- package/node/AdapterDateFns/AdapterDateFns.js +97 -97
- package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +97 -96
- package/node/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +94 -101
- package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
- package/node/AdapterDateFnsV2/AdapterDateFnsV2.js +291 -0
- package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
- package/node/AdapterMoment/AdapterMoment.js +10 -0
- package/node/DateCalendar/DateCalendar.js +41 -22
- package/node/DateCalendar/DayCalendar.js +12 -37
- package/node/DateCalendar/PickersFadeTransitionGroup.js +4 -6
- package/node/DateCalendar/PickersSlideTransition.js +12 -5
- package/node/DateCalendar/useCalendarState.js +66 -57
- package/node/DateField/DateField.js +29 -33
- package/node/DateField/useDateField.js +13 -10
- package/node/DatePicker/DatePicker.js +1 -1
- package/node/DatePicker/DatePickerToolbar.js +17 -33
- package/node/DateTimeField/DateTimeField.js +29 -33
- package/node/DateTimeField/useDateTimeField.js +13 -10
- package/node/DateTimePicker/DateTimePicker.js +2 -2
- package/node/DateTimePicker/DateTimePickerTabs.js +15 -20
- package/node/DateTimePicker/DateTimePickerToolbar.js +89 -80
- package/node/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
- package/node/DesktopDatePicker/DesktopDatePicker.js +11 -17
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +17 -27
- package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +10 -35
- package/node/DesktopTimePicker/DesktopTimePicker.js +6 -22
- package/node/DigitalClock/DigitalClock.js +13 -11
- package/node/MobileDatePicker/MobileDatePicker.js +4 -14
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +4 -14
- package/node/MobileTimePicker/MobileTimePicker.js +4 -14
- package/node/MonthCalendar/MonthCalendar.js +31 -11
- package/node/MonthCalendar/{PickersMonth.js → MonthCalendarButton.js} +20 -61
- package/node/MonthCalendar/index.js +1 -8
- package/node/MonthCalendar/monthCalendarClasses.js +1 -1
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +11 -7
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -10
- package/node/PickersActionBar/PickersActionBar.js +28 -19
- package/node/PickersCalendarHeader/PickersCalendarHeader.js +12 -9
- package/node/PickersLayout/PickersLayout.js +23 -42
- package/node/PickersLayout/usePickerLayout.js +30 -57
- package/node/PickersSectionList/PickersSectionList.js +21 -16
- package/node/PickersShortcuts/PickersShortcuts.js +21 -11
- package/node/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
- package/node/PickersTextField/PickersInput/PickersInput.js +20 -14
- package/node/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
- package/node/PickersTextField/PickersInputBase/PickersInputBase.js +45 -38
- package/node/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
- package/node/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
- package/node/PickersTextField/PickersTextField.js +75 -62
- package/node/PickersTextField/usePickerTextFieldOwnerState.js +18 -0
- package/node/StaticDatePicker/StaticDatePicker.js +2 -2
- package/node/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
- package/node/StaticTimePicker/StaticTimePicker.js +2 -2
- package/node/TimeClock/Clock.js +27 -27
- package/node/TimeClock/ClockNumber.js +15 -11
- package/node/TimeClock/ClockPointer.js +15 -10
- package/node/TimeClock/TimeClock.js +30 -12
- package/node/TimeField/TimeField.js +28 -32
- package/node/TimeField/useTimeField.js +13 -10
- package/node/TimePicker/TimePicker.js +2 -2
- package/node/TimePicker/TimePickerToolbar.js +36 -51
- package/node/YearCalendar/YearCalendar.js +45 -12
- package/node/YearCalendar/{PickersYear.js → YearCalendarButton.js} +20 -59
- package/node/YearCalendar/index.js +1 -8
- package/node/YearCalendar/yearCalendarClasses.js +1 -1
- package/node/hooks/index.js +15 -1
- package/node/hooks/useClearableField.js +4 -2
- package/node/hooks/useIsValidValue.js +18 -0
- package/node/hooks/useParsedFormat.js +11 -13
- package/node/hooks/usePickerActionsContext.js +22 -0
- package/node/hooks/usePickerContext.js +5 -4
- package/node/hooks/useSplitFieldProps.js +7 -2
- package/node/index.js +13 -1
- package/node/internals/components/PickerFieldUI.js +329 -0
- package/node/internals/components/{PickersPopper.js → PickerPopper/PickerPopper.js} +48 -48
- package/node/internals/components/PickerPopper/index.js +25 -0
- package/node/internals/components/PickerPopper/pickerPopperClasses.js +14 -0
- package/node/internals/components/PickerProvider.js +27 -9
- package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
- package/node/internals/components/PickersModalDialog.js +9 -3
- package/node/internals/components/PickersToolbar.js +15 -12
- package/node/internals/components/PickersToolbarButton.js +4 -6
- package/node/internals/components/PickersToolbarText.js +10 -12
- package/node/internals/hooks/date-helpers-hooks.js +4 -3
- package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +37 -122
- package/node/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
- package/node/internals/hooks/useField/index.js +8 -1
- package/node/internals/hooks/useField/useField.js +16 -3
- package/node/internals/hooks/useField/useField.utils.js +2 -2
- package/node/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +56 -0
- package/node/internals/hooks/useField/useFieldState.js +2 -3
- package/node/internals/hooks/useField/useFieldV6TextField.js +5 -2
- package/node/internals/hooks/useField/useFieldV7TextField.js +6 -3
- package/node/internals/hooks/useFieldOwnerState.js +24 -0
- package/node/internals/hooks/useMobilePicker/useMobilePicker.js +35 -69
- package/node/internals/hooks/useNullablePickerContext.js +16 -0
- package/node/internals/hooks/useOpenState.js +12 -9
- package/node/internals/hooks/usePicker/usePicker.js +4 -20
- package/node/internals/hooks/usePicker/usePickerProvider.js +51 -17
- package/node/internals/hooks/usePicker/usePickerValue.js +84 -213
- package/node/internals/hooks/usePicker/usePickerViews.js +31 -21
- package/node/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +7 -4
- package/node/internals/hooks/useStaticPicker/useStaticPicker.js +7 -12
- package/node/internals/hooks/useToolbarOwnerState.js +21 -0
- package/node/internals/hooks/useUtils.js +1 -1
- package/node/internals/index.js +87 -34
- package/node/internals/models/index.js +11 -0
- package/node/internals/models/manager.js +5 -0
- package/node/internals/models/pickers.js +5 -0
- package/node/internals/utils/date-utils.js +1 -1
- package/node/internals/utils/utils.js +14 -2
- package/node/internals/utils/valueManagers.js +4 -4
- package/node/locales/index.js +11 -0
- package/node/locales/nbNO.js +15 -19
- package/node/locales/nlNL.js +7 -7
- package/node/locales/roRO.js +15 -18
- package/node/locales/utils/getPickersLocalization.js +2 -16
- package/node/locales/zhTW.js +79 -0
- package/node/managers/index.js +26 -0
- package/node/managers/useDateManager.js +63 -0
- package/node/managers/useDateTimeManager.js +68 -0
- package/node/managers/useTimeManager.js +59 -0
- package/node/models/index.js +11 -0
- package/node/models/manager.js +5 -0
- package/node/validation/useValidation.js +1 -1
- package/node/validation/validateDate.js +8 -0
- package/node/validation/validateDateTime.js +8 -0
- package/node/validation/validateTime.js +8 -0
- package/package.json +5 -5
- package/themeAugmentation/components.d.ts +3 -11
- package/themeAugmentation/overrides.d.ts +5 -7
- package/themeAugmentation/props.d.ts +7 -9
- package/validation/extractValidationProps.d.ts +1 -1
- package/validation/useValidation.d.ts +7 -6
- package/validation/useValidation.js +1 -1
- package/validation/validateDate.d.ts +12 -3
- package/validation/validateDate.js +8 -0
- package/validation/validateDateTime.d.ts +12 -4
- package/validation/validateDateTime.js +8 -0
- package/validation/validateTime.d.ts +12 -3
- package/validation/validateTime.js +8 -0
- package/AdapterDateFnsJalaliV3/index.d.ts +0 -1
- package/AdapterDateFnsJalaliV3/index.js +0 -1
- package/AdapterDateFnsV3/index.d.ts +0 -1
- package/AdapterDateFnsV3/index.js +0 -1
- package/MonthCalendar/PickersMonth.d.ts +0 -28
- package/MonthCalendar/pickersMonthClasses.d.ts +0 -13
- package/MonthCalendar/pickersMonthClasses.js +0 -5
- package/YearCalendar/PickersYear.d.ts +0 -27
- package/YearCalendar/pickersYearClasses.d.ts +0 -13
- package/YearCalendar/pickersYearClasses.js +0 -5
- package/internals/components/pickersPopperClasses.d.ts +0 -9
- package/internals/components/pickersPopperClasses.js +0 -5
- package/internals/hooks/defaultizedFieldProps.d.ts +0 -18
- package/internals/hooks/defaultizedFieldProps.js +0 -40
- package/internals/hooks/useDefaultReduceAnimations.d.ts +0 -2
- package/internals/hooks/useIsLandscape.d.ts +0 -4
- package/internals/hooks/useIsLandscape.js +0 -35
- package/internals/hooks/usePicker/usePickerLayoutProps.d.ts +0 -32
- package/internals/hooks/usePicker/usePickerLayoutProps.js +0 -31
- package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.d.ts +0 -3
- package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
- package/modern/AdapterDateFnsJalaliV3/index.js +0 -1
- package/modern/AdapterDateFnsV3/index.js +0 -1
- package/modern/MonthCalendar/pickersMonthClasses.js +0 -5
- package/modern/YearCalendar/pickersYearClasses.js +0 -5
- package/modern/internals/components/pickersPopperClasses.js +0 -5
- package/modern/internals/hooks/defaultizedFieldProps.js +0 -40
- package/modern/internals/hooks/useIsLandscape.js +0 -35
- package/modern/internals/hooks/usePicker/usePickerLayoutProps.js +0 -31
- package/modern/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
- package/node/AdapterDateFnsV3/AdapterDateFnsV3.js +0 -299
- package/node/MonthCalendar/pickersMonthClasses.js +0 -12
- package/node/YearCalendar/pickersYearClasses.js +0 -12
- package/node/internals/components/pickersPopperClasses.js +0 -12
- package/node/internals/hooks/defaultizedFieldProps.js +0 -50
- package/node/internals/hooks/useIsLandscape.js +0 -43
- package/node/internals/hooks/usePicker/usePickerLayoutProps.js +0 -38
- package/node/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -52
package/DateField/DateField.js
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
-
const _excluded = ["slots", "slotProps"
|
|
4
|
+
const _excluded = ["slots", "slotProps"];
|
|
6
5
|
import * as React from 'react';
|
|
7
6
|
import PropTypes from 'prop-types';
|
|
8
|
-
import MuiTextField from '@mui/material/TextField';
|
|
9
7
|
import { useThemeProps } from '@mui/material/styles';
|
|
10
|
-
import useSlotProps from '@mui/utils/useSlotProps';
|
|
11
8
|
import { refType } from '@mui/utils';
|
|
12
9
|
import { useDateField } from "./useDateField.js";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import { convertFieldResponseIntoMuiTextFieldProps } from "../internals/utils/convertFieldResponseIntoMuiTextFieldProps.js";
|
|
10
|
+
import { PickerFieldUI, useFieldTextFieldProps } from "../internals/components/PickerFieldUI.js";
|
|
11
|
+
import { CalendarIcon } from "../icons/index.js";
|
|
16
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
17
13
|
/**
|
|
18
14
|
* Demos:
|
|
@@ -31,33 +27,21 @@ const DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, inRe
|
|
|
31
27
|
});
|
|
32
28
|
const {
|
|
33
29
|
slots,
|
|
34
|
-
slotProps
|
|
35
|
-
InputProps,
|
|
36
|
-
inputProps
|
|
30
|
+
slotProps
|
|
37
31
|
} = themeProps,
|
|
38
32
|
other = _objectWithoutPropertiesLoose(themeProps, _excluded);
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
externalSlotProps: slotProps?.textField,
|
|
44
|
-
externalForwardedProps: other,
|
|
45
|
-
additionalProps: {
|
|
46
|
-
ref: inRef
|
|
47
|
-
},
|
|
48
|
-
ownerState
|
|
33
|
+
const textFieldProps = useFieldTextFieldProps({
|
|
34
|
+
slotProps,
|
|
35
|
+
ref: inRef,
|
|
36
|
+
externalForwardedProps: other
|
|
49
37
|
});
|
|
50
|
-
|
|
51
|
-
// TODO: Remove when mui/material-ui#35088 will be merged
|
|
52
|
-
textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
|
|
53
|
-
textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
|
|
54
38
|
const fieldResponse = useDateField(textFieldProps);
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
39
|
+
return /*#__PURE__*/_jsx(PickerFieldUI, {
|
|
40
|
+
slots: slots,
|
|
41
|
+
slotProps: slotProps,
|
|
42
|
+
fieldResponse: fieldResponse,
|
|
43
|
+
defaultOpenPickerIcon: CalendarIcon
|
|
44
|
+
});
|
|
61
45
|
});
|
|
62
46
|
process.env.NODE_ENV !== "production" ? DateField.propTypes = {
|
|
63
47
|
// ----------------------------- Warning --------------------------------
|
|
@@ -75,6 +59,12 @@ process.env.NODE_ENV !== "production" ? DateField.propTypes = {
|
|
|
75
59
|
* @default false
|
|
76
60
|
*/
|
|
77
61
|
clearable: PropTypes.bool,
|
|
62
|
+
/**
|
|
63
|
+
* The position at which the clear button is placed.
|
|
64
|
+
* If the field is not clearable, the button is not rendered.
|
|
65
|
+
* @default 'end'
|
|
66
|
+
*/
|
|
67
|
+
clearButtonPosition: PropTypes.oneOf(['end', 'start']),
|
|
78
68
|
/**
|
|
79
69
|
* The color of the component.
|
|
80
70
|
* It supports both default and custom theme colors, which can be added as shown in the
|
|
@@ -218,6 +208,12 @@ process.env.NODE_ENV !== "production" ? DateField.propTypes = {
|
|
|
218
208
|
* @param {FieldSelectedSections} newValue The new selected sections.
|
|
219
209
|
*/
|
|
220
210
|
onSelectedSectionsChange: PropTypes.func,
|
|
211
|
+
/**
|
|
212
|
+
* The position at which the opening button is placed.
|
|
213
|
+
* If there is no picker to open, the button is not rendered
|
|
214
|
+
* @default 'end'
|
|
215
|
+
*/
|
|
216
|
+
openPickerButtonPosition: PropTypes.oneOf(['end', 'start']),
|
|
221
217
|
/**
|
|
222
218
|
* If `true`, the component is read-only.
|
|
223
219
|
* When read-only, the value cannot be changed but the user can interact with the interface.
|
|
@@ -267,10 +263,10 @@ process.env.NODE_ENV !== "production" ? DateField.propTypes = {
|
|
|
267
263
|
*/
|
|
268
264
|
shouldDisableYear: PropTypes.func,
|
|
269
265
|
/**
|
|
270
|
-
* If `true`, the format will respect the leading zeroes (
|
|
271
|
-
* If `false`, the format will always add leading zeroes (
|
|
266
|
+
* If `true`, the format will respect the leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
|
|
267
|
+
* If `false`, the format will always add leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
|
|
272
268
|
*
|
|
273
|
-
* Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (
|
|
269
|
+
* Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (for example "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
|
|
274
270
|
*
|
|
275
271
|
* Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.
|
|
276
272
|
* If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { SlotComponentProps } from '@mui/utils';
|
|
3
1
|
import { MakeOptional } from '@mui/x-internals/types';
|
|
4
|
-
import
|
|
5
|
-
import { ExportedUseClearableFieldProps, UseClearableFieldSlots, UseClearableFieldSlotProps } from '../hooks/useClearableField';
|
|
6
|
-
import { DateValidationError, FieldSection, PickerValidDate, BuiltInFieldTextFieldProps } from '../models';
|
|
2
|
+
import { DateValidationError, BuiltInFieldTextFieldProps } from '../models';
|
|
7
3
|
import { UseFieldInternalProps } from '../internals/hooks/useField';
|
|
8
4
|
import { ExportedValidateDateProps } from '../validation/validateDate';
|
|
9
|
-
|
|
5
|
+
import { PickerValue } from '../internals/models';
|
|
6
|
+
import { ExportedPickerFieldUIProps, PickerFieldUISlotProps, PickerFieldUISlots } from '../internals/components/PickerFieldUI';
|
|
7
|
+
export interface UseDateFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, DateValidationError>, 'format'>, ExportedValidateDateProps, ExportedPickerFieldUIProps {
|
|
10
8
|
}
|
|
11
9
|
export type DateFieldProps<TEnableAccessibleFieldDOMStructure extends boolean = true> = UseDateFieldProps<TEnableAccessibleFieldDOMStructure> & Omit<BuiltInFieldTextFieldProps<TEnableAccessibleFieldDOMStructure>, keyof UseDateFieldProps<TEnableAccessibleFieldDOMStructure>> & {
|
|
12
10
|
/**
|
|
@@ -18,16 +16,10 @@ export type DateFieldProps<TEnableAccessibleFieldDOMStructure extends boolean =
|
|
|
18
16
|
* The props used for each component slot.
|
|
19
17
|
* @default {}
|
|
20
18
|
*/
|
|
21
|
-
slotProps?: DateFieldSlotProps
|
|
19
|
+
slotProps?: DateFieldSlotProps;
|
|
22
20
|
};
|
|
23
21
|
export type DateFieldOwnerState<TEnableAccessibleFieldDOMStructure extends boolean> = DateFieldProps<TEnableAccessibleFieldDOMStructure>;
|
|
24
|
-
export interface DateFieldSlots extends
|
|
25
|
-
/**
|
|
26
|
-
* Form control with an input to render the value.
|
|
27
|
-
* @default TextField from '@mui/material' or PickersTextField if `enableAccessibleFieldDOMStructure` is `true`.
|
|
28
|
-
*/
|
|
29
|
-
textField?: React.ElementType;
|
|
22
|
+
export interface DateFieldSlots extends PickerFieldUISlots {
|
|
30
23
|
}
|
|
31
|
-
export interface DateFieldSlotProps
|
|
32
|
-
textField?: SlotComponentProps<typeof TextField, {}, DateFieldOwnerState<TEnableAccessibleFieldDOMStructure>>;
|
|
24
|
+
export interface DateFieldSlotProps extends PickerFieldUISlotProps {
|
|
33
25
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { UseDateFieldProps } from './DateField.types';
|
|
2
|
-
export declare const useDateField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseDateFieldProps<TEnableAccessibleFieldDOMStructure>>(
|
|
2
|
+
export declare const useDateField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseDateFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TAllProps) => import("../internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps, "disabled" | "readOnly" | "value" | "defaultValue" | "autoFocus" | "onChange" | "onError" | "format" | "timezone" | keyof import("../internals").BaseDateValidationProps | "shouldDisableYear" | "shouldDisableMonth" | "shouldDisableDate" | "referenceDate" | "formatDensity" | "shouldRespectLeadingZeros" | "selectedSections" | "onSelectedSectionsChange" | "unstableFieldRef" | "unstableStartFieldRef" | "unstableEndFieldRef" | "enableAccessibleFieldDOMStructure" | "dateSeparator">>;
|
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { useField } from "../internals/hooks/useField/index.js";
|
|
5
|
-
import { validateDate } from "../validation/index.js";
|
|
3
|
+
import { useField, useFieldInternalPropsWithDefaults } from "../internals/hooks/useField/index.js";
|
|
6
4
|
import { useSplitFieldProps } from "../hooks/index.js";
|
|
7
|
-
import {
|
|
8
|
-
export const useDateField =
|
|
9
|
-
const
|
|
5
|
+
import { useDateManager } from "../managers/index.js";
|
|
6
|
+
export const useDateField = props => {
|
|
7
|
+
const manager = useDateManager(props);
|
|
10
8
|
const {
|
|
11
9
|
forwardedProps,
|
|
12
10
|
internalProps
|
|
13
11
|
} = useSplitFieldProps(props, 'date');
|
|
12
|
+
const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
|
|
13
|
+
manager,
|
|
14
|
+
internalProps
|
|
15
|
+
});
|
|
14
16
|
return useField({
|
|
15
17
|
forwardedProps,
|
|
16
|
-
internalProps,
|
|
17
|
-
valueManager:
|
|
18
|
-
fieldValueManager:
|
|
19
|
-
validator:
|
|
20
|
-
valueType:
|
|
18
|
+
internalProps: internalPropsWithDefaults,
|
|
19
|
+
valueManager: manager.internal_valueManager,
|
|
20
|
+
fieldValueManager: manager.internal_fieldValueManager,
|
|
21
|
+
validator: manager.validator,
|
|
22
|
+
valueType: manager.valueType,
|
|
23
|
+
getOpenPickerButtonAriaLabel: manager.internal_getOpenPickerButtonAriaLabel
|
|
21
24
|
});
|
|
22
25
|
};
|
package/DatePicker/DatePicker.js
CHANGED
|
@@ -59,7 +59,7 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes = {
|
|
|
59
59
|
autoFocus: PropTypes.bool,
|
|
60
60
|
className: PropTypes.string,
|
|
61
61
|
/**
|
|
62
|
-
* If `true`, the
|
|
62
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
63
63
|
* @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
|
|
64
64
|
*/
|
|
65
65
|
closeOnSelect: PropTypes.bool,
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DesktopDatePickerProps, DesktopDatePickerSlots, DesktopDatePickerSlotProps } from '../DesktopDatePicker';
|
|
2
|
-
import { BaseSingleInputFieldProps } from '../internals/models';
|
|
2
|
+
import { BaseSingleInputFieldProps, PickerValue } from '../internals/models';
|
|
3
3
|
import { MobileDatePickerProps, MobileDatePickerSlots, MobileDatePickerSlotProps } from '../MobileDatePicker';
|
|
4
|
-
import { DateValidationError, FieldSection, PickerValidDate } from '../models';
|
|
5
4
|
import { ValidateDateProps } from '../validation/validateDate';
|
|
6
5
|
export interface DatePickerSlots extends DesktopDatePickerSlots, MobileDatePickerSlots {
|
|
7
6
|
}
|
|
@@ -29,8 +28,13 @@ export interface DatePickerProps<TEnableAccessibleFieldDOMStructure extends bool
|
|
|
29
28
|
* @default 4 on desktop, 3 on mobile
|
|
30
29
|
*/
|
|
31
30
|
yearsPerRow?: 3 | 4;
|
|
31
|
+
/**
|
|
32
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
33
|
+
* @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
|
|
34
|
+
*/
|
|
35
|
+
closeOnSelect?: boolean;
|
|
32
36
|
}
|
|
33
37
|
/**
|
|
34
38
|
* Props the field can receive when used inside a date picker (<DatePicker />, <DesktopDatePicker /> or <MobileDatePicker /> component).
|
|
35
39
|
*/
|
|
36
|
-
export type DatePickerFieldProps
|
|
40
|
+
export type DatePickerFieldProps = ValidateDateProps & BaseSingleInputFieldProps<PickerValue>;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { BaseToolbarProps, ExportedBaseToolbarProps } from '../internals/models/props/toolbar';
|
|
3
|
-
import { DateView, PickerValidDate } from '../models';
|
|
4
3
|
import { DatePickerToolbarClasses } from './datePickerToolbarClasses';
|
|
5
|
-
export interface DatePickerToolbarProps extends BaseToolbarProps
|
|
4
|
+
export interface DatePickerToolbarProps extends BaseToolbarProps, ExportedDatePickerToolbarProps {
|
|
6
5
|
}
|
|
7
6
|
export interface ExportedDatePickerToolbarProps extends ExportedBaseToolbarProps {
|
|
8
7
|
/**
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
-
const _excluded = ["
|
|
5
|
+
const _excluded = ["toolbarFormat", "toolbarPlaceholder", "className", "classes"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import clsx from 'clsx';
|
|
8
8
|
import PropTypes from 'prop-types';
|
|
@@ -14,11 +14,10 @@ import { usePickerTranslations } from "../hooks/usePickerTranslations.js";
|
|
|
14
14
|
import { useUtils } from "../internals/hooks/useUtils.js";
|
|
15
15
|
import { getDatePickerToolbarUtilityClass } from "./datePickerToolbarClasses.js";
|
|
16
16
|
import { resolveDateFormat } from "../internals/utils/date-utils.js";
|
|
17
|
+
import { useToolbarOwnerState } from "../internals/hooks/useToolbarOwnerState.js";
|
|
18
|
+
import { usePickerContext } from "../hooks/index.js";
|
|
17
19
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
18
|
-
const useUtilityClasses =
|
|
19
|
-
const {
|
|
20
|
-
classes
|
|
21
|
-
} = ownerState;
|
|
20
|
+
const useUtilityClasses = classes => {
|
|
22
21
|
const slots = {
|
|
23
22
|
root: ['root'],
|
|
24
23
|
title: ['title']
|
|
@@ -37,7 +36,7 @@ const DatePickerToolbarTitle = styled(Typography, {
|
|
|
37
36
|
})({
|
|
38
37
|
variants: [{
|
|
39
38
|
props: {
|
|
40
|
-
|
|
39
|
+
pickerOrientation: 'landscape'
|
|
41
40
|
},
|
|
42
41
|
style: {
|
|
43
42
|
margin: 'auto 16px auto auto'
|
|
@@ -60,19 +59,23 @@ export const DatePickerToolbar = /*#__PURE__*/React.forwardRef(function DatePick
|
|
|
60
59
|
name: 'MuiDatePickerToolbar'
|
|
61
60
|
});
|
|
62
61
|
const {
|
|
63
|
-
value,
|
|
64
|
-
isLandscape,
|
|
65
62
|
toolbarFormat,
|
|
66
63
|
toolbarPlaceholder = '––',
|
|
67
|
-
|
|
68
|
-
|
|
64
|
+
className,
|
|
65
|
+
classes: classesProp
|
|
69
66
|
} = props,
|
|
70
67
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
71
68
|
const utils = useUtils();
|
|
69
|
+
const {
|
|
70
|
+
value,
|
|
71
|
+
views,
|
|
72
|
+
orientation
|
|
73
|
+
} = usePickerContext();
|
|
72
74
|
const translations = usePickerTranslations();
|
|
73
|
-
const
|
|
75
|
+
const ownerState = useToolbarOwnerState();
|
|
76
|
+
const classes = useUtilityClasses(classesProp);
|
|
74
77
|
const dateText = React.useMemo(() => {
|
|
75
|
-
if (!value) {
|
|
78
|
+
if (!utils.isValid(value)) {
|
|
76
79
|
return toolbarPlaceholder;
|
|
77
80
|
}
|
|
78
81
|
const formatFromViews = resolveDateFormat(utils, {
|
|
@@ -81,16 +84,14 @@ export const DatePickerToolbar = /*#__PURE__*/React.forwardRef(function DatePick
|
|
|
81
84
|
}, true);
|
|
82
85
|
return utils.formatByString(value, formatFromViews);
|
|
83
86
|
}, [value, toolbarFormat, toolbarPlaceholder, utils, views]);
|
|
84
|
-
const ownerState = props;
|
|
85
87
|
return /*#__PURE__*/_jsx(DatePickerToolbarRoot, _extends({
|
|
86
88
|
ref: ref,
|
|
87
89
|
toolbarTitle: translations.datePickerToolbarTitle,
|
|
88
|
-
isLandscape: isLandscape,
|
|
89
90
|
className: clsx(classes.root, className)
|
|
90
91
|
}, other, {
|
|
91
92
|
children: /*#__PURE__*/_jsx(DatePickerToolbarTitle, {
|
|
92
93
|
variant: "h4",
|
|
93
|
-
align:
|
|
94
|
+
align: orientation === 'landscape' ? 'left' : 'center',
|
|
94
95
|
ownerState: ownerState,
|
|
95
96
|
className: classes.title,
|
|
96
97
|
children: dateText
|
|
@@ -112,14 +113,6 @@ process.env.NODE_ENV !== "production" ? DatePickerToolbar.propTypes = {
|
|
|
112
113
|
* @default `true` for Desktop, `false` for Mobile.
|
|
113
114
|
*/
|
|
114
115
|
hidden: PropTypes.bool,
|
|
115
|
-
isLandscape: PropTypes.bool.isRequired,
|
|
116
|
-
onChange: PropTypes.func.isRequired,
|
|
117
|
-
/**
|
|
118
|
-
* Callback called when a toolbar is clicked
|
|
119
|
-
* @template TView
|
|
120
|
-
* @param {TView} view The view to open
|
|
121
|
-
*/
|
|
122
|
-
onViewChange: PropTypes.func.isRequired,
|
|
123
116
|
/**
|
|
124
117
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
125
118
|
*/
|
|
@@ -133,14 +126,5 @@ process.env.NODE_ENV !== "production" ? DatePickerToolbar.propTypes = {
|
|
|
133
126
|
* Toolbar value placeholder—it is displayed when the value is empty.
|
|
134
127
|
* @default "––"
|
|
135
128
|
*/
|
|
136
|
-
toolbarPlaceholder: PropTypes.node
|
|
137
|
-
value: PropTypes.object,
|
|
138
|
-
/**
|
|
139
|
-
* Currently visible picker view.
|
|
140
|
-
*/
|
|
141
|
-
view: PropTypes.oneOf(['day', 'month', 'year']).isRequired,
|
|
142
|
-
/**
|
|
143
|
-
* Available views.
|
|
144
|
-
*/
|
|
145
|
-
views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired).isRequired
|
|
129
|
+
toolbarPlaceholder: PropTypes.node
|
|
146
130
|
} : void 0;
|
package/DatePicker/shared.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { DefaultizedProps } from '@mui/x-internals/types';
|
|
3
3
|
import { DateCalendarSlots, DateCalendarSlotProps, ExportedDateCalendarProps } from '../DateCalendar/DateCalendar.types';
|
|
4
|
-
import { DateValidationError, DateView
|
|
4
|
+
import { DateValidationError, DateView } from '../models';
|
|
5
5
|
import { BasePickerInputProps } from '../internals/models/props/basePickerProps';
|
|
6
|
-
import { BaseDateValidationProps } from '../internals/models/validation';
|
|
7
6
|
import { LocalizedComponent } from '../locales/utils/pickersLocaleTextApi';
|
|
8
7
|
import { DatePickerToolbarProps, ExportedDatePickerToolbarProps } from './DatePickerToolbar';
|
|
9
8
|
import { PickerViewRendererLookup } from '../internals/hooks/usePicker/usePickerViews';
|
|
10
9
|
import { DateViewRendererProps } from '../dateViewRenderers';
|
|
10
|
+
import { PickerValue } from '../internals/models';
|
|
11
|
+
import { ValidateDatePropsToDefault } from '../validation/validateDate';
|
|
11
12
|
export interface BaseDatePickerSlots extends DateCalendarSlots {
|
|
12
13
|
/**
|
|
13
14
|
* Custom component for the toolbar rendered above the views.
|
|
@@ -18,8 +19,8 @@ export interface BaseDatePickerSlots extends DateCalendarSlots {
|
|
|
18
19
|
export interface BaseDatePickerSlotProps extends DateCalendarSlotProps {
|
|
19
20
|
toolbar?: ExportedDatePickerToolbarProps;
|
|
20
21
|
}
|
|
21
|
-
export type DatePickerViewRenderers<TView extends DateView
|
|
22
|
-
export interface BaseDatePickerProps extends BasePickerInputProps<
|
|
22
|
+
export type DatePickerViewRenderers<TView extends DateView> = PickerViewRendererLookup<PickerValue, TView, DateViewRendererProps<TView>>;
|
|
23
|
+
export interface BaseDatePickerProps extends BasePickerInputProps<PickerValue, DateView, DateValidationError>, ExportedDateCalendarProps {
|
|
23
24
|
/**
|
|
24
25
|
* Overridable component slots.
|
|
25
26
|
* @default {}
|
|
@@ -37,6 +38,6 @@ export interface BaseDatePickerProps extends BasePickerInputProps<PickerValidDat
|
|
|
37
38
|
*/
|
|
38
39
|
viewRenderers?: Partial<DatePickerViewRenderers<DateView>>;
|
|
39
40
|
}
|
|
40
|
-
type UseDatePickerDefaultizedProps<Props extends BaseDatePickerProps> = LocalizedComponent<DefaultizedProps<Props, 'views' | 'openTo' |
|
|
41
|
+
type UseDatePickerDefaultizedProps<Props extends BaseDatePickerProps> = LocalizedComponent<DefaultizedProps<Props, 'views' | 'openTo' | ValidateDatePropsToDefault>>;
|
|
41
42
|
export declare function useDatePickerDefaultizedProps<Props extends BaseDatePickerProps>(props: Props, name: string): UseDatePickerDefaultizedProps<Props>;
|
|
42
43
|
export {};
|
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
-
const _excluded = ["slots", "slotProps"
|
|
4
|
+
const _excluded = ["slots", "slotProps"];
|
|
6
5
|
import * as React from 'react';
|
|
7
6
|
import PropTypes from 'prop-types';
|
|
8
|
-
import MuiTextField from '@mui/material/TextField';
|
|
9
7
|
import { useThemeProps } from '@mui/material/styles';
|
|
10
|
-
import useSlotProps from '@mui/utils/useSlotProps';
|
|
11
8
|
import { refType } from '@mui/utils';
|
|
12
9
|
import { useDateTimeField } from "./useDateTimeField.js";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import { convertFieldResponseIntoMuiTextFieldProps } from "../internals/utils/convertFieldResponseIntoMuiTextFieldProps.js";
|
|
10
|
+
import { PickerFieldUI, useFieldTextFieldProps } from "../internals/components/PickerFieldUI.js";
|
|
11
|
+
import { CalendarIcon } from "../icons/index.js";
|
|
16
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
17
13
|
/**
|
|
18
14
|
* Demos:
|
|
@@ -31,33 +27,21 @@ const DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inPro
|
|
|
31
27
|
});
|
|
32
28
|
const {
|
|
33
29
|
slots,
|
|
34
|
-
slotProps
|
|
35
|
-
InputProps,
|
|
36
|
-
inputProps
|
|
30
|
+
slotProps
|
|
37
31
|
} = themeProps,
|
|
38
32
|
other = _objectWithoutPropertiesLoose(themeProps, _excluded);
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
externalSlotProps: slotProps?.textField,
|
|
44
|
-
externalForwardedProps: other,
|
|
45
|
-
ownerState,
|
|
46
|
-
additionalProps: {
|
|
47
|
-
ref: inRef
|
|
48
|
-
}
|
|
33
|
+
const textFieldProps = useFieldTextFieldProps({
|
|
34
|
+
slotProps,
|
|
35
|
+
ref: inRef,
|
|
36
|
+
externalForwardedProps: other
|
|
49
37
|
});
|
|
50
|
-
|
|
51
|
-
// TODO: Remove when mui/material-ui#35088 will be merged
|
|
52
|
-
textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
|
|
53
|
-
textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
|
|
54
38
|
const fieldResponse = useDateTimeField(textFieldProps);
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
39
|
+
return /*#__PURE__*/_jsx(PickerFieldUI, {
|
|
40
|
+
slots: slots,
|
|
41
|
+
slotProps: slotProps,
|
|
42
|
+
fieldResponse: fieldResponse,
|
|
43
|
+
defaultOpenPickerIcon: CalendarIcon
|
|
44
|
+
});
|
|
61
45
|
});
|
|
62
46
|
process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
|
|
63
47
|
// ----------------------------- Warning --------------------------------
|
|
@@ -80,6 +64,12 @@ process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
|
|
|
80
64
|
* @default false
|
|
81
65
|
*/
|
|
82
66
|
clearable: PropTypes.bool,
|
|
67
|
+
/**
|
|
68
|
+
* The position at which the clear button is placed.
|
|
69
|
+
* If the field is not clearable, the button is not rendered.
|
|
70
|
+
* @default 'end'
|
|
71
|
+
*/
|
|
72
|
+
clearButtonPosition: PropTypes.oneOf(['end', 'start']),
|
|
83
73
|
/**
|
|
84
74
|
* The color of the component.
|
|
85
75
|
* It supports both default and custom theme colors, which can be added as shown in the
|
|
@@ -251,6 +241,12 @@ process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
|
|
|
251
241
|
* @param {FieldSelectedSections} newValue The new selected sections.
|
|
252
242
|
*/
|
|
253
243
|
onSelectedSectionsChange: PropTypes.func,
|
|
244
|
+
/**
|
|
245
|
+
* The position at which the opening button is placed.
|
|
246
|
+
* If there is no picker to open, the button is not rendered
|
|
247
|
+
* @default 'end'
|
|
248
|
+
*/
|
|
249
|
+
openPickerButtonPosition: PropTypes.oneOf(['end', 'start']),
|
|
254
250
|
/**
|
|
255
251
|
* If `true`, the component is read-only.
|
|
256
252
|
* When read-only, the value cannot be changed but the user can interact with the interface.
|
|
@@ -307,10 +303,10 @@ process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
|
|
|
307
303
|
*/
|
|
308
304
|
shouldDisableYear: PropTypes.func,
|
|
309
305
|
/**
|
|
310
|
-
* If `true`, the format will respect the leading zeroes (
|
|
311
|
-
* If `false`, the format will always add leading zeroes (
|
|
306
|
+
* If `true`, the format will respect the leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
|
|
307
|
+
* If `false`, the format will always add leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
|
|
312
308
|
*
|
|
313
|
-
* Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (
|
|
309
|
+
* Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (for example "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
|
|
314
310
|
*
|
|
315
311
|
* Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.
|
|
316
312
|
* If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { SlotComponentProps } from '@mui/utils';
|
|
3
1
|
import { MakeOptional } from '@mui/x-internals/types';
|
|
4
|
-
import
|
|
5
|
-
import { DateTimeValidationError, FieldSection, PickerValidDate, BuiltInFieldTextFieldProps } from '../models';
|
|
2
|
+
import { DateTimeValidationError, BuiltInFieldTextFieldProps } from '../models';
|
|
6
3
|
import { UseFieldInternalProps } from '../internals/hooks/useField';
|
|
7
|
-
import { ExportedUseClearableFieldProps, UseClearableFieldSlots, UseClearableFieldSlotProps } from '../hooks/useClearableField';
|
|
8
4
|
import { ExportedValidateDateTimeProps } from '../validation/validateDateTime';
|
|
9
5
|
import { AmPmProps } from '../internals/models/props/time';
|
|
10
|
-
|
|
6
|
+
import { PickerValue } from '../internals/models';
|
|
7
|
+
import { ExportedPickerFieldUIProps, PickerFieldUISlotProps, PickerFieldUISlots } from '../internals/components/PickerFieldUI';
|
|
8
|
+
export interface UseDateTimeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, DateTimeValidationError>, 'format'>, ExportedValidateDateTimeProps, ExportedPickerFieldUIProps, AmPmProps {
|
|
11
9
|
}
|
|
12
10
|
export type DateTimeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean = true> = UseDateTimeFieldProps<TEnableAccessibleFieldDOMStructure> & Omit<BuiltInFieldTextFieldProps<TEnableAccessibleFieldDOMStructure>, keyof UseDateTimeFieldProps<TEnableAccessibleFieldDOMStructure>> & {
|
|
13
11
|
/**
|
|
@@ -19,16 +17,9 @@ export type DateTimeFieldProps<TEnableAccessibleFieldDOMStructure extends boolea
|
|
|
19
17
|
* The props used for each component slot.
|
|
20
18
|
* @default {}
|
|
21
19
|
*/
|
|
22
|
-
slotProps?: DateTimeFieldSlotProps
|
|
20
|
+
slotProps?: DateTimeFieldSlotProps;
|
|
23
21
|
};
|
|
24
|
-
export
|
|
25
|
-
export interface DateTimeFieldSlots extends UseClearableFieldSlots {
|
|
26
|
-
/**
|
|
27
|
-
* Form control with an input to render the value.
|
|
28
|
-
* @default TextField from '@mui/material' or PickersTextField if `enableAccessibleFieldDOMStructure` is `true`.
|
|
29
|
-
*/
|
|
30
|
-
textField?: React.ElementType;
|
|
22
|
+
export interface DateTimeFieldSlots extends PickerFieldUISlots {
|
|
31
23
|
}
|
|
32
|
-
export interface DateTimeFieldSlotProps
|
|
33
|
-
textField?: SlotComponentProps<typeof TextField, {}, DateTimeFieldOwnerState<TEnableAccessibleFieldDOMStructure>>;
|
|
24
|
+
export interface DateTimeFieldSlotProps extends PickerFieldUISlotProps {
|
|
34
25
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { UseDateTimeFieldProps } from './DateTimeField.types';
|
|
2
|
-
export declare const useDateTimeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseDateTimeFieldProps<TEnableAccessibleFieldDOMStructure>>(
|
|
2
|
+
export declare const useDateTimeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseDateTimeFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TAllProps) => import("../internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps, "disabled" | "readOnly" | "value" | "defaultValue" | "autoFocus" | "onChange" | "onError" | "format" | "ampm" | "disableFuture" | "disablePast" | "maxDate" | "minDate" | "timezone" | "shouldDisableYear" | "shouldDisableMonth" | "shouldDisableDate" | "minTime" | "maxTime" | "minutesStep" | "shouldDisableTime" | "disableIgnoringDatePartForTimeValidation" | "minDateTime" | "maxDateTime" | "referenceDate" | "formatDensity" | "shouldRespectLeadingZeros" | "selectedSections" | "onSelectedSectionsChange" | "unstableFieldRef" | "unstableStartFieldRef" | "unstableEndFieldRef" | "enableAccessibleFieldDOMStructure" | "dateSeparator">>;
|
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { useField } from "../internals/hooks/useField/index.js";
|
|
5
|
-
import { validateDateTime } from "../validation/index.js";
|
|
3
|
+
import { useField, useFieldInternalPropsWithDefaults } from "../internals/hooks/useField/index.js";
|
|
6
4
|
import { useSplitFieldProps } from "../hooks/index.js";
|
|
7
|
-
import {
|
|
8
|
-
export const useDateTimeField =
|
|
9
|
-
const
|
|
5
|
+
import { useDateTimeManager } from "../managers/index.js";
|
|
6
|
+
export const useDateTimeField = props => {
|
|
7
|
+
const manager = useDateTimeManager(props);
|
|
10
8
|
const {
|
|
11
9
|
forwardedProps,
|
|
12
10
|
internalProps
|
|
13
11
|
} = useSplitFieldProps(props, 'date-time');
|
|
12
|
+
const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
|
|
13
|
+
manager,
|
|
14
|
+
internalProps
|
|
15
|
+
});
|
|
14
16
|
return useField({
|
|
15
17
|
forwardedProps,
|
|
16
|
-
internalProps,
|
|
17
|
-
valueManager:
|
|
18
|
-
fieldValueManager:
|
|
19
|
-
validator:
|
|
20
|
-
valueType:
|
|
18
|
+
internalProps: internalPropsWithDefaults,
|
|
19
|
+
valueManager: manager.internal_valueManager,
|
|
20
|
+
fieldValueManager: manager.internal_fieldValueManager,
|
|
21
|
+
validator: manager.validator,
|
|
22
|
+
valueType: manager.valueType,
|
|
23
|
+
getOpenPickerButtonAriaLabel: manager.internal_getOpenPickerButtonAriaLabel
|
|
21
24
|
});
|
|
22
25
|
};
|
|
@@ -69,8 +69,8 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
|
|
|
69
69
|
autoFocus: PropTypes.bool,
|
|
70
70
|
className: PropTypes.string,
|
|
71
71
|
/**
|
|
72
|
-
* If `true`, the
|
|
73
|
-
* @default
|
|
72
|
+
* If `true`, the Picker will close after submitting the full date.
|
|
73
|
+
* @default false
|
|
74
74
|
*/
|
|
75
75
|
closeOnSelect: PropTypes.bool,
|
|
76
76
|
/**
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { DesktopDateTimePickerProps, DesktopDateTimePickerSlots, DesktopDateTimePickerSlotProps } from '../DesktopDateTimePicker';
|
|
2
|
-
import { BaseSingleInputFieldProps, DateOrTimeViewWithMeridiem } from '../internals/models';
|
|
2
|
+
import { BaseSingleInputFieldProps, DateOrTimeViewWithMeridiem, PickerValue } from '../internals/models';
|
|
3
3
|
import { MobileDateTimePickerProps, MobileDateTimePickerSlots, MobileDateTimePickerSlotProps } from '../MobileDateTimePicker';
|
|
4
|
-
import { DateTimeValidationError, FieldSection, PickerValidDate } from '../models';
|
|
5
4
|
import { ValidateDateTimeProps } from '../validation';
|
|
6
5
|
import { ExportedYearCalendarProps } from '../YearCalendar/YearCalendar.types';
|
|
7
|
-
export interface DateTimePickerSlots extends DesktopDateTimePickerSlots, MobileDateTimePickerSlots
|
|
6
|
+
export interface DateTimePickerSlots extends DesktopDateTimePickerSlots, MobileDateTimePickerSlots {
|
|
8
7
|
}
|
|
9
|
-
export interface DateTimePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends DesktopDateTimePickerSlotProps<TEnableAccessibleFieldDOMStructure>, MobileDateTimePickerSlotProps<
|
|
8
|
+
export interface DateTimePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends DesktopDateTimePickerSlotProps<TEnableAccessibleFieldDOMStructure>, MobileDateTimePickerSlotProps<TEnableAccessibleFieldDOMStructure> {
|
|
10
9
|
}
|
|
11
10
|
export interface DateTimePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends DesktopDateTimePickerProps<TEnableAccessibleFieldDOMStructure>, ExportedYearCalendarProps, Omit<MobileDateTimePickerProps<DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure>, 'views'> {
|
|
12
11
|
/**
|
|
@@ -34,4 +33,4 @@ export interface DateTimePickerProps<TEnableAccessibleFieldDOMStructure extends
|
|
|
34
33
|
/**
|
|
35
34
|
* Props the field can receive when used inside a date time picker (<DateTimePicker />, <DesktopDateTimePicker /> or <MobileDateTimePicker /> component).
|
|
36
35
|
*/
|
|
37
|
-
export type DateTimePickerFieldProps = ValidateDateTimeProps & BaseSingleInputFieldProps<
|
|
36
|
+
export type DateTimePickerFieldProps = ValidateDateTimeProps & BaseSingleInputFieldProps<PickerValue>;
|