@mui/x-date-pickers-pro 6.0.0-alpha.11 → 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 (147) hide show
  1. package/CHANGELOG.md +260 -0
  2. package/DateRangeCalendar/DateRangeCalendar.js +30 -3
  3. package/DateRangeCalendar/DateRangeCalendar.types.d.ts +37 -37
  4. package/DateRangePicker/DateRangePicker.js +0 -6
  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 -6
  11. package/DesktopNextDateRangePicker/DesktopNextDateRangePicker.js +22 -9
  12. package/MobileDateRangePicker/MobileDateRangePicker.d.ts +5 -0
  13. package/MobileDateRangePicker/MobileDateRangePicker.js +0 -6
  14. package/MobileNextDateRangePicker/MobileNextDateRangePicker.js +22 -9
  15. package/MultiInputDateRangeField/MultiInputDateRangeField.js +51 -11
  16. package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +4 -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 +2 -1
  33. package/index.js +5 -2
  34. package/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.d.ts +1 -1
  35. package/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.js +6 -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 +4 -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 +7 -7
  45. package/internal/hooks/useRangePickerInputProps.js +12 -11
  46. package/internal/hooks/useStaticRangePicker/useStaticRangePicker.d.ts +1 -1
  47. package/internal/hooks/useStaticRangePicker/useStaticRangePicker.js +3 -3
  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/fields.d.ts +6 -1
  52. package/internal/models/range.d.ts +0 -4
  53. package/internal/models/timeRange.d.ts +2 -1
  54. package/internal/utils/date-fields-utils.d.ts +21 -5
  55. package/internal/utils/releaseInfo.js +1 -1
  56. package/internal/utils/valueManagers.d.ts +3 -2
  57. package/internal/utils/valueManagers.js +21 -22
  58. package/legacy/DateRangeCalendar/DateRangeCalendar.js +36 -3
  59. package/legacy/DateRangePicker/DateRangePicker.js +0 -6
  60. package/legacy/DateRangePicker/DateRangePickerView.js +7 -2
  61. package/legacy/DateRangePicker/DateRangePickerViewMobile.js +1 -1
  62. package/legacy/DateRangePickerDay/DateRangePickerDay.js +72 -1
  63. package/legacy/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -6
  64. package/legacy/DesktopNextDateRangePicker/DesktopNextDateRangePicker.js +22 -9
  65. package/legacy/MobileDateRangePicker/MobileDateRangePicker.js +0 -6
  66. package/legacy/MobileNextDateRangePicker/MobileNextDateRangePicker.js +22 -9
  67. package/legacy/MultiInputDateRangeField/MultiInputDateRangeField.js +48 -8
  68. package/legacy/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +43 -8
  69. package/legacy/MultiInputTimeRangeField/MultiInputTimeRangeField.js +43 -8
  70. package/legacy/NextDateRangePicker/NextDateRangePicker.js +16 -2
  71. package/legacy/SingleInputDateRangeField/SingleInputDateRangeField.js +109 -4
  72. package/legacy/StaticDateRangePicker/StaticDateRangePicker.js +0 -5
  73. package/legacy/StaticNextDateRangePicker/StaticNextDateRangePicker.js +20 -6
  74. package/legacy/{internal/utils/viewRenderers.js → dateRangeViewRenderers/dateRangeViewRenderers.js} +3 -4
  75. package/legacy/dateRangeViewRenderers/index.js +1 -0
  76. package/legacy/index.js +5 -2
  77. package/legacy/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.js +6 -4
  78. package/legacy/internal/hooks/useMobileRangePicker/useMobileRangePicker.js +4 -4
  79. package/legacy/internal/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +7 -1
  80. package/legacy/internal/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +7 -1
  81. package/legacy/internal/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +7 -1
  82. package/legacy/internal/hooks/useRangePickerInputProps.js +12 -11
  83. package/legacy/internal/hooks/useStaticRangePicker/useStaticRangePicker.js +3 -3
  84. package/legacy/internal/utils/releaseInfo.js +1 -1
  85. package/legacy/internal/utils/valueManagers.js +20 -23
  86. package/legacy/tests/describeRangeValidation/testTextFieldRangeValidation.js +1 -1
  87. package/modern/DateRangeCalendar/DateRangeCalendar.js +29 -3
  88. package/modern/DateRangePicker/DateRangePicker.js +0 -6
  89. package/modern/DateRangePicker/DateRangePickerView.js +6 -3
  90. package/modern/DateRangePicker/DateRangePickerViewMobile.js +1 -1
  91. package/modern/DateRangePickerDay/DateRangePickerDay.js +72 -1
  92. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -6
  93. package/modern/DesktopNextDateRangePicker/DesktopNextDateRangePicker.js +22 -9
  94. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +0 -6
  95. package/modern/MobileNextDateRangePicker/MobileNextDateRangePicker.js +22 -9
  96. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +51 -11
  97. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +45 -10
  98. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +45 -10
  99. package/modern/NextDateRangePicker/NextDateRangePicker.js +16 -2
  100. package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +110 -5
  101. package/modern/StaticDateRangePicker/StaticDateRangePicker.js +0 -5
  102. package/modern/StaticNextDateRangePicker/StaticNextDateRangePicker.js +20 -6
  103. package/modern/{internal/utils/viewRenderers.js → dateRangeViewRenderers/dateRangeViewRenderers.js} +3 -4
  104. package/modern/dateRangeViewRenderers/index.js +1 -0
  105. package/modern/index.js +5 -2
  106. package/modern/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.js +6 -4
  107. package/modern/internal/hooks/useMobileRangePicker/useMobileRangePicker.js +4 -4
  108. package/modern/internal/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +7 -1
  109. package/modern/internal/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +7 -1
  110. package/modern/internal/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +7 -1
  111. package/modern/internal/hooks/useRangePickerInputProps.js +11 -11
  112. package/modern/internal/hooks/useStaticRangePicker/useStaticRangePicker.js +3 -3
  113. package/modern/internal/utils/releaseInfo.js +1 -1
  114. package/modern/internal/utils/valueManagers.js +21 -22
  115. package/modern/tests/describeRangeValidation/testTextFieldRangeValidation.js +1 -1
  116. package/node/DateRangeCalendar/DateRangeCalendar.js +28 -2
  117. package/node/DateRangePicker/DateRangePicker.js +0 -6
  118. package/node/DateRangePicker/DateRangePickerView.js +6 -3
  119. package/node/DateRangePicker/DateRangePickerViewMobile.js +1 -1
  120. package/node/DateRangePickerDay/DateRangePickerDay.js +72 -1
  121. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -6
  122. package/node/DesktopNextDateRangePicker/DesktopNextDateRangePicker.js +22 -9
  123. package/node/MobileDateRangePicker/MobileDateRangePicker.js +0 -6
  124. package/node/MobileNextDateRangePicker/MobileNextDateRangePicker.js +22 -9
  125. package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +51 -11
  126. package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +45 -10
  127. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +45 -10
  128. package/node/NextDateRangePicker/NextDateRangePicker.js +16 -2
  129. package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +110 -5
  130. package/node/StaticDateRangePicker/StaticDateRangePicker.js +0 -5
  131. package/node/StaticNextDateRangePicker/StaticNextDateRangePicker.js +20 -6
  132. package/node/{internal/utils/viewRenderers.js → dateRangeViewRenderers/dateRangeViewRenderers.js} +4 -4
  133. package/node/dateRangeViewRenderers/index.js +12 -0
  134. package/node/index.js +13 -1
  135. package/node/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.js +6 -4
  136. package/node/internal/hooks/useMobileRangePicker/useMobileRangePicker.js +4 -4
  137. package/node/internal/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +7 -1
  138. package/node/internal/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +7 -1
  139. package/node/internal/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +7 -1
  140. package/node/internal/hooks/useRangePickerInputProps.js +11 -11
  141. package/node/internal/hooks/useStaticRangePicker/useStaticRangePicker.js +3 -3
  142. package/node/internal/utils/releaseInfo.js +1 -1
  143. package/node/internal/utils/valueManagers.js +20 -21
  144. package/node/tests/describeRangeValidation/testTextFieldRangeValidation.js +1 -1
  145. package/package.json +4 -4
  146. package/tests/describeRangeValidation/testTextFieldRangeValidation.js +1 -1
  147. 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
  var _defaultizedProps$cal, _defaultizedProps$sho;
19
16
  // Props with the default values common to all date time pickers
@@ -23,12 +20,15 @@ const DesktopNextDateRangePicker = /*#__PURE__*/React.forwardRef(function Deskto
23
20
  sx
24
21
  } = _useNextDateRangePick,
25
22
  defaultizedProps = _objectWithoutPropertiesLoose(_useNextDateRangePick, _excluded);
23
+ const viewRenderers = _extends({
24
+ day: renderDateRangeViewCalendar
25
+ }, defaultizedProps.viewRenderers);
26
26
  const props = _extends({}, defaultizedProps, {
27
+ viewRenderers,
27
28
  calendars: (_defaultizedProps$cal = defaultizedProps.calendars) != null ? _defaultizedProps$cal : 2,
28
29
  views: ['day'],
29
30
  openTo: 'day',
30
31
  showToolbar: (_defaultizedProps$sho = defaultizedProps.showToolbar) != null ? _defaultizedProps$sho : false,
31
- autoFocus: true,
32
32
  components: _extends({
33
33
  Field: MultiInputDateRangeField
34
34
  }, defaultizedProps.components),
@@ -48,7 +48,6 @@ const DesktopNextDateRangePicker = /*#__PURE__*/React.forwardRef(function Deskto
48
48
  } = useDesktopRangePicker({
49
49
  props,
50
50
  valueManager: rangeValueManager,
51
- viewLookup: VIEW_LOOKUP,
52
51
  validator: validateDateRange
53
52
  });
54
53
  return renderPicker();
@@ -58,6 +57,12 @@ DesktopNextDateRangePicker.propTypes = {
58
57
  // | These PropTypes are generated from the TypeScript type definitions |
59
58
  // | To update them edit the TypeScript types and run "yarn proptypes" |
60
59
  // ----------------------------------------------------------------------
60
+ /**
61
+ * If `true`, the main element is focused during the first mount.
62
+ * This main element is:
63
+ * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).
64
+ * - the `input` element if there is a field rendered.
65
+ */
61
66
  autoFocus: PropTypes.bool,
62
67
  /**
63
68
  * The number of calendars to render on **desktop**.
@@ -238,7 +243,7 @@ DesktopNextDateRangePicker.propTypes = {
238
243
  * 4. If `null` is provided, no section will be selected
239
244
  * If not provided, the selected sections will be handled internally.
240
245
  */
241
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
246
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
242
247
  endIndex: PropTypes.number.isRequired,
243
248
  startIndex: PropTypes.number.isRequired
244
249
  })]),
@@ -268,6 +273,14 @@ DesktopNextDateRangePicker.propTypes = {
268
273
  * The selected value.
269
274
  * Used when the component is controlled.
270
275
  */
271
- value: PropTypes.arrayOf(PropTypes.any)
276
+ value: PropTypes.arrayOf(PropTypes.any),
277
+ /**
278
+ * Define custom view renderers for each section.
279
+ * If `null`, the section will only have field editing.
280
+ * If `undefined`, internally defined view will be the used.
281
+ */
282
+ viewRenderers: PropTypes.shape({
283
+ day: PropTypes.func
284
+ })
272
285
  };
273
286
  export { DesktopNextDateRangePicker };
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react';
2
+ import { SxProps } from '@mui/system';
2
3
  import { MobileWrapperProps, MobileWrapperSlotsComponent, MobileWrapperSlotsComponentsProps, DateInputSlotsComponent } from '@mui/x-date-pickers/internals';
3
4
  import { BaseDateRangePickerProps, BaseDateRangePickerSlotsComponent, BaseDateRangePickerSlotsComponentsProps } from '../DateRangePicker/shared';
4
5
  export interface MobileDateRangePickerSlotsComponent<TDate> extends BaseDateRangePickerSlotsComponent<TDate>, MobileWrapperSlotsComponent, DateInputSlotsComponent {
@@ -16,6 +17,10 @@ export interface MobileDateRangePickerProps<TDate> extends BaseDateRangePickerPr
16
17
  * @default {}
17
18
  */
18
19
  componentsProps?: MobileDateRangePickerSlotsComponentsProps<TDate>;
20
+ /**
21
+ * The system prop that allows defining system overrides as well as additional CSS styles.
22
+ */
23
+ sx?: SxProps;
19
24
  }
20
25
  type MobileDateRangePickerComponent = (<TDate>(props: MobileDateRangePickerProps<TDate> & React.RefAttributes<HTMLDivElement>) => JSX.Element) & {
21
26
  propTypes?: any;
@@ -82,7 +82,6 @@ process.env.NODE_ENV !== "production" ? MobileDateRangePicker.propTypes = {
82
82
  * @default /\dap/gi
83
83
  */
84
84
  acceptRegex: PropTypes.instanceOf(RegExp),
85
- autoFocus: PropTypes.bool,
86
85
  /**
87
86
  * The number of calendars that render on **desktop**.
88
87
  * @default 2
@@ -256,11 +255,6 @@ process.env.NODE_ENV !== "production" ? MobileDateRangePicker.propTypes = {
256
255
  * Use in controlled mode (see open).
257
256
  */
258
257
  onOpen: PropTypes.func,
259
- /**
260
- * Callback fired on view change.
261
- * @param {DateView} view The new view.
262
- */
263
- onViewChange: PropTypes.func,
264
258
  /**
265
259
  * Control the popup or dialog open state.
266
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
  var _defaultizedProps$cal, _defaultizedProps$sho;
19
16
  // Props with the default values common to all date time pickers
@@ -23,12 +20,15 @@ const MobileNextDateRangePicker = /*#__PURE__*/React.forwardRef(function MobileN
23
20
  sx
24
21
  } = _useNextDateRangePick,
25
22
  defaultizedProps = _objectWithoutPropertiesLoose(_useNextDateRangePick, _excluded);
23
+ const viewRenderers = _extends({
24
+ day: renderDateRangeViewCalendar
25
+ }, defaultizedProps.viewRenderers);
26
26
  const props = _extends({}, defaultizedProps, {
27
+ viewRenderers,
27
28
  calendars: (_defaultizedProps$cal = defaultizedProps.calendars) != null ? _defaultizedProps$cal : 1,
28
29
  views: ['day'],
29
30
  openTo: 'day',
30
31
  showToolbar: (_defaultizedProps$sho = defaultizedProps.showToolbar) != null ? _defaultizedProps$sho : true,
31
- autoFocus: true,
32
32
  components: _extends({
33
33
  Field: MultiInputDateRangeField
34
34
  }, defaultizedProps.components),
@@ -48,7 +48,6 @@ const MobileNextDateRangePicker = /*#__PURE__*/React.forwardRef(function MobileN
48
48
  } = useMobileRangePicker({
49
49
  props,
50
50
  valueManager: rangeValueManager,
51
- viewLookup: VIEW_LOOKUP,
52
51
  validator: validateDateRange
53
52
  });
54
53
  return renderPicker();
@@ -58,6 +57,12 @@ MobileNextDateRangePicker.propTypes = {
58
57
  // | These PropTypes are generated from the TypeScript type definitions |
59
58
  // | To update them edit the TypeScript types and run "yarn proptypes" |
60
59
  // ----------------------------------------------------------------------
60
+ /**
61
+ * If `true`, the main element is focused during the first mount.
62
+ * This main element is:
63
+ * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).
64
+ * - the `input` element if there is a field rendered.
65
+ */
61
66
  autoFocus: PropTypes.bool,
62
67
  /**
63
68
  * The number of calendars to render on **desktop**.
@@ -238,7 +243,7 @@ MobileNextDateRangePicker.propTypes = {
238
243
  * 4. If `null` is provided, no section will be selected
239
244
  * If not provided, the selected sections will be handled internally.
240
245
  */
241
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
246
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
242
247
  endIndex: PropTypes.number.isRequired,
243
248
  startIndex: PropTypes.number.isRequired
244
249
  })]),
@@ -268,6 +273,14 @@ MobileNextDateRangePicker.propTypes = {
268
273
  * The selected value.
269
274
  * Used when the component is controlled.
270
275
  */
271
- value: PropTypes.arrayOf(PropTypes.any)
276
+ value: PropTypes.arrayOf(PropTypes.any),
277
+ /**
278
+ * Define custom view renderers for each section.
279
+ * If `null`, the section will only have field editing.
280
+ * If `undefined`, internally defined view will be the used.
281
+ */
282
+ viewRenderers: PropTypes.shape({
283
+ day: PropTypes.func
284
+ })
272
285
  };
273
286
  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"],
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,12 +14,11 @@ 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
@@ -48,6 +47,7 @@ const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
48
47
  format,
49
48
  onChange,
50
49
  readOnly,
50
+ disabled,
51
51
  onError,
52
52
  shouldDisableDate,
53
53
  minDate,
@@ -55,7 +55,8 @@ const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
55
55
  disableFuture,
56
56
  disablePast,
57
57
  selectedSections,
58
- onSelectedSectionsChange
58
+ onSelectedSectionsChange,
59
+ autoFocus
59
60
  } = themeProps,
60
61
  other = _objectWithoutPropertiesLoose(themeProps, _excluded);
61
62
  const ownerState = themeProps;
@@ -73,6 +74,9 @@ const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
73
74
  const startInputProps = useSlotProps({
74
75
  elementType: Input,
75
76
  externalSlotProps: componentsProps == null ? void 0 : componentsProps.input,
77
+ additionalProps: {
78
+ autoFocus
79
+ },
76
80
  ownerState: _extends({}, ownerState, {
77
81
  position: 'start'
78
82
  })
@@ -97,6 +101,7 @@ const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
97
101
  format,
98
102
  onChange,
99
103
  readOnly,
104
+ disabled,
100
105
  onError,
101
106
  shouldDisableDate,
102
107
  minDate,
@@ -114,11 +119,15 @@ const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
114
119
  {
115
120
  startDate: {
116
121
  onKeyDown: onStartInputKeyDown,
117
- ref: startInputRef
122
+ ref: startInputRef,
123
+ readOnly: startReadOnly,
124
+ inputMode: startInputMode
118
125
  },
119
126
  endDate: {
120
127
  onKeyDown: onEndInputKeyDown,
121
- ref: endInputRef
128
+ ref: endInputRef,
129
+ readOnly: endReadOnly,
130
+ inputMode: endInputMode
122
131
  }
123
132
  } = _useMultiInputDateRan,
124
133
  startDateProps = _objectWithoutPropertiesLoose(_useMultiInputDateRan.startDate, _excluded3),
@@ -127,11 +136,15 @@ const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
127
136
  children: [/*#__PURE__*/_jsx(Input, _extends({}, startDateProps, {
128
137
  inputProps: _extends({}, startDateProps.inputProps, {
129
138
  ref: startInputRef,
139
+ readOnly: startReadOnly,
140
+ inputMode: startInputMode,
130
141
  onKeyDown: onStartInputKeyDown
131
142
  })
132
143
  })), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(Input, _extends({}, endDateProps, {
133
144
  inputProps: _extends({}, endDateProps.inputProps, {
134
145
  ref: endInputRef,
146
+ readOnly: endReadOnly,
147
+ inputMode: endInputMode,
135
148
  onKeyDown: onEndInputKeyDown
136
149
  })
137
150
  }))]
@@ -142,6 +155,8 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
142
155
  // | These PropTypes are generated from the TypeScript type definitions |
143
156
  // | To update them edit the TypeScript types and run "yarn proptypes" |
144
157
  // ----------------------------------------------------------------------
158
+ autoFocus: PropTypes.bool,
159
+ className: PropTypes.string,
145
160
  /**
146
161
  * Overrideable components.
147
162
  * @default {}
@@ -156,6 +171,17 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
156
171
  * The default value. Use when the component is not controlled.
157
172
  */
158
173
  defaultValue: PropTypes.arrayOf(PropTypes.any),
174
+ /**
175
+ * Defines the `flex-direction` style property.
176
+ * It is applied for all screen sizes.
177
+ * @default 'column'
178
+ */
179
+ direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),
180
+ /**
181
+ * If `true`, the component is disabled.
182
+ * @default false
183
+ */
184
+ disabled: PropTypes.bool,
159
185
  /**
160
186
  * If `true` disable values before the current date for date components, time for time components and both for date time components.
161
187
  * @default false
@@ -166,6 +192,10 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
166
192
  * @default false
167
193
  */
168
194
  disablePast: PropTypes.bool,
195
+ /**
196
+ * Add an element between each child.
197
+ */
198
+ divider: PropTypes.node,
169
199
  /**
170
200
  * Format of the date when rendered in the input(s).
171
201
  */
@@ -212,7 +242,7 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
212
242
  * 4. If `null` is provided, no section will be selected
213
243
  * If not provided, the selected sections will be handled internally.
214
244
  */
215
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
245
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
216
246
  endIndex: PropTypes.number.isRequired,
217
247
  startIndex: PropTypes.number.isRequired
218
248
  })]),
@@ -224,6 +254,16 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
224
254
  * @returns {boolean} Returns `true` if the date should be disabled.
225
255
  */
226
256
  shouldDisableDate: PropTypes.func,
257
+ /**
258
+ * Defines the space between immediate children.
259
+ * @default 0
260
+ */
261
+ spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),
262
+ style: PropTypes.object,
263
+ /**
264
+ * The system prop, which allows defining system overrides as well as additional CSS styles.
265
+ */
266
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
227
267
  /**
228
268
  * The selected value.
229
269
  * Used when the component is controlled.
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { SlotComponentProps } from '@mui/base/utils';
3
3
  import Typography from '@mui/material/Typography';
4
- import Stack from '@mui/material/Stack';
4
+ import Stack, { StackProps } from '@mui/material/Stack';
5
5
  import TextField from '@mui/material/TextField';
6
6
  import { UseDateRangeFieldProps } from '../internal/models/dateRange';
7
7
  import { RangePosition } from '../internal/models/range';
@@ -15,7 +15,9 @@ export interface UseMultiInputDateRangeFieldParams<TDate, TChildProps extends {}
15
15
  export interface UseMultiInputDateRangeFieldProps<TDate> extends UseDateRangeFieldProps<TDate> {
16
16
  }
17
17
  export type UseMultiInputDateRangeFieldComponentProps<TDate, TChildProps extends {}> = Omit<TChildProps, keyof UseMultiInputDateRangeFieldProps<TDate>> & UseMultiInputDateRangeFieldProps<TDate>;
18
- export interface MultiInputDateRangeFieldProps<TDate> extends UseMultiInputDateRangeFieldComponentProps<TDate, {}> {
18
+ export interface MultiInputDateRangeFieldProps<TDate> extends UseMultiInputDateRangeFieldComponentProps<TDate, Omit<StackProps, 'position'> & {
19
+ autoFocus?: boolean;
20
+ }> {
19
21
  /**
20
22
  * Overrideable components.
21
23
  * @default {}
@@ -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
@@ -48,6 +47,7 @@ const MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Mult
48
47
  format,
49
48
  onChange,
50
49
  readOnly,
50
+ disabled,
51
51
  onError,
52
52
  shouldDisableDate,
53
53
  minDate,
@@ -103,6 +103,7 @@ const MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Mult
103
103
  format,
104
104
  onChange,
105
105
  readOnly,
106
+ disabled,
106
107
  onError,
107
108
  shouldDisableDate,
108
109
  minDate,
@@ -126,11 +127,15 @@ const MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Mult
126
127
  {
127
128
  startDate: {
128
129
  onKeyDown: onStartInputKeyDown,
129
- ref: startInputRef
130
+ ref: startInputRef,
131
+ readOnly: startReadOnly,
132
+ inputMode: startInputMode
130
133
  },
131
134
  endDate: {
132
135
  onKeyDown: onEndInputKeyDown,
133
- ref: endInputRef
136
+ ref: endInputRef,
137
+ readOnly: endReadOnly,
138
+ inputMode: endInputMode
134
139
  }
135
140
  } = _useMultiInputDateTim,
136
141
  startDateProps = _objectWithoutPropertiesLoose(_useMultiInputDateTim.startDate, _excluded3),
@@ -139,11 +144,15 @@ const MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Mult
139
144
  children: [/*#__PURE__*/_jsx(Input, _extends({}, startDateProps, {
140
145
  inputProps: _extends({}, startDateProps.inputProps, {
141
146
  ref: startInputRef,
147
+ readOnly: startReadOnly,
148
+ inputMode: startInputMode,
142
149
  onKeyDown: onStartInputKeyDown
143
150
  })
144
151
  })), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(Input, _extends({}, endDateProps, {
145
152
  inputProps: _extends({}, endDateProps.inputProps, {
146
153
  ref: endInputRef,
154
+ readOnly: endReadOnly,
155
+ inputMode: endInputMode,
147
156
  onKeyDown: onEndInputKeyDown
148
157
  })
149
158
  }))]
@@ -159,6 +168,7 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
159
168
  * @default `utils.is12HourCycleInCurrentLocale()`
160
169
  */
161
170
  ampm: PropTypes.bool,
171
+ className: PropTypes.string,
162
172
  /**
163
173
  * Overrideable components.
164
174
  * @default {}
@@ -173,6 +183,17 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
173
183
  * The default value. Use when the component is not controlled.
174
184
  */
175
185
  defaultValue: PropTypes.arrayOf(PropTypes.any),
186
+ /**
187
+ * Defines the `flex-direction` style property.
188
+ * It is applied for all screen sizes.
189
+ * @default 'column'
190
+ */
191
+ direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),
192
+ /**
193
+ * If `true`, the component is disabled.
194
+ * @default false
195
+ */
196
+ disabled: PropTypes.bool,
176
197
  /**
177
198
  * If `true` disable values before the current date for date components, time for time components and both for date time components.
178
199
  * @default false
@@ -188,6 +209,10 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
188
209
  * @default false
189
210
  */
190
211
  disablePast: PropTypes.bool,
212
+ /**
213
+ * Add an element between each child.
214
+ */
215
+ divider: PropTypes.node,
191
216
  /**
192
217
  * Format of the date when rendered in the input(s).
193
218
  */
@@ -257,7 +282,7 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
257
282
  * 4. If `null` is provided, no section will be selected
258
283
  * If not provided, the selected sections will be handled internally.
259
284
  */
260
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
285
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
261
286
  endIndex: PropTypes.number.isRequired,
262
287
  startIndex: PropTypes.number.isRequired
263
288
  })]),
@@ -276,6 +301,16 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
276
301
  * @returns {boolean} If `true` the time will be disabled.
277
302
  */
278
303
  shouldDisableTime: PropTypes.func,
304
+ /**
305
+ * Defines the space between immediate children.
306
+ * @default 0
307
+ */
308
+ spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),
309
+ style: PropTypes.object,
310
+ /**
311
+ * The system prop, which allows defining system overrides as well as additional CSS styles.
312
+ */
313
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
279
314
  /**
280
315
  * The selected value.
281
316
  * Used when the component is controlled.
@@ -1,8 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import { SlotComponentProps } from '@mui/base/utils';
3
3
  import Typography from '@mui/material/Typography';
4
- import Stack from '@mui/material/Stack';
5
- import TextField, { TextFieldProps } from '@mui/material/TextField';
4
+ import Stack, { StackProps } from '@mui/material/Stack';
5
+ import TextField from '@mui/material/TextField';
6
6
  import { UseDateTimeRangeFieldDefaultizedProps, UseDateTimeRangeFieldProps } from '../internal/models/dateTimeRange';
7
7
  import { RangePosition } from '../internal/models/range';
8
8
  export interface UseMultiInputDateTimeRangeFieldParams<TDate, TChildProps extends {}> {
@@ -15,7 +15,7 @@ export interface UseMultiInputDateTimeRangeFieldParams<TDate, TChildProps extend
15
15
  export interface UseMultiInputDateTimeRangeFieldProps<TDate> extends UseDateTimeRangeFieldProps<TDate> {
16
16
  }
17
17
  export type UseMultiInputDateTimeRangeFieldComponentProps<TDate, TChildProps extends {}> = Omit<TChildProps, keyof UseMultiInputDateTimeRangeFieldProps<TDate>> & UseMultiInputDateTimeRangeFieldProps<TDate>;
18
- export interface MultiInputDateTimeRangeFieldProps<TDate> extends UseMultiInputDateTimeRangeFieldComponentProps<TDate, TextFieldProps> {
18
+ export interface MultiInputDateTimeRangeFieldProps<TDate> extends UseMultiInputDateTimeRangeFieldComponentProps<TDate, Omit<StackProps, 'position'>> {
19
19
  /**
20
20
  * Overrideable components.
21
21
  * @default {}