@mui/x-date-pickers 8.0.0-alpha.0 → 8.0.0-alpha.10
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 +2215 -119
- package/DateCalendar/DateCalendar.js +5 -4
- package/DateCalendar/DateCalendar.types.d.ts +2 -1
- package/DateCalendar/DayCalendar.js +2 -0
- 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 +6 -4
- 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 -45
- 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 +92 -93
- 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 -46
- package/DesktopTimePicker/DesktopTimePicker.js +6 -22
- package/DesktopTimePicker/DesktopTimePicker.types.d.ts +2 -2
- package/DigitalClock/DigitalClock.js +14 -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 +32 -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 +12 -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 +10 -7
- package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +3 -4
- package/PickersLayout/PickersLayout.d.ts +7 -5
- package/PickersLayout/PickersLayout.js +23 -54
- package/PickersLayout/PickersLayout.types.d.ts +20 -22
- package/PickersLayout/usePickerLayout.d.ts +5 -4
- package/PickersLayout/usePickerLayout.js +26 -57
- 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 +51 -44
- 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 +10 -7
- 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 +28 -27
- package/TimeClock/ClockNumber.js +15 -11
- package/TimeClock/ClockPointer.d.ts +6 -1
- package/TimeClock/ClockPointer.js +16 -10
- package/TimeClock/TimeClock.js +31 -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 +40 -64
- package/TimePicker/shared.d.ts +6 -6
- package/YearCalendar/YearCalendar.js +47 -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 +15 -6
- 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 +94 -14
- package/internals/components/PickerProvider.js +28 -8
- 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 +16 -15
- 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 +36 -121
- 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 +56 -49
- 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 +3 -3
- package/internals/hooks/useField/useFieldV6TextField.d.ts +4 -3
- package/internals/hooks/useField/useFieldV6TextField.js +5 -2
- package/internals/hooks/useField/useFieldV7TextField.js +8 -4
- 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 +35 -69
- 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 +10 -29
- package/internals/hooks/usePicker/usePicker.types.d.ts +11 -11
- package/internals/hooks/usePicker/usePickerProvider.d.ts +58 -7
- package/internals/hooks/usePicker/usePickerProvider.js +102 -12
- package/internals/hooks/usePicker/usePickerValue.d.ts +3 -2
- package/internals/hooks/usePicker/usePickerValue.js +100 -218
- package/internals/hooks/usePicker/usePickerValue.types.d.ts +135 -79
- package/internals/hooks/usePicker/usePickerViews.d.ts +59 -40
- package/internals/hooks/usePicker/usePickerViews.js +31 -19
- 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 +8 -13
- 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 +20 -15
- package/internals/hooks/useValueWithTimezone.js +13 -1
- package/internals/hooks/useViews.d.ts +5 -5
- package/internals/index.d.ts +28 -19
- package/internals/index.js +13 -8
- package/internals/models/common.d.ts +2 -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 -20
- package/internals/models/value.d.ts +9 -0
- package/internals/utils/date-utils.d.ts +3 -3
- 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/common.d.ts +1 -0
- package/models/fields.d.ts +33 -10
- 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 +25 -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 +5 -4
- package/modern/DateCalendar/DayCalendar.js +2 -0
- package/modern/DateCalendar/PickersFadeTransitionGroup.js +4 -6
- package/modern/DateCalendar/PickersSlideTransition.js +12 -5
- 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 -45
- 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 +92 -93
- 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 -46
- package/modern/DesktopTimePicker/DesktopTimePicker.js +6 -22
- package/modern/DigitalClock/DigitalClock.js +14 -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 +32 -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 +12 -7
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +14 -10
- package/modern/PickersActionBar/PickersActionBar.js +26 -17
- package/modern/PickersCalendarHeader/PickersCalendarHeader.js +10 -7
- package/modern/PickersLayout/PickersLayout.js +23 -54
- package/modern/PickersLayout/usePickerLayout.js +26 -57
- 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 +51 -44
- 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 +28 -27
- package/modern/TimeClock/ClockNumber.js +15 -11
- package/modern/TimeClock/ClockPointer.js +16 -10
- package/modern/TimeClock/TimeClock.js +31 -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 +40 -64
- package/modern/YearCalendar/YearCalendar.js +47 -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 +28 -8
- package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
- package/modern/internals/components/PickersModalDialog.js +9 -3
- package/modern/internals/components/PickersToolbar.js +16 -15
- 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 +36 -121
- 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 +3 -3
- package/modern/internals/hooks/useField/useFieldV6TextField.js +5 -2
- package/modern/internals/hooks/useField/useFieldV7TextField.js +8 -4
- package/modern/internals/hooks/useFieldOwnerState.js +16 -0
- package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +35 -69
- package/modern/internals/hooks/useNullablePickerContext.js +10 -0
- package/modern/internals/hooks/useOpenState.js +11 -9
- package/modern/internals/hooks/usePicker/usePicker.js +10 -29
- package/modern/internals/hooks/usePicker/usePickerProvider.js +102 -12
- package/modern/internals/hooks/usePicker/usePickerValue.js +100 -218
- package/modern/internals/hooks/usePicker/usePickerViews.js +31 -19
- package/modern/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +5 -2
- package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +8 -13
- package/modern/internals/hooks/useToolbarOwnerState.js +13 -0
- package/modern/internals/hooks/useUtils.js +1 -1
- package/modern/internals/hooks/useValueWithTimezone.js +13 -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 +5 -4
- package/node/DateCalendar/DayCalendar.js +1 -0
- package/node/DateCalendar/PickersFadeTransitionGroup.js +4 -6
- package/node/DateCalendar/PickersSlideTransition.js +12 -5
- 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 -45
- 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 +93 -93
- 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 -47
- package/node/DesktopTimePicker/DesktopTimePicker.js +6 -22
- package/node/DigitalClock/DigitalClock.js +14 -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 +32 -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 +12 -7
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -10
- package/node/PickersActionBar/PickersActionBar.js +28 -19
- package/node/PickersCalendarHeader/PickersCalendarHeader.js +10 -7
- package/node/PickersLayout/PickersLayout.js +23 -54
- package/node/PickersLayout/usePickerLayout.js +30 -61
- 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 +51 -44
- 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 +28 -27
- package/node/TimeClock/ClockNumber.js +15 -11
- package/node/TimeClock/ClockPointer.js +15 -10
- package/node/TimeClock/TimeClock.js +31 -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 +40 -64
- package/node/YearCalendar/YearCalendar.js +46 -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 +30 -10
- package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
- package/node/internals/components/PickersModalDialog.js +9 -3
- package/node/internals/components/PickersToolbar.js +16 -15
- 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 +38 -123
- 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 +3 -3
- package/node/internals/hooks/useField/useFieldV6TextField.js +5 -2
- package/node/internals/hooks/useField/useFieldV7TextField.js +8 -4
- package/node/internals/hooks/useFieldOwnerState.js +24 -0
- package/node/internals/hooks/useMobilePicker/useMobilePicker.js +36 -70
- package/node/internals/hooks/useNullablePickerContext.js +16 -0
- package/node/internals/hooks/useOpenState.js +12 -9
- package/node/internals/hooks/usePicker/usePicker.js +10 -29
- package/node/internals/hooks/usePicker/usePickerProvider.js +105 -12
- package/node/internals/hooks/usePicker/usePickerValue.js +100 -217
- package/node/internals/hooks/usePicker/usePickerViews.js +31 -20
- package/node/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +7 -4
- package/node/internals/hooks/useStaticPicker/useStaticPicker.js +8 -13
- package/node/internals/hooks/useToolbarOwnerState.js +21 -0
- package/node/internals/hooks/useUtils.js +1 -1
- package/node/internals/hooks/useValueWithTimezone.js +13 -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 +7 -7
- 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 -33
- package/internals/hooks/usePicker/usePickerLayoutProps.js +0 -34
- package/internals/hooks/usePicker/usePickerOwnerState.d.ts +0 -10
- package/internals/hooks/usePicker/usePickerOwnerState.js +0 -16
- 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 -34
- package/modern/internals/hooks/usePicker/usePickerOwnerState.js +0 -16
- 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 -41
- package/node/internals/hooks/usePicker/usePickerOwnerState.js +0 -23
- package/node/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -52
|
@@ -41,11 +41,11 @@ const StaticDatePicker = /*#__PURE__*/React.forwardRef(function StaticDatePicker
|
|
|
41
41
|
const {
|
|
42
42
|
renderPicker
|
|
43
43
|
} = useStaticPicker({
|
|
44
|
+
ref,
|
|
44
45
|
props,
|
|
45
46
|
valueManager: singleItemValueManager,
|
|
46
47
|
valueType: 'date',
|
|
47
|
-
validator: validateDate
|
|
48
|
-
ref
|
|
48
|
+
validator: validateDate
|
|
49
49
|
});
|
|
50
50
|
return renderPicker();
|
|
51
51
|
});
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { MakeOptional } from '@mui/x-internals/types';
|
|
2
2
|
import { BaseDatePickerProps, BaseDatePickerSlots, BaseDatePickerSlotProps } from '../DatePicker/shared';
|
|
3
3
|
import { StaticOnlyPickerProps, UseStaticPickerSlots, UseStaticPickerSlotProps } from '../internals/hooks/useStaticPicker';
|
|
4
|
-
|
|
5
|
-
export interface StaticDatePickerSlots extends BaseDatePickerSlots, UseStaticPickerSlots<DateView> {
|
|
4
|
+
export interface StaticDatePickerSlots extends BaseDatePickerSlots, UseStaticPickerSlots {
|
|
6
5
|
}
|
|
7
|
-
export interface StaticDatePickerSlotProps extends BaseDatePickerSlotProps, UseStaticPickerSlotProps
|
|
6
|
+
export interface StaticDatePickerSlotProps extends BaseDatePickerSlotProps, UseStaticPickerSlotProps {
|
|
8
7
|
}
|
|
9
8
|
export interface StaticDatePickerProps extends BaseDatePickerProps, MakeOptional<StaticOnlyPickerProps, 'displayStaticWrapperAs'> {
|
|
10
9
|
/**
|
|
@@ -51,11 +51,11 @@ const StaticDateTimePicker = /*#__PURE__*/React.forwardRef(function StaticDateTi
|
|
|
51
51
|
const {
|
|
52
52
|
renderPicker
|
|
53
53
|
} = useStaticPicker({
|
|
54
|
+
ref,
|
|
54
55
|
props,
|
|
55
56
|
valueManager: singleItemValueManager,
|
|
56
57
|
valueType: 'date-time',
|
|
57
|
-
validator: validateDateTime
|
|
58
|
-
ref
|
|
58
|
+
validator: validateDateTime
|
|
59
59
|
});
|
|
60
60
|
return renderPicker();
|
|
61
61
|
});
|
|
@@ -2,9 +2,9 @@ import { MakeOptional } from '@mui/x-internals/types';
|
|
|
2
2
|
import { BaseDateTimePickerProps, BaseDateTimePickerSlots, BaseDateTimePickerSlotProps } from '../DateTimePicker/shared';
|
|
3
3
|
import { StaticOnlyPickerProps, UseStaticPickerSlots, UseStaticPickerSlotProps } from '../internals/hooks/useStaticPicker';
|
|
4
4
|
import { DateOrTimeView } from '../models';
|
|
5
|
-
export interface StaticDateTimePickerSlots extends BaseDateTimePickerSlots, UseStaticPickerSlots
|
|
5
|
+
export interface StaticDateTimePickerSlots extends BaseDateTimePickerSlots, UseStaticPickerSlots {
|
|
6
6
|
}
|
|
7
|
-
export interface StaticDateTimePickerSlotProps extends BaseDateTimePickerSlotProps, UseStaticPickerSlotProps
|
|
7
|
+
export interface StaticDateTimePickerSlotProps extends BaseDateTimePickerSlotProps, UseStaticPickerSlotProps {
|
|
8
8
|
}
|
|
9
9
|
export interface StaticDateTimePickerProps extends BaseDateTimePickerProps<DateOrTimeView>, MakeOptional<StaticOnlyPickerProps, 'displayStaticWrapperAs'> {
|
|
10
10
|
/**
|
|
@@ -43,11 +43,11 @@ const StaticTimePicker = /*#__PURE__*/React.forwardRef(function StaticTimePicker
|
|
|
43
43
|
const {
|
|
44
44
|
renderPicker
|
|
45
45
|
} = useStaticPicker({
|
|
46
|
+
ref,
|
|
46
47
|
props,
|
|
47
48
|
valueManager: singleItemValueManager,
|
|
48
49
|
valueType: 'time',
|
|
49
|
-
validator: validateTime
|
|
50
|
-
ref
|
|
50
|
+
validator: validateTime
|
|
51
51
|
});
|
|
52
52
|
return renderPicker();
|
|
53
53
|
});
|
|
@@ -2,9 +2,9 @@ import { MakeOptional } from '@mui/x-internals/types';
|
|
|
2
2
|
import { BaseTimePickerProps, BaseTimePickerSlots, BaseTimePickerSlotProps } from '../TimePicker/shared';
|
|
3
3
|
import { StaticOnlyPickerProps, UseStaticPickerSlots, UseStaticPickerSlotProps } from '../internals/hooks/useStaticPicker';
|
|
4
4
|
import { TimeView } from '../models';
|
|
5
|
-
export interface StaticTimePickerSlots extends BaseTimePickerSlots, UseStaticPickerSlots
|
|
5
|
+
export interface StaticTimePickerSlots extends BaseTimePickerSlots, UseStaticPickerSlots {
|
|
6
6
|
}
|
|
7
|
-
export interface StaticTimePickerSlotProps extends BaseTimePickerSlotProps, UseStaticPickerSlotProps
|
|
7
|
+
export interface StaticTimePickerSlotProps extends BaseTimePickerSlotProps, UseStaticPickerSlotProps {
|
|
8
8
|
}
|
|
9
9
|
export interface StaticTimePickerProps extends BaseTimePickerProps<TimeView>, MakeOptional<StaticOnlyPickerProps, 'displayStaticWrapperAs'> {
|
|
10
10
|
/**
|
package/TimeClock/Clock.d.ts
CHANGED
|
@@ -26,6 +26,10 @@ export interface ClockProps extends ReturnType<typeof useMeridiemMode>, FormProp
|
|
|
26
26
|
* The current full date value.
|
|
27
27
|
*/
|
|
28
28
|
value: PickerValidDate | null;
|
|
29
|
+
/**
|
|
30
|
+
* Minimum and maximum value of the clock.
|
|
31
|
+
*/
|
|
32
|
+
viewRange: [number, number];
|
|
29
33
|
className?: string;
|
|
30
34
|
classes?: Partial<ClockClasses>;
|
|
31
35
|
}
|
package/TimeClock/Clock.js
CHANGED
|
@@ -11,20 +11,17 @@ import { useUtils } from "../internals/hooks/useUtils.js";
|
|
|
11
11
|
import { CLOCK_HOUR_WIDTH, getHours, getMinutes } from "./shared.js";
|
|
12
12
|
import { getClockUtilityClass } from "./clockClasses.js";
|
|
13
13
|
import { formatMeridiem } from "../internals/utils/date-utils.js";
|
|
14
|
+
import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
|
|
14
15
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
|
-
const useUtilityClasses = ownerState => {
|
|
16
|
-
const {
|
|
17
|
-
classes,
|
|
18
|
-
meridiemMode
|
|
19
|
-
} = ownerState;
|
|
16
|
+
const useUtilityClasses = (classes, ownerState) => {
|
|
20
17
|
const slots = {
|
|
21
18
|
root: ['root'],
|
|
22
19
|
clock: ['clock'],
|
|
23
20
|
wrapper: ['wrapper'],
|
|
24
21
|
squareMask: ['squareMask'],
|
|
25
22
|
pin: ['pin'],
|
|
26
|
-
amButton: ['amButton',
|
|
27
|
-
pmButton: ['pmButton',
|
|
23
|
+
amButton: ['amButton', ownerState.clockMeridiemMode === 'am' && 'selected'],
|
|
24
|
+
pmButton: ['pmButton', ownerState.clockMeridiemMode === 'pm' && 'selected'],
|
|
28
25
|
meridiemText: ['meridiemText']
|
|
29
26
|
};
|
|
30
27
|
return composeClasses(slots, getClockUtilityClass, classes);
|
|
@@ -78,7 +75,7 @@ const ClockSquareMask = styled('div', {
|
|
|
78
75
|
userSelect: 'none',
|
|
79
76
|
variants: [{
|
|
80
77
|
props: {
|
|
81
|
-
|
|
78
|
+
isClockDisabled: false
|
|
82
79
|
},
|
|
83
80
|
style: {
|
|
84
81
|
'@media (pointer: fine)': {
|
|
@@ -180,15 +177,23 @@ export function Clock(inProps) {
|
|
|
180
177
|
selectedId,
|
|
181
178
|
type,
|
|
182
179
|
viewValue,
|
|
180
|
+
viewRange: [minViewValue, maxViewValue],
|
|
183
181
|
disabled = false,
|
|
184
182
|
readOnly,
|
|
185
|
-
className
|
|
183
|
+
className,
|
|
184
|
+
classes: classesProp
|
|
186
185
|
} = props;
|
|
187
|
-
const ownerState = props;
|
|
188
186
|
const utils = useUtils();
|
|
189
187
|
const translations = usePickerTranslations();
|
|
188
|
+
const {
|
|
189
|
+
ownerState: pickerOwnerState
|
|
190
|
+
} = usePickerPrivateContext();
|
|
191
|
+
const ownerState = _extends({}, pickerOwnerState, {
|
|
192
|
+
isClockDisabled: disabled,
|
|
193
|
+
clockMeridiemMode: meridiemMode
|
|
194
|
+
});
|
|
190
195
|
const isMoving = React.useRef(false);
|
|
191
|
-
const classes = useUtilityClasses(ownerState);
|
|
196
|
+
const classes = useUtilityClasses(classesProp, ownerState);
|
|
192
197
|
const isSelectedTimeDisabled = isTimeDisabled(viewValue, type);
|
|
193
198
|
const isPointerInner = !ampm && type === 'hours' && (viewValue < 1 || viewValue > 12);
|
|
194
199
|
const handleValueChange = (newValue, isFinish) => {
|
|
@@ -222,6 +227,7 @@ export function Clock(inProps) {
|
|
|
222
227
|
setTime(event, 'finish');
|
|
223
228
|
isMoving.current = false;
|
|
224
229
|
}
|
|
230
|
+
event.preventDefault();
|
|
225
231
|
};
|
|
226
232
|
const handleMouseMove = event => {
|
|
227
233
|
// event.buttons & PRIMARY_MOUSE_BUTTON
|
|
@@ -235,12 +241,7 @@ export function Clock(inProps) {
|
|
|
235
241
|
}
|
|
236
242
|
setTime(event.nativeEvent, 'finish');
|
|
237
243
|
};
|
|
238
|
-
const
|
|
239
|
-
if (type === 'hours') {
|
|
240
|
-
return true;
|
|
241
|
-
}
|
|
242
|
-
return viewValue % 5 === 0;
|
|
243
|
-
}, [type, viewValue]);
|
|
244
|
+
const isPointerBetweenTwoClockValues = type === 'hours' ? false : viewValue % 5 !== 0;
|
|
244
245
|
const keyboardControlStep = type === 'minutes' ? minutesStep : 1;
|
|
245
246
|
const listboxRef = React.useRef(null);
|
|
246
247
|
// Since this is rendered when a Popper is opened we can't use passive effects.
|
|
@@ -251,6 +252,8 @@ export function Clock(inProps) {
|
|
|
251
252
|
listboxRef.current.focus();
|
|
252
253
|
}
|
|
253
254
|
}, [autoFocus]);
|
|
255
|
+
const clampValue = newValue => Math.max(minViewValue, Math.min(maxViewValue, newValue));
|
|
256
|
+
const circleValue = newValue => (newValue + (maxViewValue + 1)) % (maxViewValue + 1);
|
|
254
257
|
const handleKeyDown = event => {
|
|
255
258
|
// TODO: Why this early exit?
|
|
256
259
|
if (isMoving.current) {
|
|
@@ -259,27 +262,27 @@ export function Clock(inProps) {
|
|
|
259
262
|
switch (event.key) {
|
|
260
263
|
case 'Home':
|
|
261
264
|
// reset both hours and minutes
|
|
262
|
-
handleValueChange(
|
|
265
|
+
handleValueChange(minViewValue, 'partial');
|
|
263
266
|
event.preventDefault();
|
|
264
267
|
break;
|
|
265
268
|
case 'End':
|
|
266
|
-
handleValueChange(
|
|
269
|
+
handleValueChange(maxViewValue, 'partial');
|
|
267
270
|
event.preventDefault();
|
|
268
271
|
break;
|
|
269
272
|
case 'ArrowUp':
|
|
270
|
-
handleValueChange(viewValue + keyboardControlStep, 'partial');
|
|
273
|
+
handleValueChange(circleValue(viewValue + keyboardControlStep), 'partial');
|
|
271
274
|
event.preventDefault();
|
|
272
275
|
break;
|
|
273
276
|
case 'ArrowDown':
|
|
274
|
-
handleValueChange(viewValue - keyboardControlStep, 'partial');
|
|
277
|
+
handleValueChange(circleValue(viewValue - keyboardControlStep), 'partial');
|
|
275
278
|
event.preventDefault();
|
|
276
279
|
break;
|
|
277
280
|
case 'PageUp':
|
|
278
|
-
handleValueChange(viewValue + 5, 'partial');
|
|
281
|
+
handleValueChange(clampValue(viewValue + 5), 'partial');
|
|
279
282
|
event.preventDefault();
|
|
280
283
|
break;
|
|
281
284
|
case 'PageDown':
|
|
282
|
-
handleValueChange(viewValue - 5, 'partial');
|
|
285
|
+
handleValueChange(clampValue(viewValue - 5), 'partial');
|
|
283
286
|
event.preventDefault();
|
|
284
287
|
break;
|
|
285
288
|
case 'Enter':
|
|
@@ -301,9 +304,7 @@ export function Clock(inProps) {
|
|
|
301
304
|
onTouchEnd: handleTouchEnd,
|
|
302
305
|
onMouseUp: handleMouseUp,
|
|
303
306
|
onMouseMove: handleMouseMove,
|
|
304
|
-
ownerState:
|
|
305
|
-
disabled
|
|
306
|
-
},
|
|
307
|
+
ownerState: ownerState,
|
|
307
308
|
className: classes.squareMask
|
|
308
309
|
}), !isSelectedTimeDisabled && /*#__PURE__*/_jsxs(React.Fragment, {
|
|
309
310
|
children: [/*#__PURE__*/_jsx(ClockPin, {
|
|
@@ -312,7 +313,7 @@ export function Clock(inProps) {
|
|
|
312
313
|
type: type,
|
|
313
314
|
viewValue: viewValue,
|
|
314
315
|
isInner: isPointerInner,
|
|
315
|
-
|
|
316
|
+
isBetweenTwoClockValues: isPointerBetweenTwoClockValues
|
|
316
317
|
})]
|
|
317
318
|
}), /*#__PURE__*/_jsx(ClockWrapper, {
|
|
318
319
|
"aria-activedescendant": selectedId,
|
package/TimeClock/ClockNumber.js
CHANGED
|
@@ -1,21 +1,17 @@
|
|
|
1
1
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
const _excluded = ["className", "disabled", "index", "inner", "label", "selected"];
|
|
3
|
+
const _excluded = ["className", "classes", "disabled", "index", "inner", "label", "selected"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import clsx from 'clsx';
|
|
6
6
|
import { styled, useThemeProps } from '@mui/material/styles';
|
|
7
7
|
import composeClasses from '@mui/utils/composeClasses';
|
|
8
8
|
import { CLOCK_WIDTH, CLOCK_HOUR_WIDTH } from "./shared.js";
|
|
9
9
|
import { getClockNumberUtilityClass, clockNumberClasses } from "./clockNumberClasses.js";
|
|
10
|
+
import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
|
|
10
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
-
const useUtilityClasses = ownerState => {
|
|
12
|
-
const {
|
|
13
|
-
classes,
|
|
14
|
-
selected,
|
|
15
|
-
disabled
|
|
16
|
-
} = ownerState;
|
|
12
|
+
const useUtilityClasses = (classes, ownerState) => {
|
|
17
13
|
const slots = {
|
|
18
|
-
root: ['root',
|
|
14
|
+
root: ['root', ownerState.isClockNumberSelected && 'selected', ownerState.isClockNumberDisabled && 'disabled']
|
|
19
15
|
};
|
|
20
16
|
return composeClasses(slots, getClockNumberUtilityClass, classes);
|
|
21
17
|
};
|
|
@@ -52,7 +48,7 @@ const ClockNumberRoot = styled('span', {
|
|
|
52
48
|
},
|
|
53
49
|
variants: [{
|
|
54
50
|
props: {
|
|
55
|
-
|
|
51
|
+
isClockNumberInInnerRing: true
|
|
56
52
|
},
|
|
57
53
|
style: _extends({}, theme.typography.body2, {
|
|
58
54
|
color: (theme.vars || theme).palette.text.secondary
|
|
@@ -70,6 +66,7 @@ export function ClockNumber(inProps) {
|
|
|
70
66
|
});
|
|
71
67
|
const {
|
|
72
68
|
className,
|
|
69
|
+
classes: classesProp,
|
|
73
70
|
disabled,
|
|
74
71
|
index,
|
|
75
72
|
inner,
|
|
@@ -77,8 +74,15 @@ export function ClockNumber(inProps) {
|
|
|
77
74
|
selected
|
|
78
75
|
} = props,
|
|
79
76
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
80
|
-
const
|
|
81
|
-
|
|
77
|
+
const {
|
|
78
|
+
ownerState: pickerOwnerState
|
|
79
|
+
} = usePickerPrivateContext();
|
|
80
|
+
const ownerState = _extends({}, pickerOwnerState, {
|
|
81
|
+
isClockNumberInInnerRing: inner,
|
|
82
|
+
isClockNumberSelected: selected,
|
|
83
|
+
isClockNumberDisabled: disabled
|
|
84
|
+
});
|
|
85
|
+
const classes = useUtilityClasses(classesProp, ownerState);
|
|
82
86
|
const angle = index % 12 / 12 * Math.PI * 2 - Math.PI / 2;
|
|
83
87
|
const length = (CLOCK_WIDTH - CLOCK_HOUR_WIDTH - 2) / 2 * (inner ? 0.65 : 1);
|
|
84
88
|
const x = Math.round(Math.cos(angle) * length);
|
|
@@ -2,7 +2,12 @@ import * as React from 'react';
|
|
|
2
2
|
import { TimeView } from '../models';
|
|
3
3
|
import { ClockPointerClasses } from './clockPointerClasses';
|
|
4
4
|
export interface ClockPointerProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* `true` if the pointer is between two clock values.
|
|
7
|
+
* On the `hours` view, it is always false.
|
|
8
|
+
* On the `minutes` view, it is true if the pointer is on a value that is not a multiple of 5.
|
|
9
|
+
*/
|
|
10
|
+
isBetweenTwoClockValues: boolean;
|
|
6
11
|
isInner: boolean;
|
|
7
12
|
type: TimeView;
|
|
8
13
|
viewValue: number;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["className", "
|
|
5
|
+
const _excluded = ["className", "classes", "isBetweenTwoClockValues", "isInner", "type", "viewValue"];
|
|
4
6
|
import * as React from 'react';
|
|
5
7
|
import clsx from 'clsx';
|
|
6
8
|
import { styled, useThemeProps } from '@mui/material/styles';
|
|
7
9
|
import composeClasses from '@mui/utils/composeClasses';
|
|
8
10
|
import { CLOCK_WIDTH, CLOCK_HOUR_WIDTH } from "./shared.js";
|
|
9
11
|
import { getClockPointerUtilityClass } from "./clockPointerClasses.js";
|
|
12
|
+
import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
|
|
10
13
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
-
const useUtilityClasses =
|
|
12
|
-
const {
|
|
13
|
-
classes
|
|
14
|
-
} = ownerState;
|
|
14
|
+
const useUtilityClasses = classes => {
|
|
15
15
|
const slots = {
|
|
16
16
|
root: ['root'],
|
|
17
17
|
thumb: ['thumb']
|
|
@@ -33,7 +33,7 @@ const ClockPointerRoot = styled('div', {
|
|
|
33
33
|
transformOrigin: 'center bottom 0px',
|
|
34
34
|
variants: [{
|
|
35
35
|
props: {
|
|
36
|
-
|
|
36
|
+
isClockPointerAnimated: true
|
|
37
37
|
},
|
|
38
38
|
style: {
|
|
39
39
|
transition: theme.transitions.create(['transform', 'height'])
|
|
@@ -58,7 +58,7 @@ const ClockPointerThumb = styled('div', {
|
|
|
58
58
|
boxSizing: 'content-box',
|
|
59
59
|
variants: [{
|
|
60
60
|
props: {
|
|
61
|
-
|
|
61
|
+
isBetweenTwoClockValues: false
|
|
62
62
|
},
|
|
63
63
|
style: {
|
|
64
64
|
backgroundColor: (theme.vars || theme).palette.primary.main
|
|
@@ -76,6 +76,8 @@ export function ClockPointer(inProps) {
|
|
|
76
76
|
});
|
|
77
77
|
const {
|
|
78
78
|
className,
|
|
79
|
+
classes: classesProp,
|
|
80
|
+
isBetweenTwoClockValues,
|
|
79
81
|
isInner,
|
|
80
82
|
type,
|
|
81
83
|
viewValue
|
|
@@ -85,10 +87,14 @@ export function ClockPointer(inProps) {
|
|
|
85
87
|
React.useEffect(() => {
|
|
86
88
|
previousType.current = type;
|
|
87
89
|
}, [type]);
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
+
const {
|
|
91
|
+
ownerState: pickerOwnerState
|
|
92
|
+
} = usePickerPrivateContext();
|
|
93
|
+
const ownerState = _extends({}, pickerOwnerState, {
|
|
94
|
+
isClockPointerAnimated: previousType.current !== type,
|
|
95
|
+
isClockPointerBetweenTwoValues: isBetweenTwoClockValues
|
|
90
96
|
});
|
|
91
|
-
const classes = useUtilityClasses(
|
|
97
|
+
const classes = useUtilityClasses(classesProp);
|
|
92
98
|
const getAngleStyle = () => {
|
|
93
99
|
const max = type === 'hours' ? 12 : 60;
|
|
94
100
|
let angle = 360 / max * viewValue;
|
package/TimeClock/TimeClock.js
CHANGED
|
@@ -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 = ["ampm", "ampmInClock", "autoFocus", "slots", "slotProps", "value", "defaultValue", "referenceDate", "disableIgnoringDatePartForTimeValidation", "maxTime", "minTime", "disableFuture", "disablePast", "minutesStep", "shouldDisableTime", "showViewSwitcher", "onChange", "view", "views", "openTo", "onViewChange", "focusedView", "onFocusedViewChange", "className", "disabled", "readOnly", "timezone"];
|
|
5
|
+
const _excluded = ["ampm", "ampmInClock", "autoFocus", "slots", "slotProps", "value", "defaultValue", "referenceDate", "disableIgnoringDatePartForTimeValidation", "maxTime", "minTime", "disableFuture", "disablePast", "minutesStep", "shouldDisableTime", "showViewSwitcher", "onChange", "view", "views", "openTo", "onViewChange", "focusedView", "onFocusedViewChange", "className", "classes", "disabled", "readOnly", "timezone"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import clsx from 'clsx';
|
|
8
8
|
import PropTypes from 'prop-types';
|
|
@@ -21,11 +21,9 @@ import { getHourNumbers, getMinutesNumbers } from "./ClockNumbers.js";
|
|
|
21
21
|
import { useControlledValueWithTimezone } from "../internals/hooks/useValueWithTimezone.js";
|
|
22
22
|
import { singleItemValueManager } from "../internals/utils/valueManagers.js";
|
|
23
23
|
import { useClockReferenceDate } from "../internals/hooks/useClockReferenceDate.js";
|
|
24
|
+
import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
|
|
24
25
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
25
|
-
const useUtilityClasses =
|
|
26
|
-
const {
|
|
27
|
-
classes
|
|
28
|
-
} = ownerState;
|
|
26
|
+
const useUtilityClasses = classes => {
|
|
29
27
|
const slots = {
|
|
30
28
|
root: ['root'],
|
|
31
29
|
arrowSwitcher: ['arrowSwitcher']
|
|
@@ -93,6 +91,7 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
|
|
|
93
91
|
focusedView,
|
|
94
92
|
onFocusedViewChange,
|
|
95
93
|
className,
|
|
94
|
+
classes: classesProp,
|
|
96
95
|
disabled,
|
|
97
96
|
readOnly,
|
|
98
97
|
timezone: timezoneProp
|
|
@@ -107,6 +106,7 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
|
|
|
107
106
|
timezone: timezoneProp,
|
|
108
107
|
value: valueProp,
|
|
109
108
|
defaultValue,
|
|
109
|
+
referenceDate: referenceDateProp,
|
|
110
110
|
onChange,
|
|
111
111
|
valueManager: singleItemValueManager
|
|
112
112
|
});
|
|
@@ -119,6 +119,10 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
|
|
|
119
119
|
});
|
|
120
120
|
const translations = usePickerTranslations();
|
|
121
121
|
const now = useNow(timezone);
|
|
122
|
+
const selectedId = useId();
|
|
123
|
+
const {
|
|
124
|
+
ownerState
|
|
125
|
+
} = usePickerPrivateContext();
|
|
122
126
|
const {
|
|
123
127
|
view,
|
|
124
128
|
setView,
|
|
@@ -182,6 +186,9 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
|
|
|
182
186
|
{
|
|
183
187
|
const valueWithMeridiem = convertValueToMeridiem(rawValue, meridiemMode, ampm);
|
|
184
188
|
const dateWithNewHours = utils.setHours(valueOrReferenceDate, valueWithMeridiem);
|
|
189
|
+
if (utils.getHours(dateWithNewHours) !== valueWithMeridiem) {
|
|
190
|
+
return true;
|
|
191
|
+
}
|
|
185
192
|
const start = utils.setSeconds(utils.setMinutes(dateWithNewHours, 0), 0);
|
|
186
193
|
const end = utils.setSeconds(utils.setMinutes(dateWithNewHours, 59), 59);
|
|
187
194
|
return !containsValidTime({
|
|
@@ -213,7 +220,6 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
|
|
|
213
220
|
throw new Error('not supported');
|
|
214
221
|
}
|
|
215
222
|
}, [ampm, valueOrReferenceDate, disableIgnoringDatePartForTimeValidation, maxTime, meridiemMode, minTime, minutesStep, shouldDisableTime, utils, disableFuture, disablePast, now, views]);
|
|
216
|
-
const selectedId = useId();
|
|
217
223
|
const viewProps = React.useMemo(() => {
|
|
218
224
|
switch (view) {
|
|
219
225
|
case 'hours':
|
|
@@ -222,9 +228,20 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
|
|
|
222
228
|
const valueWithMeridiem = convertValueToMeridiem(hourValue, meridiemMode, ampm);
|
|
223
229
|
setValueAndGoToNextView(utils.setHours(valueOrReferenceDate, valueWithMeridiem), isFinish, 'hours');
|
|
224
230
|
};
|
|
231
|
+
const viewValue = utils.getHours(valueOrReferenceDate);
|
|
232
|
+
let viewRange;
|
|
233
|
+
if (ampm) {
|
|
234
|
+
if (viewValue > 12) {
|
|
235
|
+
viewRange = [12, 23];
|
|
236
|
+
} else {
|
|
237
|
+
viewRange = [0, 11];
|
|
238
|
+
}
|
|
239
|
+
} else {
|
|
240
|
+
viewRange = [0, 23];
|
|
241
|
+
}
|
|
225
242
|
return {
|
|
226
243
|
onChange: handleHoursChange,
|
|
227
|
-
viewValue
|
|
244
|
+
viewValue,
|
|
228
245
|
children: getHourNumbers({
|
|
229
246
|
value,
|
|
230
247
|
utils,
|
|
@@ -233,7 +250,8 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
|
|
|
233
250
|
getClockNumberText: translations.hoursClockNumberText,
|
|
234
251
|
isDisabled: hourValue => disabled || isTimeDisabled(hourValue, 'hours'),
|
|
235
252
|
selectedId
|
|
236
|
-
})
|
|
253
|
+
}),
|
|
254
|
+
viewRange
|
|
237
255
|
};
|
|
238
256
|
}
|
|
239
257
|
case 'minutes':
|
|
@@ -252,7 +270,8 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
|
|
|
252
270
|
getClockNumberText: translations.minutesClockNumberText,
|
|
253
271
|
isDisabled: minuteValue => disabled || isTimeDisabled(minuteValue, 'minutes'),
|
|
254
272
|
selectedId
|
|
255
|
-
})
|
|
273
|
+
}),
|
|
274
|
+
viewRange: [0, 59]
|
|
256
275
|
};
|
|
257
276
|
}
|
|
258
277
|
case 'seconds':
|
|
@@ -271,15 +290,15 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
|
|
|
271
290
|
getClockNumberText: translations.secondsClockNumberText,
|
|
272
291
|
isDisabled: secondValue => disabled || isTimeDisabled(secondValue, 'seconds'),
|
|
273
292
|
selectedId
|
|
274
|
-
})
|
|
293
|
+
}),
|
|
294
|
+
viewRange: [0, 59]
|
|
275
295
|
};
|
|
276
296
|
}
|
|
277
297
|
default:
|
|
278
298
|
throw new Error('You must provide the type for ClockView');
|
|
279
299
|
}
|
|
280
300
|
}, [view, utils, value, ampm, translations.hoursClockNumberText, translations.minutesClockNumberText, translations.secondsClockNumberText, meridiemMode, setValueAndGoToNextView, valueOrReferenceDate, isTimeDisabled, selectedId, disabled]);
|
|
281
|
-
const
|
|
282
|
-
const classes = useUtilityClasses(ownerState);
|
|
301
|
+
const classes = useUtilityClasses(classesProp);
|
|
283
302
|
return /*#__PURE__*/_jsxs(TimeClockRoot, _extends({
|
|
284
303
|
ref: ref,
|
|
285
304
|
className: clsx(classes.root, className),
|
package/TimeField/TimeField.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
4
|
const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
|
|
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 { useTimeField } from "./useTimeField.js";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import { convertFieldResponseIntoMuiTextFieldProps } from "../internals/utils/convertFieldResponseIntoMuiTextFieldProps.js";
|
|
10
|
+
import { PickerFieldUI, useFieldTextFieldProps } from "../internals/components/PickerFieldUI.js";
|
|
11
|
+
import { ClockIcon } from "../icons/index.js";
|
|
16
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
17
13
|
/**
|
|
18
14
|
* Demos:
|
|
@@ -31,33 +27,21 @@ const TimeField = /*#__PURE__*/React.forwardRef(function TimeField(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
|
-
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 = useTimeField(textFieldProps);
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
39
|
+
return /*#__PURE__*/_jsx(PickerFieldUI, {
|
|
40
|
+
slots: slots,
|
|
41
|
+
slotProps: slotProps,
|
|
42
|
+
fieldResponse: fieldResponse,
|
|
43
|
+
defaultOpenPickerIcon: ClockIcon
|
|
44
|
+
});
|
|
61
45
|
});
|
|
62
46
|
process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
|
|
63
47
|
// ----------------------------- Warning --------------------------------
|
|
@@ -80,6 +64,12 @@ process.env.NODE_ENV !== "production" ? TimeField.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
|
|
@@ -233,6 +223,12 @@ process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
|
|
|
233
223
|
* @param {FieldSelectedSections} newValue The new selected sections.
|
|
234
224
|
*/
|
|
235
225
|
onSelectedSectionsChange: PropTypes.func,
|
|
226
|
+
/**
|
|
227
|
+
* The position at which the opening button is placed.
|
|
228
|
+
* If there is no picker to open, the button is not rendered
|
|
229
|
+
* @default 'end'
|
|
230
|
+
*/
|
|
231
|
+
openPickerButtonPosition: PropTypes.oneOf(['end', 'start']),
|
|
236
232
|
/**
|
|
237
233
|
* If `true`, the component is read-only.
|
|
238
234
|
* When read-only, the value cannot be changed but the user can interact with the interface.
|
|
@@ -268,10 +264,10 @@ process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
|
|
|
268
264
|
*/
|
|
269
265
|
shouldDisableTime: PropTypes.func,
|
|
270
266
|
/**
|
|
271
|
-
* If `true`, the format will respect the leading zeroes (
|
|
272
|
-
* If `false`, the format will always add leading zeroes (
|
|
267
|
+
* If `true`, the format will respect the leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
|
|
268
|
+
* If `false`, the format will always add leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
|
|
273
269
|
*
|
|
274
|
-
* Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (
|
|
270
|
+
* 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`.
|
|
275
271
|
*
|
|
276
272
|
* 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.
|
|
277
273
|
* 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 TextField from '@mui/material/TextField';
|
|
5
2
|
import { UseFieldInternalProps } from '../internals/hooks/useField';
|
|
6
|
-
import {
|
|
7
|
-
import { ExportedUseClearableFieldProps, UseClearableFieldSlots, UseClearableFieldSlotProps } from '../hooks/useClearableField';
|
|
3
|
+
import { TimeValidationError, BuiltInFieldTextFieldProps } from '../models';
|
|
8
4
|
import { ExportedValidateTimeProps } from '../validation/validateTime';
|
|
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 UseTimeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, TimeValidationError>, 'format'>, ExportedValidateTimeProps, ExportedPickerFieldUIProps, AmPmProps {
|
|
11
9
|
}
|
|
12
10
|
export type TimeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean = true> = UseTimeFieldProps<TEnableAccessibleFieldDOMStructure> & Omit<BuiltInFieldTextFieldProps<TEnableAccessibleFieldDOMStructure>, keyof UseTimeFieldProps<TEnableAccessibleFieldDOMStructure>> & {
|
|
13
11
|
/**
|
|
@@ -19,16 +17,9 @@ export type TimeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean =
|
|
|
19
17
|
* The props used for each component slot.
|
|
20
18
|
* @default {}
|
|
21
19
|
*/
|
|
22
|
-
slotProps?: TimeFieldSlotProps
|
|
20
|
+
slotProps?: TimeFieldSlotProps;
|
|
23
21
|
};
|
|
24
|
-
export
|
|
25
|
-
export interface TimeFieldSlots 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 TimeFieldSlots extends PickerFieldUISlots {
|
|
31
23
|
}
|
|
32
|
-
export interface TimeFieldSlotProps
|
|
33
|
-
textField?: SlotComponentProps<typeof TextField, {}, TimeFieldOwnerState<TEnableAccessibleFieldDOMStructure>>;
|
|
24
|
+
export interface TimeFieldSlotProps extends PickerFieldUISlotProps {
|
|
34
25
|
}
|