@mui/x-date-pickers 9.5.0 → 9.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AdapterDateFns/AdapterDateFns.d.mts +2 -2
- package/AdapterDateFns/AdapterDateFns.d.ts +2 -2
- package/AdapterDateFnsBase/AdapterDateFnsBase.d.mts +2 -2
- package/AdapterDateFnsBase/AdapterDateFnsBase.d.ts +2 -2
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.mts +2 -2
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +2 -2
- package/AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.d.mts +1 -1
- package/AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.d.ts +1 -1
- package/AdapterDateFnsV2/AdapterDateFnsV2.d.mts +1 -1
- package/AdapterDateFnsV2/AdapterDateFnsV2.d.ts +1 -1
- package/AdapterDayjs/AdapterDayjs.d.mts +29 -29
- package/AdapterDayjs/AdapterDayjs.d.ts +29 -29
- package/AdapterDayjs/AdapterDayjs.mjs +1 -0
- package/AdapterDayjsBuddhist/AdapterDayjsBuddhist.d.mts +4 -4
- package/AdapterDayjsBuddhist/AdapterDayjsBuddhist.d.ts +4 -4
- package/AdapterDayjsBuddhist/AdapterDayjsBuddhist.mjs +1 -0
- package/AdapterLuxon/AdapterLuxon.d.mts +1 -1
- package/AdapterLuxon/AdapterLuxon.d.ts +1 -1
- package/AdapterMoment/AdapterMoment.d.mts +29 -28
- package/AdapterMoment/AdapterMoment.d.ts +29 -28
- package/AdapterMomentHijri/AdapterMomentHijri.d.mts +15 -13
- package/AdapterMomentHijri/AdapterMomentHijri.d.ts +15 -13
- package/AdapterMomentHijri/AdapterMomentHijri.js +3 -0
- package/AdapterMomentHijri/AdapterMomentHijri.mjs +4 -0
- package/AdapterMomentJalaali/AdapterMomentJalaali.d.mts +13 -12
- package/AdapterMomentJalaali/AdapterMomentJalaali.d.ts +13 -12
- package/AdapterMomentJalaali/AdapterMomentJalaali.mjs +1 -0
- package/CHANGELOG.md +261 -0
- package/DateCalendar/DateCalendar.d.mts +1 -1
- package/DateCalendar/DateCalendar.d.ts +1 -1
- package/DateCalendar/DateCalendar.js +1 -1
- package/DateCalendar/DateCalendar.mjs +1 -1
- package/DateCalendar/DateCalendar.types.d.mts +16 -16
- package/DateCalendar/DateCalendar.types.d.ts +16 -16
- package/DateCalendar/DayCalendar.d.mts +9 -9
- package/DateCalendar/DayCalendar.d.ts +9 -9
- package/DateCalendar/PickersFadeTransitionGroup.d.mts +1 -1
- package/DateCalendar/PickersFadeTransitionGroup.d.ts +1 -1
- package/DateCalendar/PickersSlideTransition.d.mts +3 -3
- package/DateCalendar/PickersSlideTransition.d.ts +3 -3
- package/DateCalendar/useCalendarState.d.mts +3 -3
- package/DateCalendar/useCalendarState.d.ts +3 -3
- package/DateCalendar/useIsDateDisabled.d.mts +3 -3
- package/DateCalendar/useIsDateDisabled.d.ts +3 -3
- package/DateField/DateField.d.mts +1 -1
- package/DateField/DateField.d.ts +1 -1
- package/DateField/DateField.js +2 -1
- package/DateField/DateField.mjs +2 -1
- package/DateField/DateField.types.d.mts +6 -6
- package/DateField/DateField.types.d.ts +6 -6
- package/DateField/useDateField.d.mts +1 -1
- package/DateField/useDateField.d.ts +1 -1
- package/DatePicker/DatePicker.d.mts +1 -1
- package/DatePicker/DatePicker.d.ts +1 -1
- package/DatePicker/DatePicker.js +1 -1
- package/DatePicker/DatePicker.mjs +1 -1
- package/DatePicker/DatePicker.types.d.mts +4 -4
- package/DatePicker/DatePicker.types.d.ts +4 -4
- package/DatePicker/DatePickerToolbar.d.mts +2 -2
- package/DatePicker/DatePickerToolbar.d.ts +2 -2
- package/DatePicker/DatePickerToolbar.js +1 -1
- package/DatePicker/DatePickerToolbar.mjs +1 -1
- package/DatePicker/shared.d.mts +10 -10
- package/DatePicker/shared.d.ts +10 -10
- package/DateTimeField/DateTimeField.d.mts +1 -1
- package/DateTimeField/DateTimeField.d.ts +1 -1
- package/DateTimeField/DateTimeField.js +2 -1
- package/DateTimeField/DateTimeField.mjs +2 -1
- package/DateTimeField/DateTimeField.types.d.mts +7 -7
- package/DateTimeField/DateTimeField.types.d.ts +7 -7
- package/DateTimeField/useDateTimeField.d.mts +1 -1
- package/DateTimeField/useDateTimeField.d.ts +1 -1
- package/DateTimePicker/DateTimePicker.d.mts +1 -1
- package/DateTimePicker/DateTimePicker.d.ts +1 -1
- package/DateTimePicker/DateTimePicker.js +1 -1
- package/DateTimePicker/DateTimePicker.mjs +1 -1
- package/DateTimePicker/DateTimePicker.types.d.mts +5 -5
- package/DateTimePicker/DateTimePicker.types.d.ts +5 -5
- package/DateTimePicker/DateTimePickerTabs.d.mts +2 -2
- package/DateTimePicker/DateTimePickerTabs.d.ts +2 -2
- package/DateTimePicker/DateTimePickerTabs.js +1 -1
- package/DateTimePicker/DateTimePickerTabs.mjs +1 -1
- package/DateTimePicker/DateTimePickerToolbar.d.mts +5 -5
- package/DateTimePicker/DateTimePickerToolbar.d.ts +5 -5
- package/DateTimePicker/DateTimePickerToolbar.js +1 -1
- package/DateTimePicker/DateTimePickerToolbar.mjs +1 -1
- package/DateTimePicker/shared.d.mts +15 -15
- package/DateTimePicker/shared.d.ts +15 -15
- package/DayCalendarSkeleton/DayCalendarSkeleton.d.mts +3 -3
- package/DayCalendarSkeleton/DayCalendarSkeleton.d.ts +3 -3
- package/DayCalendarSkeleton/DayCalendarSkeleton.js +1 -1
- package/DayCalendarSkeleton/DayCalendarSkeleton.mjs +1 -1
- package/DesktopDatePicker/DesktopDatePicker.d.mts +1 -1
- package/DesktopDatePicker/DesktopDatePicker.d.ts +1 -1
- package/DesktopDatePicker/DesktopDatePicker.js +2 -2
- package/DesktopDatePicker/DesktopDatePicker.mjs +2 -2
- package/DesktopDatePicker/DesktopDatePicker.types.d.mts +4 -4
- package/DesktopDatePicker/DesktopDatePicker.types.d.ts +4 -4
- package/DesktopDateTimePicker/DesktopDateTimePicker.d.mts +1 -1
- package/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +1 -1
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -2
- package/DesktopDateTimePicker/DesktopDateTimePicker.mjs +2 -2
- package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.mts +6 -6
- package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +6 -6
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.mts +2 -2
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +2 -2
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -1
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.mjs +1 -1
- package/DesktopTimePicker/DesktopTimePicker.d.mts +1 -1
- package/DesktopTimePicker/DesktopTimePicker.d.ts +1 -1
- package/DesktopTimePicker/DesktopTimePicker.js +2 -2
- package/DesktopTimePicker/DesktopTimePicker.mjs +2 -2
- package/DesktopTimePicker/DesktopTimePicker.types.d.mts +8 -8
- package/DesktopTimePicker/DesktopTimePicker.types.d.ts +8 -8
- package/DigitalClock/DigitalClock.d.mts +1 -1
- package/DigitalClock/DigitalClock.d.ts +1 -1
- package/DigitalClock/DigitalClock.js +1 -1
- package/DigitalClock/DigitalClock.mjs +1 -1
- package/DigitalClock/DigitalClock.types.d.mts +6 -6
- package/DigitalClock/DigitalClock.types.d.ts +6 -6
- package/LocalizationProvider/LocalizationProvider.d.mts +2 -2
- package/LocalizationProvider/LocalizationProvider.d.ts +2 -2
- package/LocalizationProvider/LocalizationProvider.js +1 -1
- package/LocalizationProvider/LocalizationProvider.mjs +1 -1
- package/MobileDatePicker/MobileDatePicker.d.mts +1 -1
- package/MobileDatePicker/MobileDatePicker.d.ts +1 -1
- package/MobileDatePicker/MobileDatePicker.js +2 -2
- package/MobileDatePicker/MobileDatePicker.mjs +2 -2
- package/MobileDatePicker/MobileDatePicker.types.d.mts +3 -3
- package/MobileDatePicker/MobileDatePicker.types.d.ts +3 -3
- package/MobileDateTimePicker/MobileDateTimePicker.d.mts +1 -1
- package/MobileDateTimePicker/MobileDateTimePicker.d.ts +1 -1
- package/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
- package/MobileDateTimePicker/MobileDateTimePicker.mjs +2 -2
- package/MobileDateTimePicker/MobileDateTimePicker.types.d.mts +3 -3
- package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +3 -3
- package/MobileTimePicker/MobileTimePicker.d.mts +2 -2
- package/MobileTimePicker/MobileTimePicker.d.ts +2 -2
- package/MobileTimePicker/MobileTimePicker.js +2 -2
- package/MobileTimePicker/MobileTimePicker.mjs +2 -2
- package/MobileTimePicker/MobileTimePicker.types.d.mts +5 -5
- package/MobileTimePicker/MobileTimePicker.types.d.ts +5 -5
- package/MonthCalendar/MonthCalendar.d.mts +2 -2
- package/MonthCalendar/MonthCalendar.d.ts +2 -2
- package/MonthCalendar/MonthCalendar.js +1 -1
- package/MonthCalendar/MonthCalendar.mjs +1 -1
- package/MonthCalendar/MonthCalendar.types.d.mts +8 -8
- package/MonthCalendar/MonthCalendar.types.d.ts +8 -8
- package/MonthCalendar/MonthCalendarButton.d.mts +3 -3
- package/MonthCalendar/MonthCalendarButton.d.ts +3 -3
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.d.mts +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.d.ts +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.mjs +1 -1
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.mts +7 -7
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +7 -7
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.d.mts +2 -2
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.d.ts +2 -2
- package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.mts +3 -3
- package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +3 -3
- package/PickerDay/PickerDay.d.mts +1 -1
- package/PickerDay/PickerDay.d.ts +1 -1
- package/PickerDay/PickerDay.js +1 -1
- package/PickerDay/PickerDay.mjs +1 -1
- package/PickerDay/PickerDay.types.d.mts +5 -5
- package/PickerDay/PickerDay.types.d.ts +5 -5
- package/PickersActionBar/PickersActionBar.d.mts +1 -1
- package/PickersActionBar/PickersActionBar.d.ts +1 -1
- package/PickersActionBar/PickersActionBar.js +1 -1
- package/PickersActionBar/PickersActionBar.mjs +1 -1
- package/PickersCalendarHeader/PickersCalendarHeader.d.mts +1 -1
- package/PickersCalendarHeader/PickersCalendarHeader.d.ts +1 -1
- package/PickersCalendarHeader/PickersCalendarHeader.js +1 -1
- package/PickersCalendarHeader/PickersCalendarHeader.mjs +1 -1
- package/PickersCalendarHeader/PickersCalendarHeader.types.d.mts +9 -9
- package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +9 -9
- package/PickersLayout/PickersLayout.d.mts +2 -2
- package/PickersLayout/PickersLayout.d.ts +2 -2
- package/PickersLayout/PickersLayout.js +1 -1
- package/PickersLayout/PickersLayout.mjs +1 -1
- package/PickersLayout/PickersLayout.types.d.mts +11 -11
- package/PickersLayout/PickersLayout.types.d.ts +11 -11
- package/PickersLayout/usePickerLayout.d.mts +2 -2
- package/PickersLayout/usePickerLayout.d.ts +2 -2
- package/PickersSectionList/PickersSectionList.js +2 -2
- package/PickersSectionList/PickersSectionList.mjs +2 -2
- package/PickersSectionList/PickersSectionList.types.d.mts +4 -4
- package/PickersSectionList/PickersSectionList.types.d.ts +4 -4
- package/PickersShortcuts/PickersShortcuts.d.mts +3 -3
- package/PickersShortcuts/PickersShortcuts.d.ts +3 -3
- package/PickersShortcuts/PickersShortcuts.js +1 -1
- package/PickersShortcuts/PickersShortcuts.mjs +1 -1
- package/PickersTextField/PickersFilledInput/PickersFilledInput.d.mts +2 -2
- package/PickersTextField/PickersFilledInput/PickersFilledInput.d.ts +2 -2
- package/PickersTextField/PickersFilledInput/PickersFilledInput.js +2 -1
- package/PickersTextField/PickersFilledInput/PickersFilledInput.mjs +2 -1
- package/PickersTextField/PickersFilledInput/pickersFilledInputClasses.d.mts +1 -1
- package/PickersTextField/PickersFilledInput/pickersFilledInputClasses.d.ts +1 -1
- package/PickersTextField/PickersInput/PickersInput.d.mts +2 -2
- package/PickersTextField/PickersInput/PickersInput.d.ts +2 -2
- package/PickersTextField/PickersInput/PickersInput.js +2 -1
- package/PickersTextField/PickersInput/PickersInput.mjs +2 -1
- package/PickersTextField/PickersInput/pickersInputClasses.d.mts +1 -1
- package/PickersTextField/PickersInput/pickersInputClasses.d.ts +1 -1
- package/PickersTextField/PickersInputBase/PickersInputBase.d.mts +2 -2
- package/PickersTextField/PickersInputBase/PickersInputBase.d.ts +2 -2
- package/PickersTextField/PickersInputBase/PickersInputBase.js +17 -2
- package/PickersTextField/PickersInputBase/PickersInputBase.mjs +17 -2
- package/PickersTextField/PickersInputBase/PickersInputBase.types.d.mts +6 -5
- package/PickersTextField/PickersInputBase/PickersInputBase.types.d.ts +6 -5
- package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.d.mts +1 -1
- package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.d.ts +1 -1
- package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +13 -9
- package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.mjs +13 -9
- package/PickersTextField/PickersOutlinedInput/pickersOutlinedInputClasses.d.mts +1 -1
- package/PickersTextField/PickersOutlinedInput/pickersOutlinedInputClasses.d.ts +1 -1
- package/PickersTextField/PickersTextField.js +5 -2
- package/PickersTextField/PickersTextField.mjs +5 -2
- package/PickersTextField/PickersTextField.types.d.mts +6 -6
- package/PickersTextField/PickersTextField.types.d.ts +6 -6
- package/PickersTextField/usePickerTextFieldOwnerState.d.mts +1 -1
- package/PickersTextField/usePickerTextFieldOwnerState.d.ts +1 -1
- package/StaticDatePicker/StaticDatePicker.d.mts +1 -1
- package/StaticDatePicker/StaticDatePicker.d.ts +1 -1
- package/StaticDatePicker/StaticDatePicker.js +2 -2
- package/StaticDatePicker/StaticDatePicker.mjs +2 -2
- package/StaticDatePicker/StaticDatePicker.types.d.mts +3 -3
- package/StaticDatePicker/StaticDatePicker.types.d.ts +3 -3
- package/StaticDateTimePicker/StaticDateTimePicker.d.mts +1 -1
- package/StaticDateTimePicker/StaticDateTimePicker.d.ts +1 -1
- package/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
- package/StaticDateTimePicker/StaticDateTimePicker.mjs +2 -2
- package/StaticDateTimePicker/StaticDateTimePicker.types.d.mts +3 -3
- package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +3 -3
- package/StaticTimePicker/StaticTimePicker.d.mts +1 -1
- package/StaticTimePicker/StaticTimePicker.d.ts +1 -1
- package/StaticTimePicker/StaticTimePicker.js +2 -2
- package/StaticTimePicker/StaticTimePicker.mjs +2 -2
- package/StaticTimePicker/StaticTimePicker.types.d.mts +4 -4
- package/StaticTimePicker/StaticTimePicker.types.d.ts +4 -4
- package/TimeClock/Clock.d.mts +5 -5
- package/TimeClock/Clock.d.ts +5 -5
- package/TimeClock/Clock.js +76 -30
- package/TimeClock/Clock.mjs +76 -30
- package/TimeClock/ClockNumber.d.mts +2 -2
- package/TimeClock/ClockNumber.d.ts +2 -2
- package/TimeClock/ClockNumbers.d.mts +1 -1
- package/TimeClock/ClockNumbers.d.ts +1 -1
- package/TimeClock/ClockPointer.d.mts +2 -2
- package/TimeClock/ClockPointer.d.ts +2 -2
- package/TimeClock/TimeClock.d.mts +1 -1
- package/TimeClock/TimeClock.d.ts +1 -1
- package/TimeClock/TimeClock.js +1 -1
- package/TimeClock/TimeClock.mjs +1 -1
- package/TimeClock/TimeClock.types.d.mts +5 -5
- package/TimeClock/TimeClock.types.d.ts +5 -5
- package/TimeField/TimeField.d.mts +1 -1
- package/TimeField/TimeField.d.ts +1 -1
- package/TimeField/TimeField.js +2 -1
- package/TimeField/TimeField.mjs +2 -1
- package/TimeField/TimeField.types.d.mts +7 -7
- package/TimeField/TimeField.types.d.ts +7 -7
- package/TimeField/useTimeField.d.mts +1 -1
- package/TimeField/useTimeField.d.ts +1 -1
- package/TimePicker/TimePicker.d.mts +1 -1
- package/TimePicker/TimePicker.d.ts +1 -1
- package/TimePicker/TimePicker.js +1 -1
- package/TimePicker/TimePicker.mjs +1 -1
- package/TimePicker/TimePicker.types.d.mts +4 -4
- package/TimePicker/TimePicker.types.d.ts +4 -4
- package/TimePicker/TimePickerToolbar.d.mts +2 -2
- package/TimePicker/TimePickerToolbar.d.ts +2 -2
- package/TimePicker/TimePickerToolbar.js +1 -1
- package/TimePicker/TimePickerToolbar.mjs +1 -1
- package/TimePicker/shared.d.mts +11 -11
- package/TimePicker/shared.d.ts +11 -11
- package/YearCalendar/YearCalendar.d.mts +1 -1
- package/YearCalendar/YearCalendar.d.ts +1 -1
- package/YearCalendar/YearCalendar.js +1 -1
- package/YearCalendar/YearCalendar.mjs +1 -1
- package/YearCalendar/YearCalendar.types.d.mts +8 -8
- package/YearCalendar/YearCalendar.types.d.ts +8 -8
- package/YearCalendar/YearCalendarButton.d.mts +3 -3
- package/YearCalendar/YearCalendarButton.d.ts +3 -3
- package/dateViewRenderers/dateViewRenderers.d.mts +3 -3
- package/dateViewRenderers/dateViewRenderers.d.ts +3 -3
- package/hooks/useIsValidValue.d.mts +1 -1
- package/hooks/useIsValidValue.d.ts +1 -1
- package/hooks/usePickerActionsContext.d.mts +2 -2
- package/hooks/usePickerActionsContext.d.ts +2 -2
- package/hooks/usePickerAdapter.d.mts +2 -2
- package/hooks/usePickerAdapter.d.ts +2 -2
- package/hooks/usePickerContext.d.mts +1 -1
- package/hooks/usePickerContext.d.ts +1 -1
- package/hooks/useSplitFieldProps.d.mts +1 -1
- package/hooks/useSplitFieldProps.d.ts +1 -1
- package/index.js +1 -1
- package/index.mjs +1 -1
- package/internals/components/PickerFieldUI.d.mts +7 -7
- package/internals/components/PickerFieldUI.d.ts +7 -7
- package/internals/components/PickerPopper/PickerPopper.d.mts +7 -7
- package/internals/components/PickerPopper/PickerPopper.d.ts +7 -7
- package/internals/components/PickerProvider.d.mts +6 -6
- package/internals/components/PickerProvider.d.ts +6 -6
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.d.mts +1 -1
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.d.ts +1 -1
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.mts +6 -6
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +6 -6
- package/internals/components/PickersModalDialog.d.mts +3 -3
- package/internals/components/PickersModalDialog.d.ts +3 -3
- package/internals/components/PickersToolbar.d.mts +2 -2
- package/internals/components/PickersToolbar.d.ts +2 -2
- package/internals/components/PickersToolbarButton.d.mts +4 -4
- package/internals/components/PickersToolbarButton.d.ts +4 -4
- package/internals/components/PickersToolbarText.d.mts +2 -2
- package/internals/components/PickersToolbarText.d.ts +2 -2
- package/internals/demo/DemoContainer.d.mts +2 -2
- package/internals/demo/DemoContainer.d.ts +2 -2
- package/internals/hooks/PickerDay.types.d.mts +1 -1
- package/internals/hooks/PickerDay.types.d.ts +1 -1
- package/internals/hooks/date-helpers-hooks.d.mts +3 -3
- package/internals/hooks/date-helpers-hooks.d.ts +3 -3
- package/internals/hooks/useClockReferenceDate.d.mts +2 -2
- package/internals/hooks/useClockReferenceDate.d.ts +2 -2
- package/internals/hooks/useControlledValue.d.mts +2 -3
- package/internals/hooks/useControlledValue.d.ts +2 -3
- package/internals/hooks/useDesktopPicker/useDesktopPicker.d.mts +2 -2
- package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +2 -2
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.mts +10 -10
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +10 -10
- package/internals/hooks/useField/buildSectionsFromFormat.d.mts +2 -2
- package/internals/hooks/useField/buildSectionsFromFormat.d.ts +2 -2
- package/internals/hooks/useField/syncSelectionToDOM.d.mts +3 -3
- package/internals/hooks/useField/syncSelectionToDOM.d.ts +3 -3
- package/internals/hooks/useField/useField.d.mts +2 -2
- package/internals/hooks/useField/useField.d.ts +2 -2
- package/internals/hooks/useField/useField.js +18 -0
- package/internals/hooks/useField/useField.mjs +18 -0
- package/internals/hooks/useField/useField.types.d.mts +5 -4
- package/internals/hooks/useField/useField.types.d.ts +5 -4
- package/internals/hooks/useField/useField.utils.d.mts +3 -4
- package/internals/hooks/useField/useField.utils.d.ts +3 -4
- package/internals/hooks/useField/useField.utils.js +1 -3
- package/internals/hooks/useField/useField.utils.mjs +0 -1
- package/internals/hooks/useField/useFieldCharacterEditing.d.mts +2 -2
- package/internals/hooks/useField/useFieldCharacterEditing.d.ts +2 -2
- package/internals/hooks/useField/useFieldHiddenInputProps.d.mts +2 -2
- package/internals/hooks/useField/useFieldHiddenInputProps.d.ts +2 -2
- package/internals/hooks/useField/useFieldInternalPropsWithDefaults.d.mts +1 -1
- package/internals/hooks/useField/useFieldInternalPropsWithDefaults.d.ts +1 -1
- package/internals/hooks/useField/useFieldRootProps.d.mts +5 -4
- package/internals/hooks/useField/useFieldRootProps.d.ts +5 -4
- package/internals/hooks/useField/useFieldRootProps.js +95 -8
- package/internals/hooks/useField/useFieldRootProps.mjs +95 -8
- package/internals/hooks/useField/useFieldSectionContainerProps.d.mts +2 -2
- package/internals/hooks/useField/useFieldSectionContainerProps.d.ts +2 -2
- package/internals/hooks/useField/useFieldSectionContainerProps.js +35 -4
- package/internals/hooks/useField/useFieldSectionContainerProps.mjs +34 -4
- package/internals/hooks/useField/useFieldSectionContentProps.d.mts +6 -6
- package/internals/hooks/useField/useFieldSectionContentProps.d.ts +6 -6
- package/internals/hooks/useField/useFieldSectionContentProps.js +3 -1
- package/internals/hooks/useField/useFieldSectionContentProps.mjs +3 -1
- package/internals/hooks/useField/useFieldState.d.mts +3 -3
- package/internals/hooks/useField/useFieldState.d.ts +3 -3
- package/internals/hooks/useFieldOwnerState.d.mts +2 -2
- package/internals/hooks/useFieldOwnerState.d.ts +2 -2
- package/internals/hooks/useMobilePicker/useMobilePicker.d.mts +2 -2
- package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +2 -2
- package/internals/hooks/useMobilePicker/useMobilePicker.types.d.mts +10 -10
- package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +10 -10
- package/internals/hooks/useNullableFieldPrivateContext.d.mts +2 -2
- package/internals/hooks/useNullableFieldPrivateContext.d.ts +2 -2
- package/internals/hooks/usePicker/hooks/useOrientation.d.mts +1 -1
- package/internals/hooks/usePicker/hooks/useOrientation.d.ts +1 -1
- package/internals/hooks/usePicker/hooks/useValueAndOpenStates.d.mts +5 -5
- package/internals/hooks/usePicker/hooks/useValueAndOpenStates.d.ts +5 -5
- package/internals/hooks/usePicker/usePicker.d.mts +2 -2
- package/internals/hooks/usePicker/usePicker.d.ts +2 -2
- package/internals/hooks/usePicker/usePicker.types.d.mts +10 -10
- package/internals/hooks/usePicker/usePicker.types.d.ts +10 -10
- package/internals/hooks/usePickerDayOwnerState.d.mts +2 -2
- package/internals/hooks/usePickerDayOwnerState.d.ts +2 -2
- package/internals/hooks/useReduceAnimations.js +4 -1
- package/internals/hooks/useReduceAnimations.mjs +4 -1
- package/internals/hooks/useStaticPicker/useStaticPicker.d.mts +2 -2
- package/internals/hooks/useStaticPicker/useStaticPicker.d.ts +2 -2
- package/internals/hooks/useStaticPicker/useStaticPicker.types.d.mts +5 -5
- package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +5 -5
- package/internals/hooks/useToolbarOwnerState.d.mts +1 -1
- package/internals/hooks/useToolbarOwnerState.d.ts +1 -1
- package/internals/hooks/useUtils.d.mts +1 -1
- package/internals/hooks/useUtils.d.ts +1 -1
- package/internals/hooks/useViews.d.mts +4 -4
- package/internals/hooks/useViews.d.ts +4 -4
- package/internals/models/common.d.mts +1 -1
- package/internals/models/common.d.ts +1 -1
- package/internals/models/fields.d.mts +1 -1
- package/internals/models/fields.d.ts +1 -1
- package/internals/models/helpers.d.mts +2 -2
- package/internals/models/helpers.d.ts +2 -2
- package/internals/models/manager.d.mts +1 -1
- package/internals/models/manager.d.ts +1 -1
- package/internals/models/props/basePickerProps.d.mts +7 -8
- package/internals/models/props/basePickerProps.d.ts +7 -8
- package/internals/models/props/tabs.d.mts +2 -2
- package/internals/models/props/tabs.d.ts +2 -2
- package/internals/models/props/time.d.mts +6 -6
- package/internals/models/props/time.d.ts +6 -6
- package/internals/models/props/toolbar.d.mts +3 -3
- package/internals/models/props/toolbar.d.ts +3 -3
- package/internals/models/value.d.mts +1 -1
- package/internals/models/value.d.ts +1 -1
- package/internals/utils/createNonRangePickerStepNavigation.d.mts +1 -1
- package/internals/utils/createNonRangePickerStepNavigation.d.ts +1 -1
- package/internals/utils/createStepNavigation.d.mts +1 -1
- package/internals/utils/createStepNavigation.d.ts +1 -1
- package/internals/utils/date-time-utils.d.mts +4 -4
- package/internals/utils/date-time-utils.d.ts +4 -4
- package/internals/utils/date-utils.d.mts +2 -2
- package/internals/utils/date-utils.d.ts +2 -2
- package/internals/utils/getDefaultReferenceDate.d.mts +1 -1
- package/internals/utils/getDefaultReferenceDate.d.ts +1 -1
- package/internals/utils/time-utils.d.mts +2 -2
- package/internals/utils/time-utils.d.ts +2 -2
- package/internals/utils/utils.d.mts +3 -3
- package/internals/utils/utils.d.ts +3 -3
- package/internals/utils/valueManagers.d.mts +2 -3
- package/internals/utils/valueManagers.d.ts +2 -3
- package/internals/utils/views.d.mts +1 -1
- package/internals/utils/views.d.ts +1 -1
- package/locales/beBY.d.mts +1 -1
- package/locales/beBY.d.ts +1 -1
- package/locales/bgBG.d.mts +1 -1
- package/locales/bgBG.d.ts +1 -1
- package/locales/bnBD.d.mts +1 -1
- package/locales/bnBD.d.ts +1 -1
- package/locales/caES.d.mts +1 -1
- package/locales/caES.d.ts +1 -1
- package/locales/csCZ.d.mts +1 -1
- package/locales/csCZ.d.ts +1 -1
- package/locales/daDK.d.mts +1 -1
- package/locales/daDK.d.ts +1 -1
- package/locales/deDE.d.mts +1 -1
- package/locales/deDE.d.ts +1 -1
- package/locales/elGR.d.mts +1 -1
- package/locales/elGR.d.ts +1 -1
- package/locales/enUS.d.mts +1 -1
- package/locales/enUS.d.ts +1 -1
- package/locales/esES.d.mts +1 -1
- package/locales/esES.d.ts +1 -1
- package/locales/eu.d.mts +1 -1
- package/locales/eu.d.ts +1 -1
- package/locales/faIR.d.mts +1 -1
- package/locales/faIR.d.ts +1 -1
- package/locales/faIR.js +21 -22
- package/locales/faIR.mjs +21 -22
- package/locales/fiFI.d.mts +1 -1
- package/locales/fiFI.d.ts +1 -1
- package/locales/frFR.d.mts +1 -1
- package/locales/frFR.d.ts +1 -1
- package/locales/heIL.d.mts +1 -1
- package/locales/heIL.d.ts +1 -1
- package/locales/hrHR.d.mts +1 -1
- package/locales/hrHR.d.ts +1 -1
- package/locales/huHU.d.mts +1 -1
- package/locales/huHU.d.ts +1 -1
- package/locales/isIS.d.mts +1 -1
- package/locales/isIS.d.ts +1 -1
- package/locales/itIT.d.mts +1 -1
- package/locales/itIT.d.ts +1 -1
- package/locales/jaJP.d.mts +1 -1
- package/locales/jaJP.d.ts +1 -1
- package/locales/koKR.d.mts +1 -1
- package/locales/koKR.d.ts +1 -1
- package/locales/kzKZ.d.mts +1 -1
- package/locales/kzKZ.d.ts +1 -1
- package/locales/nbNO.d.mts +1 -1
- package/locales/nbNO.d.ts +1 -1
- package/locales/nlNL.d.mts +1 -1
- package/locales/nlNL.d.ts +1 -1
- package/locales/nnNO.d.mts +1 -1
- package/locales/nnNO.d.ts +1 -1
- package/locales/plPL.d.mts +1 -1
- package/locales/plPL.d.ts +1 -1
- package/locales/ptBR.d.mts +1 -1
- package/locales/ptBR.d.ts +1 -1
- package/locales/ptPT.d.mts +1 -1
- package/locales/ptPT.d.ts +1 -1
- package/locales/roRO.d.mts +1 -1
- package/locales/roRO.d.ts +1 -1
- package/locales/ruRU.d.mts +1 -1
- package/locales/ruRU.d.ts +1 -1
- package/locales/skSK.d.mts +1 -1
- package/locales/skSK.d.ts +1 -1
- package/locales/svSE.d.mts +1 -1
- package/locales/svSE.d.ts +1 -1
- package/locales/thTH.d.mts +1 -1
- package/locales/thTH.d.ts +1 -1
- package/locales/trTR.d.mts +1 -1
- package/locales/trTR.d.ts +1 -1
- package/locales/ukUA.d.mts +1 -1
- package/locales/ukUA.d.ts +1 -1
- package/locales/urPK.d.mts +1 -1
- package/locales/urPK.d.ts +1 -1
- package/locales/utils/getPickersLocalization.d.mts +1 -1
- package/locales/utils/getPickersLocalization.d.ts +1 -1
- package/locales/utils/pickersLocaleTextApi.d.mts +2 -2
- package/locales/utils/pickersLocaleTextApi.d.ts +2 -2
- package/locales/viVN.d.mts +1 -1
- package/locales/viVN.d.ts +1 -1
- package/locales/zhCN.d.mts +1 -1
- package/locales/zhCN.d.ts +1 -1
- package/locales/zhHK.d.mts +1 -1
- package/locales/zhHK.d.ts +1 -1
- package/locales/zhTW.d.mts +1 -1
- package/locales/zhTW.d.ts +1 -1
- package/managers/useDateManager.d.mts +4 -4
- package/managers/useDateManager.d.ts +4 -4
- package/managers/useDateTimeManager.d.mts +5 -5
- package/managers/useDateTimeManager.d.ts +5 -5
- package/managers/useTimeManager.d.mts +5 -5
- package/managers/useTimeManager.d.ts +5 -5
- package/models/adapters.d.mts +3 -3
- package/models/adapters.d.ts +3 -3
- package/models/fields.d.mts +4 -4
- package/models/fields.d.ts +4 -4
- package/models/pickers.d.mts +1 -1
- package/models/pickers.d.ts +1 -1
- package/package.json +6 -3
- package/themeAugmentation/components.d.mts +16 -16
- package/themeAugmentation/components.d.ts +16 -16
- package/themeAugmentation/overrides.d.mts +20 -20
- package/themeAugmentation/overrides.d.ts +20 -20
- package/themeAugmentation/props.d.mts +38 -38
- package/themeAugmentation/props.d.ts +38 -38
- package/timeViewRenderers/timeViewRenderers.d.mts +6 -6
- package/timeViewRenderers/timeViewRenderers.d.ts +6 -6
- package/validation/extractValidationProps.d.mts +1 -1
- package/validation/extractValidationProps.d.ts +1 -1
- package/validation/useValidation.d.mts +2 -3
- package/validation/useValidation.d.ts +2 -3
- package/validation/validateDate.d.mts +4 -4
- package/validation/validateDate.d.ts +4 -4
- package/validation/validateDateTime.d.mts +6 -6
- package/validation/validateDateTime.d.ts +6 -6
- package/validation/validateTime.d.mts +4 -4
- package/validation/validateTime.d.ts +4 -4
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { MakeRequired, SlotComponentPropsFromProps } from '@mui/x-internals/types';
|
|
3
|
-
import { BasePickerProps } from "../../models/props/basePickerProps.js";
|
|
4
|
-
import { PickerPopperSlots, PickerPopperSlotProps } from "../../components/PickerPopper/PickerPopper.js";
|
|
5
|
-
import { UsePickerParameters, UsePickerNonStaticProps, UsePickerProps } from "../usePicker/index.js";
|
|
6
|
-
import { PickerFieldSlotProps, PickerOwnerState } from "../../../models/index.js";
|
|
7
|
-
import { ExportedPickersLayoutSlots, ExportedPickersLayoutSlotProps, PickersLayoutSlotProps } from "../../../PickersLayout/PickersLayout.types.js";
|
|
8
|
-
import { DateOrTimeViewWithMeridiem, PickerValue } from "../../models/index.js";
|
|
9
|
-
import { PickerFieldUISlotsFromContext, PickerFieldUISlotPropsFromContext } from "../../components/PickerFieldUI.js";
|
|
10
|
-
import { PickerStep } from "../../utils/createNonRangePickerStepNavigation.js";
|
|
1
|
+
import type * as React from 'react';
|
|
2
|
+
import type { MakeRequired, SlotComponentPropsFromProps } from '@mui/x-internals/types';
|
|
3
|
+
import type { BasePickerProps } from "../../models/props/basePickerProps.js";
|
|
4
|
+
import type { PickerPopperSlots, PickerPopperSlotProps } from "../../components/PickerPopper/PickerPopper.js";
|
|
5
|
+
import type { UsePickerParameters, UsePickerNonStaticProps, UsePickerProps } from "../usePicker/index.js";
|
|
6
|
+
import type { PickerFieldSlotProps, PickerOwnerState } from "../../../models/index.js";
|
|
7
|
+
import type { ExportedPickersLayoutSlots, ExportedPickersLayoutSlotProps, PickersLayoutSlotProps } from "../../../PickersLayout/PickersLayout.types.js";
|
|
8
|
+
import type { DateOrTimeViewWithMeridiem, PickerValue } from "../../models/index.js";
|
|
9
|
+
import type { PickerFieldUISlotsFromContext, PickerFieldUISlotPropsFromContext } from "../../components/PickerFieldUI.js";
|
|
10
|
+
import type { PickerStep } from "../../utils/createNonRangePickerStepNavigation.js";
|
|
11
11
|
export interface UseDesktopPickerSlots extends Pick<PickerPopperSlots, 'desktopPaper' | 'desktopTransition' | 'desktopTrapFocus' | 'popper'>, ExportedPickersLayoutSlots<PickerValue>, PickerFieldUISlotsFromContext {
|
|
12
12
|
/**
|
|
13
13
|
* Component used to enter the date with the keyboard.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FieldSection, MuiPickersAdapter, PickerValidDate } from "../../../models/index.mjs";
|
|
2
|
-
import { PickersLocaleText } from "../../../locales/index.mjs";
|
|
1
|
+
import type { FieldSection, MuiPickersAdapter, PickerValidDate } from "../../../models/index.mjs";
|
|
2
|
+
import type { PickersLocaleText } from "../../../locales/index.mjs";
|
|
3
3
|
interface BuildSectionsFromFormatParameters {
|
|
4
4
|
adapter: MuiPickersAdapter;
|
|
5
5
|
format: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FieldSection, MuiPickersAdapter, PickerValidDate } from "../../../models/index.js";
|
|
2
|
-
import { PickersLocaleText } from "../../../locales/index.js";
|
|
1
|
+
import type { FieldSection, MuiPickersAdapter, PickerValidDate } from "../../../models/index.js";
|
|
2
|
+
import type { PickersLocaleText } from "../../../locales/index.js";
|
|
3
3
|
interface BuildSectionsFromFormatParameters {
|
|
4
4
|
adapter: MuiPickersAdapter;
|
|
5
5
|
format: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { PickerValidValue } from "../../models/index.mjs";
|
|
2
|
-
import { UseFieldDOMGetters } from "./useField.types.mjs";
|
|
3
|
-
import { UseFieldStateReturnValue } from "./useFieldState.mjs";
|
|
1
|
+
import type { PickerValidValue } from "../../models/index.mjs";
|
|
2
|
+
import type { UseFieldDOMGetters } from "./useField.types.mjs";
|
|
3
|
+
import type { UseFieldStateReturnValue } from "./useFieldState.mjs";
|
|
4
4
|
export declare function syncSelectionToDOM<TValue extends PickerValidValue>(parameters: SyncSelectionToDOMParameters<TValue>): void;
|
|
5
5
|
export interface SyncSelectionToDOMParameters<TValue extends PickerValidValue> {
|
|
6
6
|
domGetters: UseFieldDOMGetters;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { PickerValidValue } from "../../models/index.js";
|
|
2
|
-
import { UseFieldDOMGetters } from "./useField.types.js";
|
|
3
|
-
import { UseFieldStateReturnValue } from "./useFieldState.js";
|
|
1
|
+
import type { PickerValidValue } from "../../models/index.js";
|
|
2
|
+
import type { UseFieldDOMGetters } from "./useField.types.js";
|
|
3
|
+
import type { UseFieldStateReturnValue } from "./useFieldState.js";
|
|
4
4
|
export declare function syncSelectionToDOM<TValue extends PickerValidValue>(parameters: SyncSelectionToDOMParameters<TValue>): void;
|
|
5
5
|
export interface SyncSelectionToDOMParameters<TValue extends PickerValidValue> {
|
|
6
6
|
domGetters: UseFieldDOMGetters;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { UseFieldParameters, UseFieldProps, UseFieldReturnValue } from "./useField.types.mjs";
|
|
2
|
-
import { PickerValidValue } from "../../models/index.mjs";
|
|
1
|
+
import type { UseFieldParameters, UseFieldProps, UseFieldReturnValue } from "./useField.types.mjs";
|
|
2
|
+
import type { PickerValidValue } from "../../models/index.mjs";
|
|
3
3
|
export declare const useField: <TValue extends PickerValidValue, TError, TValidationProps extends {}, TProps extends UseFieldProps>(parameters: UseFieldParameters<TValue, TError, TValidationProps, TProps>) => UseFieldReturnValue<TProps>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { UseFieldParameters, UseFieldProps, UseFieldReturnValue } from "./useField.types.js";
|
|
2
|
-
import { PickerValidValue } from "../../models/index.js";
|
|
1
|
+
import type { UseFieldParameters, UseFieldProps, UseFieldReturnValue } from "./useField.types.js";
|
|
2
|
+
import type { PickerValidValue } from "../../models/index.js";
|
|
3
3
|
export declare const useField: <TValue extends PickerValidValue, TError, TValidationProps extends {}, TProps extends UseFieldProps>(parameters: UseFieldParameters<TValue, TError, TValidationProps, TProps>) => UseFieldReturnValue<TProps>;
|
|
@@ -53,6 +53,7 @@ const useField = parameters => {
|
|
|
53
53
|
sectionListRef: sectionListRefProp,
|
|
54
54
|
onBlur,
|
|
55
55
|
onClick,
|
|
56
|
+
onMouseDown,
|
|
56
57
|
onFocus,
|
|
57
58
|
onInput,
|
|
58
59
|
onPaste,
|
|
@@ -167,6 +168,22 @@ const useField = parameters => {
|
|
|
167
168
|
onClick?.(event);
|
|
168
169
|
rootProps.onClick(event);
|
|
169
170
|
});
|
|
171
|
+
const handleRootMouseDown = (0, _useEventCallback.default)(event => {
|
|
172
|
+
// The `isDefaultPrevented` check skips mousedowns that have already been
|
|
173
|
+
// suppressed before this handler runs -- in particular, propagated events
|
|
174
|
+
// from the clear / open buttons whose own handlers `preventDefault`, and
|
|
175
|
+
// capture-phase parents that intentionally block field interactions.
|
|
176
|
+
// Userland `onMouseDown` calling `event.preventDefault()` does *not*
|
|
177
|
+
// suppress `rootProps.onMouseDown` here: the prevent fires *after* this
|
|
178
|
+
// check, and `rootProps.onMouseDown` is the section-selection mechanism
|
|
179
|
+
// for the field -- letting consumers disable it inline would leave the
|
|
180
|
+
// field unable to focus a section on click.
|
|
181
|
+
if (event.isDefaultPrevented()) {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
onMouseDown?.(event);
|
|
185
|
+
rootProps.onMouseDown(event);
|
|
186
|
+
});
|
|
170
187
|
const handleRootPaste = (0, _useEventCallback.default)(event => {
|
|
171
188
|
onPaste?.(event);
|
|
172
189
|
rootProps.onPaste(event);
|
|
@@ -253,6 +270,7 @@ Learn more about the field accessible DOM structure on the MUI documentation: ht
|
|
|
253
270
|
return (0, _extends2.default)({}, forwardedProps, rootProps, {
|
|
254
271
|
onBlur: handleRootBlur,
|
|
255
272
|
onClick: handleRootClick,
|
|
273
|
+
onMouseDown: handleRootMouseDown,
|
|
256
274
|
onFocus: handleRootFocus,
|
|
257
275
|
onInput: handleRootInput,
|
|
258
276
|
onPaste: handleRootPaste,
|
|
@@ -46,6 +46,7 @@ export const useField = parameters => {
|
|
|
46
46
|
sectionListRef: sectionListRefProp,
|
|
47
47
|
onBlur,
|
|
48
48
|
onClick,
|
|
49
|
+
onMouseDown,
|
|
49
50
|
onFocus,
|
|
50
51
|
onInput,
|
|
51
52
|
onPaste,
|
|
@@ -160,6 +161,22 @@ export const useField = parameters => {
|
|
|
160
161
|
onClick?.(event);
|
|
161
162
|
rootProps.onClick(event);
|
|
162
163
|
});
|
|
164
|
+
const handleRootMouseDown = useEventCallback(event => {
|
|
165
|
+
// The `isDefaultPrevented` check skips mousedowns that have already been
|
|
166
|
+
// suppressed before this handler runs -- in particular, propagated events
|
|
167
|
+
// from the clear / open buttons whose own handlers `preventDefault`, and
|
|
168
|
+
// capture-phase parents that intentionally block field interactions.
|
|
169
|
+
// Userland `onMouseDown` calling `event.preventDefault()` does *not*
|
|
170
|
+
// suppress `rootProps.onMouseDown` here: the prevent fires *after* this
|
|
171
|
+
// check, and `rootProps.onMouseDown` is the section-selection mechanism
|
|
172
|
+
// for the field -- letting consumers disable it inline would leave the
|
|
173
|
+
// field unable to focus a section on click.
|
|
174
|
+
if (event.isDefaultPrevented()) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
onMouseDown?.(event);
|
|
178
|
+
rootProps.onMouseDown(event);
|
|
179
|
+
});
|
|
163
180
|
const handleRootPaste = useEventCallback(event => {
|
|
164
181
|
onPaste?.(event);
|
|
165
182
|
rootProps.onPaste(event);
|
|
@@ -246,6 +263,7 @@ Learn more about the field accessible DOM structure on the MUI documentation: ht
|
|
|
246
263
|
return _extends({}, forwardedProps, rootProps, {
|
|
247
264
|
onBlur: handleRootBlur,
|
|
248
265
|
onClick: handleRootClick,
|
|
266
|
+
onMouseDown: handleRootMouseDown,
|
|
249
267
|
onFocus: handleRootFocus,
|
|
250
268
|
onInput: handleRootInput,
|
|
251
269
|
onPaste: handleRootPaste,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { FieldSectionType, FieldSection, FieldSelectedSections, MuiPickersAdapter, TimezoneProps, FieldSectionContentType, PickerValidDate, FieldRef, OnErrorProps, InferFieldSection, PickerManager, PickerValueType } from "../../../models/index.mjs";
|
|
3
|
-
import { InternalPropNames } from "../../../hooks/useSplitFieldProps.mjs";
|
|
1
|
+
import type * as React from 'react';
|
|
2
|
+
import type { FieldSectionType, FieldSection, FieldSelectedSections, MuiPickersAdapter, TimezoneProps, FieldSectionContentType, PickerValidDate, FieldRef, OnErrorProps, InferFieldSection, PickerManager, PickerValueType } from "../../../models/index.mjs";
|
|
3
|
+
import type { InternalPropNames } from "../../../hooks/useSplitFieldProps.mjs";
|
|
4
4
|
import type { PickersSectionElement, PickersSectionListRef } from "../../../PickersSectionList/index.mjs";
|
|
5
|
-
import { FormProps, InferNonNullablePickerValue, PickerRangeValue, PickerValidValue } from "../../models/index.mjs";
|
|
5
|
+
import type { FormProps, InferNonNullablePickerValue, PickerRangeValue, PickerValidValue } from "../../models/index.mjs";
|
|
6
6
|
export interface UseFieldParameters<TValue extends PickerValidValue, TError, TValidationProps extends {}, TProps extends UseFieldProps> {
|
|
7
7
|
manager: PickerManager<TValue, TError, TValidationProps, any>;
|
|
8
8
|
props: TProps;
|
|
@@ -92,6 +92,7 @@ export interface UseFieldForwardedProps {
|
|
|
92
92
|
focused?: boolean;
|
|
93
93
|
sectionListRef?: React.Ref<PickersSectionListRef>;
|
|
94
94
|
onClick?: React.MouseEventHandler;
|
|
95
|
+
onMouseDown?: React.MouseEventHandler;
|
|
95
96
|
onKeyDown?: React.KeyboardEventHandler;
|
|
96
97
|
onFocus?: React.FocusEventHandler;
|
|
97
98
|
onBlur?: React.FocusEventHandler;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { FieldSectionType, FieldSection, FieldSelectedSections, MuiPickersAdapter, TimezoneProps, FieldSectionContentType, PickerValidDate, FieldRef, OnErrorProps, InferFieldSection, PickerManager, PickerValueType } from "../../../models/index.js";
|
|
3
|
-
import { InternalPropNames } from "../../../hooks/useSplitFieldProps.js";
|
|
1
|
+
import type * as React from 'react';
|
|
2
|
+
import type { FieldSectionType, FieldSection, FieldSelectedSections, MuiPickersAdapter, TimezoneProps, FieldSectionContentType, PickerValidDate, FieldRef, OnErrorProps, InferFieldSection, PickerManager, PickerValueType } from "../../../models/index.js";
|
|
3
|
+
import type { InternalPropNames } from "../../../hooks/useSplitFieldProps.js";
|
|
4
4
|
import type { PickersSectionElement, PickersSectionListRef } from "../../../PickersSectionList/index.js";
|
|
5
|
-
import { FormProps, InferNonNullablePickerValue, PickerRangeValue, PickerValidValue } from "../../models/index.js";
|
|
5
|
+
import type { FormProps, InferNonNullablePickerValue, PickerRangeValue, PickerValidValue } from "../../models/index.js";
|
|
6
6
|
export interface UseFieldParameters<TValue extends PickerValidValue, TError, TValidationProps extends {}, TProps extends UseFieldProps> {
|
|
7
7
|
manager: PickerManager<TValue, TError, TValidationProps, any>;
|
|
8
8
|
props: TProps;
|
|
@@ -92,6 +92,7 @@ export interface UseFieldForwardedProps {
|
|
|
92
92
|
focused?: boolean;
|
|
93
93
|
sectionListRef?: React.Ref<PickersSectionListRef>;
|
|
94
94
|
onClick?: React.MouseEventHandler;
|
|
95
|
+
onMouseDown?: React.MouseEventHandler;
|
|
95
96
|
onKeyDown?: React.KeyboardEventHandler;
|
|
96
97
|
onFocus?: React.FocusEventHandler;
|
|
97
98
|
onBlur?: React.FocusEventHandler;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { FieldSectionsValueBoundaries, SectionOrdering, FieldSectionValueBoundaries, FieldParsedSelectedSections } from "./useField.types.mjs";
|
|
2
|
-
import { FieldSectionType, FieldSection, MuiPickersAdapter, FieldSectionContentType, PickersTimezone, PickerValidDate, FieldSelectedSections, PickerValueType, InferFieldSection } from "../../../models/index.mjs";
|
|
3
|
-
import { PickerValidValue } from "../../models/index.mjs";
|
|
1
|
+
import type { FieldSectionsValueBoundaries, SectionOrdering, FieldSectionValueBoundaries, FieldParsedSelectedSections } from "./useField.types.mjs";
|
|
2
|
+
import type { FieldSectionType, FieldSection, MuiPickersAdapter, FieldSectionContentType, PickersTimezone, PickerValidDate, FieldSelectedSections, PickerValueType, InferFieldSection } from "../../../models/index.mjs";
|
|
3
|
+
import type { PickerValidValue } from "../../models/index.mjs";
|
|
4
4
|
export declare const getDateSectionConfigFromFormatToken: (adapter: MuiPickersAdapter, formatToken: string) => Pick<FieldSection, "type" | "contentType"> & {
|
|
5
5
|
maxLength: number | undefined;
|
|
6
6
|
};
|
|
@@ -30,6 +30,5 @@ export declare const createDateStrForHiddenInputFromSections: (sections: FieldSe
|
|
|
30
30
|
export declare const getSectionsBoundaries: (adapter: MuiPickersAdapter, localizedDigits: string[], timezone: PickersTimezone) => FieldSectionsValueBoundaries;
|
|
31
31
|
export declare const validateSections: <TValue extends PickerValidValue>(sections: InferFieldSection<TValue>[], valueType: PickerValueType) => void;
|
|
32
32
|
export declare const mergeDateIntoReferenceDate: (adapter: MuiPickersAdapter, dateToTransferFrom: PickerValidDate, sections: FieldSection[], referenceDate: PickerValidDate, shouldLimitToEditedSections: boolean) => PickerValidDate;
|
|
33
|
-
export declare const isAndroid: () => boolean;
|
|
34
33
|
export declare const getSectionOrder: (sections: FieldSection[]) => SectionOrdering;
|
|
35
34
|
export declare const parseSelectedSections: (selectedSections: FieldSelectedSections, sections: FieldSection[]) => FieldParsedSelectedSections;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { FieldSectionsValueBoundaries, SectionOrdering, FieldSectionValueBoundaries, FieldParsedSelectedSections } from "./useField.types.js";
|
|
2
|
-
import { FieldSectionType, FieldSection, MuiPickersAdapter, FieldSectionContentType, PickersTimezone, PickerValidDate, FieldSelectedSections, PickerValueType, InferFieldSection } from "../../../models/index.js";
|
|
3
|
-
import { PickerValidValue } from "../../models/index.js";
|
|
1
|
+
import type { FieldSectionsValueBoundaries, SectionOrdering, FieldSectionValueBoundaries, FieldParsedSelectedSections } from "./useField.types.js";
|
|
2
|
+
import type { FieldSectionType, FieldSection, MuiPickersAdapter, FieldSectionContentType, PickersTimezone, PickerValidDate, FieldSelectedSections, PickerValueType, InferFieldSection } from "../../../models/index.js";
|
|
3
|
+
import type { PickerValidValue } from "../../models/index.js";
|
|
4
4
|
export declare const getDateSectionConfigFromFormatToken: (adapter: MuiPickersAdapter, formatToken: string) => Pick<FieldSection, "type" | "contentType"> & {
|
|
5
5
|
maxLength: number | undefined;
|
|
6
6
|
};
|
|
@@ -30,6 +30,5 @@ export declare const createDateStrForHiddenInputFromSections: (sections: FieldSe
|
|
|
30
30
|
export declare const getSectionsBoundaries: (adapter: MuiPickersAdapter, localizedDigits: string[], timezone: PickersTimezone) => FieldSectionsValueBoundaries;
|
|
31
31
|
export declare const validateSections: <TValue extends PickerValidValue>(sections: InferFieldSection<TValue>[], valueType: PickerValueType) => void;
|
|
32
32
|
export declare const mergeDateIntoReferenceDate: (adapter: MuiPickersAdapter, dateToTransferFrom: PickerValidDate, sections: FieldSection[], referenceDate: PickerValidDate, shouldLimitToEditedSections: boolean) => PickerValidDate;
|
|
33
|
-
export declare const isAndroid: () => boolean;
|
|
34
33
|
export declare const getSectionOrder: (sections: FieldSection[]) => SectionOrdering;
|
|
35
34
|
export declare const parseSelectedSections: (selectedSections: FieldSelectedSections, sections: FieldSection[]) => FieldParsedSelectedSections;
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.validateSections = exports.removeLocalizedDigits = exports.parseSelectedSections = exports.mergeDateIntoReferenceDate = exports.isStringNumber = exports.
|
|
7
|
+
exports.validateSections = exports.removeLocalizedDigits = exports.parseSelectedSections = exports.mergeDateIntoReferenceDate = exports.isStringNumber = exports.getSectionsBoundaries = exports.getSectionVisibleValue = exports.getSectionOrder = exports.getLocalizedDigits = exports.getLetterEditingOptions = exports.getDaysInWeekStr = exports.getDateSectionConfigFromFormatToken = exports.getDateFromDateSections = exports.doesSectionFormatHaveLeadingZeros = exports.createDateStrForHiddenInputFromSections = exports.cleanLeadingZeros = exports.cleanDigitSectionValue = exports.changeSectionValueFormat = exports.applyLocalizedDigits = exports.FORMAT_SECONDS_NO_LEADING_ZEROS = void 0;
|
|
8
8
|
var _formatErrorMessage2 = _interopRequireDefault(require("@mui/x-internals/formatErrorMessage"));
|
|
9
9
|
var _dateUtils = require("../../utils/date-utils");
|
|
10
10
|
var _timeUtils = require("../../utils/time-utils");
|
|
@@ -452,8 +452,6 @@ const mergeDateIntoReferenceDate = (adapter, dateToTransferFrom, sections, refer
|
|
|
452
452
|
return mergedDate;
|
|
453
453
|
}, referenceDate);
|
|
454
454
|
exports.mergeDateIntoReferenceDate = mergeDateIntoReferenceDate;
|
|
455
|
-
const isAndroid = () => navigator.userAgent.toLowerCase().includes('android');
|
|
456
|
-
exports.isAndroid = isAndroid;
|
|
457
455
|
const getSectionOrder = sections => {
|
|
458
456
|
const neighbors = {};
|
|
459
457
|
sections.forEach((_, index) => {
|
|
@@ -428,7 +428,6 @@ export const mergeDateIntoReferenceDate = (adapter, dateToTransferFrom, sections
|
|
|
428
428
|
}
|
|
429
429
|
return mergedDate;
|
|
430
430
|
}, referenceDate);
|
|
431
|
-
export const isAndroid = () => navigator.userAgent.toLowerCase().includes('android');
|
|
432
431
|
export const getSectionOrder = sections => {
|
|
433
432
|
const neighbors = {};
|
|
434
433
|
sections.forEach((_, index) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { UseFieldStateReturnValue } from "./useFieldState.mjs";
|
|
2
|
-
import { PickerValidValue } from "../../models/index.mjs";
|
|
1
|
+
import type { UseFieldStateReturnValue } from "./useFieldState.mjs";
|
|
2
|
+
import type { PickerValidValue } from "../../models/index.mjs";
|
|
3
3
|
/**
|
|
4
4
|
* Update the active section value when the user pressed a key that is not a navigation key (arrow key for example).
|
|
5
5
|
* This hook has two main editing behaviors
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { UseFieldStateReturnValue } from "./useFieldState.js";
|
|
2
|
-
import { PickerValidValue } from "../../models/index.js";
|
|
1
|
+
import type { UseFieldStateReturnValue } from "./useFieldState.js";
|
|
2
|
+
import type { PickerValidValue } from "../../models/index.js";
|
|
3
3
|
/**
|
|
4
4
|
* Update the active section value when the user pressed a key that is not a navigation key (arrow key for example).
|
|
5
5
|
* This hook has two main editing behaviors
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { PickerAnyManager } from "../../models/manager.mjs";
|
|
3
|
-
import { UseFieldStateReturnValue } from "./useFieldState.mjs";
|
|
2
|
+
import type { PickerAnyManager } from "../../models/manager.mjs";
|
|
3
|
+
import type { UseFieldStateReturnValue } from "./useFieldState.mjs";
|
|
4
4
|
/**
|
|
5
5
|
* Generate the props to pass to the hidden input element of the field.
|
|
6
6
|
* @param {UseFieldHiddenInputPropsParameters} parameters The parameters of the hook.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { PickerAnyManager } from "../../models/manager.js";
|
|
3
|
-
import { UseFieldStateReturnValue } from "./useFieldState.js";
|
|
2
|
+
import type { PickerAnyManager } from "../../models/manager.js";
|
|
3
|
+
import type { UseFieldStateReturnValue } from "./useFieldState.js";
|
|
4
4
|
/**
|
|
5
5
|
* Generate the props to pass to the hidden input element of the field.
|
|
6
6
|
* @param {UseFieldHiddenInputPropsParameters} parameters The parameters of the hook.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PickerAnyManager, PickerManagerFieldInternalProps, PickerManagerFieldInternalPropsWithDefaults } from "../../models/index.mjs";
|
|
1
|
+
import type { PickerAnyManager, PickerManagerFieldInternalProps, PickerManagerFieldInternalPropsWithDefaults } from "../../models/index.mjs";
|
|
2
2
|
/**
|
|
3
3
|
* Applies the default values to the field internal props.
|
|
4
4
|
* This is a temporary hook that will be removed during a follow up when `useField` will receive the internal props without the defaults.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PickerAnyManager, PickerManagerFieldInternalProps, PickerManagerFieldInternalPropsWithDefaults } from "../../models/index.js";
|
|
1
|
+
import type { PickerAnyManager, PickerManagerFieldInternalProps, PickerManagerFieldInternalPropsWithDefaults } from "../../models/index.js";
|
|
2
2
|
/**
|
|
3
3
|
* Applies the default values to the field internal props.
|
|
4
4
|
* This is a temporary hook that will be removed during a follow up when `useField` will receive the internal props without the defaults.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { UseFieldDOMGetters, UseFieldInternalProps } from "./useField.types.mjs";
|
|
2
|
-
import { UseFieldStateReturnValue } from "./useFieldState.mjs";
|
|
3
|
-
import { UseFieldCharacterEditingReturnValue } from "./useFieldCharacterEditing.mjs";
|
|
4
|
-
import { PickerAnyManager } from "../../models/index.mjs";
|
|
1
|
+
import type { UseFieldDOMGetters, UseFieldInternalProps } from "./useField.types.mjs";
|
|
2
|
+
import type { UseFieldStateReturnValue } from "./useFieldState.mjs";
|
|
3
|
+
import type { UseFieldCharacterEditingReturnValue } from "./useFieldCharacterEditing.mjs";
|
|
4
|
+
import type { PickerAnyManager } from "../../models/index.mjs";
|
|
5
5
|
/**
|
|
6
6
|
* Generate the props to pass to the root element of the field.
|
|
7
7
|
* @param {UseFieldRootPropsParameters} parameters The parameters of the hook.
|
|
@@ -24,6 +24,7 @@ interface UseFieldRootPropsReturnValue {
|
|
|
24
24
|
onBlur: React.FocusEventHandler<HTMLDivElement>;
|
|
25
25
|
onFocus: React.FocusEventHandler<HTMLDivElement>;
|
|
26
26
|
onClick: React.MouseEventHandler<HTMLDivElement>;
|
|
27
|
+
onMouseDown: React.MouseEventHandler<HTMLDivElement>;
|
|
27
28
|
onPaste: React.ClipboardEventHandler<HTMLDivElement>;
|
|
28
29
|
onInput: React.FormEventHandler<HTMLDivElement>;
|
|
29
30
|
contentEditable: boolean;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { UseFieldDOMGetters, UseFieldInternalProps } from "./useField.types.js";
|
|
2
|
-
import { UseFieldStateReturnValue } from "./useFieldState.js";
|
|
3
|
-
import { UseFieldCharacterEditingReturnValue } from "./useFieldCharacterEditing.js";
|
|
4
|
-
import { PickerAnyManager } from "../../models/index.js";
|
|
1
|
+
import type { UseFieldDOMGetters, UseFieldInternalProps } from "./useField.types.js";
|
|
2
|
+
import type { UseFieldStateReturnValue } from "./useFieldState.js";
|
|
3
|
+
import type { UseFieldCharacterEditingReturnValue } from "./useFieldCharacterEditing.js";
|
|
4
|
+
import type { PickerAnyManager } from "../../models/index.js";
|
|
5
5
|
/**
|
|
6
6
|
* Generate the props to pass to the root element of the field.
|
|
7
7
|
* @param {UseFieldRootPropsParameters} parameters The parameters of the hook.
|
|
@@ -24,6 +24,7 @@ interface UseFieldRootPropsReturnValue {
|
|
|
24
24
|
onBlur: React.FocusEventHandler<HTMLDivElement>;
|
|
25
25
|
onFocus: React.FocusEventHandler<HTMLDivElement>;
|
|
26
26
|
onClick: React.MouseEventHandler<HTMLDivElement>;
|
|
27
|
+
onMouseDown: React.MouseEventHandler<HTMLDivElement>;
|
|
27
28
|
onPaste: React.ClipboardEventHandler<HTMLDivElement>;
|
|
28
29
|
onInput: React.FormEventHandler<HTMLDivElement>;
|
|
29
30
|
contentEditable: boolean;
|
|
@@ -144,14 +144,22 @@ function useFieldRootProps(parameters) {
|
|
|
144
144
|
}
|
|
145
145
|
});
|
|
146
146
|
const containerClickTimeout = (0, _useTimeout.default)();
|
|
147
|
-
const handleClick = (0, _useEventCallback.default)(
|
|
147
|
+
const handleClick = (0, _useEventCallback.default)(() => {
|
|
148
148
|
if (disabled || !domGetters.isReady()) {
|
|
149
149
|
return;
|
|
150
150
|
}
|
|
151
|
-
setFocused(true);
|
|
152
151
|
if (parsedSelectedSections === 'all') {
|
|
152
|
+
setFocused(true);
|
|
153
153
|
containerClickTimeout.start(0, () => {
|
|
154
|
-
|
|
154
|
+
// `getSelection`/`getRangeAt` can be unset transiently (e.g. focus
|
|
155
|
+
// moved before this 0-tick callback ran). Fall back to the first
|
|
156
|
+
// section in that case.
|
|
157
|
+
const selection = document.getSelection();
|
|
158
|
+
if (!selection || selection.rangeCount === 0) {
|
|
159
|
+
setSelectedSections(sectionOrder.startIndex);
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
const cursorPosition = selection.getRangeAt(0).startOffset;
|
|
155
163
|
if (cursorPosition === 0) {
|
|
156
164
|
setSelectedSections(sectionOrder.startIndex);
|
|
157
165
|
return;
|
|
@@ -165,16 +173,70 @@ function useFieldRootProps(parameters) {
|
|
|
165
173
|
}
|
|
166
174
|
setSelectedSections(sectionIndex - 1);
|
|
167
175
|
});
|
|
168
|
-
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// For trusted pointer input, `handleMouseDown` already ran and set the
|
|
180
|
+
// section. This branch only matters for `click` events that arrive
|
|
181
|
+
// without a preceding `mousedown` (programmatic `element.click()`, some
|
|
182
|
+
// assistive-technology activations, synthetic event sequences in tests).
|
|
183
|
+
// Fall back to the first section so the field doesn't enter a "focused
|
|
184
|
+
// but no active section" state.
|
|
185
|
+
if (!focused) {
|
|
169
186
|
setFocused(true);
|
|
170
|
-
|
|
171
|
-
} else {
|
|
172
|
-
const hasClickedOnASection = domGetters.getRoot().contains(event.target);
|
|
173
|
-
if (!hasClickedOnASection) {
|
|
187
|
+
if (parsedSelectedSections == null) {
|
|
174
188
|
setSelectedSections(sectionOrder.startIndex);
|
|
175
189
|
}
|
|
176
190
|
}
|
|
177
191
|
});
|
|
192
|
+
|
|
193
|
+
// Replaces Chromium's focus delegation with an explicit section focus on
|
|
194
|
+
// every primary mousedown inside the sections container. The CSS gate
|
|
195
|
+
// (`WebkitUserModify: read-only` while not `:focus-within`) can make the
|
|
196
|
+
// section's contenteditable span temporarily non-focusable, in which case
|
|
197
|
+
// Chromium falls back to the sections-container `tabindex=0` and our
|
|
198
|
+
// `handleFocus` then runs the "no active section" fallback, briefly
|
|
199
|
+
// selecting the first section before the click bubble corrects it.
|
|
200
|
+
// Setting the target section here (and letting `syncSelectionToDOM` move
|
|
201
|
+
// focus via `.focus()`, which works even with the user-modify rule
|
|
202
|
+
// active) skips that race entirely.
|
|
203
|
+
const handleMouseDown = (0, _useEventCallback.default)(event => {
|
|
204
|
+
if (disabled || !domGetters.isReady() || parsedSelectedSections === 'all') {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
if (event.button !== 0) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
const target = event.target;
|
|
211
|
+
// `sectionListRoot` is the sections container (a descendant of the
|
|
212
|
+
// InputBase root that owns this handler). The guard rejects clicks on
|
|
213
|
+
// sibling adornments (open / clear buttons, etc.) which have their own
|
|
214
|
+
// behavior and must not get intercepted here.
|
|
215
|
+
const sectionListRoot = domGetters.getRoot();
|
|
216
|
+
if (!sectionListRoot.contains(target)) {
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
// Prefer the visually-containing section (matches Chromium's
|
|
220
|
+
// delegation + section container `onClick`), fall back to the
|
|
221
|
+
// closest-by-distance section for padding / past-last-section clicks.
|
|
222
|
+
const sectionElement = target.closest('[data-sectionindex]');
|
|
223
|
+
const parsedIndex = sectionElement ? Number(sectionElement.dataset.sectionindex) : findClosestSectionIndexToPoint(sectionListRoot, event.clientX);
|
|
224
|
+
// `Number(undefined) === NaN` and `NaN == null === false`, so guard
|
|
225
|
+
// explicitly here even though `data-sectionindex` is set by
|
|
226
|
+
// `useFieldSectionContainerProps` for every section in practice.
|
|
227
|
+
if (parsedIndex == null || !Number.isInteger(parsedIndex)) {
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
event.preventDefault();
|
|
231
|
+
setFocused(true);
|
|
232
|
+
// `mousedown` is now authoritative for pointer section selection. The
|
|
233
|
+
// section container's own `onClick` deduplicates against the resulting
|
|
234
|
+
// `parsedSelectedSections` on the click bubble (see
|
|
235
|
+
// `useFieldSectionContainerProps`), so we always select here and let that
|
|
236
|
+
// guard absorb the redundant call -- matching the pre-PR
|
|
237
|
+
// `onSelectedSectionsChange` invocation count.
|
|
238
|
+
setSelectedSections(parsedIndex);
|
|
239
|
+
});
|
|
178
240
|
const handleInput = (0, _useEventCallback.default)(event => {
|
|
179
241
|
if (!domGetters.isReady() || parsedSelectedSections !== 'all') {
|
|
180
242
|
return;
|
|
@@ -242,6 +304,7 @@ function useFieldRootProps(parameters) {
|
|
|
242
304
|
onBlur: handleBlur,
|
|
243
305
|
onFocus: handleFocus,
|
|
244
306
|
onClick: handleClick,
|
|
307
|
+
onMouseDown: handleMouseDown,
|
|
245
308
|
onPaste: handlePaste,
|
|
246
309
|
onInput: handleInput,
|
|
247
310
|
// Other
|
|
@@ -249,6 +312,30 @@ function useFieldRootProps(parameters) {
|
|
|
249
312
|
tabIndex: internalPropsWithDefaults.disabled || parsedSelectedSections === 0 ? -1 : 0 // TODO: Try to set to undefined when there is a section selected.
|
|
250
313
|
};
|
|
251
314
|
}
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* Returns the index of the section whose horizontal center is closest to `clientX`.
|
|
318
|
+
* Returns `null` if the field renders no `[role="spinbutton"]` descendants
|
|
319
|
+
* (defensive — every section content span sets `role="spinbutton"` in practice).
|
|
320
|
+
*/
|
|
321
|
+
function findClosestSectionIndexToPoint(root, clientX) {
|
|
322
|
+
const sections = root.querySelectorAll('[role="spinbutton"]');
|
|
323
|
+
if (sections.length === 0) {
|
|
324
|
+
return null;
|
|
325
|
+
}
|
|
326
|
+
let closestIndex = 0;
|
|
327
|
+
let closestDistance = Infinity;
|
|
328
|
+
for (let i = 0; i < sections.length; i += 1) {
|
|
329
|
+
const rect = sections[i].getBoundingClientRect();
|
|
330
|
+
const center = (rect.left + rect.right) / 2;
|
|
331
|
+
const distance = Math.abs(clientX - center);
|
|
332
|
+
if (distance < closestDistance) {
|
|
333
|
+
closestDistance = distance;
|
|
334
|
+
closestIndex = i;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
return closestIndex;
|
|
338
|
+
}
|
|
252
339
|
function getDeltaFromKeyCode(keyCode) {
|
|
253
340
|
switch (keyCode) {
|
|
254
341
|
case 'ArrowUp':
|