@mui/x-date-pickers-pro 6.0.0-alpha.14 → 6.0.0-alpha.15

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 (103) hide show
  1. package/CHANGELOG.md +157 -0
  2. package/DateRangeCalendar/DateRangeCalendar.js +29 -13
  3. package/DateRangeCalendar/DateRangeCalendar.types.d.ts +13 -1
  4. package/DateRangePicker/DateRangePicker.d.ts +1 -1
  5. package/DateRangePicker/DateRangePickerView.d.ts +1 -1
  6. package/DateRangePicker/DateRangePickerViewDesktop.d.ts +1 -1
  7. package/DateRangePicker/DateRangePickerViewDesktop.js +3 -3
  8. package/DateRangePicker/DateRangePickerViewMobile.d.ts +1 -1
  9. package/DateRangePicker/DateRangePickerViewMobile.js +2 -2
  10. package/DesktopNextDateRangePicker/DesktopNextDateRangePicker.js +18 -6
  11. package/DesktopNextDateRangePicker/DesktopNextDateRangePicker.types.d.ts +13 -1
  12. package/MobileNextDateRangePicker/MobileNextDateRangePicker.js +18 -6
  13. package/MobileNextDateRangePicker/MobileNextDateRangePicker.types.d.ts +13 -1
  14. package/MultiInputDateRangeField/MultiInputDateRangeField.js +26 -9
  15. package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +13 -0
  16. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +37 -10
  17. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +13 -0
  18. package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +37 -10
  19. package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +13 -0
  20. package/NextDateRangePicker/NextDateRangePicker.js +12 -0
  21. package/NextDateRangePicker/NextDateRangePicker.types.d.ts +13 -0
  22. package/NextDateRangePicker/shared.d.ts +14 -2
  23. package/NextDateRangePicker/shared.js +17 -9
  24. package/SingleInputDateRangeField/SingleInputDateRangeField.js +18 -4
  25. package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +13 -1
  26. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +25 -4
  27. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +13 -0
  28. package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +27 -5
  29. package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +13 -0
  30. package/StaticNextDateRangePicker/StaticNextDateRangePicker.js +12 -0
  31. package/StaticNextDateRangePicker/StaticNextDateRangePicker.types.d.ts +13 -1
  32. package/index.js +3 -1
  33. package/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.js +37 -35
  34. package/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +14 -2
  35. package/internal/hooks/useMobileRangePicker/useMobileRangePicker.js +33 -33
  36. package/internal/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +4 -4
  37. package/internal/hooks/useStaticRangePicker/useStaticRangePicker.js +9 -9
  38. package/internal/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +3 -3
  39. package/internal/models/fields.d.ts +25 -14
  40. package/internal/utils/releaseInfo.js +1 -1
  41. package/legacy/DateRangeCalendar/DateRangeCalendar.js +29 -13
  42. package/legacy/DateRangePicker/DateRangePickerViewDesktop.js +3 -3
  43. package/legacy/DateRangePicker/DateRangePickerViewMobile.js +2 -2
  44. package/legacy/DesktopNextDateRangePicker/DesktopNextDateRangePicker.js +18 -6
  45. package/legacy/MobileNextDateRangePicker/MobileNextDateRangePicker.js +18 -6
  46. package/legacy/MultiInputDateRangeField/MultiInputDateRangeField.js +27 -10
  47. package/legacy/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +38 -11
  48. package/legacy/MultiInputTimeRangeField/MultiInputTimeRangeField.js +38 -11
  49. package/legacy/NextDateRangePicker/NextDateRangePicker.js +12 -0
  50. package/legacy/NextDateRangePicker/shared.js +15 -9
  51. package/legacy/SingleInputDateRangeField/SingleInputDateRangeField.js +19 -5
  52. package/legacy/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +27 -5
  53. package/legacy/SingleInputTimeRangeField/SingleInputTimeRangeField.js +28 -6
  54. package/legacy/StaticNextDateRangePicker/StaticNextDateRangePicker.js +12 -0
  55. package/legacy/index.js +3 -1
  56. package/legacy/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.js +38 -37
  57. package/legacy/internal/hooks/useMobileRangePicker/useMobileRangePicker.js +33 -34
  58. package/legacy/internal/hooks/useStaticRangePicker/useStaticRangePicker.js +9 -9
  59. package/legacy/internal/utils/releaseInfo.js +1 -1
  60. package/modern/DateRangeCalendar/DateRangeCalendar.js +29 -13
  61. package/modern/DateRangePicker/DateRangePickerViewDesktop.js +3 -3
  62. package/modern/DateRangePicker/DateRangePickerViewMobile.js +2 -2
  63. package/modern/DesktopNextDateRangePicker/DesktopNextDateRangePicker.js +17 -5
  64. package/modern/MobileNextDateRangePicker/MobileNextDateRangePicker.js +17 -5
  65. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +25 -8
  66. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +36 -9
  67. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +36 -9
  68. package/modern/NextDateRangePicker/NextDateRangePicker.js +12 -0
  69. package/modern/NextDateRangePicker/shared.js +16 -8
  70. package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +17 -3
  71. package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +24 -3
  72. package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +26 -4
  73. package/modern/StaticNextDateRangePicker/StaticNextDateRangePicker.js +12 -0
  74. package/modern/index.js +3 -1
  75. package/modern/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.js +36 -31
  76. package/modern/internal/hooks/useMobileRangePicker/useMobileRangePicker.js +29 -29
  77. package/modern/internal/hooks/useStaticRangePicker/useStaticRangePicker.js +8 -8
  78. package/modern/internal/utils/releaseInfo.js +1 -1
  79. package/node/DateRangeCalendar/DateRangeCalendar.js +28 -12
  80. package/node/DateRangePicker/DateRangePickerViewDesktop.js +3 -3
  81. package/node/DateRangePicker/DateRangePickerViewMobile.js +2 -2
  82. package/node/DesktopNextDateRangePicker/DesktopNextDateRangePicker.js +17 -5
  83. package/node/MobileNextDateRangePicker/MobileNextDateRangePicker.js +17 -5
  84. package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +25 -8
  85. package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +36 -9
  86. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +36 -9
  87. package/node/NextDateRangePicker/NextDateRangePicker.js +12 -0
  88. package/node/NextDateRangePicker/shared.js +15 -7
  89. package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +17 -3
  90. package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +24 -3
  91. package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +26 -4
  92. package/node/StaticNextDateRangePicker/StaticNextDateRangePicker.js +12 -0
  93. package/node/index.js +3 -1
  94. package/node/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.js +35 -30
  95. package/node/internal/hooks/useMobileRangePicker/useMobileRangePicker.js +29 -29
  96. package/node/internal/hooks/useStaticRangePicker/useStaticRangePicker.js +8 -8
  97. package/node/internal/utils/releaseInfo.js +1 -1
  98. package/package.json +3 -3
  99. package/SingleInputDateRangeField/SingleInputDateRangeField.interfaces.d.ts +0 -6
  100. package/SingleInputDateRangeField/SingleInputDateRangeField.interfaces.js +0 -1
  101. package/legacy/SingleInputDateRangeField/SingleInputDateRangeField.interfaces.js +0 -1
  102. package/modern/SingleInputDateRangeField/SingleInputDateRangeField.interfaces.js +0 -1
  103. package/node/SingleInputDateRangeField/SingleInputDateRangeField.interfaces.js +0 -5
package/CHANGELOG.md CHANGED
@@ -3,6 +3,163 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 6.0.0-alpha.15
7
+
8
+ _Jan 13, 2023_
9
+
10
+ We'd like to offer a big thanks to the 9 contributors who made this release possible. Here are some highlights ✨:
11
+
12
+ - 🚀 Support components and slots for new pickers (#7390) @alexfauquette
13
+ - ✨ Update `onColumnOrderChange` behavior to match `onRowsOrderChange` (#7385) @DanailH
14
+ - 🌍 Improve Spanish (es-ES) and Belarusian (be-BY) locales
15
+ - 📚 Documentation improvements
16
+ - 🐞 Bugfixes
17
+
18
+ ### `@mui/x-data-grid@v6.0.0-alpha.15` / `@mui/x-data-grid-pro@6.0.0-alpha.15` / `@mui/x-data-grid-premium@6.0.0-alpha.15`
19
+
20
+ #### Breaking changes
21
+
22
+ - Remove the `onCellFocusOut` prop (#6302) @cherniavskii
23
+
24
+ The `onCellFocusOut` prop was removed. Use `componentsProps.cell.onBlur` instead:
25
+
26
+ ```tsx
27
+ <DataGrid
28
+ componentsProps={{
29
+ cell: {
30
+ onBlur: (event) => {
31
+ const cellElement = event.currentTarget;
32
+ const field = cellElement.getAttribute('data-field');
33
+ const rowId = cell.parentElement.getAttribute('data-id');
34
+ },
35
+ },
36
+ }}
37
+ />
38
+ ```
39
+
40
+ - [DataGrid] Stop exporting editing selector (#7456) @m4theushw
41
+
42
+ The `gridEditRowsStateSelector` selector was removed.
43
+
44
+ - [DataGrid] Rework column headers and virtual scroller positioning (#7001) @cherniavskii
45
+
46
+ The `headerHeight` prop was renamed to `columnHeaderHeight`.
47
+
48
+ - [DataGrid] Remove the `columnTypes` prop (#7309) @cherniavskii
49
+
50
+ The `columnTypes` prop was removed. For custom column types see [Custom column types](https://mui.com/x/react-data-grid/column-definition/#custom-column-types) docs.
51
+
52
+ - [DataGrid] Rename `linkOperators` to `logicOperators` (#7310) @cherniavskii
53
+
54
+ The `apiRef.current.setFilterLinkOperator` method was renamed to `apiRef.current.setFilterLogicOperator`.
55
+ The `GridLinkOperator` enum was renamed to `GridLogicOperator`.
56
+ The `GridFilterModel['linkOperator']` was renamed to `GridFilterModel['logicOperator']`.
57
+ The `linkOperators` prop of `GridFilterForm` and `GridFilterPanel` components was renamed to `logicOperators`.
58
+ The `linkOperatorInputProps` prop of `GridFilterForm` component was renamed to `logicOperatorInputProps`.
59
+ The `filterFormProps.linkOperatorInputProps` prop in `GridFilterForm` component was renamed to `filterFormProps.logicOperatorInputProps`.
60
+ The `GridLocaleText['filterPanelLinkOperator']` property was renamed to `GridLocaleText['filterPanelLogicOperator']`.
61
+ The `.MuiDataGrid-filterFormLinkOperatorInput`CSS class was renamed to `.MuiDataGrid-filterFormLogicOperatorInput`.
62
+
63
+ - [DataGrid] Remove `Alt+C` keyboard shortcut (#7466) @MBilalShafi
64
+
65
+ <kbd>Alt</kbd> (or <kbd>⌥ Option</kbd>) + <kbd>C</kbd> keyboard shortcut is no longer supported.
66
+
67
+ #### Changes
68
+
69
+ - [DataGrid] Fix <kbd>Tab</kbd> between portaled and non-portaled edit components (#7098) @m4theushw
70
+ - [DataGrid] Remove the `columnTypes` prop (#7309) @cherniavskii
71
+ - [DataGrid] Remove the `onCellFocusOut` prop (#6302) @cherniavskii
72
+ - [DataGrid] Rename `linkOperators` to `logicOperators` (#7310) @cherniavskii
73
+ - [DataGrid] Rework column headers and virtual scroller positioning (#7001) @cherniavskii
74
+ - [DataGrid] Stop exporting editing selector (#7456) @m4theushw
75
+ - [DataGrid] Update `onColumnOrderChange` behavior to match `onRowsOrderChange` (#7385) @DanailH
76
+ - [DataGrid] Improve Spanish (es-ES) locale (#7447) @Anderssxn
77
+ - [DataGrid] Remove Alt+C keyboard shortcut (#7466) @MBilalShafi
78
+ - [DataGridPremium] Fix Excel export not working with date strings (#7396) @cherniavskii
79
+
80
+ ### `@mui/x-date-pickers@6.0.0-alpha.15` / `@mui/x-date-pickers-pro@6.0.0-alpha.15`
81
+
82
+ #### Breaking changes
83
+
84
+ - [pickers] Stop using the `WrapperVariantContext` in `MonthCalendar` and `YearCalendar` (#7382) @flaviendelangle
85
+
86
+ The `modeMobile` and `modeDesktop` classes have been removed from the `PickersMonth` and `PickersYear` internal components.
87
+
88
+ If you were using those classes on responsive components,
89
+ you can import `DEFAULT_DESKTOP_MODE_MEDIA_QUERY` from `@mui/x-date-pickers` or `@mui/x-date-pickers-pro` (or use your custom media query if any):
90
+
91
+ ```diff
92
+ <GlobalStyles
93
+ styles={{
94
+ - [`.${pickersYearClasses.modeDesktop}`]: {
95
+ - backgroundColor: 'red'
96
+ - }
97
+ + [DEFAULT_DESKTOP_MODE_MEDIA_QUERY]: {
98
+ + [`.${pickersYearClasses.root}`]: {
99
+ + backgroundColor: 'red'
100
+ + }
101
+ + }
102
+ - [`.${pickersYearClasses.modeMobile}`]: {
103
+ - backgroundColor: 'red'
104
+ - }
105
+ + [DEFAULT_DESKTOP_MODE_MEDIA_QUERY.replace('@media', '@media not')]: {
106
+ + [`.${pickersYearClasses.root}`]: {
107
+ + backgroundColor: 'red'
108
+ + }
109
+ + }
110
+ }}
111
+ />
112
+ ```
113
+
114
+ Works exactly the same way for `PickersMonth`.
115
+
116
+ - [pickers] Refactor `shouldDisableTime` (#7299) @LukasTy
117
+
118
+ The `shouldDisableTime` prop signature has been changed. Either rename the prop usage to `shouldDisableClock` or refactor usage.
119
+
120
+ ```diff
121
+ <DateTimePicker
122
+ - shouldDisableTime={(timeValue, view) => view === 'hours' && timeValue < 12}
123
+ + shouldDisableClock={(timeValue, view) => view === 'hours' && timeValue < 12}
124
+ />
125
+ ```
126
+
127
+ ```diff
128
+ <DateTimePicker
129
+ - shouldDisableTime={(timeValue, view) => view === 'hours' && timeValue < 12}
130
+ + shouldDisableTime={(time, view) => view === 'hours' && value.hour() < 12}
131
+ />
132
+ ```
133
+
134
+ #### Changes
135
+
136
+ - [fields] Fix Android editing (#7444) @flaviendelangle
137
+ - [pickers] Add Belarusian (be-BY) locale (#7395) @volhalink
138
+ - [pickers] Hide am/pm controls when their is no hour view (#7380) @flaviendelangle
139
+ - [pickers] Hide the tabs by default on `DesktopNextDateTimePicker` (#7503) @flaviendelangle
140
+ - [pickers] Refactor `shouldDisableTime` (#7299) @LukasTy
141
+ - [pickers] Remove `WrapperVariantContext` from `DateTimePickerTabs` (#7374) @LukasTy
142
+ - [pickers] Stop using the `WrapperVariantContext` in `MonthCalendar` and `YearCalendar` (#7382) @flaviendelangle
143
+ - [pickers] Support `components` and `slots` for new pickers (#7390) @alexfauquette
144
+ - [pickers] Replace `slotsProps` by `slotProps` (#7528) @alexfauquette
145
+
146
+ ### Docs
147
+
148
+ - [docs] Fix codesandboxes using `DemoContainer` (#7388) @LukasTy
149
+ - [docs] Fix wrong reference to currentView (#7441) @oliviertassinari
150
+ - [docs] New page for `DateRangeCalendar` (#7378) @flaviendelangle
151
+ - [docs] Update the migration guide with the breaking changes between the legacy and the new pickers (#7345) @flaviendelangle
152
+ - [docs] Use new pickers on "Custom components" demos (#7194) @flaviendelangle
153
+
154
+ ### Core
155
+
156
+ - [core] Handle selection edge case (#7350) @oliviertassinari
157
+ - [core] Improve license message @oliviertassinari
158
+ - [pickers] Move default `closeOnSelect` to prop definition (#7459) @flaviendelangle
159
+ - [core] Move interfaces of UI views to dedicated files (#7458) @flaviendelangle
160
+ - [core] Update package used to import LicenseInfo (#7442) @oliviertassinari
161
+ - [test] Add a few inheritComponent (#7352) @oliviertassinari
162
+
6
163
  ## 6.0.0-alpha.14
7
164
 
8
165
  _Jan 5, 2023_
@@ -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 = ["value", "defaultValue", "onChange", "className", "disableFuture", "disablePast", "minDate", "maxDate", "shouldDisableDate", "reduceAnimations", "onMonthChange", "defaultCalendarMonth", "rangePosition", "onRangePositionChange", "calendars", "components", "componentsProps", "loading", "renderLoading", "disableHighlightToday", "readOnly", "disabled", "showDaysOutsideCurrentMonth", "dayOfWeekFormatter", "disableAutoMonthSwitching", "autoFocus", "fixedWeekNumber", "disableDragEditing", "displayWeekNumber"],
3
+ const _excluded = ["value", "defaultValue", "onChange", "className", "disableFuture", "disablePast", "minDate", "maxDate", "shouldDisableDate", "reduceAnimations", "onMonthChange", "defaultCalendarMonth", "rangePosition", "onRangePositionChange", "calendars", "components", "componentsProps", "slots", "slotProps", "loading", "renderLoading", "disableHighlightToday", "readOnly", "disabled", "showDaysOutsideCurrentMonth", "dayOfWeekFormatter", "disableAutoMonthSwitching", "autoFocus", "fixedWeekNumber", "disableDragEditing", "displayWeekNumber"],
4
4
  _excluded2 = ["isDragging", "rangeDragDay", "draggingDatePosition"];
5
5
  import * as React from 'react';
6
6
  import PropTypes from 'prop-types';
@@ -11,7 +11,7 @@ import { resolveComponentProps } 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
- import { applyDefaultDate, DAY_MARGIN, DayCalendar, defaultReduceAnimations, PickersArrowSwitcher, PickersCalendarHeader, useCalendarState, useDefaultDates, useLocaleText, useNextMonthDisabled, usePreviousMonthDisabled, useUtils, WrapperVariantContext, useNow } from '@mui/x-date-pickers/internals';
14
+ import { applyDefaultDate, DAY_MARGIN, DayCalendar, defaultReduceAnimations, PickersArrowSwitcher, PickersCalendarHeader, useCalendarState, useDefaultDates, useLocaleText, useNextMonthDisabled, usePreviousMonthDisabled, useUtils, WrapperVariantContext, useNow, uncapitalizeObjectKeys } from '@mui/x-date-pickers/internals';
15
15
  import { getReleaseInfo } from '../internal/utils/releaseInfo';
16
16
  import { dateRangeCalendarClasses, getDateRangeCalendarUtilityClass } from './dateRangeCalendarClasses';
17
17
  import { isEndOfRange, isRangeValid, isStartOfRange, isWithinRange } from '../internal/utils/date-utils';
@@ -129,6 +129,8 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
129
129
  calendars,
130
130
  components,
131
131
  componentsProps,
132
+ slots: innerSlots,
133
+ slotProps: innerslotProps,
132
134
  loading,
133
135
  renderLoading,
134
136
  disableHighlightToday,
@@ -143,6 +145,8 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
143
145
  displayWeekNumber
144
146
  } = props,
145
147
  other = _objectWithoutPropertiesLoose(props, _excluded);
148
+ const slots = innerSlots != null ? innerSlots : uncapitalizeObjectKeys(components);
149
+ const slotProps = innerslotProps != null ? innerslotProps : componentsProps;
146
150
  const [value, setValue] = useControlled({
147
151
  controlled: valueProp,
148
152
  default: defaultValue != null ? defaultValue : rangeValueManager.emptyValue,
@@ -311,10 +315,10 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
311
315
  setRangePreviewDay(null);
312
316
  }
313
317
  });
314
- const componentsForDayCalendar = _extends({
315
- Day: DateRangePickerDay
316
- }, components);
317
- const componentsPropsForDayCalendar = _extends({}, componentsProps, {
318
+ const slotsForDayCalendar = _extends({
319
+ day: DateRangePickerDay
320
+ }, slots);
321
+ const slotPropsForDayCalendar = _extends({}, slotProps, {
318
322
  day: dayOwnerState => {
319
323
  var _resolveComponentProp;
320
324
  const {
@@ -345,7 +349,7 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
345
349
  'data-position': datePosition
346
350
  }, dragEventHandlers, {
347
351
  draggable: isElementDraggable ? true : undefined
348
- }, (_resolveComponentProp = resolveComponentProps(componentsProps == null ? void 0 : componentsProps.day, dayOwnerState)) != null ? _resolveComponentProp : {});
352
+ }, (_resolveComponentProp = resolveComponentProps(slotProps == null ? void 0 : slotProps.day, dayOwnerState)) != null ? _resolveComponentProp : {});
349
353
  }
350
354
  });
351
355
  const visibleMonths = React.useMemo(() => Array.from({
@@ -395,8 +399,8 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
395
399
  disablePast: disablePast,
396
400
  disableFuture: disableFuture,
397
401
  reduceAnimations: reduceAnimations,
398
- components: components,
399
- componentsProps: componentsProps
402
+ slots: slots,
403
+ slotProps: slotProps
400
404
  }) : /*#__PURE__*/_jsx(DateRangeCalendarArrowSwitcher, {
401
405
  onGoToPrevious: selectPreviousMonth,
402
406
  onGoToNext: selectNextMonth,
@@ -406,8 +410,8 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
406
410
  isNextHidden: index !== calendars - 1,
407
411
  isNextDisabled: isNextMonthDisabled,
408
412
  nextLabel: localeText.nextMonth,
409
- components: components,
410
- componentsProps: componentsProps,
413
+ slots: slots,
414
+ slotProps: slotProps,
411
415
  children: utils.format(month, 'monthAndYear')
412
416
  }), /*#__PURE__*/_jsx(DayCalendarForRange, _extends({
413
417
  className: classes.dayCalendar
@@ -424,8 +428,8 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
424
428
  dayOfWeekFormatter: dayOfWeekFormatter,
425
429
  loading: loading,
426
430
  renderLoading: renderLoading,
427
- components: componentsForDayCalendar,
428
- componentsProps: componentsPropsForDayCalendar,
431
+ slots: slotsForDayCalendar,
432
+ slotProps: slotPropsForDayCalendar,
429
433
  autoFocus: month === focusedMonth,
430
434
  fixedWeekNumber: fixedWeekNumber,
431
435
  displayWeekNumber: displayWeekNumber
@@ -455,11 +459,13 @@ process.env.NODE_ENV !== "production" ? DateRangeCalendar.propTypes = {
455
459
  /**
456
460
  * Overrideable components.
457
461
  * @default {}
462
+ * @deprecated Please use `slots`.
458
463
  */
459
464
  components: PropTypes.object,
460
465
  /**
461
466
  * The props used for each component slot.
462
467
  * @default {}
468
+ * @deprecated Please use `slotProps`.
463
469
  */
464
470
  componentsProps: PropTypes.object,
465
471
  /**
@@ -577,6 +583,16 @@ process.env.NODE_ENV !== "production" ? DateRangeCalendar.propTypes = {
577
583
  * @default false
578
584
  */
579
585
  showDaysOutsideCurrentMonth: PropTypes.bool,
586
+ /**
587
+ * The props used for each component slot.
588
+ * @default {}
589
+ */
590
+ slotProps: PropTypes.object,
591
+ /**
592
+ * Overrideable component slots.
593
+ * @default {}
594
+ */
595
+ slots: PropTypes.object,
580
596
  /**
581
597
  * The system prop that allows defining system overrides as well as additional CSS styles.
582
598
  */
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import { SxProps } from '@mui/system';
3
3
  import { SlotComponentProps } from '@mui/base';
4
4
  import { Theme } from '@mui/material/styles';
5
- import { BaseDateValidationProps, DefaultizedProps, ExportedDayCalendarProps, DayCalendarSlotsComponent, DayCalendarSlotsComponentsProps, PickersArrowSwitcherSlotsComponent, PickersArrowSwitcherSlotsComponentsProps, PickerSelectionState, PickersCalendarHeaderSlotsComponent, PickersCalendarHeaderSlotsComponentsProps, DayCalendarProps, ExportedUseViewsOptions } from '@mui/x-date-pickers/internals';
5
+ import { BaseDateValidationProps, DefaultizedProps, ExportedDayCalendarProps, DayCalendarSlotsComponent, DayCalendarSlotsComponentsProps, PickersArrowSwitcherSlotsComponent, PickersArrowSwitcherSlotsComponentsProps, PickerSelectionState, PickersCalendarHeaderSlotsComponent, PickersCalendarHeaderSlotsComponentsProps, DayCalendarProps, ExportedUseViewsOptions, UncapitalizeObjectKeys } from '@mui/x-date-pickers/internals';
6
6
  import { DateRange, RangePositionProps, DayRangeValidationProps } from '../internal/models';
7
7
  import { DateRangeCalendarClasses } from './dateRangeCalendarClasses';
8
8
  import { DateRangePickerDay, DateRangePickerDayProps } from '../DateRangePickerDay';
@@ -91,13 +91,25 @@ export interface DateRangeCalendarProps<TDate> extends ExportedDateRangeCalendar
91
91
  /**
92
92
  * Overrideable components.
93
93
  * @default {}
94
+ * @deprecated Please use `slots`.
94
95
  */
95
96
  components?: DateRangeCalendarSlotsComponent<TDate>;
96
97
  /**
97
98
  * The props used for each component slot.
98
99
  * @default {}
100
+ * @deprecated Please use `slotProps`.
99
101
  */
100
102
  componentsProps?: DateRangeCalendarSlotsComponentsProps<TDate>;
103
+ /**
104
+ * Overrideable component slots.
105
+ * @default {}
106
+ */
107
+ slots?: UncapitalizeObjectKeys<DateRangeCalendarSlotsComponent<TDate>>;
108
+ /**
109
+ * The props used for each component slot.
110
+ * @default {}
111
+ */
112
+ slotProps?: DateRangeCalendarSlotsComponentsProps<TDate>;
101
113
  }
102
114
  export interface DateRangeCalendarOwnerState<TDate> extends DateRangeCalendarProps<TDate> {
103
115
  isDragging: boolean;
@@ -5,7 +5,7 @@ export interface DateRangePickerSlotsComponent<TDate> extends MobileDateRangePic
5
5
  }
6
6
  export interface DateRangePickerSlotsComponentsProps<TDate> extends MobileDateRangePickerSlotsComponentsProps<TDate>, DesktopDateRangePickerSlotsComponentsProps<TDate> {
7
7
  }
8
- export interface DateRangePickerProps<TDate> extends Omit<DesktopDateRangePickerProps<TDate>, 'components' | 'componentsProps'>, Omit<MobileDateRangePickerProps<TDate>, 'components' | 'componentsProps'> {
8
+ export interface DateRangePickerProps<TDate> extends Omit<DesktopDateRangePickerProps<TDate>, 'components' | 'componentsProps' | 'slots' | 'slotProps'>, Omit<MobileDateRangePickerProps<TDate>, 'components' | 'componentsProps' | 'slots' | 'slotProps'> {
9
9
  /**
10
10
  * CSS media query when `Mobile` mode will be changed to `Desktop`.
11
11
  * @default '@media (pointer: fine)'
@@ -16,7 +16,7 @@ export interface DateRangePickerViewSlotsComponent<TDate> extends DateRangePicke
16
16
  export interface DateRangePickerViewSlotsComponentsProps<TDate> extends DateRangePickerViewMobileSlotsComponentsProps<TDate> {
17
17
  toolbar?: ExportedBaseToolbarProps;
18
18
  }
19
- export interface ExportedDateRangePickerViewProps<TDate> extends ExportedDateRangePickerViewDesktopProps, DayRangeValidationProps<TDate>, Omit<ExportedDateCalendarProps<TDate>, 'value' | 'defaultValue' | 'onChange' | 'onYearChange' | keyof BaseDateValidationProps<TDate> | keyof DayValidationProps<TDate>> {
19
+ export interface ExportedDateRangePickerViewProps<TDate> extends ExportedDateRangePickerViewDesktopProps, DayRangeValidationProps<TDate>, Omit<ExportedDateCalendarProps<TDate>, 'value' | 'defaultValue' | 'onChange' | 'onYearChange' | 'monthsPerRow' | 'yearsPerRow' | keyof BaseDateValidationProps<TDate> | keyof DayValidationProps<TDate>> {
20
20
  /**
21
21
  * Overrideable components.
22
22
  * @default {}
@@ -24,7 +24,7 @@ export interface DesktopDateRangeCalendarSlotsComponentsProps<TDate> extends Pic
24
24
  day: TDate;
25
25
  }>;
26
26
  }
27
- export interface DateRangePickerViewDesktopProps<TDate> extends ExportedDateRangePickerViewDesktopProps, Omit<DayCalendarProps<TDate>, 'selectedDays' | 'onFocusedDayChange' | 'classes' | 'components' | 'componentsProps'>, DayValidationProps<TDate>, ExportedPickersArrowSwitcherProps {
27
+ export interface DateRangePickerViewDesktopProps<TDate> extends ExportedDateRangePickerViewDesktopProps, Omit<DayCalendarProps<TDate>, 'selectedDays' | 'onFocusedDayChange' | 'classes' | 'components' | 'componentsProps' | 'slots' | 'slotProps'>, DayValidationProps<TDate>, ExportedPickersArrowSwitcherProps {
28
28
  /**
29
29
  * Overrideable components.
30
30
  * @default {}
@@ -142,7 +142,7 @@ export function DateRangePickerViewDesktop(inProps) {
142
142
  const componentsForDayCalendar = _extends({
143
143
  Day: DateRangePickerDay
144
144
  }, components);
145
- const componentsPropsForDayCalendar = _extends({}, componentsProps, {
145
+ const slotPropsForDayCalendar = _extends({}, componentsProps, {
146
146
  day: dayOwnerState => {
147
147
  var _resolveComponentProp;
148
148
  const {
@@ -175,7 +175,7 @@ export function DateRangePickerViewDesktop(inProps) {
175
175
  isNextDisabled: isNextMonthDisabled,
176
176
  nextLabel: localeText.nextMonth,
177
177
  components: components,
178
- componentsProps: componentsProps,
178
+ slotProps: componentsProps,
179
179
  children: utils.format(monthOnIteration, 'monthAndYear')
180
180
  }), /*#__PURE__*/_createElement(DateRangePickerViewDesktopCalendar, _extends({}, other, {
181
181
  minDate: minDate,
@@ -189,7 +189,7 @@ export function DateRangePickerViewDesktop(inProps) {
189
189
  currentMonth: monthOnIteration,
190
190
  TransitionProps: CalendarTransitionProps,
191
191
  components: componentsForDayCalendar,
192
- componentsProps: componentsPropsForDayCalendar
192
+ slotProps: slotPropsForDayCalendar
193
193
  }))]
194
194
  }, index);
195
195
  })
@@ -16,7 +16,7 @@ export interface DateRangePickerViewMobileSlotsComponentsProps<TDate> extends Pi
16
16
  day: TDate;
17
17
  }>;
18
18
  }
19
- interface DesktopDateRangeCalendarProps<TDate> extends Omit<DayCalendarProps<TDate>, 'selectedDays' | 'onFocusedDayChange' | 'classes' | 'components' | 'componentsProps'>, DayValidationProps<TDate>, ExportedCalendarHeaderProps<TDate> {
19
+ interface DesktopDateRangeCalendarProps<TDate> extends Omit<DayCalendarProps<TDate>, 'selectedDays' | 'onFocusedDayChange' | 'classes' | 'components' | 'componentsProps' | 'slots' | 'slotProps'>, DayValidationProps<TDate>, ExportedCalendarHeaderProps<TDate> {
20
20
  /**
21
21
  * Overrideable components.
22
22
  * @default {}
@@ -62,7 +62,7 @@ export function DateRangePickerViewMobile(props) {
62
62
  return /*#__PURE__*/_jsxs(React.Fragment, {
63
63
  children: [/*#__PURE__*/_jsx(PickersCalendarHeader, _extends({
64
64
  components: components,
65
- componentsProps: componentsProps,
65
+ slotProps: componentsProps,
66
66
  maxDate: maxDateWithDisabled,
67
67
  minDate: minDateWithDisabled,
68
68
  onMonthChange: changeMonth,
@@ -78,7 +78,7 @@ export function DateRangePickerViewMobile(props) {
78
78
  onSelectedDaysChange: onSelectedDaysChange,
79
79
  onFocusedDayChange: doNothing,
80
80
  components: componentsForDayCalendar,
81
- componentsProps: componentsPropsForDayCalendar
81
+ slotProps: componentsPropsForDayCalendar
82
82
  }))]
83
83
  });
84
84
  }
@@ -29,13 +29,13 @@ const DesktopNextDateRangePicker = /*#__PURE__*/React.forwardRef(function Deskto
29
29
  views: ['day'],
30
30
  openTo: 'day',
31
31
  showToolbar: (_defaultizedProps$sho = defaultizedProps.showToolbar) != null ? _defaultizedProps$sho : false,
32
- components: _extends({
33
- Field: MultiInputDateRangeField
34
- }, defaultizedProps.components),
35
- componentsProps: _extends({}, defaultizedProps.componentsProps, {
32
+ slots: _extends({
33
+ field: MultiInputDateRangeField
34
+ }, defaultizedProps.slots),
35
+ slotProps: _extends({}, defaultizedProps.slotProps, {
36
36
  field: ownerState => {
37
- var _defaultizedProps$com;
38
- return _extends({}, resolveComponentProps((_defaultizedProps$com = defaultizedProps.componentsProps) == null ? void 0 : _defaultizedProps$com.field, ownerState), extractValidationProps(defaultizedProps), {
37
+ var _defaultizedProps$slo;
38
+ return _extends({}, resolveComponentProps((_defaultizedProps$slo = defaultizedProps.slotProps) == null ? void 0 : _defaultizedProps$slo.field, ownerState), extractValidationProps(defaultizedProps), {
39
39
  className,
40
40
  sx,
41
41
  ref
@@ -81,11 +81,13 @@ DesktopNextDateRangePicker.propTypes = {
81
81
  /**
82
82
  * Overrideable components.
83
83
  * @default {}
84
+ * @deprecated Please use `slots`.
84
85
  */
85
86
  components: PropTypes.object,
86
87
  /**
87
88
  * The props used for each component slot.
88
89
  * @default {}
90
+ * @deprecated Please use `slotProps`.
89
91
  */
90
92
  componentsProps: PropTypes.object,
91
93
  /**
@@ -265,6 +267,16 @@ DesktopNextDateRangePicker.propTypes = {
265
267
  * @default `true` for mobile, `false` for desktop
266
268
  */
267
269
  showToolbar: PropTypes.bool,
270
+ /**
271
+ * The props used for each component slot.
272
+ * @default {}
273
+ */
274
+ slotProps: PropTypes.object,
275
+ /**
276
+ * Overrideable component slots.
277
+ * @default {}
278
+ */
279
+ slots: PropTypes.object,
268
280
  /**
269
281
  * The system prop that allows defining system overrides as well as additional CSS styles.
270
282
  */
@@ -1,4 +1,4 @@
1
- import { MakeOptional } from '@mui/x-date-pickers/internals';
1
+ import { MakeOptional, UncapitalizeObjectKeys } from '@mui/x-date-pickers/internals';
2
2
  import { UseDesktopRangePickerSlotsComponent, UseDesktopRangePickerSlotsComponentsProps, DesktopRangeOnlyPickerProps } from '../internal/hooks/useDesktopRangePicker';
3
3
  import { BaseNextDateRangePickerProps, BaseNextDateRangePickerSlotsComponent, BaseNextDateRangePickerSlotsComponentsProps } from '../NextDateRangePicker/shared';
4
4
  export interface DesktopNextDateRangePickerSlotsComponent<TDate> extends BaseNextDateRangePickerSlotsComponent<TDate>, MakeOptional<UseDesktopRangePickerSlotsComponent<TDate, 'day'>, 'Field'> {
@@ -14,11 +14,23 @@ export interface DesktopNextDateRangePickerProps<TDate> extends BaseNextDateRang
14
14
  /**
15
15
  * Overrideable components.
16
16
  * @default {}
17
+ * @deprecated Please use `slots`.
17
18
  */
18
19
  components?: DesktopNextDateRangePickerSlotsComponent<TDate>;
19
20
  /**
20
21
  * The props used for each component slot.
21
22
  * @default {}
23
+ * @deprecated Please use `slotProps`.
22
24
  */
23
25
  componentsProps?: DesktopNextDateRangePickerSlotsComponentsProps<TDate>;
26
+ /**
27
+ * Overrideable component slots.
28
+ * @default {}
29
+ */
30
+ slots?: UncapitalizeObjectKeys<DesktopNextDateRangePickerSlotsComponent<TDate>>;
31
+ /**
32
+ * The props used for each component slot.
33
+ * @default {}
34
+ */
35
+ slotProps?: DesktopNextDateRangePickerSlotsComponentsProps<TDate>;
24
36
  }
@@ -29,13 +29,13 @@ const MobileNextDateRangePicker = /*#__PURE__*/React.forwardRef(function MobileN
29
29
  views: ['day'],
30
30
  openTo: 'day',
31
31
  showToolbar: (_defaultizedProps$sho = defaultizedProps.showToolbar) != null ? _defaultizedProps$sho : true,
32
- components: _extends({
33
- Field: MultiInputDateRangeField
34
- }, defaultizedProps.components),
35
- componentsProps: _extends({}, defaultizedProps.componentsProps, {
32
+ slots: _extends({
33
+ field: MultiInputDateRangeField
34
+ }, defaultizedProps.slots),
35
+ slotProps: _extends({}, defaultizedProps.slotProps, {
36
36
  field: ownerState => {
37
- var _defaultizedProps$com;
38
- return _extends({}, resolveComponentProps((_defaultizedProps$com = defaultizedProps.componentsProps) == null ? void 0 : _defaultizedProps$com.field, ownerState), extractValidationProps(defaultizedProps), {
37
+ var _defaultizedProps$slo;
38
+ return _extends({}, resolveComponentProps((_defaultizedProps$slo = defaultizedProps.slotProps) == null ? void 0 : _defaultizedProps$slo.field, ownerState), extractValidationProps(defaultizedProps), {
39
39
  className,
40
40
  sx,
41
41
  ref
@@ -81,11 +81,13 @@ MobileNextDateRangePicker.propTypes = {
81
81
  /**
82
82
  * Overrideable components.
83
83
  * @default {}
84
+ * @deprecated Please use `slots`.
84
85
  */
85
86
  components: PropTypes.object,
86
87
  /**
87
88
  * The props used for each component slot.
88
89
  * @default {}
90
+ * @deprecated Please use `slotProps`.
89
91
  */
90
92
  componentsProps: PropTypes.object,
91
93
  /**
@@ -265,6 +267,16 @@ MobileNextDateRangePicker.propTypes = {
265
267
  * @default `true` for mobile, `false` for desktop
266
268
  */
267
269
  showToolbar: PropTypes.bool,
270
+ /**
271
+ * The props used for each component slot.
272
+ * @default {}
273
+ */
274
+ slotProps: PropTypes.object,
275
+ /**
276
+ * Overrideable component slots.
277
+ * @default {}
278
+ */
279
+ slots: PropTypes.object,
268
280
  /**
269
281
  * The system prop that allows defining system overrides as well as additional CSS styles.
270
282
  */
@@ -1,4 +1,4 @@
1
- import { MakeOptional } from '@mui/x-date-pickers/internals';
1
+ import { MakeOptional, UncapitalizeObjectKeys } from '@mui/x-date-pickers/internals';
2
2
  import { UseMobileRangePickerSlotsComponent, UseMobileRangePickerSlotsComponentsProps, MobileRangeOnlyPickerProps } from '../internal/hooks/useMobileRangePicker';
3
3
  import { BaseNextDateRangePickerProps, BaseNextDateRangePickerSlotsComponent, BaseNextDateRangePickerSlotsComponentsProps } from '../NextDateRangePicker/shared';
4
4
  export interface MobileNextDateRangePickerSlotsComponent<TDate> extends BaseNextDateRangePickerSlotsComponent<TDate>, MakeOptional<UseMobileRangePickerSlotsComponent<TDate, 'day'>, 'Field'> {
@@ -14,11 +14,23 @@ export interface MobileNextDateRangePickerProps<TDate> extends BaseNextDateRange
14
14
  /**
15
15
  * Overrideable components.
16
16
  * @default {}
17
+ * @deprecated Please use `slots`.
17
18
  */
18
19
  components?: MobileNextDateRangePickerSlotsComponent<TDate>;
19
20
  /**
20
21
  * The props used for each component slot.
21
22
  * @default {}
23
+ * @deprecated Please use `slotProps`.
22
24
  */
23
25
  componentsProps?: MobileNextDateRangePickerSlotsComponentsProps<TDate>;
26
+ /**
27
+ * Overrideable component slots.
28
+ * @default {}
29
+ */
30
+ slots?: UncapitalizeObjectKeys<MobileNextDateRangePickerSlotsComponent<TDate>>;
31
+ /**
32
+ * The props used for each component slot.
33
+ * @default {}
34
+ */
35
+ slotProps?: MobileNextDateRangePickerSlotsComponentsProps<TDate>;
24
36
  }