@mui/x-date-pickers 7.0.0-beta.7 → 7.1.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 (209) hide show
  1. package/AdapterDateFns/AdapterDateFns.js +1 -1
  2. package/AdapterDateFnsBase/AdapterDateFnsBase.js +1 -2
  3. package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +2 -4
  4. package/AdapterDateFnsV3/AdapterDateFnsV3.js +1 -1
  5. package/AdapterDayjs/AdapterDayjs.js +2 -4
  6. package/AdapterLuxon/AdapterLuxon.js +12 -9
  7. package/AdapterMoment/AdapterMoment.js +5 -6
  8. package/CHANGELOG.md +266 -12
  9. package/DateCalendar/DateCalendar.js +14 -16
  10. package/DateCalendar/DayCalendar.js +5 -6
  11. package/DateField/DateField.js +3 -4
  12. package/DatePicker/DatePicker.js +1 -1
  13. package/DatePicker/DatePickerToolbar.js +11 -6
  14. package/DatePicker/shared.d.ts +2 -1
  15. package/DatePicker/shared.js +3 -5
  16. package/DateTimeField/DateTimeField.js +3 -4
  17. package/DateTimePicker/DateTimePicker.js +1 -1
  18. package/DateTimePicker/DateTimePickerToolbar.js +98 -46
  19. package/DateTimePicker/shared.d.ts +2 -1
  20. package/DateTimePicker/shared.js +11 -13
  21. package/DayCalendarSkeleton/DayCalendarSkeleton.js +12 -8
  22. package/DesktopDatePicker/DesktopDatePicker.js +7 -11
  23. package/DesktopDateTimePicker/DesktopDateTimePicker.js +72 -37
  24. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +12 -0
  25. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +101 -0
  26. package/DesktopDateTimePicker/index.d.ts +1 -0
  27. package/DesktopDateTimePicker/index.js +2 -1
  28. package/DesktopTimePicker/DesktopTimePicker.js +8 -12
  29. package/DigitalClock/DigitalClock.js +16 -9
  30. package/LocalizationProvider/LocalizationProvider.js +1 -2
  31. package/MobileDatePicker/MobileDatePicker.js +6 -10
  32. package/MobileDateTimePicker/MobileDateTimePicker.js +8 -12
  33. package/MobileTimePicker/MobileTimePicker.js +6 -10
  34. package/MonthCalendar/MonthCalendar.js +4 -4
  35. package/MonthCalendar/PickersMonth.js +13 -8
  36. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +1 -1
  37. package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +1 -1
  38. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +16 -9
  39. package/PickersActionBar/PickersActionBar.js +1 -1
  40. package/PickersCalendarHeader/PickersCalendarHeader.js +17 -14
  41. package/PickersDay/PickersDay.js +30 -15
  42. package/PickersLayout/PickersLayout.js +31 -17
  43. package/PickersLayout/usePickerLayout.js +8 -9
  44. package/PickersSectionList/PickersSectionList.js +9 -11
  45. package/PickersTextField/PickersFilledInput/PickersFilledInput.js +138 -74
  46. package/PickersTextField/PickersInput/PickersInput.js +77 -55
  47. package/PickersTextField/PickersInputBase/PickersInputBase.js +67 -28
  48. package/PickersTextField/PickersInputBase/PickersInputBase.types.d.ts +7 -0
  49. package/PickersTextField/PickersOutlinedInput/Outline.js +58 -41
  50. package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +33 -14
  51. package/README.md +1 -1
  52. package/StaticDatePicker/StaticDatePicker.js +4 -5
  53. package/StaticDateTimePicker/StaticDateTimePicker.js +6 -7
  54. package/StaticTimePicker/StaticTimePicker.js +3 -4
  55. package/TimeClock/Clock.js +48 -35
  56. package/TimeClock/ClockNumber.js +12 -7
  57. package/TimeClock/ClockPointer.js +23 -13
  58. package/TimeClock/TimeClock.js +1 -1
  59. package/TimeField/TimeField.js +2 -3
  60. package/TimePicker/TimePickerToolbar.js +25 -16
  61. package/TimePicker/shared.d.ts +2 -1
  62. package/TimePicker/shared.js +5 -7
  63. package/YearCalendar/PickersYear.js +12 -6
  64. package/YearCalendar/YearCalendar.js +5 -6
  65. package/hooks/useClearableField.js +6 -7
  66. package/index.js +1 -1
  67. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +19 -15
  68. package/internals/components/PickersModalDialog.js +6 -7
  69. package/internals/components/PickersPopper.js +25 -24
  70. package/internals/components/PickersToolbar.js +42 -24
  71. package/internals/hooks/date-helpers-hooks.js +1 -1
  72. package/internals/hooks/defaultizedFieldProps.js +15 -18
  73. package/internals/hooks/useClockReferenceDate.js +1 -1
  74. package/internals/hooks/useDesktopPicker/index.d.ts +1 -1
  75. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +11 -12
  76. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +2 -2
  77. package/internals/hooks/useField/buildSectionsFromFormat.js +35 -31
  78. package/internals/hooks/useField/useField.js +6 -4
  79. package/internals/hooks/useField/useField.types.d.ts +1 -0
  80. package/internals/hooks/useField/useField.utils.js +4 -7
  81. package/internals/hooks/useField/useFieldCharacterEditing.js +1 -2
  82. package/internals/hooks/useField/useFieldState.js +1 -1
  83. package/internals/hooks/useField/useFieldV6TextField.js +17 -18
  84. package/internals/hooks/useField/useFieldV7TextField.js +9 -11
  85. package/internals/hooks/useMobilePicker/useMobilePicker.js +7 -8
  86. package/internals/hooks/useOpenState.js +1 -1
  87. package/internals/hooks/usePicker/index.d.ts +1 -0
  88. package/internals/hooks/usePicker/usePickerViews.d.ts +4 -2
  89. package/internals/hooks/usePicker/usePickerViews.js +1 -2
  90. package/internals/hooks/useStaticPicker/useStaticPicker.js +13 -17
  91. package/internals/hooks/useValueWithTimezone.js +5 -6
  92. package/internals/hooks/useViews.js +3 -4
  93. package/internals/index.d.ts +1 -1
  94. package/internals/models/validation.d.ts +1 -1
  95. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +3 -3
  96. package/internals/utils/date-time-utils.js +2 -5
  97. package/internals/utils/fields.js +1 -1
  98. package/internals/utils/getDefaultReferenceDate.js +2 -6
  99. package/internals/utils/views.js +1 -1
  100. package/locales/csCZ.js +1 -4
  101. package/locales/daDK.js +1 -4
  102. package/locales/deDE.js +1 -4
  103. package/locales/huHU.js +1 -4
  104. package/locales/itIT.js +16 -20
  105. package/locales/jaJP.js +1 -4
  106. package/locales/roRO.js +1 -4
  107. package/locales/skSK.js +1 -4
  108. package/locales/zhHK.js +14 -17
  109. package/modern/AdapterLuxon/AdapterLuxon.js +9 -4
  110. package/modern/DateCalendar/DateCalendar.js +1 -1
  111. package/modern/DateField/DateField.js +1 -1
  112. package/modern/DatePicker/DatePicker.js +1 -1
  113. package/modern/DatePicker/DatePickerToolbar.js +11 -6
  114. package/modern/DateTimeField/DateTimeField.js +1 -1
  115. package/modern/DateTimePicker/DateTimePicker.js +1 -1
  116. package/modern/DateTimePicker/DateTimePickerToolbar.js +97 -45
  117. package/modern/DayCalendarSkeleton/DayCalendarSkeleton.js +12 -8
  118. package/modern/DesktopDatePicker/DesktopDatePicker.js +1 -1
  119. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +64 -25
  120. package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +101 -0
  121. package/modern/DesktopDateTimePicker/index.js +2 -1
  122. package/modern/DigitalClock/DigitalClock.js +14 -6
  123. package/modern/MobileDatePicker/MobileDatePicker.js +1 -1
  124. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +1 -1
  125. package/modern/MonthCalendar/PickersMonth.js +12 -6
  126. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -4
  127. package/modern/PickersCalendarHeader/PickersCalendarHeader.js +13 -9
  128. package/modern/PickersDay/PickersDay.js +30 -15
  129. package/modern/PickersLayout/PickersLayout.js +31 -17
  130. package/modern/PickersTextField/PickersFilledInput/PickersFilledInput.js +137 -72
  131. package/modern/PickersTextField/PickersInput/PickersInput.js +76 -54
  132. package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +64 -24
  133. package/modern/PickersTextField/PickersOutlinedInput/Outline.js +58 -41
  134. package/modern/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +31 -12
  135. package/modern/StaticDatePicker/StaticDatePicker.js +1 -1
  136. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
  137. package/modern/TimeClock/Clock.js +48 -35
  138. package/modern/TimeClock/ClockNumber.js +12 -7
  139. package/modern/TimeClock/ClockPointer.js +23 -13
  140. package/modern/TimePicker/TimePickerToolbar.js +25 -16
  141. package/modern/YearCalendar/PickersYear.js +12 -6
  142. package/modern/index.js +1 -1
  143. package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -6
  144. package/modern/internals/components/PickersPopper.js +13 -9
  145. package/modern/internals/components/PickersToolbar.js +39 -18
  146. package/modern/internals/hooks/useField/buildSectionsFromFormat.js +34 -30
  147. package/modern/internals/hooks/useField/useField.js +4 -2
  148. package/modern/internals/hooks/useField/useFieldV6TextField.js +8 -3
  149. package/modern/internals/hooks/useField/useFieldV7TextField.js +1 -1
  150. package/modern/internals/hooks/useOpenState.js +1 -1
  151. package/modern/internals/utils/fields.js +1 -1
  152. package/modern/locales/itIT.js +16 -20
  153. package/modern/locales/zhHK.js +14 -17
  154. package/node/AdapterLuxon/AdapterLuxon.js +9 -4
  155. package/node/DateCalendar/DateCalendar.js +1 -1
  156. package/node/DateField/DateField.js +1 -1
  157. package/node/DatePicker/DatePicker.js +1 -1
  158. package/node/DatePicker/DatePickerToolbar.js +11 -6
  159. package/node/DateTimeField/DateTimeField.js +1 -1
  160. package/node/DateTimePicker/DateTimePicker.js +1 -1
  161. package/node/DateTimePicker/DateTimePickerToolbar.js +97 -45
  162. package/node/DayCalendarSkeleton/DayCalendarSkeleton.js +12 -8
  163. package/node/DesktopDatePicker/DesktopDatePicker.js +1 -1
  164. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +63 -25
  165. package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +108 -0
  166. package/node/DesktopDateTimePicker/index.js +8 -1
  167. package/node/DigitalClock/DigitalClock.js +14 -6
  168. package/node/MobileDatePicker/MobileDatePicker.js +1 -1
  169. package/node/MobileDateTimePicker/MobileDateTimePicker.js +1 -1
  170. package/node/MonthCalendar/PickersMonth.js +12 -6
  171. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -4
  172. package/node/PickersCalendarHeader/PickersCalendarHeader.js +13 -9
  173. package/node/PickersDay/PickersDay.js +30 -15
  174. package/node/PickersLayout/PickersLayout.js +31 -17
  175. package/node/PickersTextField/PickersFilledInput/PickersFilledInput.js +137 -72
  176. package/node/PickersTextField/PickersInput/PickersInput.js +76 -54
  177. package/node/PickersTextField/PickersInputBase/PickersInputBase.js +64 -24
  178. package/node/PickersTextField/PickersOutlinedInput/Outline.js +58 -41
  179. package/node/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +31 -12
  180. package/node/StaticDatePicker/StaticDatePicker.js +1 -1
  181. package/node/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
  182. package/node/TimeClock/Clock.js +48 -35
  183. package/node/TimeClock/ClockNumber.js +12 -7
  184. package/node/TimeClock/ClockPointer.js +23 -13
  185. package/node/TimePicker/TimePickerToolbar.js +25 -16
  186. package/node/YearCalendar/PickersYear.js +12 -6
  187. package/node/index.js +1 -1
  188. package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -6
  189. package/node/internals/components/PickersPopper.js +13 -9
  190. package/node/internals/components/PickersToolbar.js +39 -18
  191. package/node/internals/hooks/useField/buildSectionsFromFormat.js +34 -30
  192. package/node/internals/hooks/useField/useField.js +4 -2
  193. package/node/internals/hooks/useField/useFieldV6TextField.js +8 -3
  194. package/node/internals/hooks/useField/useFieldV7TextField.js +1 -1
  195. package/node/internals/hooks/useOpenState.js +1 -1
  196. package/node/internals/utils/fields.js +1 -1
  197. package/node/locales/itIT.js +16 -20
  198. package/node/locales/zhHK.js +14 -17
  199. package/package.json +5 -5
  200. package/timeViewRenderers/timeViewRenderers.js +1 -1
  201. package/dateTimeViewRenderers/dateTimeViewRenderers.d.ts +0 -15
  202. package/dateTimeViewRenderers/dateTimeViewRenderers.js +0 -163
  203. package/dateTimeViewRenderers/index.d.ts +0 -2
  204. package/dateTimeViewRenderers/index.js +0 -1
  205. package/dateTimeViewRenderers/package.json +0 -6
  206. package/modern/dateTimeViewRenderers/dateTimeViewRenderers.js +0 -162
  207. package/modern/dateTimeViewRenderers/index.js +0 -1
  208. package/node/dateTimeViewRenderers/dateTimeViewRenderers.js +0 -171
  209. package/node/dateTimeViewRenderers/index.js +0 -12
@@ -5,16 +5,14 @@ import { useUtils } from '../internals/hooks/useUtils';
5
5
  import { TimePickerToolbar } from './TimePickerToolbar';
6
6
  import { applyDefaultViewProps } from '../internals/utils/views';
7
7
  export function useTimePickerDefaultizedProps(props, name) {
8
- var _themeProps$ampm, _themeProps$disableFu, _themeProps$disablePa, _themeProps$slotProps;
9
8
  const utils = useUtils();
10
9
  const themeProps = useThemeProps({
11
10
  props,
12
11
  name
13
12
  });
14
- const ampm = (_themeProps$ampm = themeProps.ampm) != null ? _themeProps$ampm : utils.is12HourCycleInCurrentLocale();
13
+ const ampm = themeProps.ampm ?? utils.is12HourCycleInCurrentLocale();
15
14
  const localeText = React.useMemo(() => {
16
- var _themeProps$localeTex;
17
- if (((_themeProps$localeTex = themeProps.localeText) == null ? void 0 : _themeProps$localeTex.toolbarTitle) == null) {
15
+ if (themeProps.localeText?.toolbarTitle == null) {
18
16
  return themeProps.localeText;
19
17
  }
20
18
  return _extends({}, themeProps.localeText, {
@@ -30,8 +28,8 @@ export function useTimePickerDefaultizedProps(props, name) {
30
28
  defaultViews: ['hours', 'minutes'],
31
29
  defaultOpenTo: 'hours'
32
30
  }), {
33
- disableFuture: (_themeProps$disableFu = themeProps.disableFuture) != null ? _themeProps$disableFu : false,
34
- disablePast: (_themeProps$disablePa = themeProps.disablePast) != null ? _themeProps$disablePa : false,
31
+ disableFuture: themeProps.disableFuture ?? false,
32
+ disablePast: themeProps.disablePast ?? false,
35
33
  slots: _extends({
36
34
  toolbar: TimePickerToolbar
37
35
  }, themeProps.slots),
@@ -39,7 +37,7 @@ export function useTimePickerDefaultizedProps(props, name) {
39
37
  toolbar: _extends({
40
38
  ampm,
41
39
  ampmInClock: themeProps.ampmInClock
42
- }, (_themeProps$slotProps = themeProps.slotProps) == null ? void 0 : _themeProps$slotProps.toolbar)
40
+ }, themeProps.slotProps?.toolbar)
43
41
  })
44
42
  });
45
43
  }
@@ -23,14 +23,20 @@ const PickersYearRoot = styled('div', {
23
23
  name: 'MuiPickersYear',
24
24
  slot: 'Root',
25
25
  overridesResolver: (_, styles) => [styles.root]
26
- })(({
27
- ownerState
28
- }) => ({
29
- flexBasis: ownerState.yearsPerRow === 3 ? '33.3%' : '25%',
26
+ })({
30
27
  display: 'flex',
31
28
  alignItems: 'center',
32
- justifyContent: 'center'
33
- }));
29
+ justifyContent: 'center',
30
+ flexBasis: '33.3%',
31
+ variants: [{
32
+ props: {
33
+ yearsPerRow: 4
34
+ },
35
+ style: {
36
+ flexBasis: '25%'
37
+ }
38
+ }]
39
+ });
34
40
  const PickersYearButton = styled('button', {
35
41
  name: 'MuiPickersYear',
36
42
  slot: 'YearButton',
@@ -26,7 +26,6 @@ const useUtilityClasses = ownerState => {
26
26
  return composeClasses(slots, getYearCalendarUtilityClass, classes);
27
27
  };
28
28
  function useYearCalendarDefaultizedProps(props, name) {
29
- var _themeProps$yearsPerR;
30
29
  const utils = useUtils();
31
30
  const defaultDates = useDefaultDates();
32
31
  const themeProps = useThemeProps({
@@ -37,7 +36,7 @@ function useYearCalendarDefaultizedProps(props, name) {
37
36
  disablePast: false,
38
37
  disableFuture: false
39
38
  }, themeProps, {
40
- yearsPerRow: (_themeProps$yearsPerR = themeProps.yearsPerRow) != null ? _themeProps$yearsPerR : 3,
39
+ yearsPerRow: themeProps.yearsPerRow ?? 3,
41
40
  minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),
42
41
  maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)
43
42
  });
@@ -130,7 +129,7 @@ export const YearCalendar = /*#__PURE__*/React.forwardRef(function YearCalendar(
130
129
  name: 'YearCalendar',
131
130
  state: 'hasFocus',
132
131
  controlled: hasFocus,
133
- default: autoFocus != null ? autoFocus : false
132
+ default: autoFocus ?? false
134
133
  });
135
134
  const changeHasFocus = useEventCallback(newHasFocus => {
136
135
  setInternalHasFocus(newHasFocus);
@@ -161,14 +160,14 @@ export const YearCalendar = /*#__PURE__*/React.forwardRef(function YearCalendar(
161
160
  if (readOnly) {
162
161
  return;
163
162
  }
164
- const newDate = utils.setYear(value != null ? value : referenceDate, year);
163
+ const newDate = utils.setYear(value ?? referenceDate, year);
165
164
  handleValueChange(newDate);
166
165
  });
167
166
  const focusYear = useEventCallback(year => {
168
- if (!isYearDisabled(utils.setYear(value != null ? value : referenceDate, year))) {
167
+ if (!isYearDisabled(utils.setYear(value ?? referenceDate, year))) {
169
168
  setFocusedYear(year);
170
169
  changeHasFocus(true);
171
- onYearFocus == null || onYearFocus(year);
170
+ onYearFocus?.(year);
172
171
  }
173
172
  });
174
173
  React.useEffect(() => {
@@ -11,7 +11,6 @@ import { useLocaleText } from '../internals/hooks/useUtils';
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
12
12
  import { jsxs as _jsxs } from "react/jsx-runtime";
13
13
  export const useClearableField = props => {
14
- var _slots$clearButton, _slots$clearIcon;
15
14
  const localeText = useLocaleText();
16
15
  const {
17
16
  clearable,
@@ -22,11 +21,11 @@ export const useClearableField = props => {
22
21
  slotProps
23
22
  } = props,
24
23
  other = _objectWithoutPropertiesLoose(props, _excluded);
25
- const IconButton = (_slots$clearButton = slots == null ? void 0 : slots.clearButton) != null ? _slots$clearButton : MuiIconButton;
24
+ const IconButton = slots?.clearButton ?? MuiIconButton;
26
25
  // The spread is here to avoid this bug mui/material-ui#34056
27
26
  const _useSlotProps = useSlotProps({
28
27
  elementType: IconButton,
29
- externalSlotProps: slotProps == null ? void 0 : slotProps.clearButton,
28
+ externalSlotProps: slotProps?.clearButton,
30
29
  ownerState: {},
31
30
  className: 'clearButton',
32
31
  additionalProps: {
@@ -34,10 +33,10 @@ export const useClearableField = props => {
34
33
  }
35
34
  }),
36
35
  iconButtonProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
37
- const EndClearIcon = (_slots$clearIcon = slots == null ? void 0 : slots.clearIcon) != null ? _slots$clearIcon : ClearIcon;
36
+ const EndClearIcon = slots?.clearIcon ?? ClearIcon;
38
37
  const endClearIconProps = useSlotProps({
39
38
  elementType: EndClearIcon,
40
- externalSlotProps: slotProps == null ? void 0 : slotProps.clearIcon,
39
+ externalSlotProps: slotProps?.clearIcon,
41
40
  ownerState: {}
42
41
  });
43
42
  return _extends({}, other, {
@@ -46,7 +45,7 @@ export const useClearableField = props => {
46
45
  children: [clearable && /*#__PURE__*/_jsx(InputAdornment, {
47
46
  position: "end",
48
47
  sx: {
49
- marginRight: InputProps != null && InputProps.endAdornment ? -1 : -1.5
48
+ marginRight: InputProps?.endAdornment ? -1 : -1.5
50
49
  },
51
50
  children: /*#__PURE__*/_jsx(IconButton, _extends({}, iconButtonProps, {
52
51
  onClick: onClear,
@@ -54,7 +53,7 @@ export const useClearableField = props => {
54
53
  fontSize: "small"
55
54
  }, endClearIconProps))
56
55
  }))
57
- }), InputProps == null ? void 0 : InputProps.endAdornment]
56
+ }), InputProps?.endAdornment]
58
57
  })
59
58
  }),
60
59
  sx: [{
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers v7.0.0-beta.7
2
+ * @mui/x-date-pickers v7.1.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -1,5 +1,5 @@
1
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  const _excluded = ["children", "className", "slots", "slotProps", "isNextDisabled", "isNextHidden", "onGoToNext", "nextLabel", "isPreviousDisabled", "isPreviousHidden", "onGoToPrevious", "previousLabel"],
4
4
  _excluded2 = ["ownerState"],
5
5
  _excluded3 = ["ownerState"];
@@ -34,11 +34,16 @@ const PickersArrowSwitcherButton = styled(IconButton, {
34
34
  name: 'MuiPickersArrowSwitcher',
35
35
  slot: 'Button',
36
36
  overridesResolver: (props, styles) => styles.button
37
- })(({
38
- ownerState
39
- }) => _extends({}, ownerState.hidden && {
40
- visibility: 'hidden'
41
- }));
37
+ })({
38
+ variants: [{
39
+ props: {
40
+ hidden: true
41
+ },
42
+ style: {
43
+ visibility: 'hidden'
44
+ }
45
+ }]
46
+ });
42
47
  const useUtilityClasses = ownerState => {
43
48
  const {
44
49
  classes
@@ -51,7 +56,6 @@ const useUtilityClasses = ownerState => {
51
56
  return composeClasses(slots, getPickersArrowSwitcherUtilityClass, classes);
52
57
  };
53
58
  export const PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function PickersArrowSwitcher(inProps, ref) {
54
- var _slots$previousIconBu, _slots$nextIconButton, _slots$leftArrowIcon, _slots$rightArrowIcon;
55
59
  const theme = useTheme();
56
60
  const isRTL = theme.direction === 'rtl';
57
61
  const props = useThemeProps({
@@ -87,10 +91,10 @@ export const PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function Picke
87
91
  goTo: onGoToPrevious,
88
92
  label: previousLabel
89
93
  };
90
- const PreviousIconButton = (_slots$previousIconBu = slots == null ? void 0 : slots.previousIconButton) != null ? _slots$previousIconBu : PickersArrowSwitcherButton;
94
+ const PreviousIconButton = slots?.previousIconButton ?? PickersArrowSwitcherButton;
91
95
  const previousIconButtonProps = useSlotProps({
92
96
  elementType: PreviousIconButton,
93
- externalSlotProps: slotProps == null ? void 0 : slotProps.previousIconButton,
97
+ externalSlotProps: slotProps?.previousIconButton,
94
98
  additionalProps: {
95
99
  size: 'medium',
96
100
  title: previousProps.label,
@@ -104,10 +108,10 @@ export const PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function Picke
104
108
  }),
105
109
  className: classes.button
106
110
  });
107
- const NextIconButton = (_slots$nextIconButton = slots == null ? void 0 : slots.nextIconButton) != null ? _slots$nextIconButton : PickersArrowSwitcherButton;
111
+ const NextIconButton = slots?.nextIconButton ?? PickersArrowSwitcherButton;
108
112
  const nextIconButtonProps = useSlotProps({
109
113
  elementType: NextIconButton,
110
- externalSlotProps: slotProps == null ? void 0 : slotProps.nextIconButton,
114
+ externalSlotProps: slotProps?.nextIconButton,
111
115
  additionalProps: {
112
116
  size: 'medium',
113
117
  title: nextProps.label,
@@ -121,22 +125,22 @@ export const PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function Picke
121
125
  }),
122
126
  className: classes.button
123
127
  });
124
- const LeftArrowIcon = (_slots$leftArrowIcon = slots == null ? void 0 : slots.leftArrowIcon) != null ? _slots$leftArrowIcon : ArrowLeftIcon;
128
+ const LeftArrowIcon = slots?.leftArrowIcon ?? ArrowLeftIcon;
125
129
  // The spread is here to avoid this bug mui/material-ui#34056
126
130
  const _useSlotProps = useSlotProps({
127
131
  elementType: LeftArrowIcon,
128
- externalSlotProps: slotProps == null ? void 0 : slotProps.leftArrowIcon,
132
+ externalSlotProps: slotProps?.leftArrowIcon,
129
133
  additionalProps: {
130
134
  fontSize: 'inherit'
131
135
  },
132
136
  ownerState: undefined
133
137
  }),
134
138
  leftArrowIconProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
135
- const RightArrowIcon = (_slots$rightArrowIcon = slots == null ? void 0 : slots.rightArrowIcon) != null ? _slots$rightArrowIcon : ArrowRightIcon;
139
+ const RightArrowIcon = slots?.rightArrowIcon ?? ArrowRightIcon;
136
140
  // The spread is here to avoid this bug mui/material-ui#34056
137
141
  const _useSlotProps2 = useSlotProps({
138
142
  elementType: RightArrowIcon,
139
- externalSlotProps: slotProps == null ? void 0 : slotProps.rightArrowIcon,
143
+ externalSlotProps: slotProps?.rightArrowIcon,
140
144
  additionalProps: {
141
145
  fontSize: 'inherit'
142
146
  },
@@ -21,7 +21,6 @@ const PickersModalDialogContent = styled(DialogContent)({
21
21
  }
22
22
  });
23
23
  export function PickersModalDialog(props) {
24
- var _slots$dialog, _slots$mobileTransiti;
25
24
  const {
26
25
  children,
27
26
  onDismiss,
@@ -29,16 +28,16 @@ export function PickersModalDialog(props) {
29
28
  slots,
30
29
  slotProps
31
30
  } = props;
32
- const Dialog = (_slots$dialog = slots == null ? void 0 : slots.dialog) != null ? _slots$dialog : PickersModalDialogRoot;
33
- const Transition = (_slots$mobileTransiti = slots == null ? void 0 : slots.mobileTransition) != null ? _slots$mobileTransiti : Fade;
31
+ const Dialog = slots?.dialog ?? PickersModalDialogRoot;
32
+ const Transition = slots?.mobileTransition ?? Fade;
34
33
  return /*#__PURE__*/_jsx(Dialog, _extends({
35
34
  open: open,
36
35
  onClose: onDismiss
37
- }, slotProps == null ? void 0 : slotProps.dialog, {
36
+ }, slotProps?.dialog, {
38
37
  TransitionComponent: Transition,
39
- TransitionProps: slotProps == null ? void 0 : slotProps.mobileTransition,
40
- PaperComponent: slots == null ? void 0 : slots.mobilePaper,
41
- PaperProps: slotProps == null ? void 0 : slotProps.mobilePaper,
38
+ TransitionProps: slotProps?.mobileTransition,
39
+ PaperComponent: slots?.mobilePaper,
40
+ PaperProps: slotProps?.mobilePaper,
42
41
  children: /*#__PURE__*/_jsx(PickersModalDialogContent, {
43
42
  children: children
44
43
  })
@@ -1,5 +1,5 @@
1
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  const _excluded = ["PaperComponent", "popperPlacement", "ownerState", "children", "paperSlotProps", "paperClasses", "onPaperClick", "onPaperTouchStart"];
4
4
  import * as React from 'react';
5
5
  import { useSlotProps } from '@mui/base/utils';
@@ -37,14 +37,18 @@ const PickersPopperPaper = styled(MuiPaper, {
37
37
  name: 'MuiPickersPopper',
38
38
  slot: 'Paper',
39
39
  overridesResolver: (_, styles) => styles.paper
40
- })(({
41
- ownerState
42
- }) => _extends({
40
+ })({
43
41
  outline: 0,
44
- transformOrigin: 'top center'
45
- }, ownerState.placement.includes('top') && {
46
- transformOrigin: 'bottom center'
47
- }));
42
+ transformOrigin: 'top center',
43
+ variants: [{
44
+ props: ({
45
+ placement
46
+ }) => ['top', 'top-start', 'top-end'].includes(placement),
47
+ style: {
48
+ transformOrigin: 'bottom center'
49
+ }
50
+ }]
51
+ });
48
52
  function clickedRootScrollbar(event, doc) {
49
53
  return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;
50
54
  }
@@ -146,7 +150,7 @@ function useClickAwayListener(active, onClickAway) {
146
150
  // TODO This behavior is not tested automatically
147
151
  // It's unclear whether this is due to different update semantics in test (batched in act() vs discrete on click).
148
152
  // Or if this is a timing related issues due to different Transition components
149
- // Once we get rid of all the manual scheduling (e.g. setTimeout(update, 0)) we can revisit this code+test.
153
+ // Once we get rid of all the manual scheduling (for example setTimeout(update, 0)) we can revisit this code+test.
150
154
  if (active) {
151
155
  const doc = ownerDocument(nodeRef.current);
152
156
  doc.addEventListener('click', handleClickAway);
@@ -190,21 +194,18 @@ const PickersPopperPaperWrapper = /*#__PURE__*/React.forwardRef((props, ref) =>
190
194
  });
191
195
  return /*#__PURE__*/_jsx(PaperComponent, _extends({}, other, paperProps, {
192
196
  onClick: event => {
193
- var _paperProps$onClick;
194
197
  onPaperClick(event);
195
- (_paperProps$onClick = paperProps.onClick) == null || _paperProps$onClick.call(paperProps, event);
198
+ paperProps.onClick?.(event);
196
199
  },
197
200
  onTouchStart: event => {
198
- var _paperProps$onTouchSt;
199
201
  onPaperTouchStart(event);
200
- (_paperProps$onTouchSt = paperProps.onTouchStart) == null || _paperProps$onTouchSt.call(paperProps, event);
202
+ paperProps.onTouchStart?.(event);
201
203
  },
202
204
  ownerState: ownerState,
203
205
  children: children
204
206
  }));
205
207
  });
206
208
  export function PickersPopper(inProps) {
207
- var _slots$desktopTransit, _slots$desktopTrapFoc, _slots$desktopPaper, _slots$popper;
208
209
  const props = useThemeProps({
209
210
  props: inProps,
210
211
  name: 'MuiPickersPopper'
@@ -251,14 +252,14 @@ export function PickersPopper(inProps) {
251
252
  });
252
253
  }
253
254
  }, [open, role, shouldRestoreFocus]);
254
- const [clickAwayRef, onPaperClick, onPaperTouchStart] = useClickAwayListener(open, onBlur != null ? onBlur : onDismiss);
255
+ const [clickAwayRef, onPaperClick, onPaperTouchStart] = useClickAwayListener(open, onBlur ?? onDismiss);
255
256
  const paperRef = React.useRef(null);
256
257
  const handleRef = useForkRef(paperRef, containerRef);
257
258
  const handlePaperRef = useForkRef(handleRef, clickAwayRef);
258
259
  const ownerState = props;
259
260
  const classes = useUtilityClasses(ownerState);
260
261
  const defaultReduceAnimations = useDefaultReduceAnimations();
261
- const reduceAnimations = inReduceAnimations != null ? inReduceAnimations : defaultReduceAnimations;
262
+ const reduceAnimations = inReduceAnimations ?? defaultReduceAnimations;
262
263
  const handleKeyDown = event => {
263
264
  if (event.key === 'Escape') {
264
265
  // stop the propagation to avoid closing parent modal
@@ -266,13 +267,13 @@ export function PickersPopper(inProps) {
266
267
  onDismiss();
267
268
  }
268
269
  };
269
- const Transition = ((_slots$desktopTransit = slots == null ? void 0 : slots.desktopTransition) != null ? _slots$desktopTransit : reduceAnimations) ? Fade : Grow;
270
- const FocusTrap = (_slots$desktopTrapFoc = slots == null ? void 0 : slots.desktopTrapFocus) != null ? _slots$desktopTrapFoc : BaseFocusTrap;
271
- const Paper = (_slots$desktopPaper = slots == null ? void 0 : slots.desktopPaper) != null ? _slots$desktopPaper : PickersPopperPaper;
272
- const Popper = (_slots$popper = slots == null ? void 0 : slots.popper) != null ? _slots$popper : PickersPopperRoot;
270
+ const Transition = slots?.desktopTransition ?? reduceAnimations ? Fade : Grow;
271
+ const FocusTrap = slots?.desktopTrapFocus ?? BaseFocusTrap;
272
+ const Paper = slots?.desktopPaper ?? PickersPopperPaper;
273
+ const Popper = slots?.popper ?? PickersPopperRoot;
273
274
  const popperProps = useSlotProps({
274
275
  elementType: Popper,
275
- externalSlotProps: slotProps == null ? void 0 : slotProps.popper,
276
+ externalSlotProps: slotProps?.popper,
276
277
  additionalProps: {
277
278
  transition: true,
278
279
  role,
@@ -298,8 +299,8 @@ export function PickersPopper(inProps) {
298
299
  disableRestoreFocus: true,
299
300
  disableEnforceFocus: role === 'tooltip',
300
301
  isEnabled: () => true
301
- }, slotProps == null ? void 0 : slotProps.desktopTrapFocus, {
302
- children: /*#__PURE__*/_jsx(Transition, _extends({}, TransitionProps, slotProps == null ? void 0 : slotProps.desktopTransition, {
302
+ }, slotProps?.desktopTrapFocus, {
303
+ children: /*#__PURE__*/_jsx(Transition, _extends({}, TransitionProps, slotProps?.desktopTransition, {
303
304
  children: /*#__PURE__*/_jsx(PickersPopperPaperWrapper, {
304
305
  PaperComponent: Paper,
305
306
  ownerState: ownerState,
@@ -308,7 +309,7 @@ export function PickersPopper(inProps) {
308
309
  onPaperClick: onPaperClick,
309
310
  onPaperTouchStart: onPaperTouchStart,
310
311
  paperClasses: classes.paper,
311
- paperSlotProps: slotProps == null ? void 0 : slotProps.desktopPaper,
312
+ paperSlotProps: slotProps?.desktopPaper,
312
313
  children: children
313
314
  })
314
315
  }))
@@ -1,5 +1,5 @@
1
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  const _excluded = ["children", "className", "toolbarTitle", "hidden", "titleId", "isLandscape", "classes", "landscapeDirection"];
4
4
  import * as React from 'react';
5
5
  import clsx from 'clsx';
@@ -26,38 +26,56 @@ const PickersToolbarRoot = styled('div', {
26
26
  slot: 'Root',
27
27
  overridesResolver: (props, styles) => styles.root
28
28
  })(({
29
- theme,
30
- ownerState
31
- }) => _extends({
29
+ theme
30
+ }) => ({
32
31
  display: 'flex',
33
32
  flexDirection: 'column',
34
33
  alignItems: 'flex-start',
35
34
  justifyContent: 'space-between',
36
- padding: theme.spacing(2, 3)
37
- }, ownerState.isLandscape && {
38
- height: 'auto',
39
- maxWidth: 160,
40
- padding: 16,
41
- justifyContent: 'flex-start',
42
- flexWrap: 'wrap'
35
+ padding: theme.spacing(2, 3),
36
+ variants: [{
37
+ props: {
38
+ isLandscape: true
39
+ },
40
+ style: {
41
+ height: 'auto',
42
+ maxWidth: 160,
43
+ padding: 16,
44
+ justifyContent: 'flex-start',
45
+ flexWrap: 'wrap'
46
+ }
47
+ }]
43
48
  }));
44
49
  const PickersToolbarContent = styled('div', {
45
50
  name: 'MuiPickersToolbar',
46
51
  slot: 'Content',
47
52
  overridesResolver: (props, styles) => styles.content
48
- })(({
49
- ownerState
50
- }) => {
51
- var _ownerState$landscape;
52
- return {
53
- display: 'flex',
54
- flexWrap: 'wrap',
55
- width: '100%',
56
- justifyContent: ownerState.isLandscape ? 'flex-start' : 'space-between',
57
- flexDirection: ownerState.isLandscape ? (_ownerState$landscape = ownerState.landscapeDirection) != null ? _ownerState$landscape : 'column' : 'row',
58
- flex: 1,
59
- alignItems: ownerState.isLandscape ? 'flex-start' : 'center'
60
- };
53
+ })({
54
+ display: 'flex',
55
+ flexWrap: 'wrap',
56
+ width: '100%',
57
+ flex: 1,
58
+ justifyContent: 'space-between',
59
+ alignItems: 'center',
60
+ flexDirection: 'row',
61
+ variants: [{
62
+ props: {
63
+ isLandscape: true
64
+ },
65
+ style: {
66
+ justifyContent: 'flex-start',
67
+ alignItems: 'flex-start',
68
+ flexDirection: 'column'
69
+ }
70
+ }, {
71
+ props: {
72
+ isLandscape: true,
73
+ landscapeDirection: 'row'
74
+ },
75
+ style: {
76
+ flexDirection: 'row'
77
+ }
78
+ }]
61
79
  });
62
80
  export const PickersToolbar = /*#__PURE__*/React.forwardRef(function PickersToolbar(inProps, ref) {
63
81
  const props = useThemeProps({
@@ -30,7 +30,7 @@ export function useMeridiemMode(date, ampm, onChange, selectionState) {
30
30
  const meridiemMode = getMeridiem(date, utils);
31
31
  const handleMeridiemChange = React.useCallback(mode => {
32
32
  const timeWithMeridiem = date == null ? null : convertToMeridiem(date, mode, Boolean(ampm), utils);
33
- onChange(timeWithMeridiem, selectionState != null ? selectionState : 'partial');
33
+ onChange(timeWithMeridiem, selectionState ?? 'partial');
34
34
  }, [ampm, date, onChange, selectionState, utils]);
35
35
  return {
36
36
  meridiemMode,
@@ -2,42 +2,39 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import { applyDefaultDate } from '../utils/date-utils';
3
3
  import { useUtils, useDefaultDates } from './useUtils';
4
4
  export const useDefaultizedDateField = props => {
5
- var _props$disablePast, _props$disableFuture, _props$format;
6
5
  const utils = useUtils();
7
6
  const defaultDates = useDefaultDates();
8
7
  return _extends({}, props, {
9
- disablePast: (_props$disablePast = props.disablePast) != null ? _props$disablePast : false,
10
- disableFuture: (_props$disableFuture = props.disableFuture) != null ? _props$disableFuture : false,
11
- format: (_props$format = props.format) != null ? _props$format : utils.formats.keyboardDate,
8
+ disablePast: props.disablePast ?? false,
9
+ disableFuture: props.disableFuture ?? false,
10
+ format: props.format ?? utils.formats.keyboardDate,
12
11
  minDate: applyDefaultDate(utils, props.minDate, defaultDates.minDate),
13
12
  maxDate: applyDefaultDate(utils, props.maxDate, defaultDates.maxDate)
14
13
  });
15
14
  };
16
15
  export const useDefaultizedTimeField = props => {
17
- var _props$ampm, _props$disablePast2, _props$disableFuture2, _props$format2;
18
16
  const utils = useUtils();
19
- const ampm = (_props$ampm = props.ampm) != null ? _props$ampm : utils.is12HourCycleInCurrentLocale();
17
+ const ampm = props.ampm ?? utils.is12HourCycleInCurrentLocale();
20
18
  const defaultFormat = ampm ? utils.formats.fullTime12h : utils.formats.fullTime24h;
21
19
  return _extends({}, props, {
22
- disablePast: (_props$disablePast2 = props.disablePast) != null ? _props$disablePast2 : false,
23
- disableFuture: (_props$disableFuture2 = props.disableFuture) != null ? _props$disableFuture2 : false,
24
- format: (_props$format2 = props.format) != null ? _props$format2 : defaultFormat
20
+ disablePast: props.disablePast ?? false,
21
+ disableFuture: props.disableFuture ?? false,
22
+ format: props.format ?? defaultFormat
25
23
  });
26
24
  };
27
25
  export const useDefaultizedDateTimeField = props => {
28
- var _props$ampm2, _props$disablePast3, _props$disableFuture3, _props$format3, _props$minDateTime, _props$maxDateTime, _props$minDateTime2, _props$maxDateTime2;
29
26
  const utils = useUtils();
30
27
  const defaultDates = useDefaultDates();
31
- const ampm = (_props$ampm2 = props.ampm) != null ? _props$ampm2 : utils.is12HourCycleInCurrentLocale();
28
+ const ampm = props.ampm ?? utils.is12HourCycleInCurrentLocale();
32
29
  const defaultFormat = ampm ? utils.formats.keyboardDateTime12h : utils.formats.keyboardDateTime24h;
33
30
  return _extends({}, props, {
34
- disablePast: (_props$disablePast3 = props.disablePast) != null ? _props$disablePast3 : false,
35
- disableFuture: (_props$disableFuture3 = props.disableFuture) != null ? _props$disableFuture3 : false,
36
- format: (_props$format3 = props.format) != null ? _props$format3 : defaultFormat,
31
+ disablePast: props.disablePast ?? false,
32
+ disableFuture: props.disableFuture ?? false,
33
+ format: props.format ?? defaultFormat,
37
34
  disableIgnoringDatePartForTimeValidation: Boolean(props.minDateTime || props.maxDateTime),
38
- minDate: applyDefaultDate(utils, (_props$minDateTime = props.minDateTime) != null ? _props$minDateTime : props.minDate, defaultDates.minDate),
39
- maxDate: applyDefaultDate(utils, (_props$maxDateTime = props.maxDateTime) != null ? _props$maxDateTime : props.maxDate, defaultDates.maxDate),
40
- minTime: (_props$minDateTime2 = props.minDateTime) != null ? _props$minDateTime2 : props.minTime,
41
- maxTime: (_props$maxDateTime2 = props.maxDateTime) != null ? _props$maxDateTime2 : props.maxTime
35
+ minDate: applyDefaultDate(utils, props.minDateTime ?? props.minDate, defaultDates.minDate),
36
+ maxDate: applyDefaultDate(utils, props.maxDateTime ?? props.maxDate, defaultDates.maxDate),
37
+ minTime: props.minDateTime ?? props.minTime,
38
+ maxTime: props.maxDateTime ?? props.maxTime
42
39
  });
43
40
  };
@@ -21,5 +21,5 @@ export const useClockReferenceDate = ({
21
21
  // We only want to compute the reference date on mount.
22
22
  [] // eslint-disable-line react-hooks/exhaustive-deps
23
23
  );
24
- return value != null ? value : referenceDate;
24
+ return value ?? referenceDate;
25
25
  };
@@ -1,2 +1,2 @@
1
1
  export { useDesktopPicker } from './useDesktopPicker';
2
- export type { UseDesktopPickerSlots, UseDesktopPickerSlotProps, ExportedUseDesktopPickerSlotProps, DesktopOnlyPickerProps, } from './useDesktopPicker.types';
2
+ export type { UseDesktopPickerSlots, UseDesktopPickerSlotProps, ExportedUseDesktopPickerSlotProps, DesktopOnlyPickerProps, UseDesktopPickerProps, } from './useDesktopPicker.types';