@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
@@ -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 = ["components", "componentsProps", "value", "defaultValue", "format", "onChange", "readOnly", "disabled", "onError", "shouldDisableDate", "minDate", "maxDate", "disableFuture", "disablePast", "selectedSections", "onSelectedSectionsChange", "autoFocus"],
3
+ const _excluded = ["slots", "slotProps", "components", "componentsProps", "value", "defaultValue", "format", "onChange", "readOnly", "disabled", "onError", "shouldDisableDate", "minDate", "maxDate", "disableFuture", "disablePast", "selectedSections", "onSelectedSectionsChange", "autoFocus"],
4
4
  _excluded2 = ["onKeyDown", "ref", "readOnly", "inputMode"],
5
5
  _excluded3 = ["onKeyDown", "ref", "readOnly", "inputMode"];
6
6
  import * as React from 'react';
@@ -10,6 +10,7 @@ import MuiTextField from '@mui/material/TextField';
10
10
  import Typography from '@mui/material/Typography';
11
11
  import { styled, useThemeProps } from '@mui/material/styles';
12
12
  import { useSlotProps } from '@mui/base/utils';
13
+ import { uncapitalizeObjectKeys } from '@mui/x-date-pickers/internals';
13
14
  import { useMultiInputDateRangeField } from '../internal/hooks/useMultiInputRangeField/useMultiInputDateRangeField';
14
15
  import { jsx as _jsx } from "react/jsx-runtime";
15
16
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -34,12 +35,14 @@ const MultiInputDateRangeFieldSeparator = styled(props => {
34
35
  overridesResolver: (props, styles) => styles.separator
35
36
  })({});
36
37
  const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInputDateRangeField(inProps, ref) {
37
- var _components$Root, _components$TextField, _components$Separator;
38
+ var _slots$root, _slots$textField, _slots$separator, _slotProps$separator;
38
39
  const themeProps = useThemeProps({
39
40
  props: inProps,
40
41
  name: 'MuiMultiInputDateRangeField'
41
42
  });
42
43
  const {
44
+ slots: innerSlots,
45
+ slotProps: innerslotProps,
43
46
  components,
44
47
  componentsProps,
45
48
  value,
@@ -59,21 +62,23 @@ const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
59
62
  autoFocus
60
63
  } = themeProps,
61
64
  other = _objectWithoutPropertiesLoose(themeProps, _excluded);
65
+ const slots = innerSlots != null ? innerSlots : uncapitalizeObjectKeys(components);
66
+ const slotProps = innerslotProps != null ? innerslotProps : componentsProps;
62
67
  const ownerState = themeProps;
63
- const Root = (_components$Root = components == null ? void 0 : components.Root) != null ? _components$Root : MultiInputDateRangeFieldRoot;
68
+ const Root = (_slots$root = slots == null ? void 0 : slots.root) != null ? _slots$root : MultiInputDateRangeFieldRoot;
64
69
  const rootProps = useSlotProps({
65
70
  elementType: Root,
66
- externalSlotProps: componentsProps == null ? void 0 : componentsProps.root,
71
+ externalSlotProps: slotProps == null ? void 0 : slotProps.root,
67
72
  externalForwardedProps: other,
68
73
  additionalProps: {
69
74
  ref
70
75
  },
71
76
  ownerState
72
77
  });
73
- const TextField = (_components$TextField = components == null ? void 0 : components.TextField) != null ? _components$TextField : MuiTextField;
78
+ const TextField = (_slots$textField = slots == null ? void 0 : slots.textField) != null ? _slots$textField : MuiTextField;
74
79
  const startTextFieldProps = useSlotProps({
75
80
  elementType: TextField,
76
- externalSlotProps: componentsProps == null ? void 0 : componentsProps.textField,
81
+ externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
77
82
  additionalProps: {
78
83
  autoFocus
79
84
  },
@@ -83,15 +88,15 @@ const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
83
88
  });
84
89
  const endTextFieldProps = useSlotProps({
85
90
  elementType: TextField,
86
- externalSlotProps: componentsProps == null ? void 0 : componentsProps.textField,
91
+ externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
87
92
  ownerState: _extends({}, ownerState, {
88
93
  position: 'end'
89
94
  })
90
95
  });
91
- const Separator = (_components$Separator = components == null ? void 0 : components.Separator) != null ? _components$Separator : MultiInputDateRangeFieldSeparator;
96
+ const Separator = (_slots$separator = slots == null ? void 0 : slots.separator) != null ? _slots$separator : MultiInputDateRangeFieldSeparator;
92
97
  const separatorProps = useSlotProps({
93
98
  elementType: Separator,
94
- externalSlotProps: componentsProps == null ? void 0 : componentsProps.separator,
99
+ externalSlotProps: (_slotProps$separator = slotProps == null ? void 0 : slotProps.separator) != null ? _slotProps$separator : componentsProps == null ? void 0 : componentsProps.separator,
95
100
  ownerState
96
101
  });
97
102
  const _useMultiInputDateRan = useMultiInputDateRangeField({
@@ -160,11 +165,13 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
160
165
  /**
161
166
  * Overrideable components.
162
167
  * @default {}
168
+ * @deprecated Please use `slots`.
163
169
  */
164
170
  components: PropTypes.object,
165
171
  /**
166
172
  * The props used for each component slot.
167
173
  * @default {}
174
+ * @deprecated Please use `slotProps`.
168
175
  */
169
176
  componentsProps: PropTypes.object,
170
177
  /**
@@ -254,6 +261,16 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
254
261
  * @returns {boolean} Returns `true` if the date should be disabled.
255
262
  */
256
263
  shouldDisableDate: PropTypes.func,
264
+ /**
265
+ * The props used for each component slot.
266
+ * @default {}
267
+ */
268
+ slotProps: PropTypes.object,
269
+ /**
270
+ * Overrideable component slots.
271
+ * @default {}
272
+ */
273
+ slots: PropTypes.object,
257
274
  /**
258
275
  * Defines the space between immediate children.
259
276
  * @default 0
@@ -3,6 +3,7 @@ import { SlotComponentProps } from '@mui/base/utils';
3
3
  import Typography from '@mui/material/Typography';
4
4
  import Stack, { StackProps } from '@mui/material/Stack';
5
5
  import TextField from '@mui/material/TextField';
6
+ import { UncapitalizeObjectKeys } from '@mui/x-date-pickers/internals';
6
7
  import { UseDateRangeFieldProps } from '../internal/models/dateRange';
7
8
  import { RangePosition } from '../internal/models/range';
8
9
  export interface UseMultiInputDateRangeFieldParams<TDate, TChildProps extends {}> {
@@ -21,13 +22,25 @@ export interface MultiInputDateRangeFieldProps<TDate> extends UseMultiInputDateR
21
22
  /**
22
23
  * Overrideable components.
23
24
  * @default {}
25
+ * @deprecated Please use `slots`.
24
26
  */
25
27
  components?: MultiInputDateRangeFieldSlotsComponent;
26
28
  /**
27
29
  * The props used for each component slot.
28
30
  * @default {}
31
+ * @deprecated Please use `slotProps`.
29
32
  */
30
33
  componentsProps?: MultiInputDateRangeFieldSlotsComponentsProps<TDate>;
34
+ /**
35
+ * Overrideable component slots.
36
+ * @default {}
37
+ */
38
+ slots?: UncapitalizeObjectKeys<MultiInputDateRangeFieldSlotsComponent>;
39
+ /**
40
+ * The props used for each component slot.
41
+ * @default {}
42
+ */
43
+ slotProps?: MultiInputDateRangeFieldSlotsComponentsProps<TDate>;
31
44
  }
32
45
  export type MultiInputDateRangeFieldOwnerState<TDate> = MultiInputDateRangeFieldProps<TDate>;
33
46
  export interface MultiInputDateRangeFieldSlotsComponent {
@@ -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 = ["components", "componentsProps", "value", "defaultValue", "format", "onChange", "readOnly", "disabled", "onError", "shouldDisableDate", "minDate", "maxDate", "minTime", "maxTime", "minDateTime", "maxDateTime", "minutesStep", "shouldDisableTime", "disableFuture", "disablePast", "selectedSections", "onSelectedSectionsChange"],
3
+ const _excluded = ["slots", "slotProps", "components", "componentsProps", "value", "defaultValue", "format", "onChange", "readOnly", "disabled", "onError", "shouldDisableDate", "minDate", "maxDate", "minTime", "maxTime", "minDateTime", "maxDateTime", "minutesStep", "shouldDisableClock", "shouldDisableTime", "disableFuture", "disablePast", "selectedSections", "onSelectedSectionsChange"],
4
4
  _excluded2 = ["onKeyDown", "ref", "readOnly", "inputMode"],
5
5
  _excluded3 = ["onKeyDown", "ref", "readOnly", "inputMode"];
6
6
  import * as React from 'react';
@@ -10,6 +10,7 @@ import MuiTextField from '@mui/material/TextField';
10
10
  import Typography from '@mui/material/Typography';
11
11
  import { styled, useThemeProps } from '@mui/material/styles';
12
12
  import { useSlotProps } from '@mui/base/utils';
13
+ import { uncapitalizeObjectKeys } from '@mui/x-date-pickers/internals';
13
14
  import { useMultiInputDateTimeRangeField } from '../internal/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField';
14
15
  import { jsx as _jsx } from "react/jsx-runtime";
15
16
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -34,12 +35,14 @@ const MultiInputDateTimeRangeFieldSeparator = styled(props => {
34
35
  overridesResolver: (props, styles) => styles.separator
35
36
  })({});
36
37
  const MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInputDateTimeRangeField(inProps, ref) {
37
- var _components$Root, _components$TextField, _components$Separator;
38
+ var _slots$root, _slots$textField, _slots$separator;
38
39
  const themeProps = useThemeProps({
39
40
  props: inProps,
40
41
  name: 'MuiMultiInputDateTimeRangeField'
41
42
  });
42
43
  const {
44
+ slots: innerSlots,
45
+ slotProps: innerslotProps,
43
46
  components,
44
47
  componentsProps,
45
48
  value,
@@ -57,6 +60,7 @@ const MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Mult
57
60
  minDateTime,
58
61
  maxDateTime,
59
62
  minutesStep,
63
+ shouldDisableClock,
60
64
  shouldDisableTime,
61
65
  disableFuture,
62
66
  disablePast,
@@ -64,36 +68,38 @@ const MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Mult
64
68
  onSelectedSectionsChange
65
69
  } = themeProps,
66
70
  other = _objectWithoutPropertiesLoose(themeProps, _excluded);
71
+ const slots = innerSlots != null ? innerSlots : uncapitalizeObjectKeys(components);
72
+ const slotProps = innerslotProps != null ? innerslotProps : componentsProps;
67
73
  const ownerState = themeProps;
68
- const Root = (_components$Root = components == null ? void 0 : components.Root) != null ? _components$Root : MultiInputDateTimeRangeFieldRoot;
74
+ const Root = (_slots$root = slots == null ? void 0 : slots.root) != null ? _slots$root : MultiInputDateTimeRangeFieldRoot;
69
75
  const rootProps = useSlotProps({
70
76
  elementType: Root,
71
- externalSlotProps: componentsProps == null ? void 0 : componentsProps.root,
77
+ externalSlotProps: slotProps == null ? void 0 : slotProps.root,
72
78
  externalForwardedProps: other,
73
79
  additionalProps: {
74
80
  ref
75
81
  },
76
82
  ownerState
77
83
  });
78
- const TextField = (_components$TextField = components == null ? void 0 : components.TextField) != null ? _components$TextField : MuiTextField;
84
+ const TextField = (_slots$textField = slots == null ? void 0 : slots.textField) != null ? _slots$textField : MuiTextField;
79
85
  const startTextFieldProps = useSlotProps({
80
86
  elementType: TextField,
81
- externalSlotProps: componentsProps == null ? void 0 : componentsProps.textField,
87
+ externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
82
88
  ownerState: _extends({}, ownerState, {
83
89
  position: 'start'
84
90
  })
85
91
  });
86
92
  const endTextFieldProps = useSlotProps({
87
93
  elementType: TextField,
88
- externalSlotProps: componentsProps == null ? void 0 : componentsProps.textField,
94
+ externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
89
95
  ownerState: _extends({}, ownerState, {
90
96
  position: 'end'
91
97
  })
92
98
  });
93
- const Separator = (_components$Separator = components == null ? void 0 : components.Separator) != null ? _components$Separator : MultiInputDateTimeRangeFieldSeparator;
99
+ const Separator = (_slots$separator = slots == null ? void 0 : slots.separator) != null ? _slots$separator : MultiInputDateTimeRangeFieldSeparator;
94
100
  const separatorProps = useSlotProps({
95
101
  elementType: Separator,
96
- externalSlotProps: componentsProps == null ? void 0 : componentsProps.separator,
102
+ externalSlotProps: slotProps == null ? void 0 : slotProps.separator,
97
103
  ownerState
98
104
  });
99
105
  const _useMultiInputDateTim = useMultiInputDateTimeRangeField({
@@ -113,6 +119,7 @@ const MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Mult
113
119
  minDateTime,
114
120
  maxDateTime,
115
121
  minutesStep,
122
+ shouldDisableClock,
116
123
  shouldDisableTime,
117
124
  disableFuture,
118
125
  disablePast,
@@ -172,11 +179,13 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
172
179
  /**
173
180
  * Overrideable components.
174
181
  * @default {}
182
+ * @deprecated Please use `slots`.
175
183
  */
176
184
  components: PropTypes.object,
177
185
  /**
178
186
  * The props used for each component slot.
179
187
  * @default {}
188
+ * @deprecated Please use `slotProps`.
180
189
  */
181
190
  componentsProps: PropTypes.object,
182
191
  /**
@@ -286,6 +295,14 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
286
295
  endIndex: PropTypes.number.isRequired,
287
296
  startIndex: PropTypes.number.isRequired
288
297
  })]),
298
+ /**
299
+ * Disable specific clock time.
300
+ * @param {number} clockValue The value to check.
301
+ * @param {TimeView} view The clock type of the timeValue.
302
+ * @returns {boolean} If `true` the time will be disabled.
303
+ * @deprecated Consider using `shouldDisableTime`.
304
+ */
305
+ shouldDisableClock: PropTypes.func,
289
306
  /**
290
307
  * Disable specific date. @DateIOType
291
308
  * @template TDate
@@ -296,11 +313,21 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
296
313
  shouldDisableDate: PropTypes.func,
297
314
  /**
298
315
  * Disable specific time.
299
- * @param {number} timeValue The value to check.
316
+ * @param {TDate} value The value to check.
300
317
  * @param {TimeView} view The clock type of the timeValue.
301
318
  * @returns {boolean} If `true` the time will be disabled.
302
319
  */
303
320
  shouldDisableTime: PropTypes.func,
321
+ /**
322
+ * The props used for each component slot.
323
+ * @default {}
324
+ */
325
+ slotProps: PropTypes.object,
326
+ /**
327
+ * Overrideable component slots.
328
+ * @default {}
329
+ */
330
+ slots: PropTypes.object,
304
331
  /**
305
332
  * Defines the space between immediate children.
306
333
  * @default 0
@@ -3,6 +3,7 @@ import { SlotComponentProps } from '@mui/base/utils';
3
3
  import Typography from '@mui/material/Typography';
4
4
  import Stack, { StackProps } from '@mui/material/Stack';
5
5
  import TextField from '@mui/material/TextField';
6
+ import { UncapitalizeObjectKeys } from '@mui/x-date-pickers/internals';
6
7
  import { UseDateTimeRangeFieldDefaultizedProps, UseDateTimeRangeFieldProps } from '../internal/models/dateTimeRange';
7
8
  import { RangePosition } from '../internal/models/range';
8
9
  export interface UseMultiInputDateTimeRangeFieldParams<TDate, TChildProps extends {}> {
@@ -19,13 +20,25 @@ export interface MultiInputDateTimeRangeFieldProps<TDate> extends UseMultiInputD
19
20
  /**
20
21
  * Overrideable components.
21
22
  * @default {}
23
+ * @deprecated Please use `slots`.
22
24
  */
23
25
  components?: MultiInputDateTimeRangeFieldSlotsComponent;
24
26
  /**
25
27
  * The props used for each component slot.
26
28
  * @default {}
29
+ * @deprecated Please use `slotProps`.
27
30
  */
28
31
  componentsProps?: MultiInputDateTimeRangeFieldSlotsComponentsProps<TDate>;
32
+ /**
33
+ * Overrideable component slots.
34
+ * @default {}
35
+ */
36
+ slots?: UncapitalizeObjectKeys<MultiInputDateTimeRangeFieldSlotsComponent>;
37
+ /**
38
+ * The props used for each component slot.
39
+ * @default {}
40
+ */
41
+ slotProps?: MultiInputDateTimeRangeFieldSlotsComponentsProps<TDate>;
29
42
  }
30
43
  export type MultiInputDateTimeRangeFieldOwnerState<TDate> = MultiInputDateTimeRangeFieldProps<TDate>;
31
44
  export interface MultiInputDateTimeRangeFieldSlotsComponent {
@@ -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 = ["components", "componentsProps", "value", "defaultValue", "format", "onChange", "readOnly", "disabled", "onError", "minTime", "maxTime", "minutesStep", "shouldDisableTime", "disableFuture", "disablePast", "selectedSections", "onSelectedSectionsChange"],
3
+ const _excluded = ["slots", "slotProps", "components", "componentsProps", "value", "defaultValue", "format", "onChange", "readOnly", "disabled", "onError", "minTime", "maxTime", "minutesStep", "shouldDisableClock", "shouldDisableTime", "disableFuture", "disablePast", "selectedSections", "onSelectedSectionsChange"],
4
4
  _excluded2 = ["onKeyDown", "ref", "readOnly", "inputMode"],
5
5
  _excluded3 = ["onKeyDown", "ref", "readOnly", "inputMode"];
6
6
  import * as React from 'react';
@@ -10,6 +10,7 @@ import MuiTextField from '@mui/material/TextField';
10
10
  import Typography from '@mui/material/Typography';
11
11
  import { styled, useThemeProps } from '@mui/material/styles';
12
12
  import { useSlotProps } from '@mui/base/utils';
13
+ import { uncapitalizeObjectKeys } from '@mui/x-date-pickers/internals';
13
14
  import { useMultiInputTimeRangeField } from '../internal/hooks/useMultiInputRangeField/useMultiInputTimeRangeField';
14
15
  import { jsx as _jsx } from "react/jsx-runtime";
15
16
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -34,12 +35,14 @@ const MultiInputTimeRangeFieldSeparator = styled(props => {
34
35
  overridesResolver: (props, styles) => styles.separator
35
36
  })({});
36
37
  const MultiInputTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInputTimeRangeField(inProps, ref) {
37
- var _components$Root, _components$TextField, _components$Separator;
38
+ var _slots$root, _slots$textField, _slots$separator;
38
39
  const themeProps = useThemeProps({
39
40
  props: inProps,
40
41
  name: 'MuiMultiInputTimeRangeField'
41
42
  });
42
43
  const {
44
+ slots: innerSlots,
45
+ slotProps: innerslotProps,
43
46
  components,
44
47
  componentsProps,
45
48
  value,
@@ -52,6 +55,7 @@ const MultiInputTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
52
55
  minTime,
53
56
  maxTime,
54
57
  minutesStep,
58
+ shouldDisableClock,
55
59
  shouldDisableTime,
56
60
  disableFuture,
57
61
  disablePast,
@@ -59,36 +63,38 @@ const MultiInputTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
59
63
  onSelectedSectionsChange
60
64
  } = themeProps,
61
65
  other = _objectWithoutPropertiesLoose(themeProps, _excluded);
66
+ const slots = innerSlots != null ? innerSlots : uncapitalizeObjectKeys(components);
67
+ const slotProps = innerslotProps != null ? innerslotProps : componentsProps;
62
68
  const ownerState = themeProps;
63
- const Root = (_components$Root = components == null ? void 0 : components.Root) != null ? _components$Root : MultiInputTimeRangeFieldRoot;
69
+ const Root = (_slots$root = slots == null ? void 0 : slots.root) != null ? _slots$root : MultiInputTimeRangeFieldRoot;
64
70
  const rootProps = useSlotProps({
65
71
  elementType: Root,
66
- externalSlotProps: componentsProps == null ? void 0 : componentsProps.root,
72
+ externalSlotProps: slotProps == null ? void 0 : slotProps.root,
67
73
  externalForwardedProps: other,
68
74
  additionalProps: {
69
75
  ref
70
76
  },
71
77
  ownerState
72
78
  });
73
- const TextField = (_components$TextField = components == null ? void 0 : components.TextField) != null ? _components$TextField : MuiTextField;
79
+ const TextField = (_slots$textField = slots == null ? void 0 : slots.textField) != null ? _slots$textField : MuiTextField;
74
80
  const startTextFieldProps = useSlotProps({
75
81
  elementType: TextField,
76
- externalSlotProps: componentsProps == null ? void 0 : componentsProps.textField,
82
+ externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
77
83
  ownerState: _extends({}, ownerState, {
78
84
  position: 'start'
79
85
  })
80
86
  });
81
87
  const endTextFieldProps = useSlotProps({
82
88
  elementType: TextField,
83
- externalSlotProps: componentsProps == null ? void 0 : componentsProps.textField,
89
+ externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
84
90
  ownerState: _extends({}, ownerState, {
85
91
  position: 'end'
86
92
  })
87
93
  });
88
- const Separator = (_components$Separator = components == null ? void 0 : components.Separator) != null ? _components$Separator : MultiInputTimeRangeFieldSeparator;
94
+ const Separator = (_slots$separator = slots == null ? void 0 : slots.separator) != null ? _slots$separator : MultiInputTimeRangeFieldSeparator;
89
95
  const separatorProps = useSlotProps({
90
96
  elementType: Separator,
91
- externalSlotProps: componentsProps == null ? void 0 : componentsProps.separator,
97
+ externalSlotProps: slotProps == null ? void 0 : slotProps.separator,
92
98
  ownerState
93
99
  });
94
100
  const _useMultiInputTimeRan = useMultiInputTimeRangeField({
@@ -103,6 +109,7 @@ const MultiInputTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
103
109
  minTime,
104
110
  maxTime,
105
111
  minutesStep,
112
+ shouldDisableClock,
106
113
  shouldDisableTime,
107
114
  disableFuture,
108
115
  disablePast,
@@ -162,11 +169,13 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
162
169
  /**
163
170
  * Overrideable components.
164
171
  * @default {}
172
+ * @deprecated Please use `slots`.
165
173
  */
166
174
  components: PropTypes.object,
167
175
  /**
168
176
  * The props used for each component slot.
169
177
  * @default {}
178
+ * @deprecated Please use `slotProps`.
170
179
  */
171
180
  componentsProps: PropTypes.object,
172
181
  /**
@@ -260,13 +269,31 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
260
269
  endIndex: PropTypes.number.isRequired,
261
270
  startIndex: PropTypes.number.isRequired
262
271
  })]),
272
+ /**
273
+ * Disable specific clock time.
274
+ * @param {number} clockValue The value to check.
275
+ * @param {TimeView} view The clock type of the timeValue.
276
+ * @returns {boolean} If `true` the time will be disabled.
277
+ * @deprecated Consider using `shouldDisableTime`.
278
+ */
279
+ shouldDisableClock: PropTypes.func,
263
280
  /**
264
281
  * Disable specific time.
265
- * @param {number} timeValue The value to check.
282
+ * @param {TDate} value The value to check.
266
283
  * @param {TimeView} view The clock type of the timeValue.
267
284
  * @returns {boolean} If `true` the time will be disabled.
268
285
  */
269
286
  shouldDisableTime: PropTypes.func,
287
+ /**
288
+ * The props used for each component slot.
289
+ * @default {}
290
+ */
291
+ slotProps: PropTypes.object,
292
+ /**
293
+ * Overrideable slots.
294
+ * @default {}
295
+ */
296
+ slots: PropTypes.object,
270
297
  /**
271
298
  * Defines the space between immediate children.
272
299
  * @default 0
@@ -3,6 +3,7 @@ import { SlotComponentProps } from '@mui/base/utils';
3
3
  import Typography from '@mui/material/Typography';
4
4
  import Stack, { StackProps } from '@mui/material/Stack';
5
5
  import TextField from '@mui/material/TextField';
6
+ import { UncapitalizeObjectKeys } from '@mui/x-date-pickers/internals';
6
7
  import { UseTimeRangeFieldDefaultizedProps, UseTimeRangeFieldProps } from '../internal/models/timeRange';
7
8
  import { RangePosition } from '../internal/models/range';
8
9
  export interface UseMultiInputTimeRangeFieldParams<TDate, TChildProps extends {}> {
@@ -19,13 +20,25 @@ export interface MultiInputTimeRangeFieldProps<TDate> extends UseMultiInputTimeR
19
20
  /**
20
21
  * Overrideable components.
21
22
  * @default {}
23
+ * @deprecated Please use `slots`.
22
24
  */
23
25
  components?: MultiInputTimeRangeFieldSlotsComponent;
24
26
  /**
25
27
  * The props used for each component slot.
26
28
  * @default {}
29
+ * @deprecated Please use `slotProps`.
27
30
  */
28
31
  componentsProps?: MultiInputTimeRangeFieldSlotsComponentsProps<TDate>;
32
+ /**
33
+ * Overrideable slots.
34
+ * @default {}
35
+ */
36
+ slots?: UncapitalizeObjectKeys<MultiInputTimeRangeFieldSlotsComponent>;
37
+ /**
38
+ * The props used for each component slot.
39
+ * @default {}
40
+ */
41
+ slotProps?: MultiInputTimeRangeFieldSlotsComponentsProps<TDate>;
29
42
  }
30
43
  export type MultiInputTimeRangeFieldOwnerState<TDate> = MultiInputTimeRangeFieldProps<TDate>;
31
44
  export interface MultiInputTimeRangeFieldSlotsComponent {
@@ -60,11 +60,13 @@ process.env.NODE_ENV !== "production" ? NextDateRangePicker.propTypes = {
60
60
  /**
61
61
  * Overrideable components.
62
62
  * @default {}
63
+ * @deprecated Please use `slots`.
63
64
  */
64
65
  components: PropTypes.object,
65
66
  /**
66
67
  * The props used for each component slot.
67
68
  * @default {}
69
+ * @deprecated Please use `slotProps`.
68
70
  */
69
71
  componentsProps: PropTypes.object,
70
72
  /**
@@ -250,6 +252,16 @@ process.env.NODE_ENV !== "production" ? NextDateRangePicker.propTypes = {
250
252
  * @default `true` for mobile, `false` for desktop
251
253
  */
252
254
  showToolbar: PropTypes.bool,
255
+ /**
256
+ * The props used for each component slot.
257
+ * @default {}
258
+ */
259
+ slotProps: PropTypes.object,
260
+ /**
261
+ * Overrideable component slots.
262
+ * @default {}
263
+ */
264
+ slots: PropTypes.object,
253
265
  /**
254
266
  * The system prop that allows defining system overrides as well as additional CSS styles.
255
267
  */
@@ -1,3 +1,4 @@
1
+ import { UncapitalizeObjectKeys } from '@mui/x-date-pickers/internals';
1
2
  import { DesktopNextDateRangePickerProps, DesktopNextDateRangePickerSlotsComponent, DesktopNextDateRangePickerSlotsComponentsProps } from '../DesktopNextDateRangePicker';
2
3
  import { MobileNextDateRangePickerProps, MobileNextDateRangePickerSlotsComponent, MobileNextDateRangePickerSlotsComponentsProps } from '../MobileNextDateRangePicker';
3
4
  export interface NextDateRangePickerSlotsComponents<TDate> extends DesktopNextDateRangePickerSlotsComponent<TDate>, MobileNextDateRangePickerSlotsComponent<TDate> {
@@ -14,11 +15,23 @@ export interface NextDateRangePickerProps<TDate> extends DesktopNextDateRangePic
14
15
  /**
15
16
  * Overrideable components.
16
17
  * @default {}
18
+ * @deprecated Please use `slots`.
17
19
  */
18
20
  components?: NextDateRangePickerSlotsComponents<TDate>;
19
21
  /**
20
22
  * The props used for each component slot.
21
23
  * @default {}
24
+ * @deprecated Please use `slotProps`.
22
25
  */
23
26
  componentsProps?: NextDateRangePickerSlotsComponentsProps<TDate>;
27
+ /**
28
+ * Overrideable component slots.
29
+ * @default {}
30
+ */
31
+ slots?: UncapitalizeObjectKeys<NextDateRangePickerSlotsComponents<TDate>>;
32
+ /**
33
+ * The props used for each component slot.
34
+ * @default {}
35
+ */
36
+ slotProps?: NextDateRangePickerSlotsComponentsProps<TDate>;
24
37
  }
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { LocalizedComponent } from '@mui/x-date-pickers';
3
- import { DefaultizedProps, BaseDateValidationProps, BaseNextPickerInputProps, PickerViewRendererLookup } from '@mui/x-date-pickers/internals';
3
+ import { DefaultizedProps, BaseDateValidationProps, BaseNextPickerInputProps, PickerViewRendererLookup, UncapitalizeObjectKeys } from '@mui/x-date-pickers/internals';
4
4
  import { DateRangeValidationError } from '../internal/hooks/validation/useDateRangeValidation';
5
5
  import { DateRange } from '../internal/models';
6
6
  import { DateRangeCalendarSlotsComponent, DateRangeCalendarSlotsComponentsProps, ExportedDateRangeCalendarProps } from '../DateRangeCalendar';
@@ -20,13 +20,25 @@ export interface BaseNextDateRangePickerProps<TDate> extends Omit<BaseNextPicker
20
20
  /**
21
21
  * Overrideable components.
22
22
  * @default {}
23
+ * @deprecated Please use `slots`.
23
24
  */
24
25
  components?: BaseNextDateRangePickerSlotsComponent<TDate>;
25
26
  /**
26
27
  * The props used for each component slot.
27
28
  * @default {}
29
+ * @deprecated Please use `slotProps`.
28
30
  */
29
31
  componentsProps?: BaseNextDateRangePickerSlotsComponentsProps<TDate>;
32
+ /**
33
+ * Overrideable component slots.
34
+ * @default {}
35
+ */
36
+ slots?: UncapitalizeObjectKeys<BaseNextDateRangePickerSlotsComponent<TDate>>;
37
+ /**
38
+ * The props used for each component slot.
39
+ * @default {}
40
+ */
41
+ slotProps?: BaseNextDateRangePickerSlotsComponentsProps<TDate>;
30
42
  /**
31
43
  * Define custom view renderers for each section.
32
44
  * If `null`, the section will only have field editing.
@@ -35,5 +47,5 @@ export interface BaseNextDateRangePickerProps<TDate> extends Omit<BaseNextPicker
35
47
  viewRenderers?: Partial<PickerViewRendererLookup<DateRange<TDate>, 'day', DateRangeViewRendererProps<TDate, 'day'>, {}>>;
36
48
  }
37
49
  type UseNextDateRangePickerDefaultizedProps<TDate, Props extends BaseNextDateRangePickerProps<TDate>> = LocalizedComponent<TDate, DefaultizedProps<Props, keyof BaseDateValidationProps<TDate>>>;
38
- export declare function useNextDateRangePickerDefaultizedProps<TDate, Props extends BaseNextDateRangePickerProps<TDate>>(props: Props, name: string): UseNextDateRangePickerDefaultizedProps<TDate, Props>;
50
+ export declare function useNextDateRangePickerDefaultizedProps<TDate, Props extends BaseNextDateRangePickerProps<TDate>>(props: Props, name: string): UseNextDateRangePickerDefaultizedProps<TDate, Omit<Props, 'components' | 'componentsProps'>>;
39
51
  export {};
@@ -1,16 +1,23 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ const _excluded = ["components", "componentsProps"];
2
4
  import * as React from 'react';
3
5
  import { useThemeProps } from '@mui/material/styles';
4
- import { useDefaultDates, useUtils, applyDefaultDate } from '@mui/x-date-pickers/internals';
6
+ import { useDefaultDates, useUtils, applyDefaultDate, uncapitalizeObjectKeys } from '@mui/x-date-pickers/internals';
5
7
  import { DateRangePickerToolbar } from '../DateRangePicker/DateRangePickerToolbar';
6
8
  export function useNextDateRangePickerDefaultizedProps(props, name) {
7
- var _themeProps$disableFu, _themeProps$disablePa;
9
+ var _themeProps$disableFu, _themeProps$disablePa, _themeProps$slots, _themeProps$slotProps;
8
10
  const utils = useUtils();
9
11
  const defaultDates = useDefaultDates();
10
- const themeProps = useThemeProps({
11
- props,
12
- name
13
- });
12
+ const _useThemeProps = useThemeProps({
13
+ props,
14
+ name
15
+ }),
16
+ {
17
+ components,
18
+ componentsProps
19
+ } = _useThemeProps,
20
+ themeProps = _objectWithoutPropertiesLoose(_useThemeProps, _excluded);
14
21
  const localeText = React.useMemo(() => {
15
22
  var _themeProps$localeTex;
16
23
  if (((_themeProps$localeTex = themeProps.localeText) == null ? void 0 : _themeProps$localeTex.toolbarTitle) == null) {
@@ -26,8 +33,9 @@ export function useNextDateRangePickerDefaultizedProps(props, name) {
26
33
  disablePast: (_themeProps$disablePa = themeProps.disablePast) != null ? _themeProps$disablePa : false,
27
34
  minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),
28
35
  maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate),
29
- components: _extends({
30
- Toolbar: DateRangePickerToolbar
31
- }, themeProps.components)
36
+ slots: _extends({
37
+ toolbar: DateRangePickerToolbar
38
+ }, (_themeProps$slots = themeProps.slots) != null ? _themeProps$slots : uncapitalizeObjectKeys(components)),
39
+ slotProps: (_themeProps$slotProps = themeProps.slotProps) != null ? _themeProps$slotProps : componentsProps
32
40
  });
33
41
  }