@mui/x-date-pickers-pro 6.18.1 → 7.0.0-alpha.1

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 (84) hide show
  1. package/CHANGELOG.md +558 -1
  2. package/DateRangeCalendar/DateRangeCalendar.js +74 -80
  3. package/DateRangeCalendar/DateRangeCalendar.types.d.ts +12 -17
  4. package/DateRangePicker/DateRangePicker.js +0 -13
  5. package/DateRangePicker/DateRangePicker.types.d.ts +1 -14
  6. package/DateRangePicker/shared.d.ts +4 -16
  7. package/DateRangePicker/shared.js +7 -15
  8. package/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -13
  9. package/DesktopDateRangePicker/DesktopDateRangePicker.types.d.ts +3 -15
  10. package/MobileDateRangePicker/MobileDateRangePicker.js +0 -13
  11. package/MobileDateRangePicker/MobileDateRangePicker.types.d.ts +3 -15
  12. package/MultiInputDateRangeField/MultiInputDateRangeField.js +6 -22
  13. package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +4 -17
  14. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +4 -20
  15. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +4 -17
  16. package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +4 -20
  17. package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +4 -17
  18. package/SingleInputDateRangeField/SingleInputDateRangeField.js +5 -21
  19. package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +3 -15
  20. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +5 -21
  21. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +3 -15
  22. package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +5 -21
  23. package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +3 -15
  24. package/StaticDateRangePicker/StaticDateRangePicker.js +0 -13
  25. package/StaticDateRangePicker/StaticDateRangePicker.types.d.ts +2 -14
  26. package/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +1 -1
  27. package/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -4
  28. package/index.js +1 -1
  29. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +2 -2
  30. package/internals/hooks/useEnrichedRangePickerFieldProps.d.ts +6 -6
  31. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +2 -2
  32. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +9 -3
  33. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +2 -2
  34. package/internals/utils/date-fields-utils.d.ts +0 -1
  35. package/internals/utils/releaseInfo.js +1 -1
  36. package/legacy/DateRangeCalendar/DateRangeCalendar.js +39 -47
  37. package/legacy/DateRangePicker/DateRangePicker.js +0 -13
  38. package/legacy/DateRangePicker/shared.js +7 -13
  39. package/legacy/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -13
  40. package/legacy/MobileDateRangePicker/MobileDateRangePicker.js +0 -13
  41. package/legacy/MultiInputDateRangeField/MultiInputDateRangeField.js +6 -22
  42. package/legacy/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +4 -20
  43. package/legacy/MultiInputTimeRangeField/MultiInputTimeRangeField.js +4 -20
  44. package/legacy/SingleInputDateRangeField/SingleInputDateRangeField.js +5 -21
  45. package/legacy/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +5 -21
  46. package/legacy/SingleInputTimeRangeField/SingleInputTimeRangeField.js +5 -21
  47. package/legacy/StaticDateRangePicker/StaticDateRangePicker.js +0 -13
  48. package/legacy/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -4
  49. package/legacy/index.js +1 -1
  50. package/legacy/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +9 -3
  51. package/legacy/internals/utils/releaseInfo.js +1 -1
  52. package/modern/DateRangeCalendar/DateRangeCalendar.js +35 -45
  53. package/modern/DateRangePicker/DateRangePicker.js +0 -13
  54. package/modern/DateRangePicker/shared.js +6 -14
  55. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -13
  56. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +0 -13
  57. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +5 -21
  58. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +4 -20
  59. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +4 -20
  60. package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +4 -20
  61. package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +4 -20
  62. package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +4 -20
  63. package/modern/StaticDateRangePicker/StaticDateRangePicker.js +0 -13
  64. package/modern/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -4
  65. package/modern/index.js +1 -1
  66. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +9 -3
  67. package/modern/internals/utils/releaseInfo.js +1 -1
  68. package/node/DateRangeCalendar/DateRangeCalendar.js +33 -43
  69. package/node/DateRangePicker/DateRangePicker.js +0 -13
  70. package/node/DateRangePicker/shared.js +5 -13
  71. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -13
  72. package/node/MobileDateRangePicker/MobileDateRangePicker.js +0 -13
  73. package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +4 -20
  74. package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +3 -19
  75. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +3 -19
  76. package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +4 -20
  77. package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +4 -20
  78. package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +4 -20
  79. package/node/StaticDateRangePicker/StaticDateRangePicker.js +0 -13
  80. package/node/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -4
  81. package/node/index.js +1 -1
  82. package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +9 -3
  83. package/node/internals/utils/releaseInfo.js +1 -1
  84. package/package.json +3 -3
@@ -1,18 +1,18 @@
1
1
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
- const _excluded = ["value", "defaultValue", "referenceDate", "onChange", "className", "disableFuture", "disablePast", "minDate", "maxDate", "shouldDisableDate", "reduceAnimations", "onMonthChange", "defaultCalendarMonth", "rangePosition", "defaultRangePosition", "onRangePositionChange", "calendars", "currentMonthCalendarPosition", "components", "componentsProps", "slots", "slotProps", "loading", "renderLoading", "disableHighlightToday", "readOnly", "disabled", "showDaysOutsideCurrentMonth", "dayOfWeekFormatter", "disableAutoMonthSwitching", "autoFocus", "fixedWeekNumber", "disableDragEditing", "displayWeekNumber", "timezone"],
3
+ const _excluded = ["value", "defaultValue", "referenceDate", "onChange", "className", "disableFuture", "disablePast", "minDate", "maxDate", "shouldDisableDate", "reduceAnimations", "onMonthChange", "defaultCalendarMonth", "rangePosition", "defaultRangePosition", "onRangePositionChange", "calendars", "currentMonthCalendarPosition", "slots", "slotProps", "loading", "renderLoading", "disableHighlightToday", "readOnly", "disabled", "showDaysOutsideCurrentMonth", "dayOfWeekFormatter", "disableAutoMonthSwitching", "autoFocus", "fixedWeekNumber", "disableDragEditing", "displayWeekNumber", "timezone"],
4
4
  _excluded2 = ["isDragging", "rangeDragDay", "draggingDatePosition"];
5
5
  import * as React from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import clsx from 'clsx';
8
8
  import useEventCallback from '@mui/utils/useEventCallback';
9
9
  import useMediaQuery from '@mui/material/useMediaQuery';
10
- import { resolveComponentProps } from '@mui/base/utils';
10
+ 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-pro';
14
14
  import { PickersCalendarHeader } from '@mui/x-date-pickers/PickersCalendarHeader';
15
- import { applyDefaultDate, DAY_MARGIN, DayCalendar, useDefaultReduceAnimations, PickersArrowSwitcher, useCalendarState, useDefaultDates, useLocaleText, useNextMonthDisabled, usePreviousMonthDisabled, useUtils, useNow, uncapitalizeObjectKeys, DEFAULT_DESKTOP_MODE_MEDIA_QUERY, buildWarning, useControlledValueWithTimezone } from '@mui/x-date-pickers/internals';
15
+ import { applyDefaultDate, DAY_MARGIN, DayCalendar, useDefaultReduceAnimations, PickersArrowSwitcher, useCalendarState, useDefaultDates, useLocaleText, useNextMonthDisabled, usePreviousMonthDisabled, useUtils, useNow, DEFAULT_DESKTOP_MODE_MEDIA_QUERY, buildWarning, useControlledValueWithTimezone } from '@mui/x-date-pickers/internals';
16
16
  import { getReleaseInfo } from '../internals/utils/releaseInfo';
17
17
  import { dateRangeCalendarClasses, getDateRangeCalendarUtilityClass } from './dateRangeCalendarClasses';
18
18
  import { isEndOfRange, isRangeValid, isStartOfRange, isWithinRange } from '../internals/utils/date-utils';
@@ -120,6 +120,7 @@ const useUtilityClasses = ownerState => {
120
120
  * - [DateRangeCalendar API](https://mui.com/x/api/date-pickers/date-range-calendar/)
121
121
  */
122
122
  const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalendar(inProps, ref) {
123
+ var _slots$calendarHeader;
123
124
  const props = useDateRangeCalendarDefaultizedProps(inProps, 'MuiDateRangeCalendar');
124
125
  const shouldHavePreview = useMediaQuery(DEFAULT_DESKTOP_MODE_MEDIA_QUERY, {
125
126
  defaultMatches: false
@@ -143,10 +144,8 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
143
144
  onRangePositionChange: inOnRangePositionChange,
144
145
  calendars,
145
146
  currentMonthCalendarPosition = 1,
146
- components,
147
- componentsProps,
148
- slots: innerSlots,
149
- slotProps: innerSlotProps,
147
+ slots,
148
+ slotProps,
150
149
  loading,
151
150
  renderLoading,
152
151
  disableHighlightToday,
@@ -177,8 +176,6 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
177
176
  const utils = useUtils();
178
177
  const localeText = useLocaleText();
179
178
  const now = useNow(timezone);
180
- const slots = innerSlots != null ? innerSlots : uncapitalizeObjectKeys(components);
181
- const slotProps = innerSlotProps != null ? innerSlotProps : componentsProps;
182
179
  const {
183
180
  rangePosition,
184
181
  onRangePositionChange
@@ -272,6 +269,34 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
272
269
  shouldDisableDate: wrappedShouldDisableDate,
273
270
  timezone
274
271
  });
272
+
273
+ // When disabled, limit the view to the selected date
274
+ const minDateWithDisabled = disabled && value[0] || minDate;
275
+ const maxDateWithDisabled = disabled && value[1] || maxDate;
276
+ const CalendarHeader = (_slots$calendarHeader = slots == null ? void 0 : slots.calendarHeader) != null ? _slots$calendarHeader : PickersCalendarHeader;
277
+ const calendarHeaderProps = useSlotProps({
278
+ elementType: CalendarHeader,
279
+ externalSlotProps: slotProps == null ? void 0 : slotProps.calendarHeader,
280
+ additionalProps: {
281
+ views: ['day'],
282
+ view: 'day',
283
+ currentMonth: calendarState.currentMonth,
284
+ onMonthChange: (newMonth, direction) => handleChangeMonth({
285
+ newMonth,
286
+ direction
287
+ }),
288
+ minDate: minDateWithDisabled,
289
+ maxDate: maxDateWithDisabled,
290
+ disabled,
291
+ disablePast,
292
+ disableFuture,
293
+ reduceAnimations,
294
+ slots,
295
+ slotProps,
296
+ timezone
297
+ },
298
+ ownerState: props
299
+ });
275
300
  const prevValue = React.useRef(null);
276
301
  React.useEffect(() => {
277
302
  var _prevValue$current, _prevValue$current2;
@@ -325,10 +350,6 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
325
350
  readOnly,
326
351
  disabled
327
352
  };
328
-
329
- // When disabled, limit the view to the selected date
330
- const minDateWithDisabled = disabled && value[0] || minDate;
331
- const maxDateWithDisabled = disabled && value[1] || maxDate;
332
353
  const [rangePreviewDay, setRangePreviewDay] = React.useState(null);
333
354
  const CalendarTransitionProps = React.useMemo(() => ({
334
355
  onMouseLeave: () => setRangePreviewDay(null)
@@ -425,60 +446,46 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
425
446
  children: [/*#__PURE__*/_jsx(Watermark, {
426
447
  packageName: "x-date-pickers-pro",
427
448
  releaseInfo: releaseInfo
428
- }), calendarMonths.map((month, index) => /*#__PURE__*/_jsxs(DateRangeCalendarMonthContainer, {
429
- className: classes.monthContainer,
430
- children: [calendars === 1 ? /*#__PURE__*/_jsx(PickersCalendarHeader, {
431
- views: ['day'],
432
- view: 'day',
433
- currentMonth: calendarState.currentMonth,
434
- onMonthChange: (newMonth, direction) => handleChangeMonth({
435
- newMonth,
436
- direction
437
- }),
438
- minDate: minDateWithDisabled,
439
- maxDate: maxDateWithDisabled,
440
- disabled: disabled,
441
- disablePast: disablePast,
442
- disableFuture: disableFuture,
443
- reduceAnimations: reduceAnimations,
444
- slots: slots,
445
- slotProps: slotProps,
446
- timezone: timezone
447
- }) : /*#__PURE__*/_jsx(DateRangeCalendarArrowSwitcher, {
448
- onGoToPrevious: selectPreviousMonth,
449
- onGoToNext: selectNextMonth,
450
- isPreviousHidden: index !== 0,
451
- isPreviousDisabled: isPreviousMonthDisabled,
452
- previousLabel: localeText.previousMonth,
453
- isNextHidden: index !== calendars - 1,
454
- isNextDisabled: isNextMonthDisabled,
455
- nextLabel: localeText.nextMonth,
456
- slots: slots,
457
- slotProps: slotProps,
458
- children: utils.format(visibleMonths[month], 'monthAndYear')
459
- }), /*#__PURE__*/_jsx(DayCalendarForRange, _extends({
460
- className: classes.dayCalendar
461
- }, calendarState, baseDateValidationProps, commonViewProps, {
462
- onMonthSwitchingAnimationEnd: onMonthSwitchingAnimationEnd,
463
- onFocusedDayChange: changeFocusedDay,
464
- reduceAnimations: reduceAnimations,
465
- selectedDays: value,
466
- onSelectedDaysChange: handleSelectedDayChange,
467
- currentMonth: visibleMonths[month],
468
- TransitionProps: CalendarTransitionProps,
469
- shouldDisableDate: wrappedShouldDisableDate,
470
- showDaysOutsideCurrentMonth: calendars === 1 && showDaysOutsideCurrentMonth,
471
- dayOfWeekFormatter: dayOfWeekFormatter,
472
- loading: loading,
473
- renderLoading: renderLoading,
474
- slots: slotsForDayCalendar,
475
- slotProps: slotPropsForDayCalendar,
476
- autoFocus: month === focusedMonth,
477
- fixedWeekNumber: fixedWeekNumber,
478
- displayWeekNumber: displayWeekNumber,
479
- timezone: timezone
480
- }), index)]
481
- }, month))]
449
+ }), calendarMonths.map((month, index) => {
450
+ var _calendarHeaderProps$;
451
+ return /*#__PURE__*/_jsxs(DateRangeCalendarMonthContainer, {
452
+ className: classes.monthContainer,
453
+ children: [calendars === 1 ? /*#__PURE__*/_jsx(CalendarHeader, _extends({}, calendarHeaderProps)) : /*#__PURE__*/_jsx(DateRangeCalendarArrowSwitcher, {
454
+ onGoToPrevious: selectPreviousMonth,
455
+ onGoToNext: selectNextMonth,
456
+ isPreviousHidden: index !== 0,
457
+ isPreviousDisabled: isPreviousMonthDisabled,
458
+ previousLabel: localeText.previousMonth,
459
+ isNextHidden: index !== calendars - 1,
460
+ isNextDisabled: isNextMonthDisabled,
461
+ nextLabel: localeText.nextMonth,
462
+ slots: slots,
463
+ slotProps: slotProps,
464
+ children: utils.formatByString(visibleMonths[month], (_calendarHeaderProps$ = calendarHeaderProps.format) != null ? _calendarHeaderProps$ : `${utils.formats.month} ${utils.formats.year}`)
465
+ }), /*#__PURE__*/_jsx(DayCalendarForRange, _extends({
466
+ className: classes.dayCalendar
467
+ }, calendarState, baseDateValidationProps, commonViewProps, {
468
+ onMonthSwitchingAnimationEnd: onMonthSwitchingAnimationEnd,
469
+ onFocusedDayChange: changeFocusedDay,
470
+ reduceAnimations: reduceAnimations,
471
+ selectedDays: value,
472
+ onSelectedDaysChange: handleSelectedDayChange,
473
+ currentMonth: visibleMonths[month],
474
+ TransitionProps: CalendarTransitionProps,
475
+ shouldDisableDate: wrappedShouldDisableDate,
476
+ showDaysOutsideCurrentMonth: calendars === 1 && showDaysOutsideCurrentMonth,
477
+ dayOfWeekFormatter: dayOfWeekFormatter,
478
+ loading: loading,
479
+ renderLoading: renderLoading,
480
+ slots: slotsForDayCalendar,
481
+ slotProps: slotPropsForDayCalendar,
482
+ autoFocus: month === focusedMonth,
483
+ fixedWeekNumber: fixedWeekNumber,
484
+ displayWeekNumber: displayWeekNumber,
485
+ timezone: timezone
486
+ }), index)]
487
+ }, month);
488
+ })]
482
489
  }));
483
490
  });
484
491
  process.env.NODE_ENV !== "production" ? DateRangeCalendar.propTypes = {
@@ -500,18 +507,6 @@ process.env.NODE_ENV !== "production" ? DateRangeCalendar.propTypes = {
500
507
  calendars: PropTypes.oneOf([1, 2, 3]),
501
508
  classes: PropTypes.object,
502
509
  className: PropTypes.string,
503
- /**
504
- * Overridable components.
505
- * @default {}
506
- * @deprecated Please use `slots`.
507
- */
508
- components: PropTypes.object,
509
- /**
510
- * The props used for each component slot.
511
- * @default {}
512
- * @deprecated Please use `slotProps`.
513
- */
514
- componentsProps: PropTypes.object,
515
510
  /**
516
511
  * Position the current month is rendered in.
517
512
  * @default 1
@@ -519,7 +514,6 @@ process.env.NODE_ENV !== "production" ? DateRangeCalendar.propTypes = {
519
514
  currentMonthCalendarPosition: PropTypes.oneOf([1, 2, 3]),
520
515
  /**
521
516
  * Formats the day of week displayed in the calendar header.
522
- * @param {string} day The day of week provided by the adapter. Deprecated, will be removed in v7: Use `date` instead.
523
517
  * @param {TDate} date The date of the day of week provided by the adapter.
524
518
  * @returns {string} The name to display.
525
519
  * @default (_day: string, date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()
@@ -3,22 +3,29 @@ import { SxProps } from '@mui/system';
3
3
  import { SlotComponentProps } from '@mui/base/utils';
4
4
  import { Theme } from '@mui/material/styles';
5
5
  import { TimezoneProps } from '@mui/x-date-pickers/models';
6
- import { PickersCalendarHeaderSlotsComponent, PickersCalendarHeaderSlotsComponentsProps } from '@mui/x-date-pickers/PickersCalendarHeader';
7
- import { BaseDateValidationProps, DefaultizedProps, ExportedDayCalendarProps, DayCalendarSlotsComponent, DayCalendarSlotsComponentsProps, PickersArrowSwitcherSlotsComponent, PickersArrowSwitcherSlotsComponentsProps, PickerSelectionState, DayCalendarProps, ExportedUseViewsOptions, UncapitalizeObjectKeys } from '@mui/x-date-pickers/internals';
6
+ import { PickersCalendarHeader, PickersCalendarHeaderProps, PickersCalendarHeaderSlotsComponent, PickersCalendarHeaderSlotsComponentsProps } from '@mui/x-date-pickers/PickersCalendarHeader';
7
+ import { BaseDateValidationProps, DefaultizedProps, ExportedDayCalendarProps, DayCalendarSlotsComponent, DayCalendarSlotsComponentsProps, PickersArrowSwitcherSlotsComponent, PickersArrowSwitcherSlotsComponentsProps, PickerSelectionState, DayCalendarProps, ExportedUseViewsOptions } from '@mui/x-date-pickers/internals';
8
8
  import { DateRange, DayRangeValidationProps } from '../internals/models';
9
9
  import { DateRangeCalendarClasses } from './dateRangeCalendarClasses';
10
10
  import { DateRangePickerDay, DateRangePickerDayProps } from '../DateRangePickerDay';
11
11
  import { UseRangePositionProps } from '../internals/hooks/useRangePosition';
12
12
  export type DateRangePosition = 'start' | 'end';
13
- export interface DateRangeCalendarSlotsComponent<TDate> extends PickersArrowSwitcherSlotsComponent, Omit<DayCalendarSlotsComponent<TDate>, 'Day'>, PickersCalendarHeaderSlotsComponent {
13
+ export interface DateRangeCalendarSlotsComponent<TDate> extends PickersArrowSwitcherSlotsComponent, Omit<DayCalendarSlotsComponent<TDate>, 'day'>, PickersCalendarHeaderSlotsComponent {
14
+ /**
15
+ * Custom component for calendar header.
16
+ * Check the [PickersCalendarHeader](https://mui.com/x/api/date-pickers/pickers-calendar-header/) component.
17
+ * @default PickersCalendarHeader
18
+ */
19
+ calendarHeader?: React.ElementType<PickersCalendarHeaderProps<TDate>>;
14
20
  /**
15
21
  * Custom component for day in range pickers.
16
22
  * Check the [DateRangePickersDay](https://mui.com/x/api/date-pickers/date-range-picker-day/) component.
17
23
  * @default DateRangePickersDay
18
24
  */
19
- Day?: React.ElementType<DateRangePickerDayProps<TDate>>;
25
+ day?: React.ElementType<DateRangePickerDayProps<TDate>>;
20
26
  }
21
27
  export interface DateRangeCalendarSlotsComponentsProps<TDate> extends PickersArrowSwitcherSlotsComponentsProps, Omit<DayCalendarSlotsComponentsProps<TDate>, 'day'>, PickersCalendarHeaderSlotsComponentsProps<TDate> {
28
+ calendarHeader?: SlotComponentProps<typeof PickersCalendarHeader, {}, DateRangeCalendarProps<TDate>>;
22
29
  day?: SlotComponentProps<typeof DateRangePickerDay, {}, DayCalendarProps<TDate> & {
23
30
  day: TDate;
24
31
  selected: boolean;
@@ -100,23 +107,11 @@ export interface DateRangeCalendarProps<TDate> extends ExportedDateRangeCalendar
100
107
  * The system prop that allows defining system overrides as well as additional CSS styles.
101
108
  */
102
109
  sx?: SxProps<Theme>;
103
- /**
104
- * Overridable components.
105
- * @default {}
106
- * @deprecated Please use `slots`.
107
- */
108
- components?: DateRangeCalendarSlotsComponent<TDate>;
109
- /**
110
- * The props used for each component slot.
111
- * @default {}
112
- * @deprecated Please use `slotProps`.
113
- */
114
- componentsProps?: DateRangeCalendarSlotsComponentsProps<TDate>;
115
110
  /**
116
111
  * Overridable component slots.
117
112
  * @default {}
118
113
  */
119
- slots?: UncapitalizeObjectKeys<DateRangeCalendarSlotsComponent<TDate>>;
114
+ slots?: DateRangeCalendarSlotsComponent<TDate>;
120
115
  /**
121
116
  * The props used for each component slot.
122
117
  * @default {}
@@ -68,18 +68,6 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes = {
68
68
  * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
69
69
  */
70
70
  closeOnSelect: PropTypes.bool,
71
- /**
72
- * Overridable components.
73
- * @default {}
74
- * @deprecated Please use `slots`.
75
- */
76
- components: PropTypes.object,
77
- /**
78
- * The props used for each component slot.
79
- * @default {}
80
- * @deprecated Please use `slotProps`.
81
- */
82
- componentsProps: PropTypes.object,
83
71
  /**
84
72
  * Position the current month is rendered in.
85
73
  * @default 1
@@ -87,7 +75,6 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes = {
87
75
  currentMonthCalendarPosition: PropTypes.oneOf([1, 2, 3]),
88
76
  /**
89
77
  * Formats the day of week displayed in the calendar header.
90
- * @param {string} day The day of week provided by the adapter. Deprecated, will be removed in v7: Use `date` instead.
91
78
  * @param {TDate} date The date of the day of week provided by the adapter.
92
79
  * @returns {string} The name to display.
93
80
  * @default (_day: string, date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()
@@ -1,4 +1,3 @@
1
- import { UncapitalizeObjectKeys } from '@mui/x-date-pickers/internals';
2
1
  import { DesktopDateRangePickerProps, DesktopDateRangePickerSlotsComponent, DesktopDateRangePickerSlotsComponentsProps } from '../DesktopDateRangePicker';
3
2
  import { MobileDateRangePickerProps, MobileDateRangePickerSlotsComponent, MobileDateRangePickerSlotsComponentsProps } from '../MobileDateRangePicker';
4
3
  export interface DateRangePickerSlotsComponents<TDate> extends DesktopDateRangePickerSlotsComponent<TDate>, MobileDateRangePickerSlotsComponent<TDate> {
@@ -12,23 +11,11 @@ export interface DateRangePickerProps<TDate> extends DesktopDateRangePickerProps
12
11
  * @example '@media (min-width: 720px)' or theme.breakpoints.up("sm")
13
12
  */
14
13
  desktopModeMediaQuery?: string;
15
- /**
16
- * Overridable components.
17
- * @default {}
18
- * @deprecated Please use `slots`.
19
- */
20
- components?: DateRangePickerSlotsComponents<TDate>;
21
- /**
22
- * The props used for each component slot.
23
- * @default {}
24
- * @deprecated Please use `slotProps`.
25
- */
26
- componentsProps?: DateRangePickerSlotsComponentsProps<TDate>;
27
14
  /**
28
15
  * Overridable component slots.
29
16
  * @default {}
30
17
  */
31
- slots?: UncapitalizeObjectKeys<DateRangePickerSlotsComponents<TDate>>;
18
+ slots?: DateRangePickerSlotsComponents<TDate>;
32
19
  /**
33
20
  * The props used for each component slot.
34
21
  * @default {}
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { LocalizedComponent } from '@mui/x-date-pickers/locales';
3
- import { DefaultizedProps, BaseDateValidationProps, BasePickerInputProps, PickerViewRendererLookup, UncapitalizeObjectKeys } from '@mui/x-date-pickers/internals';
3
+ import { DefaultizedProps, BaseDateValidationProps, BasePickerInputProps, PickerViewRendererLookup } from '@mui/x-date-pickers/internals';
4
4
  import { DateRangeValidationError } from '../models';
5
5
  import { DateRange } from '../internals/models';
6
6
  import { DateRangeCalendarSlotsComponent, DateRangeCalendarSlotsComponentsProps, ExportedDateRangeCalendarProps } from '../DateRangeCalendar';
@@ -11,29 +11,17 @@ export interface BaseDateRangePickerSlotsComponent<TDate> extends DateRangeCalen
11
11
  * Custom component for the toolbar rendered above the views.
12
12
  * @default DateTimePickerToolbar
13
13
  */
14
- Toolbar?: React.JSXElementConstructor<DateRangePickerToolbarProps<TDate>>;
14
+ toolbar?: React.JSXElementConstructor<DateRangePickerToolbarProps<TDate>>;
15
15
  }
16
16
  export interface BaseDateRangePickerSlotsComponentsProps<TDate> extends DateRangeCalendarSlotsComponentsProps<TDate> {
17
17
  toolbar?: ExportedDateRangePickerToolbarProps;
18
18
  }
19
19
  export interface BaseDateRangePickerProps<TDate> extends Omit<BasePickerInputProps<DateRange<TDate>, TDate, 'day', DateRangeValidationError>, 'view' | 'views' | 'openTo' | 'onViewChange' | 'orientation'>, ExportedDateRangeCalendarProps<TDate>, BaseDateValidationProps<TDate> {
20
- /**
21
- * Overridable components.
22
- * @default {}
23
- * @deprecated Please use `slots`.
24
- */
25
- components?: BaseDateRangePickerSlotsComponent<TDate>;
26
- /**
27
- * The props used for each component slot.
28
- * @default {}
29
- * @deprecated Please use `slotProps`.
30
- */
31
- componentsProps?: BaseDateRangePickerSlotsComponentsProps<TDate>;
32
20
  /**
33
21
  * Overridable component slots.
34
22
  * @default {}
35
23
  */
36
- slots?: UncapitalizeObjectKeys<BaseDateRangePickerSlotsComponent<TDate>>;
24
+ slots?: BaseDateRangePickerSlotsComponent<TDate>;
37
25
  /**
38
26
  * The props used for each component slot.
39
27
  * @default {}
@@ -47,5 +35,5 @@ export interface BaseDateRangePickerProps<TDate> extends Omit<BasePickerInputPro
47
35
  viewRenderers?: Partial<PickerViewRendererLookup<DateRange<TDate>, 'day', DateRangeViewRendererProps<TDate, 'day'>, {}>>;
48
36
  }
49
37
  type UseDateRangePickerDefaultizedProps<TDate, Props extends BaseDateRangePickerProps<TDate>> = LocalizedComponent<TDate, DefaultizedProps<Props, keyof BaseDateValidationProps<TDate>>>;
50
- export declare function useDateRangePickerDefaultizedProps<TDate, Props extends BaseDateRangePickerProps<TDate>>(props: Props, name: string): UseDateRangePickerDefaultizedProps<TDate, Omit<Props, 'components' | 'componentsProps'>>;
38
+ export declare function useDateRangePickerDefaultizedProps<TDate, Props extends BaseDateRangePickerProps<TDate>>(props: Props, name: string): UseDateRangePickerDefaultizedProps<TDate, Props>;
51
39
  export {};
@@ -1,23 +1,16 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["components", "componentsProps"];
4
2
  import * as React from 'react';
5
3
  import { useThemeProps } from '@mui/material/styles';
6
- import { useDefaultDates, useUtils, applyDefaultDate, uncapitalizeObjectKeys } from '@mui/x-date-pickers/internals';
4
+ import { useDefaultDates, useUtils, applyDefaultDate } from '@mui/x-date-pickers/internals';
7
5
  import { DateRangePickerToolbar } from './DateRangePickerToolbar';
8
6
  export function useDateRangePickerDefaultizedProps(props, name) {
9
- var _themeProps$disableFu, _themeProps$disablePa, _themeProps$slots, _themeProps$slotProps;
7
+ var _themeProps$disableFu, _themeProps$disablePa;
10
8
  const utils = useUtils();
11
9
  const defaultDates = useDefaultDates();
12
- const _useThemeProps = useThemeProps({
13
- props,
14
- name
15
- }),
16
- {
17
- components,
18
- componentsProps
19
- } = _useThemeProps,
20
- themeProps = _objectWithoutPropertiesLoose(_useThemeProps, _excluded);
10
+ const themeProps = useThemeProps({
11
+ props,
12
+ name
13
+ });
21
14
  const localeText = React.useMemo(() => {
22
15
  var _themeProps$localeTex;
23
16
  if (((_themeProps$localeTex = themeProps.localeText) == null ? void 0 : _themeProps$localeTex.toolbarTitle) == null) {
@@ -35,7 +28,6 @@ export function useDateRangePickerDefaultizedProps(props, name) {
35
28
  maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate),
36
29
  slots: _extends({
37
30
  toolbar: DateRangePickerToolbar
38
- }, (_themeProps$slots = themeProps.slots) != null ? _themeProps$slots : uncapitalizeObjectKeys(components)),
39
- slotProps: (_themeProps$slotProps = themeProps.slotProps) != null ? _themeProps$slotProps : componentsProps
31
+ }, themeProps.slots)
40
32
  });
41
33
  }
@@ -83,18 +83,6 @@ DesktopDateRangePicker.propTypes = {
83
83
  * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
84
84
  */
85
85
  closeOnSelect: PropTypes.bool,
86
- /**
87
- * Overridable components.
88
- * @default {}
89
- * @deprecated Please use `slots`.
90
- */
91
- components: PropTypes.object,
92
- /**
93
- * The props used for each component slot.
94
- * @default {}
95
- * @deprecated Please use `slotProps`.
96
- */
97
- componentsProps: PropTypes.object,
98
86
  /**
99
87
  * Position the current month is rendered in.
100
88
  * @default 1
@@ -102,7 +90,6 @@ DesktopDateRangePicker.propTypes = {
102
90
  currentMonthCalendarPosition: PropTypes.oneOf([1, 2, 3]),
103
91
  /**
104
92
  * Formats the day of week displayed in the calendar header.
105
- * @param {string} day The day of week provided by the adapter. Deprecated, will be removed in v7: Use `date` instead.
106
93
  * @param {TDate} date The date of the day of week provided by the adapter.
107
94
  * @returns {string} The name to display.
108
95
  * @default (_day: string, date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()
@@ -1,7 +1,7 @@
1
- import { MakeOptional, UncapitalizeObjectKeys } from '@mui/x-date-pickers/internals';
1
+ import { MakeOptional } from '@mui/x-date-pickers/internals';
2
2
  import { UseDesktopRangePickerSlotsComponent, UseDesktopRangePickerSlotsComponentsProps, DesktopRangeOnlyPickerProps } from '../internals/hooks/useDesktopRangePicker';
3
3
  import { BaseDateRangePickerProps, BaseDateRangePickerSlotsComponent, BaseDateRangePickerSlotsComponentsProps } from '../DateRangePicker/shared';
4
- export interface DesktopDateRangePickerSlotsComponent<TDate> extends BaseDateRangePickerSlotsComponent<TDate>, MakeOptional<UseDesktopRangePickerSlotsComponent<TDate, 'day'>, 'Field'> {
4
+ export interface DesktopDateRangePickerSlotsComponent<TDate> extends BaseDateRangePickerSlotsComponent<TDate>, MakeOptional<UseDesktopRangePickerSlotsComponent<TDate, 'day'>, 'field'> {
5
5
  }
6
6
  export interface DesktopDateRangePickerSlotsComponentsProps<TDate> extends BaseDateRangePickerSlotsComponentsProps<TDate>, UseDesktopRangePickerSlotsComponentsProps<TDate, 'day'> {
7
7
  }
@@ -11,23 +11,11 @@ export interface DesktopDateRangePickerProps<TDate> extends BaseDateRangePickerP
11
11
  * @default 2
12
12
  */
13
13
  calendars?: 1 | 2 | 3;
14
- /**
15
- * Overridable components.
16
- * @default {}
17
- * @deprecated Please use `slots`.
18
- */
19
- components?: DesktopDateRangePickerSlotsComponent<TDate>;
20
- /**
21
- * The props used for each component slot.
22
- * @default {}
23
- * @deprecated Please use `slotProps`.
24
- */
25
- componentsProps?: DesktopDateRangePickerSlotsComponentsProps<TDate>;
26
14
  /**
27
15
  * Overridable component slots.
28
16
  * @default {}
29
17
  */
30
- slots?: UncapitalizeObjectKeys<DesktopDateRangePickerSlotsComponent<TDate>>;
18
+ slots?: DesktopDateRangePickerSlotsComponent<TDate>;
31
19
  /**
32
20
  * The props used for each component slot.
33
21
  * @default {}
@@ -83,18 +83,6 @@ MobileDateRangePicker.propTypes = {
83
83
  * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
84
84
  */
85
85
  closeOnSelect: PropTypes.bool,
86
- /**
87
- * Overridable components.
88
- * @default {}
89
- * @deprecated Please use `slots`.
90
- */
91
- components: PropTypes.object,
92
- /**
93
- * The props used for each component slot.
94
- * @default {}
95
- * @deprecated Please use `slotProps`.
96
- */
97
- componentsProps: PropTypes.object,
98
86
  /**
99
87
  * Position the current month is rendered in.
100
88
  * @default 1
@@ -102,7 +90,6 @@ MobileDateRangePicker.propTypes = {
102
90
  currentMonthCalendarPosition: PropTypes.oneOf([1, 2, 3]),
103
91
  /**
104
92
  * Formats the day of week displayed in the calendar header.
105
- * @param {string} day The day of week provided by the adapter. Deprecated, will be removed in v7: Use `date` instead.
106
93
  * @param {TDate} date The date of the day of week provided by the adapter.
107
94
  * @returns {string} The name to display.
108
95
  * @default (_day: string, date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()
@@ -1,7 +1,7 @@
1
- import { MakeOptional, UncapitalizeObjectKeys } from '@mui/x-date-pickers/internals';
1
+ import { MakeOptional } from '@mui/x-date-pickers/internals';
2
2
  import { UseMobileRangePickerSlotsComponent, UseMobileRangePickerSlotsComponentsProps, MobileRangeOnlyPickerProps } from '../internals/hooks/useMobileRangePicker';
3
3
  import { BaseDateRangePickerProps, BaseDateRangePickerSlotsComponent, BaseDateRangePickerSlotsComponentsProps } from '../DateRangePicker/shared';
4
- export interface MobileDateRangePickerSlotsComponent<TDate> extends BaseDateRangePickerSlotsComponent<TDate>, MakeOptional<UseMobileRangePickerSlotsComponent<TDate, 'day'>, 'Field'> {
4
+ export interface MobileDateRangePickerSlotsComponent<TDate> extends BaseDateRangePickerSlotsComponent<TDate>, MakeOptional<UseMobileRangePickerSlotsComponent<TDate, 'day'>, 'field'> {
5
5
  }
6
6
  export interface MobileDateRangePickerSlotsComponentsProps<TDate> extends BaseDateRangePickerSlotsComponentsProps<TDate>, UseMobileRangePickerSlotsComponentsProps<TDate, 'day'> {
7
7
  }
@@ -11,23 +11,11 @@ export interface MobileDateRangePickerProps<TDate> extends BaseDateRangePickerPr
11
11
  * @default 2
12
12
  */
13
13
  calendars?: 1 | 2 | 3;
14
- /**
15
- * Overridable components.
16
- * @default {}
17
- * @deprecated Please use `slots`.
18
- */
19
- components?: MobileDateRangePickerSlotsComponent<TDate>;
20
- /**
21
- * The props used for each component slot.
22
- * @default {}
23
- * @deprecated Please use `slotProps`.
24
- */
25
- componentsProps?: MobileDateRangePickerSlotsComponentsProps<TDate>;
26
14
  /**
27
15
  * Overridable component slots.
28
16
  * @default {}
29
17
  */
30
- slots?: UncapitalizeObjectKeys<MobileDateRangePickerSlotsComponent<TDate>>;
18
+ slots?: MobileDateRangePickerSlotsComponent<TDate>;
31
19
  /**
32
20
  * The props used for each component slot.
33
21
  * @default {}
@@ -1,6 +1,6 @@
1
1
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
- const _excluded = ["slots", "slotProps", "components", "componentsProps", "disabled", "autoFocus", "unstableStartFieldRef", "unstableEndFieldRef", "className"],
3
+ const _excluded = ["slots", "slotProps", "disabled", "autoFocus", "unstableStartFieldRef", "unstableEndFieldRef", "className"],
4
4
  _excluded2 = ["onKeyDown", "ref", "readOnly", "inputMode"],
5
5
  _excluded3 = ["onKeyDown", "ref", "readOnly", "inputMode"];
6
6
  import * as React from 'react';
@@ -12,7 +12,7 @@ import Typography from '@mui/material/Typography';
12
12
  import { styled, useThemeProps } from '@mui/material/styles';
13
13
  import { useSlotProps } from '@mui/base/utils';
14
14
  import { unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
15
- import { splitFieldInternalAndForwardedProps, uncapitalizeObjectKeys } from '@mui/x-date-pickers/internals';
15
+ import { splitFieldInternalAndForwardedProps } from '@mui/x-date-pickers/internals';
16
16
  import { useMultiInputDateRangeField } from '../internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField';
17
17
  import { jsx as _jsx } from "react/jsx-runtime";
18
18
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -59,7 +59,7 @@ const MultiInputDateRangeFieldSeparator = styled(props => {
59
59
  * - [MultiInputDateRangeField API](https://mui.com/x/api/multi-input-date-range-field/)
60
60
  */
61
61
  const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInputDateRangeField(inProps, ref) {
62
- var _slots$root, _slots$textField, _slots$separator, _slotProps$separator;
62
+ var _slots$root, _slots$textField, _slots$separator;
63
63
  const themeProps = useThemeProps({
64
64
  props: inProps,
65
65
  name: 'MuiMultiInputDateRangeField'
@@ -69,10 +69,8 @@ const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
69
69
  forwardedProps
70
70
  } = splitFieldInternalAndForwardedProps(themeProps, 'date');
71
71
  const {
72
- slots: innerSlots,
73
- slotProps: innerSlotProps,
74
- components,
75
- componentsProps,
72
+ slots,
73
+ slotProps,
76
74
  disabled,
77
75
  autoFocus,
78
76
  unstableStartFieldRef,
@@ -80,8 +78,6 @@ const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
80
78
  className
81
79
  } = forwardedProps,
82
80
  otherForwardedProps = _objectWithoutPropertiesLoose(forwardedProps, _excluded);
83
- const slots = innerSlots != null ? innerSlots : uncapitalizeObjectKeys(components);
84
- const slotProps = innerSlotProps != null ? innerSlotProps : componentsProps;
85
81
  const ownerState = themeProps;
86
82
  const classes = useUtilityClasses(ownerState);
87
83
  const Root = (_slots$root = slots == null ? void 0 : slots.root) != null ? _slots$root : MultiInputDateRangeFieldRoot;
@@ -116,7 +112,7 @@ const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
116
112
  const Separator = (_slots$separator = slots == null ? void 0 : slots.separator) != null ? _slots$separator : MultiInputDateRangeFieldSeparator;
117
113
  const separatorProps = useSlotProps({
118
114
  elementType: Separator,
119
- externalSlotProps: (_slotProps$separator = slotProps == null ? void 0 : slotProps.separator) != null ? _slotProps$separator : componentsProps == null ? void 0 : componentsProps.separator,
115
+ externalSlotProps: slotProps == null ? void 0 : slotProps.separator,
120
116
  ownerState,
121
117
  className: classes.separator
122
118
  });
@@ -186,18 +182,6 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
186
182
  classes: PropTypes.object,
187
183
  className: PropTypes.string,
188
184
  component: PropTypes.elementType,
189
- /**
190
- * Overridable components.
191
- * @default {}
192
- * @deprecated Please use `slots`.
193
- */
194
- components: PropTypes.object,
195
- /**
196
- * The props used for each component slot.
197
- * @default {}
198
- * @deprecated Please use `slotProps`.
199
- */
200
- componentsProps: PropTypes.object,
201
185
  /**
202
186
  * The default value. Use when the component is not controlled.
203
187
  */