@mui/x-date-pickers 8.3.0 → 8.4.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.
Files changed (160) hide show
  1. package/AdapterDateFns/AdapterDateFns.js +2 -1
  2. package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +2 -1
  3. package/AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js +5 -1
  4. package/AdapterDateFnsV2/AdapterDateFnsV2.js +5 -1
  5. package/AdapterDayjs/AdapterDayjs.js +12 -9
  6. package/AdapterLuxon/AdapterLuxon.js +3 -2
  7. package/AdapterMoment/AdapterMoment.js +2 -2
  8. package/AdapterMomentHijri/AdapterMomentHijri.js +3 -0
  9. package/AdapterMomentJalaali/AdapterMomentJalaali.js +1 -0
  10. package/CHANGELOG.md +206 -10
  11. package/DateCalendar/DateCalendar.js +1 -0
  12. package/DateField/DateField.js +1 -0
  13. package/DatePicker/DatePicker.js +1 -0
  14. package/DatePicker/DatePickerToolbar.js +1 -0
  15. package/DateTimeField/DateTimeField.js +1 -0
  16. package/DateTimePicker/DateTimePicker.js +1 -0
  17. package/DateTimePicker/DateTimePickerTabs.js +1 -0
  18. package/DateTimePicker/DateTimePickerToolbar.js +1 -0
  19. package/DesktopDatePicker/DesktopDatePicker.js +1 -0
  20. package/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -0
  21. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -0
  22. package/DesktopTimePicker/DesktopTimePicker.js +1 -0
  23. package/DigitalClock/DigitalClock.d.ts +1 -1
  24. package/DigitalClock/DigitalClock.js +1 -0
  25. package/LocalizationProvider/LocalizationProvider.js +2 -3
  26. package/MobileDatePicker/MobileDatePicker.js +1 -0
  27. package/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
  28. package/MobileTimePicker/MobileTimePicker.js +1 -0
  29. package/MonthCalendar/MonthCalendar.js +1 -0
  30. package/MonthCalendar/MonthCalendarButton.js +2 -1
  31. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +5 -4
  32. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +2 -1
  33. package/PickersActionBar/PickersActionBar.js +2 -1
  34. package/PickersCalendarHeader/PickersCalendarHeader.js +1 -0
  35. package/PickersDay/PickersDay.js +3 -1
  36. package/PickersLayout/PickersLayout.d.ts +2 -2
  37. package/PickersLayout/PickersLayout.js +1 -0
  38. package/PickersSectionList/PickersSectionList.d.ts +1 -1
  39. package/PickersSectionList/PickersSectionList.js +1 -0
  40. package/PickersTextField/PickersFilledInput/PickersFilledInput.js +1 -0
  41. package/PickersTextField/PickersFilledInput/pickersFilledInputClasses.d.ts +6 -6
  42. package/PickersTextField/PickersInput/PickersInput.js +1 -0
  43. package/PickersTextField/PickersInput/pickersInputClasses.d.ts +6 -6
  44. package/PickersTextField/PickersInputBase/PickersInputBase.d.ts +2 -2
  45. package/PickersTextField/PickersInputBase/PickersInputBase.js +1 -0
  46. package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +1 -0
  47. package/PickersTextField/PickersOutlinedInput/pickersOutlinedInputClasses.d.ts +5 -5
  48. package/PickersTextField/PickersTextField.js +12 -2
  49. package/PickersTextField/usePickerTextFieldOwnerState.js +1 -0
  50. package/StaticDatePicker/StaticDatePicker.js +1 -0
  51. package/StaticDateTimePicker/StaticDateTimePicker.js +1 -0
  52. package/StaticTimePicker/StaticTimePicker.js +1 -0
  53. package/TimeClock/TimeClock.js +1 -0
  54. package/TimeField/TimeField.js +1 -0
  55. package/TimePicker/TimePicker.js +1 -0
  56. package/YearCalendar/YearCalendar.js +1 -0
  57. package/YearCalendar/YearCalendarButton.js +2 -1
  58. package/YearCalendar/yearCalendarClasses.d.ts +1 -1
  59. package/dateViewRenderers/dateViewRenderers.js +2 -1
  60. package/esm/AdapterDateFns/AdapterDateFns.js +2 -1
  61. package/esm/AdapterDateFnsJalali/AdapterDateFnsJalali.js +2 -1
  62. package/esm/AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js +5 -1
  63. package/esm/AdapterDateFnsV2/AdapterDateFnsV2.js +5 -1
  64. package/esm/AdapterDayjs/AdapterDayjs.js +12 -9
  65. package/esm/AdapterLuxon/AdapterLuxon.js +3 -2
  66. package/esm/AdapterMoment/AdapterMoment.js +2 -2
  67. package/esm/AdapterMomentHijri/AdapterMomentHijri.js +3 -0
  68. package/esm/AdapterMomentJalaali/AdapterMomentJalaali.js +1 -0
  69. package/esm/DateCalendar/DateCalendar.js +1 -0
  70. package/esm/DateField/DateField.js +1 -0
  71. package/esm/DatePicker/DatePicker.js +1 -0
  72. package/esm/DatePicker/DatePickerToolbar.js +1 -0
  73. package/esm/DateTimeField/DateTimeField.js +1 -0
  74. package/esm/DateTimePicker/DateTimePicker.js +1 -0
  75. package/esm/DateTimePicker/DateTimePickerTabs.js +1 -0
  76. package/esm/DateTimePicker/DateTimePickerToolbar.js +1 -0
  77. package/esm/DesktopDatePicker/DesktopDatePicker.js +1 -0
  78. package/esm/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -0
  79. package/esm/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -0
  80. package/esm/DesktopTimePicker/DesktopTimePicker.js +1 -0
  81. package/esm/DigitalClock/DigitalClock.d.ts +1 -1
  82. package/esm/DigitalClock/DigitalClock.js +1 -0
  83. package/esm/LocalizationProvider/LocalizationProvider.js +2 -3
  84. package/esm/MobileDatePicker/MobileDatePicker.js +1 -0
  85. package/esm/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
  86. package/esm/MobileTimePicker/MobileTimePicker.js +1 -0
  87. package/esm/MonthCalendar/MonthCalendar.js +1 -0
  88. package/esm/MonthCalendar/MonthCalendarButton.js +2 -1
  89. package/esm/MultiSectionDigitalClock/MultiSectionDigitalClock.js +1 -0
  90. package/esm/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +2 -1
  91. package/esm/PickersActionBar/PickersActionBar.js +1 -0
  92. package/esm/PickersCalendarHeader/PickersCalendarHeader.js +1 -0
  93. package/esm/PickersDay/PickersDay.js +3 -1
  94. package/esm/PickersLayout/PickersLayout.d.ts +2 -2
  95. package/esm/PickersLayout/PickersLayout.js +1 -0
  96. package/esm/PickersSectionList/PickersSectionList.d.ts +1 -1
  97. package/esm/PickersSectionList/PickersSectionList.js +1 -0
  98. package/esm/PickersTextField/PickersFilledInput/PickersFilledInput.js +1 -0
  99. package/esm/PickersTextField/PickersFilledInput/pickersFilledInputClasses.d.ts +6 -6
  100. package/esm/PickersTextField/PickersInput/PickersInput.js +1 -0
  101. package/esm/PickersTextField/PickersInput/pickersInputClasses.d.ts +6 -6
  102. package/esm/PickersTextField/PickersInputBase/PickersInputBase.d.ts +2 -2
  103. package/esm/PickersTextField/PickersInputBase/PickersInputBase.js +1 -0
  104. package/esm/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +1 -0
  105. package/esm/PickersTextField/PickersOutlinedInput/pickersOutlinedInputClasses.d.ts +5 -5
  106. package/esm/PickersTextField/PickersTextField.js +12 -2
  107. package/esm/PickersTextField/usePickerTextFieldOwnerState.js +1 -0
  108. package/esm/StaticDatePicker/StaticDatePicker.js +1 -0
  109. package/esm/StaticDateTimePicker/StaticDateTimePicker.js +1 -0
  110. package/esm/StaticTimePicker/StaticTimePicker.js +1 -0
  111. package/esm/TimeClock/TimeClock.js +1 -0
  112. package/esm/TimeField/TimeField.js +1 -0
  113. package/esm/TimePicker/TimePicker.js +1 -0
  114. package/esm/YearCalendar/YearCalendar.js +1 -0
  115. package/esm/YearCalendar/YearCalendarButton.js +2 -1
  116. package/esm/YearCalendar/yearCalendarClasses.d.ts +1 -1
  117. package/esm/dateViewRenderers/dateViewRenderers.js +2 -1
  118. package/esm/hooks/useIsValidValue.js +1 -0
  119. package/esm/hooks/usePickerContext.js +1 -0
  120. package/esm/index.js +1 -1
  121. package/esm/internals/components/PickerFieldUI.js +1 -0
  122. package/esm/internals/components/PickerPopper/PickerPopper.js +1 -0
  123. package/esm/internals/components/PickerProvider.js +2 -0
  124. package/esm/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +2 -1
  125. package/esm/internals/components/PickersArrowSwitcher/pickersArrowSwitcherClasses.d.ts +1 -1
  126. package/esm/internals/components/PickersToolbar.js +2 -1
  127. package/esm/internals/components/PickersToolbarButton.js +2 -1
  128. package/esm/internals/components/PickersToolbarText.js +2 -1
  129. package/esm/internals/components/pickersToolbarClasses.d.ts +1 -1
  130. package/esm/internals/hooks/useDesktopPicker/useDesktopPicker.js +1 -0
  131. package/esm/internals/hooks/useField/useFieldCharacterEditing.js +27 -11
  132. package/esm/internals/hooks/useField/useFieldSectionContainerProps.js +2 -3
  133. package/esm/internals/hooks/useField/useFieldSectionContentProps.js +2 -2
  134. package/esm/internals/hooks/useField/useFieldState.js +2 -2
  135. package/esm/internals/hooks/useMobilePicker/useMobilePicker.js +1 -0
  136. package/esm/internals/hooks/useNullableFieldPrivateContext.js +1 -0
  137. package/esm/internals/hooks/useStaticPicker/useStaticPicker.js +1 -0
  138. package/esm/timeViewRenderers/timeViewRenderers.js +4 -1
  139. package/hooks/useIsValidValue.js +1 -0
  140. package/hooks/usePickerContext.js +1 -0
  141. package/index.js +1 -1
  142. package/internals/components/PickerFieldUI.js +1 -0
  143. package/internals/components/PickerPopper/PickerPopper.js +1 -0
  144. package/internals/components/PickerProvider.js +2 -0
  145. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +2 -1
  146. package/internals/components/PickersArrowSwitcher/pickersArrowSwitcherClasses.d.ts +1 -1
  147. package/internals/components/PickersToolbar.js +2 -1
  148. package/internals/components/PickersToolbarButton.js +2 -1
  149. package/internals/components/PickersToolbarText.js +2 -1
  150. package/internals/components/pickersToolbarClasses.d.ts +1 -1
  151. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +1 -0
  152. package/internals/hooks/useField/useFieldCharacterEditing.js +27 -11
  153. package/internals/hooks/useField/useFieldSectionContainerProps.js +2 -4
  154. package/internals/hooks/useField/useFieldSectionContentProps.js +2 -2
  155. package/internals/hooks/useField/useFieldState.js +2 -2
  156. package/internals/hooks/useMobilePicker/useMobilePicker.js +1 -0
  157. package/internals/hooks/useNullableFieldPrivateContext.js +1 -0
  158. package/internals/hooks/useStaticPicker/useStaticPicker.js +1 -0
  159. package/package.json +2 -2
  160. package/timeViewRenderers/timeViewRenderers.js +4 -1
@@ -1,13 +1,11 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.useFieldSectionContainerProps = useFieldSectionContainerProps;
9
8
  var React = _interopRequireWildcard(require("react"));
10
- var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
11
9
  /**
12
10
  * Generate the props to pass to the container element of each section of the field.
13
11
  * It is not used by the non-accessible DOM structure (with an <input /> element for editing).
@@ -25,14 +23,14 @@ function useFieldSectionContainerProps(parameters) {
25
23
  disabled = false
26
24
  }
27
25
  } = parameters;
28
- const createHandleClick = (0, _useEventCallback.default)(sectionIndex => event => {
26
+ const createHandleClick = React.useCallback(sectionIndex => event => {
29
27
  // The click event on the clear button would propagate to the input, trigger this handler and result in a wrong section selection.
30
28
  // We avoid this by checking if the call to this function is actually intended, or a side effect.
31
29
  if (disabled || event.isDefaultPrevented()) {
32
30
  return;
33
31
  }
34
32
  setSelectedSections(sectionIndex);
35
- });
33
+ }, [disabled, setSelectedSections]);
36
34
  return React.useCallback(sectionIndex => ({
37
35
  'data-sectionindex': sectionIndex,
38
36
  onClick: createHandleClick(sectionIndex)
@@ -136,12 +136,12 @@ function useFieldSectionContentProps(parameters) {
136
136
  event.preventDefault();
137
137
  event.dataTransfer.dropEffect = 'none';
138
138
  });
139
- const createFocusHandler = (0, _useEventCallback.default)(sectionIndex => () => {
139
+ const createFocusHandler = React.useCallback(sectionIndex => () => {
140
140
  if (disabled) {
141
141
  return;
142
142
  }
143
143
  setSelectedSections(sectionIndex);
144
- });
144
+ }, [disabled, setSelectedSections]);
145
145
  return React.useCallback((section, sectionIndex) => {
146
146
  const sectionBoundaries = sectionsValueBoundaries[section.type]({
147
147
  currentDate: fieldValueManager.getDateFromSection(value, section),
@@ -276,10 +276,10 @@ const useFieldState = parameters => {
276
276
  }
277
277
 
278
278
  /**
279
- * If all the sections are filled but the date is invalid,
279
+ * If all the sections are filled but the date is invalid and the previous date is valid or null,
280
280
  * Then we publish an invalid date.
281
281
  */
282
- if (newActiveDateSections.every(sectionBis => sectionBis.value !== '')) {
282
+ if (newActiveDateSections.every(sectionBis => sectionBis.value !== '') && (activeDate == null || utils.isValid(activeDate))) {
283
283
  setSectionUpdateToApplyOnNextInvalidDate(newSectionValue);
284
284
  return publishValue(fieldValueManager.updateDateInValue(value, section, newActiveDate));
285
285
  }
@@ -98,6 +98,7 @@ const useMobilePicker = _ref => {
98
98
  })]
99
99
  })
100
100
  }));
101
+ if (process.env.NODE_ENV !== "production") renderPicker.displayName = "renderPicker";
101
102
  return {
102
103
  renderPicker
103
104
  };
@@ -8,6 +8,7 @@ exports.PickerFieldPrivateContext = void 0;
8
8
  exports.useNullableFieldPrivateContext = useNullableFieldPrivateContext;
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
  const PickerFieldPrivateContext = exports.PickerFieldPrivateContext = /*#__PURE__*/React.createContext(null);
11
+ if (process.env.NODE_ENV !== "production") PickerFieldPrivateContext.displayName = "PickerFieldPrivateContext";
11
12
  function useNullableFieldPrivateContext() {
12
13
  return React.useContext(PickerFieldPrivateContext);
13
14
  }
@@ -71,6 +71,7 @@ const useStaticPicker = _ref => {
71
71
  children: renderCurrentView()
72
72
  }))
73
73
  }));
74
+ if (process.env.NODE_ENV !== "production") renderPicker.displayName = "renderPicker";
74
75
  return {
75
76
  renderPicker
76
77
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-date-pickers",
3
- "version": "8.3.0",
3
+ "version": "8.4.0",
4
4
  "author": "MUI Team",
5
5
  "description": "The community edition of the MUI X Date and Time Picker components.",
6
6
  "main": "./index.js",
@@ -41,7 +41,7 @@
41
41
  "clsx": "^2.1.1",
42
42
  "prop-types": "^15.8.1",
43
43
  "react-transition-group": "^4.4.5",
44
- "@mui/x-internals": "8.3.0"
44
+ "@mui/x-internals": "8.4.0"
45
45
  },
46
46
  "peerDependencies": {
47
47
  "@emotion/react": "^11.9.0",
@@ -71,6 +71,7 @@ const renderTimeViewClock = ({
71
71
  timezone: timezone
72
72
  });
73
73
  exports.renderTimeViewClock = renderTimeViewClock;
74
+ if (process.env.NODE_ENV !== "production") renderTimeViewClock.displayName = "renderTimeViewClock";
74
75
  const renderDigitalClockTimeView = ({
75
76
  view,
76
77
  onViewChange,
@@ -131,6 +132,7 @@ const renderDigitalClockTimeView = ({
131
132
  timezone: timezone
132
133
  });
133
134
  exports.renderDigitalClockTimeView = renderDigitalClockTimeView;
135
+ if (process.env.NODE_ENV !== "production") renderDigitalClockTimeView.displayName = "renderDigitalClockTimeView";
134
136
  const renderMultiSectionDigitalClockTimeView = ({
135
137
  view,
136
138
  onViewChange,
@@ -190,4 +192,5 @@ const renderMultiSectionDigitalClockTimeView = ({
190
192
  skipDisabled: skipDisabled,
191
193
  timezone: timezone
192
194
  });
193
- exports.renderMultiSectionDigitalClockTimeView = renderMultiSectionDigitalClockTimeView;
195
+ exports.renderMultiSectionDigitalClockTimeView = renderMultiSectionDigitalClockTimeView;
196
+ if (process.env.NODE_ENV !== "production") renderMultiSectionDigitalClockTimeView.displayName = "renderMultiSectionDigitalClockTimeView";