@mui/x-date-pickers-pro 6.0.0-alpha.12 → 6.0.0-alpha.13

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 (144) hide show
  1. package/CHANGELOG.md +132 -0
  2. package/DateRangeCalendar/DateRangeCalendar.js +7 -1
  3. package/DateRangeCalendar/DateRangeCalendar.types.d.ts +37 -37
  4. package/DateRangePicker/DateRangePicker.js +0 -5
  5. package/DateRangePicker/DateRangePickerView.d.ts +3 -3
  6. package/DateRangePicker/DateRangePickerView.js +6 -3
  7. package/DateRangePicker/DateRangePickerViewMobile.js +1 -1
  8. package/DateRangePickerDay/DateRangePickerDay.js +72 -1
  9. package/DesktopDateRangePicker/DesktopDateRangePicker.d.ts +5 -0
  10. package/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -5
  11. package/DesktopNextDateRangePicker/DesktopNextDateRangePicker.js +22 -8
  12. package/MobileDateRangePicker/MobileDateRangePicker.d.ts +5 -0
  13. package/MobileDateRangePicker/MobileDateRangePicker.js +0 -5
  14. package/MobileNextDateRangePicker/MobileNextDateRangePicker.js +22 -8
  15. package/MultiInputDateRangeField/MultiInputDateRangeField.js +46 -13
  16. package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +2 -2
  17. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +45 -10
  18. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +3 -3
  19. package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +45 -10
  20. package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +2 -2
  21. package/NextDateRangePicker/NextDateRangePicker.js +16 -2
  22. package/NextDateRangePicker/shared.d.ts +9 -2
  23. package/SingleInputDateRangeField/SingleInputDateRangeField.js +110 -5
  24. package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +3 -2
  25. package/StaticDateRangePicker/StaticDateRangePicker.js +0 -5
  26. package/StaticNextDateRangePicker/StaticNextDateRangePicker.js +20 -6
  27. package/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +13 -0
  28. package/{internal/utils/viewRenderers.js → dateRangeViewRenderers/dateRangeViewRenderers.js} +3 -4
  29. package/dateRangeViewRenderers/index.d.ts +2 -0
  30. package/dateRangeViewRenderers/index.js +1 -0
  31. package/dateRangeViewRenderers/package.json +6 -0
  32. package/index.d.ts +1 -0
  33. package/index.js +5 -2
  34. package/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.d.ts +1 -1
  35. package/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.js +2 -4
  36. package/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +4 -5
  37. package/internal/hooks/useMobileRangePicker/useMobileRangePicker.d.ts +1 -1
  38. package/internal/hooks/useMobileRangePicker/useMobileRangePicker.js +2 -4
  39. package/internal/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +4 -5
  40. package/internal/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +7 -1
  41. package/internal/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +7 -1
  42. package/internal/hooks/useMultiInputRangeField/useMultiInputRangeField.types.d.ts +2 -0
  43. package/internal/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +7 -1
  44. package/internal/hooks/useRangePickerInputProps.d.ts +4 -6
  45. package/internal/hooks/useRangePickerInputProps.js +5 -6
  46. package/internal/hooks/useStaticRangePicker/useStaticRangePicker.d.ts +1 -1
  47. package/internal/hooks/useStaticRangePicker/useStaticRangePicker.js +0 -2
  48. package/internal/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +2 -2
  49. package/internal/models/dateRange.d.ts +11 -1
  50. package/internal/models/dateTimeRange.d.ts +2 -2
  51. package/internal/models/timeRange.d.ts +2 -1
  52. package/internal/utils/date-fields-utils.d.ts +17 -1
  53. package/internal/utils/releaseInfo.js +1 -1
  54. package/internal/utils/valueManagers.js +15 -21
  55. package/legacy/DateRangeCalendar/DateRangeCalendar.js +7 -1
  56. package/legacy/DateRangePicker/DateRangePicker.js +0 -5
  57. package/legacy/DateRangePicker/DateRangePickerView.js +7 -2
  58. package/legacy/DateRangePicker/DateRangePickerViewMobile.js +1 -1
  59. package/legacy/DateRangePickerDay/DateRangePickerDay.js +72 -1
  60. package/legacy/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -5
  61. package/legacy/DesktopNextDateRangePicker/DesktopNextDateRangePicker.js +22 -8
  62. package/legacy/MobileDateRangePicker/MobileDateRangePicker.js +0 -5
  63. package/legacy/MobileNextDateRangePicker/MobileNextDateRangePicker.js +22 -8
  64. package/legacy/MultiInputDateRangeField/MultiInputDateRangeField.js +44 -11
  65. package/legacy/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +43 -8
  66. package/legacy/MultiInputTimeRangeField/MultiInputTimeRangeField.js +43 -8
  67. package/legacy/NextDateRangePicker/NextDateRangePicker.js +16 -2
  68. package/legacy/SingleInputDateRangeField/SingleInputDateRangeField.js +109 -4
  69. package/legacy/StaticDateRangePicker/StaticDateRangePicker.js +0 -5
  70. package/legacy/StaticNextDateRangePicker/StaticNextDateRangePicker.js +20 -6
  71. package/legacy/{internal/utils/viewRenderers.js → dateRangeViewRenderers/dateRangeViewRenderers.js} +3 -4
  72. package/legacy/dateRangeViewRenderers/index.js +1 -0
  73. package/legacy/index.js +5 -2
  74. package/legacy/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.js +2 -4
  75. package/legacy/internal/hooks/useMobileRangePicker/useMobileRangePicker.js +2 -4
  76. package/legacy/internal/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +7 -1
  77. package/legacy/internal/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +7 -1
  78. package/legacy/internal/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +7 -1
  79. package/legacy/internal/hooks/useRangePickerInputProps.js +5 -6
  80. package/legacy/internal/hooks/useStaticRangePicker/useStaticRangePicker.js +0 -2
  81. package/legacy/internal/utils/releaseInfo.js +1 -1
  82. package/legacy/internal/utils/valueManagers.js +15 -23
  83. package/legacy/tests/describeRangeValidation/testTextFieldRangeValidation.js +1 -1
  84. package/modern/DateRangeCalendar/DateRangeCalendar.js +7 -1
  85. package/modern/DateRangePicker/DateRangePicker.js +0 -5
  86. package/modern/DateRangePicker/DateRangePickerView.js +6 -3
  87. package/modern/DateRangePicker/DateRangePickerViewMobile.js +1 -1
  88. package/modern/DateRangePickerDay/DateRangePickerDay.js +72 -1
  89. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -5
  90. package/modern/DesktopNextDateRangePicker/DesktopNextDateRangePicker.js +22 -8
  91. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +0 -5
  92. package/modern/MobileNextDateRangePicker/MobileNextDateRangePicker.js +22 -8
  93. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +46 -13
  94. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +45 -10
  95. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +45 -10
  96. package/modern/NextDateRangePicker/NextDateRangePicker.js +16 -2
  97. package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +110 -5
  98. package/modern/StaticDateRangePicker/StaticDateRangePicker.js +0 -5
  99. package/modern/StaticNextDateRangePicker/StaticNextDateRangePicker.js +20 -6
  100. package/modern/{internal/utils/viewRenderers.js → dateRangeViewRenderers/dateRangeViewRenderers.js} +3 -4
  101. package/modern/dateRangeViewRenderers/index.js +1 -0
  102. package/modern/index.js +5 -2
  103. package/modern/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.js +2 -4
  104. package/modern/internal/hooks/useMobileRangePicker/useMobileRangePicker.js +2 -4
  105. package/modern/internal/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +7 -1
  106. package/modern/internal/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +7 -1
  107. package/modern/internal/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +7 -1
  108. package/modern/internal/hooks/useRangePickerInputProps.js +5 -6
  109. package/modern/internal/hooks/useStaticRangePicker/useStaticRangePicker.js +0 -2
  110. package/modern/internal/utils/releaseInfo.js +1 -1
  111. package/modern/internal/utils/valueManagers.js +15 -21
  112. package/modern/tests/describeRangeValidation/testTextFieldRangeValidation.js +1 -1
  113. package/node/DateRangeCalendar/DateRangeCalendar.js +7 -1
  114. package/node/DateRangePicker/DateRangePicker.js +0 -5
  115. package/node/DateRangePicker/DateRangePickerView.js +6 -3
  116. package/node/DateRangePicker/DateRangePickerViewMobile.js +1 -1
  117. package/node/DateRangePickerDay/DateRangePickerDay.js +72 -1
  118. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -5
  119. package/node/DesktopNextDateRangePicker/DesktopNextDateRangePicker.js +22 -8
  120. package/node/MobileDateRangePicker/MobileDateRangePicker.js +0 -5
  121. package/node/MobileNextDateRangePicker/MobileNextDateRangePicker.js +22 -8
  122. package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +46 -13
  123. package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +45 -10
  124. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +45 -10
  125. package/node/NextDateRangePicker/NextDateRangePicker.js +16 -2
  126. package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +110 -5
  127. package/node/StaticDateRangePicker/StaticDateRangePicker.js +0 -5
  128. package/node/StaticNextDateRangePicker/StaticNextDateRangePicker.js +20 -6
  129. package/node/{internal/utils/viewRenderers.js → dateRangeViewRenderers/dateRangeViewRenderers.js} +4 -4
  130. package/node/dateRangeViewRenderers/index.js +12 -0
  131. package/node/index.js +13 -1
  132. package/node/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.js +2 -4
  133. package/node/internal/hooks/useMobileRangePicker/useMobileRangePicker.js +2 -4
  134. package/node/internal/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +7 -1
  135. package/node/internal/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +7 -1
  136. package/node/internal/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +7 -1
  137. package/node/internal/hooks/useRangePickerInputProps.js +5 -6
  138. package/node/internal/hooks/useStaticRangePicker/useStaticRangePicker.js +0 -2
  139. package/node/internal/utils/releaseInfo.js +1 -1
  140. package/node/internal/utils/valueManagers.js +14 -20
  141. package/node/tests/describeRangeValidation/testTextFieldRangeValidation.js +1 -1
  142. package/package.json +3 -3
  143. package/tests/describeRangeValidation/testTextFieldRangeValidation.js +1 -1
  144. package/internal/utils/viewRenderers.d.ts +0 -7
@@ -7,13 +7,10 @@ import { extractValidationProps } from '@mui/x-date-pickers/internals';
7
7
  import { resolveComponentProps } from '@mui/base/utils';
8
8
  import { rangeValueManager } from '../internal/utils/valueManagers';
9
9
  import { useNextDateRangePickerDefaultizedProps } from '../NextDateRangePicker/shared';
10
- import { useDesktopRangePicker } from '../internal/hooks/useDesktopRangePicker';
10
+ import { renderDateRangeViewCalendar } from '../dateRangeViewRenderers';
11
11
  import { Unstable_MultiInputDateRangeField as MultiInputDateRangeField } from '../MultiInputDateRangeField';
12
- import { renderDateRangeView } from '../internal/utils/viewRenderers';
12
+ import { useDesktopRangePicker } from '../internal/hooks/useDesktopRangePicker';
13
13
  import { validateDateRange } from '../internal/hooks/validation/useDateRangeValidation';
14
- const VIEW_LOOKUP = {
15
- day: renderDateRangeView
16
- };
17
14
  const DesktopNextDateRangePicker = /*#__PURE__*/React.forwardRef(function DesktopNextDateRangePicker(inProps, ref) {
18
15
  // Props with the default values common to all date time pickers
19
16
  const _useNextDateRangePick = useNextDateRangePickerDefaultizedProps(inProps, 'MuiDesktopNextDateRangePicker'),
@@ -22,7 +19,11 @@ const DesktopNextDateRangePicker = /*#__PURE__*/React.forwardRef(function Deskto
22
19
  sx
23
20
  } = _useNextDateRangePick,
24
21
  defaultizedProps = _objectWithoutPropertiesLoose(_useNextDateRangePick, _excluded);
22
+ const viewRenderers = _extends({
23
+ day: renderDateRangeViewCalendar
24
+ }, defaultizedProps.viewRenderers);
25
25
  const props = _extends({}, defaultizedProps, {
26
+ viewRenderers,
26
27
  calendars: defaultizedProps.calendars ?? 2,
27
28
  views: ['day'],
28
29
  openTo: 'day',
@@ -43,7 +44,6 @@ const DesktopNextDateRangePicker = /*#__PURE__*/React.forwardRef(function Deskto
43
44
  } = useDesktopRangePicker({
44
45
  props,
45
46
  valueManager: rangeValueManager,
46
- viewLookup: VIEW_LOOKUP,
47
47
  validator: validateDateRange
48
48
  });
49
49
  return renderPicker();
@@ -53,6 +53,12 @@ DesktopNextDateRangePicker.propTypes = {
53
53
  // | These PropTypes are generated from the TypeScript type definitions |
54
54
  // | To update them edit the TypeScript types and run "yarn proptypes" |
55
55
  // ----------------------------------------------------------------------
56
+ /**
57
+ * If `true`, the main element is focused during the first mount.
58
+ * This main element is:
59
+ * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).
60
+ * - the `input` element if there is a field rendered.
61
+ */
56
62
  autoFocus: PropTypes.bool,
57
63
  /**
58
64
  * The number of calendars to render on **desktop**.
@@ -233,7 +239,7 @@ DesktopNextDateRangePicker.propTypes = {
233
239
  * 4. If `null` is provided, no section will be selected
234
240
  * If not provided, the selected sections will be handled internally.
235
241
  */
236
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
242
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
237
243
  endIndex: PropTypes.number.isRequired,
238
244
  startIndex: PropTypes.number.isRequired
239
245
  })]),
@@ -263,6 +269,14 @@ DesktopNextDateRangePicker.propTypes = {
263
269
  * The selected value.
264
270
  * Used when the component is controlled.
265
271
  */
266
- value: PropTypes.arrayOf(PropTypes.any)
272
+ value: PropTypes.arrayOf(PropTypes.any),
273
+ /**
274
+ * Define custom view renderers for each section.
275
+ * If `null`, the section will only have field editing.
276
+ * If `undefined`, internally defined view will be the used.
277
+ */
278
+ viewRenderers: PropTypes.shape({
279
+ day: PropTypes.func
280
+ })
267
281
  };
268
282
  export { DesktopNextDateRangePicker };
@@ -255,11 +255,6 @@ process.env.NODE_ENV !== "production" ? MobileDateRangePicker.propTypes = {
255
255
  * Use in controlled mode (see open).
256
256
  */
257
257
  onOpen: PropTypes.func,
258
- /**
259
- * Callback fired on view change.
260
- * @param {DateView} view The new view.
261
- */
262
- onViewChange: PropTypes.func,
263
258
  /**
264
259
  * Control the popup or dialog open state.
265
260
  */
@@ -7,13 +7,10 @@ import { extractValidationProps } from '@mui/x-date-pickers/internals';
7
7
  import { resolveComponentProps } from '@mui/base/utils';
8
8
  import { rangeValueManager } from '../internal/utils/valueManagers';
9
9
  import { useNextDateRangePickerDefaultizedProps } from '../NextDateRangePicker/shared';
10
- import { useMobileRangePicker } from '../internal/hooks/useMobileRangePicker';
10
+ import { renderDateRangeViewCalendar } from '../dateRangeViewRenderers';
11
11
  import { Unstable_MultiInputDateRangeField as MultiInputDateRangeField } from '../MultiInputDateRangeField';
12
- import { renderDateRangeView } from '../internal/utils/viewRenderers';
12
+ import { useMobileRangePicker } from '../internal/hooks/useMobileRangePicker';
13
13
  import { validateDateRange } from '../internal/hooks/validation/useDateRangeValidation';
14
- const VIEW_LOOKUP = {
15
- day: renderDateRangeView
16
- };
17
14
  const MobileNextDateRangePicker = /*#__PURE__*/React.forwardRef(function MobileNextDateRangePicker(inProps, ref) {
18
15
  // Props with the default values common to all date time pickers
19
16
  const _useNextDateRangePick = useNextDateRangePickerDefaultizedProps(inProps, 'MuiMobileNextDateRangePicker'),
@@ -22,7 +19,11 @@ const MobileNextDateRangePicker = /*#__PURE__*/React.forwardRef(function MobileN
22
19
  sx
23
20
  } = _useNextDateRangePick,
24
21
  defaultizedProps = _objectWithoutPropertiesLoose(_useNextDateRangePick, _excluded);
22
+ const viewRenderers = _extends({
23
+ day: renderDateRangeViewCalendar
24
+ }, defaultizedProps.viewRenderers);
25
25
  const props = _extends({}, defaultizedProps, {
26
+ viewRenderers,
26
27
  calendars: defaultizedProps.calendars ?? 1,
27
28
  views: ['day'],
28
29
  openTo: 'day',
@@ -43,7 +44,6 @@ const MobileNextDateRangePicker = /*#__PURE__*/React.forwardRef(function MobileN
43
44
  } = useMobileRangePicker({
44
45
  props,
45
46
  valueManager: rangeValueManager,
46
- viewLookup: VIEW_LOOKUP,
47
47
  validator: validateDateRange
48
48
  });
49
49
  return renderPicker();
@@ -53,6 +53,12 @@ MobileNextDateRangePicker.propTypes = {
53
53
  // | These PropTypes are generated from the TypeScript type definitions |
54
54
  // | To update them edit the TypeScript types and run "yarn proptypes" |
55
55
  // ----------------------------------------------------------------------
56
+ /**
57
+ * If `true`, the main element is focused during the first mount.
58
+ * This main element is:
59
+ * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).
60
+ * - the `input` element if there is a field rendered.
61
+ */
56
62
  autoFocus: PropTypes.bool,
57
63
  /**
58
64
  * The number of calendars to render on **desktop**.
@@ -233,7 +239,7 @@ MobileNextDateRangePicker.propTypes = {
233
239
  * 4. If `null` is provided, no section will be selected
234
240
  * If not provided, the selected sections will be handled internally.
235
241
  */
236
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
242
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
237
243
  endIndex: PropTypes.number.isRequired,
238
244
  startIndex: PropTypes.number.isRequired
239
245
  })]),
@@ -263,6 +269,14 @@ MobileNextDateRangePicker.propTypes = {
263
269
  * The selected value.
264
270
  * Used when the component is controlled.
265
271
  */
266
- value: PropTypes.arrayOf(PropTypes.any)
272
+ value: PropTypes.arrayOf(PropTypes.any),
273
+ /**
274
+ * Define custom view renderers for each section.
275
+ * If `null`, the section will only have field editing.
276
+ * If `undefined`, internally defined view will be the used.
277
+ */
278
+ viewRenderers: PropTypes.shape({
279
+ day: PropTypes.func
280
+ })
267
281
  };
268
282
  export { MobileNextDateRangePicker };
@@ -1,8 +1,8 @@
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", "onError", "shouldDisableDate", "minDate", "maxDate", "disableFuture", "disablePast", "selectedSections", "onSelectedSectionsChange", "autoFocus"],
4
- _excluded2 = ["onKeyDown", "ref"],
5
- _excluded3 = ["onKeyDown", "ref"];
3
+ const _excluded = ["components", "componentsProps", "value", "defaultValue", "format", "onChange", "readOnly", "disabled", "onError", "shouldDisableDate", "minDate", "maxDate", "disableFuture", "disablePast", "selectedSections", "onSelectedSectionsChange", "autoFocus"],
4
+ _excluded2 = ["onKeyDown", "ref", "readOnly", "inputMode"],
5
+ _excluded3 = ["onKeyDown", "ref", "readOnly", "inputMode"];
6
6
  import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import Stack from '@mui/material/Stack';
@@ -14,18 +14,15 @@ import { useMultiInputDateRangeField } from '../internal/hooks/useMultiInputRang
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
15
  import { jsxs as _jsxs } from "react/jsx-runtime";
16
16
  const MultiInputDateRangeFieldRoot = styled( /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/_jsx(Stack, _extends({
17
- ref: ref
18
- }, props, {
17
+ ref: ref,
19
18
  spacing: 2,
20
19
  direction: "row",
21
- alignItems: "center"
22
- }))), {
20
+ alignItems: "baseline"
21
+ }, props))), {
23
22
  name: 'MuiMultiInputDateRangeField',
24
23
  slot: 'Root',
25
24
  overridesResolver: (props, styles) => styles.root
26
- })({
27
- alignItems: 'baseline'
28
- });
25
+ })({});
29
26
  const MultiInputDateRangeFieldSeparator = styled(props => /*#__PURE__*/_jsx(Typography, _extends({}, props, {
30
27
  children: props.children ?? ' — '
31
28
  })), {
@@ -46,6 +43,7 @@ const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
46
43
  format,
47
44
  onChange,
48
45
  readOnly,
46
+ disabled,
49
47
  onError,
50
48
  shouldDisableDate,
51
49
  minDate,
@@ -99,6 +97,7 @@ const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
99
97
  format,
100
98
  onChange,
101
99
  readOnly,
100
+ disabled,
102
101
  onError,
103
102
  shouldDisableDate,
104
103
  minDate,
@@ -116,11 +115,15 @@ const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
116
115
  {
117
116
  startDate: {
118
117
  onKeyDown: onStartInputKeyDown,
119
- ref: startInputRef
118
+ ref: startInputRef,
119
+ readOnly: startReadOnly,
120
+ inputMode: startInputMode
120
121
  },
121
122
  endDate: {
122
123
  onKeyDown: onEndInputKeyDown,
123
- ref: endInputRef
124
+ ref: endInputRef,
125
+ readOnly: endReadOnly,
126
+ inputMode: endInputMode
124
127
  }
125
128
  } = _useMultiInputDateRan,
126
129
  startDateProps = _objectWithoutPropertiesLoose(_useMultiInputDateRan.startDate, _excluded3),
@@ -129,11 +132,15 @@ const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
129
132
  children: [/*#__PURE__*/_jsx(Input, _extends({}, startDateProps, {
130
133
  inputProps: _extends({}, startDateProps.inputProps, {
131
134
  ref: startInputRef,
135
+ readOnly: startReadOnly,
136
+ inputMode: startInputMode,
132
137
  onKeyDown: onStartInputKeyDown
133
138
  })
134
139
  })), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(Input, _extends({}, endDateProps, {
135
140
  inputProps: _extends({}, endDateProps.inputProps, {
136
141
  ref: endInputRef,
142
+ readOnly: endReadOnly,
143
+ inputMode: endInputMode,
137
144
  onKeyDown: onEndInputKeyDown
138
145
  })
139
146
  }))]
@@ -145,6 +152,7 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
145
152
  // | To update them edit the TypeScript types and run "yarn proptypes" |
146
153
  // ----------------------------------------------------------------------
147
154
  autoFocus: PropTypes.bool,
155
+ className: PropTypes.string,
148
156
  /**
149
157
  * Overrideable components.
150
158
  * @default {}
@@ -159,6 +167,17 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
159
167
  * The default value. Use when the component is not controlled.
160
168
  */
161
169
  defaultValue: PropTypes.arrayOf(PropTypes.any),
170
+ /**
171
+ * Defines the `flex-direction` style property.
172
+ * It is applied for all screen sizes.
173
+ * @default 'column'
174
+ */
175
+ direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),
176
+ /**
177
+ * If `true`, the component is disabled.
178
+ * @default false
179
+ */
180
+ disabled: PropTypes.bool,
162
181
  /**
163
182
  * If `true` disable values before the current date for date components, time for time components and both for date time components.
164
183
  * @default false
@@ -169,6 +188,10 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
169
188
  * @default false
170
189
  */
171
190
  disablePast: PropTypes.bool,
191
+ /**
192
+ * Add an element between each child.
193
+ */
194
+ divider: PropTypes.node,
172
195
  /**
173
196
  * Format of the date when rendered in the input(s).
174
197
  */
@@ -215,7 +238,7 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
215
238
  * 4. If `null` is provided, no section will be selected
216
239
  * If not provided, the selected sections will be handled internally.
217
240
  */
218
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
241
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
219
242
  endIndex: PropTypes.number.isRequired,
220
243
  startIndex: PropTypes.number.isRequired
221
244
  })]),
@@ -227,6 +250,16 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
227
250
  * @returns {boolean} Returns `true` if the date should be disabled.
228
251
  */
229
252
  shouldDisableDate: PropTypes.func,
253
+ /**
254
+ * Defines the space between immediate children.
255
+ * @default 0
256
+ */
257
+ spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),
258
+ style: PropTypes.object,
259
+ /**
260
+ * The system prop, which allows defining system overrides as well as additional CSS styles.
261
+ */
262
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
230
263
  /**
231
264
  * The selected value.
232
265
  * Used when the component is controlled.
@@ -1,8 +1,8 @@
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", "onError", "shouldDisableDate", "minDate", "maxDate", "minTime", "maxTime", "minDateTime", "maxDateTime", "minutesStep", "shouldDisableTime", "disableFuture", "disablePast", "selectedSections", "onSelectedSectionsChange"],
4
- _excluded2 = ["onKeyDown", "ref"],
5
- _excluded3 = ["onKeyDown", "ref"];
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"],
4
+ _excluded2 = ["onKeyDown", "ref", "readOnly", "inputMode"],
5
+ _excluded3 = ["onKeyDown", "ref", "readOnly", "inputMode"];
6
6
  import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import Stack from '@mui/material/Stack';
@@ -14,12 +14,11 @@ import { useMultiInputDateTimeRangeField } from '../internal/hooks/useMultiInput
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
15
  import { jsxs as _jsxs } from "react/jsx-runtime";
16
16
  const MultiInputDateTimeRangeFieldRoot = styled( /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/_jsx(Stack, _extends({
17
- ref: ref
18
- }, props, {
17
+ ref: ref,
19
18
  spacing: 2,
20
19
  direction: "row",
21
- alignItems: "center"
22
- }))), {
20
+ alignItems: "baseline"
21
+ }, props))), {
23
22
  name: 'MuiMultiInputDateTimeRangeField',
24
23
  slot: 'Root',
25
24
  overridesResolver: (props, styles) => styles.root
@@ -44,6 +43,7 @@ const MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Mult
44
43
  format,
45
44
  onChange,
46
45
  readOnly,
46
+ disabled,
47
47
  onError,
48
48
  shouldDisableDate,
49
49
  minDate,
@@ -99,6 +99,7 @@ const MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Mult
99
99
  format,
100
100
  onChange,
101
101
  readOnly,
102
+ disabled,
102
103
  onError,
103
104
  shouldDisableDate,
104
105
  minDate,
@@ -122,11 +123,15 @@ const MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Mult
122
123
  {
123
124
  startDate: {
124
125
  onKeyDown: onStartInputKeyDown,
125
- ref: startInputRef
126
+ ref: startInputRef,
127
+ readOnly: startReadOnly,
128
+ inputMode: startInputMode
126
129
  },
127
130
  endDate: {
128
131
  onKeyDown: onEndInputKeyDown,
129
- ref: endInputRef
132
+ ref: endInputRef,
133
+ readOnly: endReadOnly,
134
+ inputMode: endInputMode
130
135
  }
131
136
  } = _useMultiInputDateTim,
132
137
  startDateProps = _objectWithoutPropertiesLoose(_useMultiInputDateTim.startDate, _excluded3),
@@ -135,11 +140,15 @@ const MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Mult
135
140
  children: [/*#__PURE__*/_jsx(Input, _extends({}, startDateProps, {
136
141
  inputProps: _extends({}, startDateProps.inputProps, {
137
142
  ref: startInputRef,
143
+ readOnly: startReadOnly,
144
+ inputMode: startInputMode,
138
145
  onKeyDown: onStartInputKeyDown
139
146
  })
140
147
  })), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(Input, _extends({}, endDateProps, {
141
148
  inputProps: _extends({}, endDateProps.inputProps, {
142
149
  ref: endInputRef,
150
+ readOnly: endReadOnly,
151
+ inputMode: endInputMode,
143
152
  onKeyDown: onEndInputKeyDown
144
153
  })
145
154
  }))]
@@ -155,6 +164,7 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
155
164
  * @default `utils.is12HourCycleInCurrentLocale()`
156
165
  */
157
166
  ampm: PropTypes.bool,
167
+ className: PropTypes.string,
158
168
  /**
159
169
  * Overrideable components.
160
170
  * @default {}
@@ -169,6 +179,17 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
169
179
  * The default value. Use when the component is not controlled.
170
180
  */
171
181
  defaultValue: PropTypes.arrayOf(PropTypes.any),
182
+ /**
183
+ * Defines the `flex-direction` style property.
184
+ * It is applied for all screen sizes.
185
+ * @default 'column'
186
+ */
187
+ direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),
188
+ /**
189
+ * If `true`, the component is disabled.
190
+ * @default false
191
+ */
192
+ disabled: PropTypes.bool,
172
193
  /**
173
194
  * If `true` disable values before the current date for date components, time for time components and both for date time components.
174
195
  * @default false
@@ -184,6 +205,10 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
184
205
  * @default false
185
206
  */
186
207
  disablePast: PropTypes.bool,
208
+ /**
209
+ * Add an element between each child.
210
+ */
211
+ divider: PropTypes.node,
187
212
  /**
188
213
  * Format of the date when rendered in the input(s).
189
214
  */
@@ -253,7 +278,7 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
253
278
  * 4. If `null` is provided, no section will be selected
254
279
  * If not provided, the selected sections will be handled internally.
255
280
  */
256
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
281
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
257
282
  endIndex: PropTypes.number.isRequired,
258
283
  startIndex: PropTypes.number.isRequired
259
284
  })]),
@@ -272,6 +297,16 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
272
297
  * @returns {boolean} If `true` the time will be disabled.
273
298
  */
274
299
  shouldDisableTime: PropTypes.func,
300
+ /**
301
+ * Defines the space between immediate children.
302
+ * @default 0
303
+ */
304
+ spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),
305
+ style: PropTypes.object,
306
+ /**
307
+ * The system prop, which allows defining system overrides as well as additional CSS styles.
308
+ */
309
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
275
310
  /**
276
311
  * The selected value.
277
312
  * Used when the component is controlled.
@@ -1,8 +1,8 @@
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", "onError", "minTime", "maxTime", "minutesStep", "shouldDisableTime", "disableFuture", "disablePast", "selectedSections", "onSelectedSectionsChange"],
4
- _excluded2 = ["onKeyDown", "ref"],
5
- _excluded3 = ["onKeyDown", "ref"];
3
+ const _excluded = ["components", "componentsProps", "value", "defaultValue", "format", "onChange", "readOnly", "disabled", "onError", "minTime", "maxTime", "minutesStep", "shouldDisableTime", "disableFuture", "disablePast", "selectedSections", "onSelectedSectionsChange"],
4
+ _excluded2 = ["onKeyDown", "ref", "readOnly", "inputMode"],
5
+ _excluded3 = ["onKeyDown", "ref", "readOnly", "inputMode"];
6
6
  import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import Stack from '@mui/material/Stack';
@@ -14,12 +14,11 @@ import { useMultiInputTimeRangeField } from '../internal/hooks/useMultiInputRang
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
15
  import { jsxs as _jsxs } from "react/jsx-runtime";
16
16
  const MultiInputTimeRangeFieldRoot = styled( /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/_jsx(Stack, _extends({
17
- ref: ref
18
- }, props, {
17
+ ref: ref,
19
18
  spacing: 2,
20
19
  direction: "row",
21
- alignItems: "center"
22
- }))), {
20
+ alignItems: "baseline"
21
+ }, props))), {
23
22
  name: 'MuiMultiInputTimeRangeField',
24
23
  slot: 'Root',
25
24
  overridesResolver: (props, styles) => styles.root
@@ -44,6 +43,7 @@ const MultiInputTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
44
43
  format,
45
44
  onChange,
46
45
  readOnly,
46
+ disabled,
47
47
  onError,
48
48
  minTime,
49
49
  maxTime,
@@ -94,6 +94,7 @@ const MultiInputTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
94
94
  format,
95
95
  onChange,
96
96
  readOnly,
97
+ disabled,
97
98
  onError,
98
99
  minTime,
99
100
  maxTime,
@@ -112,11 +113,15 @@ const MultiInputTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
112
113
  {
113
114
  startDate: {
114
115
  onKeyDown: onStartInputKeyDown,
115
- ref: startInputRef
116
+ ref: startInputRef,
117
+ readOnly: startReadOnly,
118
+ inputMode: startInputMode
116
119
  },
117
120
  endDate: {
118
121
  onKeyDown: onEndInputKeyDown,
119
- ref: endInputRef
122
+ ref: endInputRef,
123
+ readOnly: endReadOnly,
124
+ inputMode: endInputMode
120
125
  }
121
126
  } = _useMultiInputTimeRan,
122
127
  startDateProps = _objectWithoutPropertiesLoose(_useMultiInputTimeRan.startDate, _excluded3),
@@ -125,11 +130,15 @@ const MultiInputTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
125
130
  children: [/*#__PURE__*/_jsx(Input, _extends({}, startDateProps, {
126
131
  inputProps: _extends({}, startDateProps.inputProps, {
127
132
  ref: startInputRef,
133
+ readOnly: startReadOnly,
134
+ inputMode: startInputMode,
128
135
  onKeyDown: onStartInputKeyDown
129
136
  })
130
137
  })), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(Input, _extends({}, endDateProps, {
131
138
  inputProps: _extends({}, endDateProps.inputProps, {
132
139
  ref: endInputRef,
140
+ readOnly: endReadOnly,
141
+ inputMode: endInputMode,
133
142
  onKeyDown: onEndInputKeyDown
134
143
  })
135
144
  }))]
@@ -145,6 +154,7 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
145
154
  * @default `utils.is12HourCycleInCurrentLocale()`
146
155
  */
147
156
  ampm: PropTypes.bool,
157
+ className: PropTypes.string,
148
158
  /**
149
159
  * Overrideable components.
150
160
  * @default {}
@@ -159,6 +169,17 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
159
169
  * The default value. Use when the component is not controlled.
160
170
  */
161
171
  defaultValue: PropTypes.arrayOf(PropTypes.any),
172
+ /**
173
+ * Defines the `flex-direction` style property.
174
+ * It is applied for all screen sizes.
175
+ * @default 'column'
176
+ */
177
+ direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),
178
+ /**
179
+ * If `true`, the component is disabled.
180
+ * @default false
181
+ */
182
+ disabled: PropTypes.bool,
162
183
  /**
163
184
  * If `true` disable values before the current date for date components, time for time components and both for date time components.
164
185
  * @default false
@@ -174,6 +195,10 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
174
195
  * @default false
175
196
  */
176
197
  disablePast: PropTypes.bool,
198
+ /**
199
+ * Add an element between each child.
200
+ */
201
+ divider: PropTypes.node,
177
202
  /**
178
203
  * Format of the date when rendered in the input(s).
179
204
  */
@@ -227,7 +252,7 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
227
252
  * 4. If `null` is provided, no section will be selected
228
253
  * If not provided, the selected sections will be handled internally.
229
254
  */
230
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
255
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
231
256
  endIndex: PropTypes.number.isRequired,
232
257
  startIndex: PropTypes.number.isRequired
233
258
  })]),
@@ -238,6 +263,16 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
238
263
  * @returns {boolean} If `true` the time will be disabled.
239
264
  */
240
265
  shouldDisableTime: PropTypes.func,
266
+ /**
267
+ * Defines the space between immediate children.
268
+ * @default 0
269
+ */
270
+ spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),
271
+ style: PropTypes.object,
272
+ /**
273
+ * The system prop, which allows defining system overrides as well as additional CSS styles.
274
+ */
275
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
241
276
  /**
242
277
  * The selected value.
243
278
  * Used when the component is controlled.
@@ -36,6 +36,12 @@ process.env.NODE_ENV !== "production" ? NextDateRangePicker.propTypes = {
36
36
  // | These PropTypes are generated from the TypeScript type definitions |
37
37
  // | To update them edit the TypeScript types and run "yarn proptypes" |
38
38
  // ----------------------------------------------------------------------
39
+ /**
40
+ * If `true`, the main element is focused during the first mount.
41
+ * This main element is:
42
+ * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).
43
+ * - the `input` element if there is a field rendered.
44
+ */
39
45
  autoFocus: PropTypes.bool,
40
46
  /**
41
47
  * The number of calendars to render on **desktop**.
@@ -222,7 +228,7 @@ process.env.NODE_ENV !== "production" ? NextDateRangePicker.propTypes = {
222
228
  * 4. If `null` is provided, no section will be selected
223
229
  * If not provided, the selected sections will be handled internally.
224
230
  */
225
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
231
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
226
232
  endIndex: PropTypes.number.isRequired,
227
233
  startIndex: PropTypes.number.isRequired
228
234
  })]),
@@ -252,6 +258,14 @@ process.env.NODE_ENV !== "production" ? NextDateRangePicker.propTypes = {
252
258
  * The selected value.
253
259
  * Used when the component is controlled.
254
260
  */
255
- value: PropTypes.arrayOf(PropTypes.any)
261
+ value: PropTypes.arrayOf(PropTypes.any),
262
+ /**
263
+ * Define custom view renderers for each section.
264
+ * If `null`, the section will only have field editing.
265
+ * If `undefined`, internally defined view will be the used.
266
+ */
267
+ viewRenderers: PropTypes.shape({
268
+ day: PropTypes.func
269
+ })
256
270
  } : void 0;
257
271
  export { NextDateRangePicker };