@mui/x-date-pickers-pro 7.0.0-beta.6 → 7.0.0-beta.7

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 (37) hide show
  1. package/CHANGELOG.md +117 -1
  2. package/DateRangeCalendar/DateRangeCalendar.js +18 -53
  3. package/DateRangeCalendar/DateRangeCalendar.types.d.ts +3 -2
  4. package/MultiInputDateRangeField/MultiInputDateRangeField.js +4 -2
  5. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +4 -2
  6. package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +4 -2
  7. package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.d.ts +8 -0
  8. package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +124 -0
  9. package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.types.d.ts +18 -0
  10. package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.types.js +1 -0
  11. package/PickersRangeCalendarHeader/index.d.ts +2 -0
  12. package/PickersRangeCalendarHeader/index.js +1 -0
  13. package/PickersRangeCalendarHeader/package.json +6 -0
  14. package/index.d.ts +1 -0
  15. package/index.js +2 -1
  16. package/internals/utils/releaseInfo.js +1 -1
  17. package/modern/DateRangeCalendar/DateRangeCalendar.js +39 -71
  18. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +4 -2
  19. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +4 -2
  20. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +4 -2
  21. package/modern/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +124 -0
  22. package/modern/PickersRangeCalendarHeader/PickersRangeCalendarHeader.types.js +1 -0
  23. package/modern/PickersRangeCalendarHeader/index.js +1 -0
  24. package/modern/index.js +2 -1
  25. package/modern/internals/utils/releaseInfo.js +1 -1
  26. package/node/DateRangeCalendar/DateRangeCalendar.js +38 -70
  27. package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +4 -2
  28. package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +4 -2
  29. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +4 -2
  30. package/node/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +132 -0
  31. package/node/PickersRangeCalendarHeader/PickersRangeCalendarHeader.types.js +5 -0
  32. package/node/PickersRangeCalendarHeader/index.js +12 -0
  33. package/node/index.js +13 -1
  34. package/node/internals/utils/releaseInfo.js +1 -1
  35. package/package.json +2 -2
  36. package/themeAugmentation/components.d.ts +3 -0
  37. package/themeAugmentation/props.d.ts +2 -0
@@ -11,8 +11,7 @@ import { resolveComponentProps, useSlotProps } from '@mui/base/utils';
11
11
  import { styled, useThemeProps } from '@mui/material/styles';
12
12
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
13
13
  import { Watermark } from '@mui/x-license';
14
- import { PickersCalendarHeader } from '@mui/x-date-pickers/PickersCalendarHeader';
15
- import { applyDefaultDate, DayCalendar, useDefaultReduceAnimations, PickersArrowSwitcher, useCalendarState, useDefaultDates, useLocaleText, useNextMonthDisabled, usePreviousMonthDisabled, useUtils, useNow, DEFAULT_DESKTOP_MODE_MEDIA_QUERY, buildWarning, useControlledValueWithTimezone, useViews } from '@mui/x-date-pickers/internals';
14
+ import { applyDefaultDate, DayCalendar, useDefaultReduceAnimations, useCalendarState, useDefaultDates, useUtils, useNow, DEFAULT_DESKTOP_MODE_MEDIA_QUERY, buildWarning, useControlledValueWithTimezone, useViews } from '@mui/x-date-pickers/internals';
16
15
  import { getReleaseInfo } from '../internals/utils/releaseInfo';
17
16
  import { dateRangeCalendarClasses, getDateRangeCalendarUtilityClass } from './dateRangeCalendarClasses';
18
17
  import { isEndOfRange, isRangeValid, isStartOfRange, isWithinRange } from '../internals/utils/date-utils';
@@ -22,6 +21,7 @@ import { rangeValueManager } from '../internals/utils/valueManagers';
22
21
  import { useDragRange } from './useDragRange';
23
22
  import { useRangePosition } from '../internals/hooks/useRangePosition';
24
23
  import { DAY_RANGE_SIZE, DAY_MARGIN } from '../internals/constants/dimensions';
24
+ import { PickersRangeCalendarHeader } from '../PickersRangeCalendarHeader';
25
25
  import { jsx as _jsx } from "react/jsx-runtime";
26
26
  import { jsxs as _jsxs } from "react/jsx-runtime";
27
27
  const releaseInfo = getReleaseInfo();
@@ -44,12 +44,6 @@ const DateRangeCalendarMonthContainer = styled('div', {
44
44
  borderRight: `1px solid ${(theme.vars || theme).palette.divider}`
45
45
  }
46
46
  }));
47
- const DateRangeCalendarArrowSwitcher = styled(PickersArrowSwitcher)({
48
- padding: '12px 16px 4px 16px',
49
- display: 'flex',
50
- alignItems: 'center',
51
- justifyContent: 'space-between'
52
- });
53
47
  const weeksContainerHeight = (DAY_RANGE_SIZE + DAY_MARGIN * 2) * 6;
54
48
  const warnInvalidCurrentMonthCalendarPosition = buildWarning(['The `currentMonthCalendarPosition` prop must be an integer between `1` and the amount of calendars rendered.', 'For example if you have 2 calendars rendered, it should be equal to either 1 or 2.']);
55
49
  const DayCalendarForRange = styled(DayCalendar)(({
@@ -190,7 +184,6 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
190
184
  autoFocus
191
185
  });
192
186
  const utils = useUtils();
193
- const localeText = useLocaleText();
194
187
  const now = useNow(timezone);
195
188
  const {
196
189
  rangePosition,
@@ -288,15 +281,12 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
288
281
  shouldDisableDate: wrappedShouldDisableDate,
289
282
  timezone
290
283
  });
291
-
292
- // When disabled, limit the view to the selected date
293
- const minDateWithDisabled = disabled && value[0] || minDate;
294
- const maxDateWithDisabled = disabled && value[1] || maxDate;
295
- const CalendarHeader = slots?.calendarHeader ?? PickersCalendarHeader;
284
+ const CalendarHeader = slots?.calendarHeader ?? PickersRangeCalendarHeader;
296
285
  const calendarHeaderProps = useSlotProps({
297
286
  elementType: CalendarHeader,
298
287
  externalSlotProps: slotProps?.calendarHeader,
299
288
  additionalProps: {
289
+ calendars,
300
290
  views: ['day'],
301
291
  view: 'day',
302
292
  currentMonth: calendarState.currentMonth,
@@ -304,15 +294,15 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
304
294
  newMonth,
305
295
  direction
306
296
  }),
307
- minDate: minDateWithDisabled,
308
- maxDate: maxDateWithDisabled,
297
+ minDate,
298
+ maxDate,
309
299
  disabled,
310
300
  disablePast,
311
301
  disableFuture,
312
302
  reduceAnimations,
303
+ timezone,
313
304
  slots,
314
- slotProps,
315
- timezone
305
+ slotProps
316
306
  },
317
307
  ownerState: props
318
308
  });
@@ -341,22 +331,6 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
341
331
  }
342
332
  }, [rangePosition, value]); // eslint-disable-line
343
333
 
344
- const selectNextMonth = React.useCallback(() => {
345
- changeMonth(utils.addMonths(calendarState.currentMonth, 1));
346
- }, [changeMonth, calendarState.currentMonth, utils]);
347
- const selectPreviousMonth = React.useCallback(() => {
348
- changeMonth(utils.addMonths(calendarState.currentMonth, -1));
349
- }, [changeMonth, calendarState.currentMonth, utils]);
350
- const isNextMonthDisabled = useNextMonthDisabled(calendarState.currentMonth, {
351
- disableFuture,
352
- maxDate,
353
- timezone
354
- });
355
- const isPreviousMonthDisabled = usePreviousMonthDisabled(calendarState.currentMonth, {
356
- disablePast,
357
- minDate,
358
- timezone
359
- });
360
334
  const baseDateValidationProps = {
361
335
  disablePast,
362
336
  disableFuture,
@@ -462,43 +436,37 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
462
436
  children: [/*#__PURE__*/_jsx(Watermark, {
463
437
  packageName: "x-date-pickers-pro",
464
438
  releaseInfo: releaseInfo
465
- }), calendarMonths.map((month, index) => /*#__PURE__*/_jsxs(DateRangeCalendarMonthContainer, {
466
- className: classes.monthContainer,
467
- children: [calendars === 1 ? /*#__PURE__*/_jsx(CalendarHeader, _extends({}, calendarHeaderProps)) : /*#__PURE__*/_jsx(DateRangeCalendarArrowSwitcher, {
468
- onGoToPrevious: selectPreviousMonth,
469
- onGoToNext: selectNextMonth,
470
- isPreviousHidden: index !== 0,
471
- isPreviousDisabled: isPreviousMonthDisabled,
472
- previousLabel: localeText.previousMonth,
473
- isNextHidden: index !== calendars - 1,
474
- isNextDisabled: isNextMonthDisabled,
475
- nextLabel: localeText.nextMonth,
476
- slots: slots,
477
- slotProps: slotProps,
478
- children: utils.formatByString(visibleMonths[month], calendarHeaderProps.format ?? `${utils.formats.month} ${utils.formats.year}`)
479
- }), /*#__PURE__*/_jsx(DayCalendarForRange, _extends({
480
- className: classes.dayCalendar
481
- }, calendarState, baseDateValidationProps, commonViewProps, {
482
- onMonthSwitchingAnimationEnd: onMonthSwitchingAnimationEnd,
483
- onFocusedDayChange: changeFocusedDay,
484
- reduceAnimations: reduceAnimations,
485
- selectedDays: value,
486
- onSelectedDaysChange: handleSelectedDayChange,
487
- currentMonth: visibleMonths[month],
488
- TransitionProps: CalendarTransitionProps,
489
- shouldDisableDate: wrappedShouldDisableDate,
490
- showDaysOutsideCurrentMonth: calendars === 1 && showDaysOutsideCurrentMonth,
491
- dayOfWeekFormatter: dayOfWeekFormatter,
492
- loading: loading,
493
- renderLoading: renderLoading,
494
- slots: slotsForDayCalendar,
495
- slotProps: slotPropsForDayCalendar,
496
- autoFocus: visibleMonths[month] === focusedMonth,
497
- fixedWeekNumber: fixedWeekNumber,
498
- displayWeekNumber: displayWeekNumber,
499
- timezone: timezone
500
- }), index)]
501
- }, month))]
439
+ }), calendarMonths.map(monthIndex => {
440
+ const month = visibleMonths[monthIndex];
441
+ return /*#__PURE__*/_jsxs(DateRangeCalendarMonthContainer, {
442
+ className: classes.monthContainer,
443
+ children: [/*#__PURE__*/_jsx(CalendarHeader, _extends({}, calendarHeaderProps, {
444
+ month: month,
445
+ monthIndex: monthIndex
446
+ })), /*#__PURE__*/_jsx(DayCalendarForRange, _extends({
447
+ className: classes.dayCalendar
448
+ }, calendarState, baseDateValidationProps, commonViewProps, {
449
+ onMonthSwitchingAnimationEnd: onMonthSwitchingAnimationEnd,
450
+ onFocusedDayChange: changeFocusedDay,
451
+ reduceAnimations: reduceAnimations,
452
+ selectedDays: value,
453
+ onSelectedDaysChange: handleSelectedDayChange,
454
+ currentMonth: month,
455
+ TransitionProps: CalendarTransitionProps,
456
+ shouldDisableDate: wrappedShouldDisableDate,
457
+ showDaysOutsideCurrentMonth: calendars === 1 && showDaysOutsideCurrentMonth,
458
+ dayOfWeekFormatter: dayOfWeekFormatter,
459
+ loading: loading,
460
+ renderLoading: renderLoading,
461
+ slots: slotsForDayCalendar,
462
+ slotProps: slotPropsForDayCalendar,
463
+ autoFocus: month === focusedMonth,
464
+ fixedWeekNumber: fixedWeekNumber,
465
+ displayWeekNumber: displayWeekNumber,
466
+ timezone: timezone
467
+ }))]
468
+ }, monthIndex);
469
+ })]
502
470
  }));
503
471
  });
504
472
  process.env.NODE_ENV !== "production" ? DateRangeCalendar.propTypes = {
@@ -31,7 +31,7 @@ const MultiInputDateRangeFieldRoot = styled( /*#__PURE__*/React.forwardRef((prop
31
31
  ref: ref,
32
32
  spacing: 2,
33
33
  direction: "row",
34
- alignItems: "baseline"
34
+ alignItems: "center"
35
35
  }, props))), {
36
36
  name: 'MuiMultiInputDateRangeField',
37
37
  slot: 'Root',
@@ -43,7 +43,9 @@ const MultiInputDateRangeFieldSeparator = styled(props => /*#__PURE__*/_jsx(Typo
43
43
  name: 'MuiMultiInputDateRangeField',
44
44
  slot: 'Separator',
45
45
  overridesResolver: (props, styles) => styles.separator
46
- })({});
46
+ })({
47
+ lineHeight: '1.4375em' // 23px
48
+ });
47
49
  /**
48
50
  * Demos:
49
51
  *
@@ -31,7 +31,7 @@ const MultiInputDateTimeRangeFieldRoot = styled( /*#__PURE__*/React.forwardRef((
31
31
  ref: ref,
32
32
  spacing: 2,
33
33
  direction: "row",
34
- alignItems: "baseline"
34
+ alignItems: "center"
35
35
  }, props))), {
36
36
  name: 'MuiMultiInputDateTimeRangeField',
37
37
  slot: 'Root',
@@ -43,7 +43,9 @@ const MultiInputDateTimeRangeFieldSeparator = styled(props => /*#__PURE__*/_jsx(
43
43
  name: 'MuiMultiInputDateTimeRangeField',
44
44
  slot: 'Separator',
45
45
  overridesResolver: (props, styles) => styles.separator
46
- })({});
46
+ })({
47
+ lineHeight: '1.4375em' // 23px
48
+ });
47
49
  /**
48
50
  * Demos:
49
51
  *
@@ -31,7 +31,7 @@ const MultiInputTimeRangeFieldRoot = styled( /*#__PURE__*/React.forwardRef((prop
31
31
  ref: ref,
32
32
  spacing: 2,
33
33
  direction: "row",
34
- alignItems: "baseline"
34
+ alignItems: "center"
35
35
  }, props))), {
36
36
  name: 'MuiMultiInputTimeRangeField',
37
37
  slot: 'Root',
@@ -43,7 +43,9 @@ const MultiInputTimeRangeFieldSeparator = styled(props => /*#__PURE__*/_jsx(Typo
43
43
  name: 'MuiMultiInputTimeRangeField',
44
44
  slot: 'Separator',
45
45
  overridesResolver: (props, styles) => styles.separator
46
- })({});
46
+ })({
47
+ lineHeight: '1.4375em' // 23px
48
+ });
47
49
  /**
48
50
  * Demos:
49
51
  *
@@ -0,0 +1,124 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ const _excluded = ["calendars", "month", "monthIndex"];
4
+ import * as React from 'react';
5
+ import PropTypes from 'prop-types';
6
+ import { styled } from '@mui/material/styles';
7
+ import { PickersCalendarHeader } from '@mui/x-date-pickers/PickersCalendarHeader';
8
+ import { PickersArrowSwitcher, useLocaleText, useNextMonthDisabled, usePreviousMonthDisabled, useUtils } from '@mui/x-date-pickers/internals';
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ const PickersRangeCalendarHeaderContentMultipleCalendars = styled(PickersArrowSwitcher)({
11
+ padding: '12px 16px 4px 16px',
12
+ display: 'flex',
13
+ alignItems: 'center',
14
+ justifyContent: 'space-between'
15
+ });
16
+ const PickersRangeCalendarHeader = /*#__PURE__*/React.forwardRef(function PickersRangeCalendarHeader(props, ref) {
17
+ const utils = useUtils();
18
+ const localeText = useLocaleText();
19
+ const {
20
+ calendars,
21
+ month,
22
+ monthIndex
23
+ } = props,
24
+ other = _objectWithoutPropertiesLoose(props, _excluded);
25
+ const {
26
+ format,
27
+ slots,
28
+ slotProps,
29
+ currentMonth,
30
+ onMonthChange,
31
+ disableFuture,
32
+ disablePast,
33
+ minDate,
34
+ maxDate,
35
+ timezone
36
+ } = props;
37
+ const isNextMonthDisabled = useNextMonthDisabled(currentMonth, {
38
+ disableFuture,
39
+ maxDate,
40
+ timezone
41
+ });
42
+ const isPreviousMonthDisabled = usePreviousMonthDisabled(currentMonth, {
43
+ disablePast,
44
+ minDate,
45
+ timezone
46
+ });
47
+ if (calendars === 1) {
48
+ return /*#__PURE__*/_jsx(PickersCalendarHeader, _extends({}, other, {
49
+ ref: ref
50
+ }));
51
+ }
52
+ const selectNextMonth = () => onMonthChange(utils.addMonths(currentMonth, 1), 'left');
53
+ const selectPreviousMonth = () => onMonthChange(utils.addMonths(currentMonth, -1), 'right');
54
+ return /*#__PURE__*/_jsx(PickersRangeCalendarHeaderContentMultipleCalendars, {
55
+ ref: ref,
56
+ onGoToPrevious: selectPreviousMonth,
57
+ onGoToNext: selectNextMonth,
58
+ isPreviousHidden: monthIndex !== 0,
59
+ isPreviousDisabled: isPreviousMonthDisabled,
60
+ previousLabel: localeText.previousMonth,
61
+ isNextHidden: monthIndex !== calendars - 1,
62
+ isNextDisabled: isNextMonthDisabled,
63
+ nextLabel: localeText.nextMonth,
64
+ slots: slots,
65
+ slotProps: slotProps,
66
+ children: utils.formatByString(month, format ?? `${utils.formats.month} ${utils.formats.year}`)
67
+ });
68
+ });
69
+ process.env.NODE_ENV !== "production" ? PickersRangeCalendarHeader.propTypes = {
70
+ // ----------------------------- Warning --------------------------------
71
+ // | These PropTypes are generated from the TypeScript type definitions |
72
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
73
+ // ----------------------------------------------------------------------
74
+ /**
75
+ * The number of calendars rendered.
76
+ */
77
+ calendars: PropTypes.oneOf([1, 2, 3]).isRequired,
78
+ /**
79
+ * Override or extend the styles applied to the component.
80
+ */
81
+ classes: PropTypes.object,
82
+ className: PropTypes.string,
83
+ currentMonth: PropTypes.object.isRequired,
84
+ disabled: PropTypes.bool,
85
+ disableFuture: PropTypes.bool,
86
+ disablePast: PropTypes.bool,
87
+ /**
88
+ * Format used to display the date.
89
+ * @default `${adapter.formats.month} ${adapter.formats.year}`
90
+ */
91
+ format: PropTypes.string,
92
+ labelId: PropTypes.string,
93
+ maxDate: PropTypes.object.isRequired,
94
+ minDate: PropTypes.object.isRequired,
95
+ /**
96
+ * Month used for this header.
97
+ */
98
+ month: PropTypes.object.isRequired,
99
+ /**
100
+ * Index of the month used for this header.
101
+ */
102
+ monthIndex: PropTypes.number.isRequired,
103
+ onMonthChange: PropTypes.func.isRequired,
104
+ onViewChange: PropTypes.func,
105
+ reduceAnimations: PropTypes.bool.isRequired,
106
+ /**
107
+ * The props used for each component slot.
108
+ * @default {}
109
+ */
110
+ slotProps: PropTypes.object,
111
+ /**
112
+ * Overridable component slots.
113
+ * @default {}
114
+ */
115
+ slots: PropTypes.object,
116
+ /**
117
+ * The system prop that allows defining system overrides as well as additional CSS styles.
118
+ */
119
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
120
+ timezone: PropTypes.string.isRequired,
121
+ view: PropTypes.oneOf(['day', 'month', 'year']).isRequired,
122
+ views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired).isRequired
123
+ } : void 0;
124
+ export { PickersRangeCalendarHeader };
@@ -0,0 +1 @@
1
+ export { PickersRangeCalendarHeader } from './PickersRangeCalendarHeader';
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers-pro v7.0.0-beta.6
2
+ * @mui/x-date-pickers-pro v7.0.0-beta.7
3
3
  *
4
4
  * @license MUI X Commercial
5
5
  * This source code is licensed under the commercial license found in the
@@ -24,6 +24,7 @@ export * from './SingleInputDateTimeRangeField';
24
24
 
25
25
  // Calendars
26
26
  export * from './DateRangeCalendar';
27
+ export * from './PickersRangeCalendarHeader';
27
28
 
28
29
  // New pickers
29
30
  export * from './DateRangePicker';
@@ -1,6 +1,6 @@
1
1
  import { ponyfillGlobal } from '@mui/utils';
2
2
  export const getReleaseInfo = () => {
3
- const releaseInfo = "MTcwOTg1MjQwMDAwMA==";
3
+ const releaseInfo = "MTcxMDM3MDgwMDAwMA==";
4
4
  if (process.env.NODE_ENV !== 'production') {
5
5
  // A simple hack to set the value in the test environment (has no build step).
6
6
  // eslint-disable-next-line no-useless-concat
@@ -16,7 +16,6 @@ var _utils = require("@mui/base/utils");
16
16
  var _styles = require("@mui/material/styles");
17
17
  var _utils2 = require("@mui/utils");
18
18
  var _xLicense = require("@mui/x-license");
19
- var _PickersCalendarHeader = require("@mui/x-date-pickers/PickersCalendarHeader");
20
19
  var _internals = require("@mui/x-date-pickers/internals");
21
20
  var _releaseInfo = require("../internals/utils/releaseInfo");
22
21
  var _dateRangeCalendarClasses = require("./dateRangeCalendarClasses");
@@ -27,6 +26,7 @@ var _valueManagers = require("../internals/utils/valueManagers");
27
26
  var _useDragRange2 = require("./useDragRange");
28
27
  var _useRangePosition = require("../internals/hooks/useRangePosition");
29
28
  var _dimensions = require("../internals/constants/dimensions");
29
+ var _PickersRangeCalendarHeader = require("../PickersRangeCalendarHeader");
30
30
  var _jsxRuntime = require("react/jsx-runtime");
31
31
  const _excluded = ["value", "defaultValue", "referenceDate", "onChange", "className", "disableFuture", "disablePast", "minDate", "maxDate", "shouldDisableDate", "reduceAnimations", "onMonthChange", "rangePosition", "defaultRangePosition", "onRangePositionChange", "calendars", "currentMonthCalendarPosition", "slots", "slotProps", "loading", "renderLoading", "disableHighlightToday", "readOnly", "disabled", "showDaysOutsideCurrentMonth", "dayOfWeekFormatter", "disableAutoMonthSwitching", "autoFocus", "fixedWeekNumber", "disableDragEditing", "displayWeekNumber", "timezone", "availableRangePositions", "views", "view", "openTo", "onViewChange"],
32
32
  _excluded2 = ["isDragging", "rangeDragDay", "draggingDatePosition"];
@@ -52,12 +52,6 @@ const DateRangeCalendarMonthContainer = (0, _styles.styled)('div', {
52
52
  borderRight: `1px solid ${(theme.vars || theme).palette.divider}`
53
53
  }
54
54
  }));
55
- const DateRangeCalendarArrowSwitcher = (0, _styles.styled)(_internals.PickersArrowSwitcher)({
56
- padding: '12px 16px 4px 16px',
57
- display: 'flex',
58
- alignItems: 'center',
59
- justifyContent: 'space-between'
60
- });
61
55
  const weeksContainerHeight = (_dimensions.DAY_RANGE_SIZE + _dimensions.DAY_MARGIN * 2) * 6;
62
56
  const warnInvalidCurrentMonthCalendarPosition = (0, _internals.buildWarning)(['The `currentMonthCalendarPosition` prop must be an integer between `1` and the amount of calendars rendered.', 'For example if you have 2 calendars rendered, it should be equal to either 1 or 2.']);
63
57
  const DayCalendarForRange = (0, _styles.styled)(_internals.DayCalendar)(({
@@ -198,7 +192,6 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
198
192
  autoFocus
199
193
  });
200
194
  const utils = (0, _internals.useUtils)();
201
- const localeText = (0, _internals.useLocaleText)();
202
195
  const now = (0, _internals.useNow)(timezone);
203
196
  const {
204
197
  rangePosition,
@@ -296,15 +289,12 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
296
289
  shouldDisableDate: wrappedShouldDisableDate,
297
290
  timezone
298
291
  });
299
-
300
- // When disabled, limit the view to the selected date
301
- const minDateWithDisabled = disabled && value[0] || minDate;
302
- const maxDateWithDisabled = disabled && value[1] || maxDate;
303
- const CalendarHeader = slots?.calendarHeader ?? _PickersCalendarHeader.PickersCalendarHeader;
292
+ const CalendarHeader = slots?.calendarHeader ?? _PickersRangeCalendarHeader.PickersRangeCalendarHeader;
304
293
  const calendarHeaderProps = (0, _utils.useSlotProps)({
305
294
  elementType: CalendarHeader,
306
295
  externalSlotProps: slotProps?.calendarHeader,
307
296
  additionalProps: {
297
+ calendars,
308
298
  views: ['day'],
309
299
  view: 'day',
310
300
  currentMonth: calendarState.currentMonth,
@@ -312,15 +302,15 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
312
302
  newMonth,
313
303
  direction
314
304
  }),
315
- minDate: minDateWithDisabled,
316
- maxDate: maxDateWithDisabled,
305
+ minDate,
306
+ maxDate,
317
307
  disabled,
318
308
  disablePast,
319
309
  disableFuture,
320
310
  reduceAnimations,
311
+ timezone,
321
312
  slots,
322
- slotProps,
323
- timezone
313
+ slotProps
324
314
  },
325
315
  ownerState: props
326
316
  });
@@ -349,22 +339,6 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
349
339
  }
350
340
  }, [rangePosition, value]); // eslint-disable-line
351
341
 
352
- const selectNextMonth = React.useCallback(() => {
353
- changeMonth(utils.addMonths(calendarState.currentMonth, 1));
354
- }, [changeMonth, calendarState.currentMonth, utils]);
355
- const selectPreviousMonth = React.useCallback(() => {
356
- changeMonth(utils.addMonths(calendarState.currentMonth, -1));
357
- }, [changeMonth, calendarState.currentMonth, utils]);
358
- const isNextMonthDisabled = (0, _internals.useNextMonthDisabled)(calendarState.currentMonth, {
359
- disableFuture,
360
- maxDate,
361
- timezone
362
- });
363
- const isPreviousMonthDisabled = (0, _internals.usePreviousMonthDisabled)(calendarState.currentMonth, {
364
- disablePast,
365
- minDate,
366
- timezone
367
- });
368
342
  const baseDateValidationProps = {
369
343
  disablePast,
370
344
  disableFuture,
@@ -470,43 +444,37 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
470
444
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_xLicense.Watermark, {
471
445
  packageName: "x-date-pickers-pro",
472
446
  releaseInfo: releaseInfo
473
- }), calendarMonths.map((month, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(DateRangeCalendarMonthContainer, {
474
- className: classes.monthContainer,
475
- children: [calendars === 1 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(CalendarHeader, (0, _extends2.default)({}, calendarHeaderProps)) : /*#__PURE__*/(0, _jsxRuntime.jsx)(DateRangeCalendarArrowSwitcher, {
476
- onGoToPrevious: selectPreviousMonth,
477
- onGoToNext: selectNextMonth,
478
- isPreviousHidden: index !== 0,
479
- isPreviousDisabled: isPreviousMonthDisabled,
480
- previousLabel: localeText.previousMonth,
481
- isNextHidden: index !== calendars - 1,
482
- isNextDisabled: isNextMonthDisabled,
483
- nextLabel: localeText.nextMonth,
484
- slots: slots,
485
- slotProps: slotProps,
486
- children: utils.formatByString(visibleMonths[month], calendarHeaderProps.format ?? `${utils.formats.month} ${utils.formats.year}`)
487
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(DayCalendarForRange, (0, _extends2.default)({
488
- className: classes.dayCalendar
489
- }, calendarState, baseDateValidationProps, commonViewProps, {
490
- onMonthSwitchingAnimationEnd: onMonthSwitchingAnimationEnd,
491
- onFocusedDayChange: changeFocusedDay,
492
- reduceAnimations: reduceAnimations,
493
- selectedDays: value,
494
- onSelectedDaysChange: handleSelectedDayChange,
495
- currentMonth: visibleMonths[month],
496
- TransitionProps: CalendarTransitionProps,
497
- shouldDisableDate: wrappedShouldDisableDate,
498
- showDaysOutsideCurrentMonth: calendars === 1 && showDaysOutsideCurrentMonth,
499
- dayOfWeekFormatter: dayOfWeekFormatter,
500
- loading: loading,
501
- renderLoading: renderLoading,
502
- slots: slotsForDayCalendar,
503
- slotProps: slotPropsForDayCalendar,
504
- autoFocus: visibleMonths[month] === focusedMonth,
505
- fixedWeekNumber: fixedWeekNumber,
506
- displayWeekNumber: displayWeekNumber,
507
- timezone: timezone
508
- }), index)]
509
- }, month))]
447
+ }), calendarMonths.map(monthIndex => {
448
+ const month = visibleMonths[monthIndex];
449
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(DateRangeCalendarMonthContainer, {
450
+ className: classes.monthContainer,
451
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(CalendarHeader, (0, _extends2.default)({}, calendarHeaderProps, {
452
+ month: month,
453
+ monthIndex: monthIndex
454
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(DayCalendarForRange, (0, _extends2.default)({
455
+ className: classes.dayCalendar
456
+ }, calendarState, baseDateValidationProps, commonViewProps, {
457
+ onMonthSwitchingAnimationEnd: onMonthSwitchingAnimationEnd,
458
+ onFocusedDayChange: changeFocusedDay,
459
+ reduceAnimations: reduceAnimations,
460
+ selectedDays: value,
461
+ onSelectedDaysChange: handleSelectedDayChange,
462
+ currentMonth: month,
463
+ TransitionProps: CalendarTransitionProps,
464
+ shouldDisableDate: wrappedShouldDisableDate,
465
+ showDaysOutsideCurrentMonth: calendars === 1 && showDaysOutsideCurrentMonth,
466
+ dayOfWeekFormatter: dayOfWeekFormatter,
467
+ loading: loading,
468
+ renderLoading: renderLoading,
469
+ slots: slotsForDayCalendar,
470
+ slotProps: slotPropsForDayCalendar,
471
+ autoFocus: month === focusedMonth,
472
+ fixedWeekNumber: fixedWeekNumber,
473
+ displayWeekNumber: displayWeekNumber,
474
+ timezone: timezone
475
+ }))]
476
+ }, monthIndex);
477
+ })]
510
478
  }));
511
479
  });
512
480
  process.env.NODE_ENV !== "production" ? DateRangeCalendar.propTypes = {
@@ -40,7 +40,7 @@ const MultiInputDateRangeFieldRoot = (0, _styles.styled)( /*#__PURE__*/React.for
40
40
  ref: ref,
41
41
  spacing: 2,
42
42
  direction: "row",
43
- alignItems: "baseline"
43
+ alignItems: "center"
44
44
  }, props))), {
45
45
  name: 'MuiMultiInputDateRangeField',
46
46
  slot: 'Root',
@@ -52,7 +52,9 @@ const MultiInputDateRangeFieldSeparator = (0, _styles.styled)(props => /*#__PURE
52
52
  name: 'MuiMultiInputDateRangeField',
53
53
  slot: 'Separator',
54
54
  overridesResolver: (props, styles) => styles.separator
55
- })({});
55
+ })({
56
+ lineHeight: '1.4375em' // 23px
57
+ });
56
58
  /**
57
59
  * Demos:
58
60
  *
@@ -40,7 +40,7 @@ const MultiInputDateTimeRangeFieldRoot = (0, _styles.styled)( /*#__PURE__*/React
40
40
  ref: ref,
41
41
  spacing: 2,
42
42
  direction: "row",
43
- alignItems: "baseline"
43
+ alignItems: "center"
44
44
  }, props))), {
45
45
  name: 'MuiMultiInputDateTimeRangeField',
46
46
  slot: 'Root',
@@ -52,7 +52,9 @@ const MultiInputDateTimeRangeFieldSeparator = (0, _styles.styled)(props => /*#__
52
52
  name: 'MuiMultiInputDateTimeRangeField',
53
53
  slot: 'Separator',
54
54
  overridesResolver: (props, styles) => styles.separator
55
- })({});
55
+ })({
56
+ lineHeight: '1.4375em' // 23px
57
+ });
56
58
  /**
57
59
  * Demos:
58
60
  *
@@ -40,7 +40,7 @@ const MultiInputTimeRangeFieldRoot = (0, _styles.styled)( /*#__PURE__*/React.for
40
40
  ref: ref,
41
41
  spacing: 2,
42
42
  direction: "row",
43
- alignItems: "baseline"
43
+ alignItems: "center"
44
44
  }, props))), {
45
45
  name: 'MuiMultiInputTimeRangeField',
46
46
  slot: 'Root',
@@ -52,7 +52,9 @@ const MultiInputTimeRangeFieldSeparator = (0, _styles.styled)(props => /*#__PURE
52
52
  name: 'MuiMultiInputTimeRangeField',
53
53
  slot: 'Separator',
54
54
  overridesResolver: (props, styles) => styles.separator
55
- })({});
55
+ })({
56
+ lineHeight: '1.4375em' // 23px
57
+ });
56
58
  /**
57
59
  * Demos:
58
60
  *