@mui/x-date-pickers 7.0.0-beta.6 → 7.0.0

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 (154) hide show
  1. package/AdapterDateFns/AdapterDateFns.js +1 -1
  2. package/AdapterDateFnsBase/AdapterDateFnsBase.js +1 -2
  3. package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +2 -4
  4. package/AdapterDateFnsV3/AdapterDateFnsV3.js +1 -1
  5. package/AdapterDayjs/AdapterDayjs.js +2 -4
  6. package/AdapterLuxon/AdapterLuxon.js +12 -9
  7. package/AdapterMoment/AdapterMoment.js +5 -6
  8. package/CHANGELOG.md +311 -12
  9. package/DateCalendar/DateCalendar.js +14 -16
  10. package/DateCalendar/DayCalendar.js +7 -7
  11. package/DateField/DateField.js +3 -4
  12. package/DatePicker/DatePicker.js +1 -1
  13. package/DatePicker/shared.d.ts +2 -1
  14. package/DatePicker/shared.js +3 -5
  15. package/DateTimeField/DateTimeField.js +3 -4
  16. package/DateTimePicker/DateTimePicker.js +1 -1
  17. package/DateTimePicker/DateTimePickerToolbar.js +1 -1
  18. package/DateTimePicker/shared.d.ts +2 -1
  19. package/DateTimePicker/shared.js +11 -13
  20. package/DesktopDatePicker/DesktopDatePicker.js +7 -11
  21. package/DesktopDateTimePicker/DesktopDateTimePicker.js +72 -37
  22. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +12 -0
  23. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +101 -0
  24. package/DesktopDateTimePicker/index.d.ts +1 -0
  25. package/DesktopDateTimePicker/index.js +2 -1
  26. package/DesktopTimePicker/DesktopTimePicker.js +8 -12
  27. package/DigitalClock/DigitalClock.js +2 -3
  28. package/LocalizationProvider/LocalizationProvider.js +1 -2
  29. package/MobileDatePicker/MobileDatePicker.js +6 -10
  30. package/MobileDateTimePicker/MobileDateTimePicker.js +8 -12
  31. package/MobileTimePicker/MobileTimePicker.js +6 -10
  32. package/MonthCalendar/MonthCalendar.js +4 -4
  33. package/MonthCalendar/PickersMonth.js +1 -2
  34. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +1 -1
  35. package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +1 -1
  36. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +3 -5
  37. package/PickersActionBar/PickersActionBar.js +1 -1
  38. package/PickersCalendarHeader/PickersCalendarHeader.d.ts +1 -1
  39. package/PickersCalendarHeader/PickersCalendarHeader.js +4 -5
  40. package/PickersLayout/usePickerLayout.js +8 -9
  41. package/PickersSectionList/PickersSectionList.js +9 -11
  42. package/PickersTextField/PickersFilledInput/PickersFilledInput.js +2 -3
  43. package/PickersTextField/PickersInput/PickersInput.js +1 -1
  44. package/PickersTextField/PickersInputBase/PickersInputBase.js +4 -5
  45. package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +2 -2
  46. package/README.md +1 -1
  47. package/StaticDatePicker/StaticDatePicker.js +4 -5
  48. package/StaticDateTimePicker/StaticDateTimePicker.js +6 -7
  49. package/StaticTimePicker/StaticTimePicker.js +3 -4
  50. package/TimeClock/TimeClock.js +1 -1
  51. package/TimeField/TimeField.js +2 -3
  52. package/TimePicker/shared.d.ts +2 -1
  53. package/TimePicker/shared.js +5 -7
  54. package/YearCalendar/YearCalendar.js +5 -6
  55. package/hooks/useClearableField.js +6 -7
  56. package/index.js +1 -1
  57. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +8 -9
  58. package/internals/components/PickersModalDialog.js +6 -7
  59. package/internals/components/PickersPopper.js +13 -16
  60. package/internals/components/PickersToolbar.js +9 -12
  61. package/internals/hooks/date-helpers-hooks.js +1 -1
  62. package/internals/hooks/defaultizedFieldProps.js +15 -18
  63. package/internals/hooks/useClockReferenceDate.js +1 -1
  64. package/internals/hooks/useDesktopPicker/index.d.ts +1 -1
  65. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +11 -12
  66. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +2 -2
  67. package/internals/hooks/useField/buildSectionsFromFormat.js +35 -31
  68. package/internals/hooks/useField/useField.js +2 -2
  69. package/internals/hooks/useField/useField.utils.js +4 -7
  70. package/internals/hooks/useField/useFieldCharacterEditing.js +1 -2
  71. package/internals/hooks/useField/useFieldState.js +1 -1
  72. package/internals/hooks/useField/useFieldV6TextField.js +9 -15
  73. package/internals/hooks/useField/useFieldV7TextField.js +11 -13
  74. package/internals/hooks/useMobilePicker/useMobilePicker.js +7 -8
  75. package/internals/hooks/useOpenState.js +1 -1
  76. package/internals/hooks/usePicker/index.d.ts +1 -0
  77. package/internals/hooks/usePicker/usePickerViews.d.ts +4 -2
  78. package/internals/hooks/usePicker/usePickerViews.js +1 -2
  79. package/internals/hooks/useStaticPicker/useStaticPicker.js +13 -17
  80. package/internals/hooks/useValueWithTimezone.js +5 -6
  81. package/internals/hooks/useViews.js +3 -4
  82. package/internals/index.d.ts +1 -1
  83. package/internals/models/validation.d.ts +1 -1
  84. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +3 -3
  85. package/internals/utils/date-time-utils.js +2 -5
  86. package/internals/utils/date-utils.d.ts +1 -1
  87. package/internals/utils/date-utils.js +8 -8
  88. package/internals/utils/fields.js +1 -1
  89. package/internals/utils/getDefaultReferenceDate.js +2 -6
  90. package/internals/utils/views.js +1 -1
  91. package/locales/csCZ.js +1 -4
  92. package/locales/daDK.js +1 -4
  93. package/locales/deDE.js +1 -4
  94. package/locales/huHU.js +1 -4
  95. package/locales/jaJP.js +16 -23
  96. package/locales/roRO.js +1 -4
  97. package/locales/skSK.js +1 -4
  98. package/modern/AdapterLuxon/AdapterLuxon.js +9 -4
  99. package/modern/DateCalendar/DateCalendar.js +1 -1
  100. package/modern/DateCalendar/DayCalendar.js +2 -1
  101. package/modern/DateField/DateField.js +1 -1
  102. package/modern/DatePicker/DatePicker.js +1 -1
  103. package/modern/DateTimeField/DateTimeField.js +1 -1
  104. package/modern/DateTimePicker/DateTimePicker.js +1 -1
  105. package/modern/DesktopDatePicker/DesktopDatePicker.js +1 -1
  106. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +64 -25
  107. package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +101 -0
  108. package/modern/DesktopDateTimePicker/index.js +2 -1
  109. package/modern/MobileDatePicker/MobileDatePicker.js +1 -1
  110. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +1 -1
  111. package/modern/StaticDatePicker/StaticDatePicker.js +1 -1
  112. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
  113. package/modern/index.js +1 -1
  114. package/modern/internals/components/PickersPopper.js +1 -1
  115. package/modern/internals/hooks/useField/buildSectionsFromFormat.js +34 -30
  116. package/modern/internals/hooks/useField/useFieldV7TextField.js +3 -3
  117. package/modern/internals/hooks/useOpenState.js +1 -1
  118. package/modern/internals/utils/date-utils.js +8 -8
  119. package/modern/internals/utils/fields.js +1 -1
  120. package/modern/locales/jaJP.js +15 -19
  121. package/node/AdapterLuxon/AdapterLuxon.js +9 -4
  122. package/node/DateCalendar/DateCalendar.js +1 -1
  123. package/node/DateCalendar/DayCalendar.js +2 -1
  124. package/node/DateField/DateField.js +1 -1
  125. package/node/DatePicker/DatePicker.js +1 -1
  126. package/node/DateTimeField/DateTimeField.js +1 -1
  127. package/node/DateTimePicker/DateTimePicker.js +1 -1
  128. package/node/DesktopDatePicker/DesktopDatePicker.js +1 -1
  129. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +63 -25
  130. package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +108 -0
  131. package/node/DesktopDateTimePicker/index.js +8 -1
  132. package/node/MobileDatePicker/MobileDatePicker.js +1 -1
  133. package/node/MobileDateTimePicker/MobileDateTimePicker.js +1 -1
  134. package/node/StaticDatePicker/StaticDatePicker.js +1 -1
  135. package/node/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
  136. package/node/index.js +1 -1
  137. package/node/internals/components/PickersPopper.js +1 -1
  138. package/node/internals/hooks/useField/buildSectionsFromFormat.js +34 -30
  139. package/node/internals/hooks/useField/useFieldV7TextField.js +3 -3
  140. package/node/internals/hooks/useOpenState.js +1 -1
  141. package/node/internals/utils/date-utils.js +9 -9
  142. package/node/internals/utils/fields.js +1 -1
  143. package/node/locales/jaJP.js +15 -19
  144. package/package.json +5 -5
  145. package/timeViewRenderers/timeViewRenderers.js +1 -1
  146. package/dateTimeViewRenderers/dateTimeViewRenderers.d.ts +0 -15
  147. package/dateTimeViewRenderers/dateTimeViewRenderers.js +0 -163
  148. package/dateTimeViewRenderers/index.d.ts +0 -2
  149. package/dateTimeViewRenderers/index.js +0 -1
  150. package/dateTimeViewRenderers/package.json +0 -6
  151. package/modern/dateTimeViewRenderers/dateTimeViewRenderers.js +0 -162
  152. package/modern/dateTimeViewRenderers/index.js +0 -1
  153. package/node/dateTimeViewRenderers/dateTimeViewRenderers.js +0 -171
  154. package/node/dateTimeViewRenderers/index.js +0 -12
@@ -290,7 +290,7 @@ DesktopDatePicker.propTypes = {
290
290
  /**
291
291
  * Disable specific date.
292
292
  *
293
- * Warning: This function can be called multiple times (e.g. when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
293
+ * Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
294
294
  *
295
295
  * @template TDate
296
296
  * @param {TDate} day The date to test.
@@ -6,23 +6,67 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.DesktopDateTimePicker = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
10
  var React = _interopRequireWildcard(require("react"));
10
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
12
  var _utils = require("@mui/base/utils");
12
13
  var _utils2 = require("@mui/utils");
14
+ var _Divider = _interopRequireDefault(require("@mui/material/Divider"));
13
15
  var _valueManagers = require("../internals/utils/valueManagers");
14
16
  var _DateTimeField = require("../DateTimeField");
15
17
  var _shared = require("../DateTimePicker/shared");
16
18
  var _dateViewRenderers = require("../dateViewRenderers/dateViewRenderers");
17
- var _dateTimeViewRenderers = require("../dateTimeViewRenderers");
18
19
  var _useUtils = require("../internals/hooks/useUtils");
19
20
  var _validateDateTime = require("../internals/utils/validation/validateDateTime");
20
21
  var _icons = require("../icons");
21
22
  var _useDesktopPicker = require("../internals/hooks/useDesktopPicker");
22
23
  var _extractValidationProps = require("../internals/utils/validation/extractValidationProps");
23
24
  var _dateTimeUtils = require("../internals/utils/date-time-utils");
25
+ var _timeViewRenderers = require("../timeViewRenderers");
26
+ var _internals = require("../internals");
27
+ var _MultiSectionDigitalClock = require("../MultiSectionDigitalClock");
28
+ var _DigitalClock = require("../DigitalClock");
29
+ var _DesktopDateTimePickerLayout = require("./DesktopDateTimePickerLayout");
30
+ var _jsxRuntime = require("react/jsx-runtime");
31
+ const _excluded = ["openTo", "focusedView", "timeViewsCount"];
24
32
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
25
33
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
34
+ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popperView, rendererProps) {
35
+ const {
36
+ openTo,
37
+ focusedView,
38
+ timeViewsCount
39
+ } = rendererProps,
40
+ otherProps = (0, _objectWithoutPropertiesLoose2.default)(rendererProps, _excluded);
41
+ const finalProps = (0, _extends2.default)({}, otherProps, {
42
+ focusedView: null,
43
+ sx: [{
44
+ [`&.${_MultiSectionDigitalClock.multiSectionDigitalClockClasses.root}`]: {
45
+ borderBottom: 0
46
+ },
47
+ [`&.${_MultiSectionDigitalClock.multiSectionDigitalClockClasses.root}, .${_MultiSectionDigitalClock.multiSectionDigitalClockSectionClasses.root}, &.${_DigitalClock.digitalClockClasses.root}`]: {
48
+ maxHeight: _internals.VIEW_HEIGHT
49
+ }
50
+ }]
51
+ });
52
+ const isTimeViewActive = (0, _internals.isInternalTimeView)(popperView);
53
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
54
+ children: [inViewRenderers[!isTimeViewActive ? popperView : 'day']?.((0, _extends2.default)({}, rendererProps, {
55
+ view: !isTimeViewActive ? popperView : 'day',
56
+ focusedView: focusedView && (0, _internals.isDatePickerView)(focusedView) ? focusedView : null,
57
+ views: rendererProps.views.filter(_internals.isDatePickerView)
58
+ })), timeViewsCount > 0 && /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
59
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Divider.default, {
60
+ orientation: "vertical"
61
+ }), inViewRenderers[isTimeViewActive ? popperView : 'hours']?.((0, _extends2.default)({}, finalProps, {
62
+ view: isTimeViewActive ? popperView : 'hours',
63
+ focusedView: focusedView && (0, _internals.isInternalTimeView)(focusedView) ? focusedView : null,
64
+ openTo: (0, _internals.isInternalTimeView)(openTo) ? openTo : 'hours',
65
+ views: rendererProps.views.filter(_internals.isInternalTimeView)
66
+ }))]
67
+ })]
68
+ });
69
+ };
26
70
  /**
27
71
  * Demos:
28
72
  *
@@ -42,32 +86,24 @@ const DesktopDateTimePicker = exports.DesktopDateTimePicker = /*#__PURE__*/React
42
86
  const {
43
87
  shouldRenderTimeInASingleColumn,
44
88
  thresholdToRenderTimeInASingleColumn,
45
- views,
89
+ views: resolvedViews,
46
90
  timeSteps
47
91
  } = (0, _dateTimeUtils.resolveTimeViewsResponse)(defaultizedProps);
48
- const shouldUseNewRenderer = !defaultizedProps.viewRenderers || Object.keys(defaultizedProps.viewRenderers).length === 0;
49
- const viewRenderers =
50
- // we can only ensure the expected two-column layout if none of the renderers are overridden
51
- shouldUseNewRenderer ? {
52
- day: _dateTimeViewRenderers.renderDesktopDateTimeView,
53
- month: _dateTimeViewRenderers.renderDesktopDateTimeView,
54
- year: _dateTimeViewRenderers.renderDesktopDateTimeView,
55
- hours: _dateTimeViewRenderers.renderDesktopDateTimeView,
56
- minutes: _dateTimeViewRenderers.renderDesktopDateTimeView,
57
- seconds: _dateTimeViewRenderers.renderDesktopDateTimeView,
58
- meridiem: _dateTimeViewRenderers.renderDesktopDateTimeView
59
- } : (0, _extends2.default)({
92
+ const renderTimeView = shouldRenderTimeInASingleColumn ? _timeViewRenderers.renderDigitalClockTimeView : _timeViewRenderers.renderMultiSectionDigitalClockTimeView;
93
+ const viewRenderers = (0, _extends2.default)({
60
94
  day: _dateViewRenderers.renderDateViewCalendar,
61
95
  month: _dateViewRenderers.renderDateViewCalendar,
62
96
  year: _dateViewRenderers.renderDateViewCalendar,
63
- hours: null,
64
- minutes: null,
65
- seconds: null,
66
- meridiem: null
97
+ hours: renderTimeView,
98
+ minutes: renderTimeView,
99
+ seconds: renderTimeView,
100
+ meridiem: renderTimeView
67
101
  }, defaultizedProps.viewRenderers);
68
102
  const ampmInClock = defaultizedProps.ampmInClock ?? true;
69
- // add "accept" action only when the new date time view renderers are used
70
- const actionBarActions = shouldUseNewRenderer ? ['accept'] : [];
103
+ // Need to avoid adding the `meridiem` view when unexpected renderer is specified
104
+ const shouldHoursRendererContainMeridiemView = viewRenderers.hours?.name === _timeViewRenderers.renderMultiSectionDigitalClockTimeView.name;
105
+ const views = !shouldHoursRendererContainMeridiemView ? resolvedViews.filter(view => view !== 'meridiem') : resolvedViews;
106
+ const actionBarActions = shouldRenderTimeInASingleColumn ? [] : ['accept'];
71
107
 
72
108
  // Props with the default values specific to the desktop variant
73
109
  const props = (0, _extends2.default)({}, defaultizedProps, {
@@ -81,6 +117,7 @@ const DesktopDateTimePicker = exports.DesktopDateTimePicker = /*#__PURE__*/React
81
117
  shouldRenderTimeInASingleColumn,
82
118
  slots: (0, _extends2.default)({
83
119
  field: _DateTimeField.DateTimeField,
120
+ layout: _DesktopDateTimePickerLayout.DesktopDateTimePickerLayout,
84
121
  openPickerIcon: _icons.CalendarIcon
85
122
  }, defaultizedProps.slots),
86
123
  slotProps: (0, _extends2.default)({}, defaultizedProps.slotProps, {
@@ -90,14 +127,14 @@ const DesktopDateTimePicker = exports.DesktopDateTimePicker = /*#__PURE__*/React
90
127
  toolbar: (0, _extends2.default)({
91
128
  hidden: true,
92
129
  ampmInClock,
93
- toolbarVariant: shouldUseNewRenderer ? 'desktop' : 'mobile'
130
+ toolbarVariant: 'desktop'
94
131
  }, defaultizedProps.slotProps?.toolbar),
95
132
  tabs: (0, _extends2.default)({
96
133
  hidden: true
97
134
  }, defaultizedProps.slotProps?.tabs),
98
- actionBar: (0, _extends2.default)({
135
+ actionBar: ownerState => (0, _extends2.default)({
99
136
  actions: actionBarActions
100
- }, defaultizedProps.slotProps?.actionBar)
137
+ }, (0, _utils.resolveComponentProps)(defaultizedProps.slotProps?.actionBar, ownerState))
101
138
  })
102
139
  });
103
140
  const {
@@ -107,7 +144,8 @@ const DesktopDateTimePicker = exports.DesktopDateTimePicker = /*#__PURE__*/React
107
144
  valueManager: _valueManagers.singleItemValueManager,
108
145
  valueType: 'date-time',
109
146
  getOpenDialogAriaText: props.localeText?.openDatePickerDialogue ?? localeText.openDatePickerDialogue,
110
- validator: _validateDateTime.validateDateTime
147
+ validator: _validateDateTime.validateDateTime,
148
+ rendererInterceptor
111
149
  });
112
150
  return renderPicker();
113
151
  });
@@ -366,7 +404,7 @@ DesktopDateTimePicker.propTypes = {
366
404
  /**
367
405
  * Disable specific date.
368
406
  *
369
- * Warning: This function can be called multiple times (e.g. when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
407
+ * Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
370
408
  *
371
409
  * @template TDate
372
410
  * @param {TDate} day The date to test.
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.DesktopDateTimePickerLayout = DesktopDateTimePickerLayout;
8
+ var React = _interopRequireWildcard(require("react"));
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _clsx = _interopRequireDefault(require("clsx"));
11
+ var _Divider = _interopRequireDefault(require("@mui/material/Divider"));
12
+ var _PickersLayout = require("../PickersLayout");
13
+ var _jsxRuntime = require("react/jsx-runtime");
14
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
+ /**
17
+ * @ignore - internal component.
18
+ */
19
+ function DesktopDateTimePickerLayout(props) {
20
+ const {
21
+ toolbar,
22
+ tabs,
23
+ content,
24
+ actionBar,
25
+ shortcuts
26
+ } = (0, _PickersLayout.usePickerLayout)(props);
27
+ const {
28
+ sx,
29
+ className,
30
+ isLandscape,
31
+ ref
32
+ } = props;
33
+ const isActionBarVisible = actionBar && (actionBar.props.actions?.length ?? 0) > 0;
34
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_PickersLayout.PickersLayoutRoot, {
35
+ ref: ref,
36
+ className: (0, _clsx.default)(className, _PickersLayout.pickersLayoutClasses.root),
37
+ sx: [{
38
+ [`& .${_PickersLayout.pickersLayoutClasses.tabs}`]: {
39
+ gridRow: 4,
40
+ gridColumn: '1 / 4'
41
+ },
42
+ [`& .${_PickersLayout.pickersLayoutClasses.actionBar}`]: {
43
+ gridRow: 5
44
+ }
45
+ }, ...(Array.isArray(sx) ? sx : [sx])],
46
+ ownerState: props,
47
+ children: [isLandscape ? shortcuts : toolbar, isLandscape ? toolbar : shortcuts, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_PickersLayout.PickersLayoutContentWrapper, {
48
+ className: _PickersLayout.pickersLayoutClasses.contentWrapper,
49
+ sx: {
50
+ display: 'grid'
51
+ },
52
+ children: [content, tabs, isActionBarVisible && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Divider.default, {
53
+ sx: {
54
+ gridRow: 3,
55
+ gridColumn: '1 / 4'
56
+ }
57
+ })]
58
+ }), actionBar]
59
+ });
60
+ }
61
+ process.env.NODE_ENV !== "production" ? DesktopDateTimePickerLayout.propTypes = {
62
+ // ----------------------------- Warning --------------------------------
63
+ // | These PropTypes are generated from the TypeScript type definitions |
64
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
65
+ // ----------------------------------------------------------------------
66
+ children: _propTypes.default.node,
67
+ /**
68
+ * Override or extend the styles applied to the component.
69
+ */
70
+ classes: _propTypes.default.object,
71
+ className: _propTypes.default.string,
72
+ disabled: _propTypes.default.bool,
73
+ isLandscape: _propTypes.default.bool.isRequired,
74
+ isValid: _propTypes.default.func.isRequired,
75
+ onAccept: _propTypes.default.func.isRequired,
76
+ onCancel: _propTypes.default.func.isRequired,
77
+ onChange: _propTypes.default.func.isRequired,
78
+ onClear: _propTypes.default.func.isRequired,
79
+ onClose: _propTypes.default.func.isRequired,
80
+ onDismiss: _propTypes.default.func.isRequired,
81
+ onOpen: _propTypes.default.func.isRequired,
82
+ onSelectShortcut: _propTypes.default.func.isRequired,
83
+ onSetToday: _propTypes.default.func.isRequired,
84
+ onViewChange: _propTypes.default.func.isRequired,
85
+ /**
86
+ * Force rendering in particular orientation.
87
+ */
88
+ orientation: _propTypes.default.oneOf(['landscape', 'portrait']),
89
+ readOnly: _propTypes.default.bool,
90
+ /**
91
+ * The props used for each component slot.
92
+ * @default {}
93
+ */
94
+ slotProps: _propTypes.default.object,
95
+ /**
96
+ * Overridable component slots.
97
+ * @default {}
98
+ */
99
+ slots: _propTypes.default.object,
100
+ /**
101
+ * The system prop that allows defining system overrides as well as additional CSS styles.
102
+ */
103
+ sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
104
+ value: _propTypes.default.any,
105
+ view: _propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),
106
+ views: _propTypes.default.arrayOf(_propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired,
107
+ wrapperVariant: _propTypes.default.oneOf(['desktop', 'mobile'])
108
+ } : void 0;
@@ -9,4 +9,11 @@ Object.defineProperty(exports, "DesktopDateTimePicker", {
9
9
  return _DesktopDateTimePicker.DesktopDateTimePicker;
10
10
  }
11
11
  });
12
- var _DesktopDateTimePicker = require("./DesktopDateTimePicker");
12
+ Object.defineProperty(exports, "DesktopDateTimePickerLayout", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _DesktopDateTimePickerLayout.DesktopDateTimePickerLayout;
16
+ }
17
+ });
18
+ var _DesktopDateTimePicker = require("./DesktopDateTimePicker");
19
+ var _DesktopDateTimePickerLayout = require("./DesktopDateTimePickerLayout");
@@ -287,7 +287,7 @@ MobileDatePicker.propTypes = {
287
287
  /**
288
288
  * Disable specific date.
289
289
  *
290
- * Warning: This function can be called multiple times (e.g. when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
290
+ * Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
291
291
  *
292
292
  * @template TDate
293
293
  * @param {TDate} day The date to test.
@@ -335,7 +335,7 @@ MobileDateTimePicker.propTypes = {
335
335
  /**
336
336
  * Disable specific date.
337
337
  *
338
- * Warning: This function can be called multiple times (e.g. when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
338
+ * Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
339
339
  *
340
340
  * @template TDate
341
341
  * @param {TDate} day The date to test.
@@ -217,7 +217,7 @@ StaticDatePicker.propTypes = {
217
217
  /**
218
218
  * Disable specific date.
219
219
  *
220
- * Warning: This function can be called multiple times (e.g. when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
220
+ * Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
221
221
  *
222
222
  * @template TDate
223
223
  * @param {TDate} day The date to test.
@@ -265,7 +265,7 @@ StaticDateTimePicker.propTypes = {
265
265
  /**
266
266
  * Disable specific date.
267
267
  *
268
- * Warning: This function can be called multiple times (e.g. when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
268
+ * Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
269
269
  *
270
270
  * @template TDate
271
271
  * @param {TDate} day The date to test.
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers v7.0.0-beta.6
2
+ * @mui/x-date-pickers v7.0.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -155,7 +155,7 @@ function useClickAwayListener(active, onClickAway) {
155
155
  // TODO This behavior is not tested automatically
156
156
  // It's unclear whether this is due to different update semantics in test (batched in act() vs discrete on click).
157
157
  // Or if this is a timing related issues due to different Transition components
158
- // Once we get rid of all the manual scheduling (e.g. setTimeout(update, 0)) we can revisit this code+test.
158
+ // Once we get rid of all the manual scheduling (for example setTimeout(update, 0)) we can revisit this code+test.
159
159
  if (active) {
160
160
  const doc = (0, _utils2.unstable_ownerDocument)(nodeRef.current);
161
161
  doc.addEventListener('click', handleClickAway);
@@ -159,49 +159,53 @@ const buildSections = params => {
159
159
  const sections = [];
160
160
  let startSeparator = '';
161
161
 
162
- // This RegExp test if the beginning of a string corresponds to a supported token
163
- const isTokenStartRegExp = new RegExp(`^(${Object.keys(utils.formatTokenMap).sort((a, b) => b.length - a.length) // Sort to put longest word first
164
- .join('|')})`, 'g') // used to get access to lastIndex state
165
- ;
166
- let currentTokenValue = '';
167
- for (let i = 0; i < expandedFormat.length; i += 1) {
168
- const escapedPartOfCurrentChar = escapedParts.find(escapeIndex => escapeIndex.start <= i && escapeIndex.end >= i);
169
- const char = expandedFormat[i];
162
+ // This RegExp tests if the beginning of a string corresponds to a supported token
163
+ const validTokens = Object.keys(utils.formatTokenMap).sort((a, b) => b.length - a.length); // Sort to put longest word first
164
+
165
+ const regExpFirstWordInFormat = /^([a-zA-Z]+)/;
166
+ const regExpWordOnlyComposedOfTokens = new RegExp(`^(${validTokens.join('|')})*$`);
167
+ const regExpFirstTokenInWord = new RegExp(`^(${validTokens.join('|')})`);
168
+ const getEscapedPartOfCurrentChar = i => escapedParts.find(escapeIndex => escapeIndex.start <= i && escapeIndex.end >= i);
169
+ let i = 0;
170
+ while (i < expandedFormat.length) {
171
+ const escapedPartOfCurrentChar = getEscapedPartOfCurrentChar(i);
170
172
  const isEscapedChar = escapedPartOfCurrentChar != null;
171
- const potentialToken = `${currentTokenValue}${expandedFormat.slice(i)}`;
172
- const regExpMatch = isTokenStartRegExp.test(potentialToken);
173
- if (!isEscapedChar && char.match(/([A-Za-z]+)/) && regExpMatch) {
174
- currentTokenValue = potentialToken.slice(0, isTokenStartRegExp.lastIndex);
175
- i += isTokenStartRegExp.lastIndex - 1;
176
- } else {
173
+ const firstWordInFormat = regExpFirstWordInFormat.exec(expandedFormat.slice(i))?.[1];
174
+
175
+ // The first word in the format is only composed of tokens.
176
+ // We extract those tokens to create a new sections.
177
+ if (!isEscapedChar && firstWordInFormat != null && regExpWordOnlyComposedOfTokens.test(firstWordInFormat)) {
178
+ let word = firstWordInFormat;
179
+ while (word.length > 0) {
180
+ const firstWord = regExpFirstTokenInWord.exec(word)[1];
181
+ word = word.slice(firstWord.length);
182
+ sections.push(createSection((0, _extends2.default)({}, params, {
183
+ now,
184
+ token: firstWord,
185
+ startSeparator
186
+ })));
187
+ startSeparator = '';
188
+ }
189
+ i += firstWordInFormat.length;
190
+ }
191
+ // The remaining format does not start with a token,
192
+ // We take the first character and add it to the current section's end separator.
193
+ else {
194
+ const char = expandedFormat[i];
195
+
177
196
  // If we are on the opening or closing character of an escaped part of the format,
178
197
  // Then we ignore this character.
179
198
  const isEscapeBoundary = isEscapedChar && escapedPartOfCurrentChar?.start === i || escapedPartOfCurrentChar?.end === i;
180
199
  if (!isEscapeBoundary) {
181
- if (currentTokenValue !== '') {
182
- sections.push(createSection((0, _extends2.default)({}, params, {
183
- now,
184
- token: currentTokenValue,
185
- startSeparator
186
- })));
187
- currentTokenValue = '';
188
- }
189
200
  if (sections.length === 0) {
190
201
  startSeparator += char;
191
202
  } else {
192
- startSeparator = '';
193
203
  sections[sections.length - 1].endSeparator += char;
194
204
  }
195
205
  }
206
+ i += 1;
196
207
  }
197
208
  }
198
- if (currentTokenValue !== '') {
199
- sections.push(createSection((0, _extends2.default)({}, params, {
200
- now,
201
- token: currentTokenValue,
202
- startSeparator
203
- })));
204
- }
205
209
  if (sections.length === 0 && startSeparator.length > 0) {
206
210
  sections.push({
207
211
  type: 'empty',
@@ -336,7 +336,7 @@ const useFieldV7TextField = params => {
336
336
  onClick: getInputContainerClickHandler(index)
337
337
  },
338
338
  content: {
339
- tabIndex: isContainerEditable ? undefined : 0,
339
+ tabIndex: isContainerEditable || index > 0 ? -1 : 0,
340
340
  contentEditable: !isContainerEditable && !disabled && !readOnly,
341
341
  role: 'spinbutton',
342
342
  id: `${id}-${section.type}`,
@@ -375,7 +375,7 @@ const useFieldV7TextField = params => {
375
375
  const valueStr = React.useMemo(() => areAllSectionsEmpty ? '' : fieldValueManager.getV7HiddenInputValueFromSections(state.sections), [areAllSectionsEmpty, state.sections, fieldValueManager]);
376
376
  React.useEffect(() => {
377
377
  if (sectionListRef.current == null) {
378
- throw new Error(['MUI X: The `sectionListRef` prop has not been initialized by `PickersSectionList`', 'You probably tried to pass a component to the `textField` slot that contains an `<input />` element instead of a `PickersSectionList`.', '', 'If you want to keep using an `<input />` HTML element for the editing, please remove the `enableAccessibleFieldDOMStructure` prop from your picker or field component:', '', '<DatePicker slots={{ textField: MyCustomTextField }} />', '', 'Learn more about the field accessible DOM structure on the MUI documentation: https://next.mui.com/x/react-date-pickers/fields/#fields-to-edit-a-single-element'].join('\n'));
378
+ throw new Error(['MUI X: The `sectionListRef` prop has not been initialized by `PickersSectionList`', 'You probably tried to pass a component to the `textField` slot that contains an `<input />` element instead of a `PickersSectionList`.', '', 'If you want to keep using an `<input />` HTML element for the editing, please remove the `enableAccessibleFieldDOMStructure` prop from your picker or field component:', '', '<DatePicker slots={{ textField: MyCustomTextField }} />', '', 'Learn more about the field accessible DOM structure on the MUI documentation: https://mui.com/x/react-date-pickers/fields/#fields-to-edit-a-single-element'].join('\n'));
379
379
  }
380
380
  if (autoFocus && sectionListRef.current) {
381
381
  sectionListRef.current.getSectionContent(sectionOrder.startIndex).focus();
@@ -399,7 +399,7 @@ const useFieldV7TextField = params => {
399
399
  enableAccessibleFieldDOMStructure: true,
400
400
  elements,
401
401
  // TODO v7: Try to set to undefined when there is a section selected.
402
- tabIndex: 0,
402
+ tabIndex: parsedSelectedSections === 0 ? -1 : 0,
403
403
  contentEditable: isContainerEditable,
404
404
  value: valueStr,
405
405
  onChange: handleValueStrChange,
@@ -16,7 +16,7 @@ const useOpenState = ({
16
16
  const [openState, setIsOpenState] = React.useState(false);
17
17
 
18
18
  // It is required to update inner state in useEffect in order to avoid situation when
19
- // Our component is not mounted yet, but `open` state is set to `true` (e.g. initially opened)
19
+ // Our component is not mounted yet, but `open` state is set to `true` (for example initially opened)
20
20
  React.useEffect(() => {
21
21
  if (isControllingOpenProp) {
22
22
  if (typeof open !== 'boolean') {
@@ -5,6 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.resolveDateFormat = exports.replaceInvalidDateByNull = exports.mergeDateAndTime = exports.isDatePickerView = exports.getWeekdays = exports.getTodayDate = exports.getMonthsInYear = exports.formatMeridiem = exports.findClosestEnabledDate = exports.areDatesEqual = exports.applyDefaultDate = void 0;
7
7
  var _views = require("./views");
8
+ const mergeDateAndTime = (utils, dateParam, timeParam) => {
9
+ let mergedDate = dateParam;
10
+ mergedDate = utils.setHours(mergedDate, utils.getHours(timeParam));
11
+ mergedDate = utils.setMinutes(mergedDate, utils.getMinutes(timeParam));
12
+ mergedDate = utils.setSeconds(mergedDate, utils.getSeconds(timeParam));
13
+ return mergedDate;
14
+ };
15
+ exports.mergeDateAndTime = mergeDateAndTime;
8
16
  const findClosestEnabledDate = ({
9
17
  date,
10
18
  disableFuture,
@@ -15,7 +23,7 @@ const findClosestEnabledDate = ({
15
23
  utils,
16
24
  timezone
17
25
  }) => {
18
- const today = utils.startOfDay(utils.date(undefined, timezone));
26
+ const today = mergeDateAndTime(utils, utils.date(undefined, timezone), date);
19
27
  if (disablePast && utils.isBefore(minDate, today)) {
20
28
  minDate = today;
21
29
  }
@@ -83,14 +91,6 @@ const getMonthsInYear = (utils, year) => {
83
91
  return months;
84
92
  };
85
93
  exports.getMonthsInYear = getMonthsInYear;
86
- const mergeDateAndTime = (utils, dateParam, timeParam) => {
87
- let mergedDate = dateParam;
88
- mergedDate = utils.setHours(mergedDate, utils.getHours(timeParam));
89
- mergedDate = utils.setMinutes(mergedDate, utils.getMinutes(timeParam));
90
- mergedDate = utils.setSeconds(mergedDate, utils.getSeconds(timeParam));
91
- return mergedDate;
92
- };
93
- exports.mergeDateAndTime = mergeDateAndTime;
94
94
  const getTodayDate = (utils, timezone, valueType) => valueType === 'date' ? utils.startOfDay(utils.date(undefined, timezone)) : utils.date(undefined, timezone);
95
95
  exports.getTodayDate = getTodayDate;
96
96
  const formatMeridiem = (utils, meridiem) => {
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.splitFieldInternalAndForwardedProps = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _extractValidationProps = require("./validation/extractValidationProps");
10
- const SHARED_FIELD_INTERNAL_PROP_NAMES = ['value', 'defaultValue', 'referenceDate', 'format', 'formatDensity', 'onChange', 'timezone', 'onError', 'shouldRespectLeadingZeros', 'selectedSections', 'onSelectedSectionsChange', 'unstableFieldRef', 'enableAccessibleFieldDOMStructure', 'disabled', 'readOnly'];
10
+ const SHARED_FIELD_INTERNAL_PROP_NAMES = ['value', 'defaultValue', 'referenceDate', 'format', 'formatDensity', 'onChange', 'timezone', 'onError', 'shouldRespectLeadingZeros', 'selectedSections', 'onSelectedSectionsChange', 'unstableFieldRef', 'enableAccessibleFieldDOMStructure', 'disabled', 'readOnly', 'dateSeparator'];
11
11
  const splitFieldInternalAndForwardedProps = (props, valueType) => {
12
12
  const forwardedProps = (0, _extends2.default)({}, props);
13
13
  const internalProps = {};
@@ -23,11 +23,10 @@ const jaJPPickers = {
23
23
  // DateRange labels
24
24
  start: '開始',
25
25
  end: '終了',
26
- // startDate: 'Start date',
27
- // startTime: 'Start time',
28
- // endDate: 'End date',
29
- // endTime: 'End time',
30
-
26
+ startDate: '開始日',
27
+ startTime: '開始時間',
28
+ endDate: '終了日',
29
+ endTime: '終了時間',
31
30
  // Action bar
32
31
  cancelButtonLabel: 'キャンセル',
33
32
  clearButtonLabel: 'クリア',
@@ -53,8 +52,7 @@ const jaJPPickers = {
53
52
  // Open picker labels
54
53
  openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `日付を選択してください。選択した日付は ${utils.format(value, 'fullDate')} です` : '日付を選択してください',
55
54
  openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `時間を選択してください。選択した時間は ${utils.format(value, 'fullTime')} です` : '時間を選択してください',
56
- // fieldClearLabel: 'Clear value',
57
-
55
+ fieldClearLabel: 'クリア',
58
56
  // Table labels
59
57
  timeTableLabel: '時間を選択',
60
58
  dateTableLabel: '日付を選択',
@@ -66,19 +64,17 @@ const jaJPPickers = {
66
64
  fieldHoursPlaceholder: () => 'hh',
67
65
  fieldMinutesPlaceholder: () => 'mm',
68
66
  fieldSecondsPlaceholder: () => 'ss',
69
- fieldMeridiemPlaceholder: () => 'aa'
70
-
67
+ fieldMeridiemPlaceholder: () => 'aa',
71
68
  // View names
72
- // year: 'Year',
73
- // month: 'Month',
74
- // day: 'Day',
75
- // weekDay: 'Week day',
76
- // hours: 'Hours',
77
- // minutes: 'Minutes',
78
- // seconds: 'Seconds',
79
- // meridiem: 'Meridiem',
80
-
69
+ year: '',
70
+ month: '',
71
+ day: '',
72
+ weekDay: '平日',
73
+ hours: '時間',
74
+ minutes: '',
75
+ seconds: '',
76
+ meridiem: 'メリディム',
81
77
  // Common
82
- // empty: 'Empty',
78
+ empty: ''
83
79
  };
84
80
  const jaJP = exports.jaJP = (0, _getPickersLocalization.getPickersLocalization)(jaJPPickers);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-date-pickers",
3
- "version": "7.0.0-beta.6",
3
+ "version": "7.0.0",
4
4
  "description": "The community edition of the date picker components (MUI X).",
5
5
  "author": "MUI Team",
6
6
  "main": "./node/index.js",
@@ -35,9 +35,9 @@
35
35
  },
36
36
  "dependencies": {
37
37
  "@babel/runtime": "^7.24.0",
38
- "@mui/base": "^5.0.0-beta.36",
39
- "@mui/system": "^5.15.9",
40
- "@mui/utils": "^5.15.9",
38
+ "@mui/base": "^5.0.0-beta.40",
39
+ "@mui/system": "^5.15.14",
40
+ "@mui/utils": "^5.15.14",
41
41
  "@types/react-transition-group": "^4.4.10",
42
42
  "clsx": "^2.1.0",
43
43
  "prop-types": "^15.8.1",
@@ -46,7 +46,7 @@
46
46
  "peerDependencies": {
47
47
  "@emotion/react": "^11.9.0",
48
48
  "@emotion/styled": "^11.8.1",
49
- "@mui/material": "^5.15.0",
49
+ "@mui/material": "^5.15.14",
50
50
  "date-fns": "^2.25.0 || ^3.2.0",
51
51
  "date-fns-jalali": "^2.13.0-0",
52
52
  "dayjs": "^1.10.7",
@@ -118,7 +118,7 @@ export const renderDigitalClockTimeView = ({
118
118
  sx: sx,
119
119
  autoFocus: autoFocus,
120
120
  disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation,
121
- timeStep: timeSteps == null ? void 0 : timeSteps.minutes,
121
+ timeStep: timeSteps?.minutes,
122
122
  skipDisabled: skipDisabled,
123
123
  timezone: timezone
124
124
  });
@@ -1,15 +0,0 @@
1
- import * as React from 'react';
2
- import { DateCalendarProps } from '../DateCalendar';
3
- import { DateOrTimeViewWithMeridiem } from '../internals/models';
4
- import { MultiSectionDigitalClockProps } from '../MultiSectionDigitalClock';
5
- import type { DateTimePickerProps } from '../DateTimePicker/DateTimePicker.types';
6
- import { PickerValidDate } from '../models';
7
- export interface DateTimeViewRendererProps<TDate extends PickerValidDate> extends Omit<DateCalendarProps<TDate> & MultiSectionDigitalClockProps<TDate>, 'views' | 'openTo' | 'view' | 'onViewChange' | 'focusedView' | 'slots' | 'slotProps'>, Pick<DateTimePickerProps<TDate>, 'slots' | 'slotProps'> {
8
- view: DateOrTimeViewWithMeridiem;
9
- onViewChange?: (view: DateOrTimeViewWithMeridiem) => void;
10
- views: readonly DateOrTimeViewWithMeridiem[];
11
- focusedView: DateOrTimeViewWithMeridiem | null;
12
- timeViewsCount: number;
13
- shouldRenderTimeInASingleColumn: boolean;
14
- }
15
- export declare const renderDesktopDateTimeView: <TDate extends PickerValidDate>({ view, onViewChange, views, focusedView, onFocusedViewChange, value, defaultValue, referenceDate, onChange, className, classes, disableFuture, disablePast, minDate, minTime, maxDate, maxTime, shouldDisableDate, shouldDisableMonth, shouldDisableYear, shouldDisableTime, reduceAnimations, minutesStep, ampm, onMonthChange, monthsPerRow, onYearChange, yearsPerRow, slots, slotProps, loading, renderLoading, disableHighlightToday, readOnly, disabled, showDaysOutsideCurrentMonth, dayOfWeekFormatter, sx, autoFocus, fixedWeekNumber, displayWeekNumber, timezone, disableIgnoringDatePartForTimeValidation, timeSteps, skipDisabled, timeViewsCount, shouldRenderTimeInASingleColumn, }: DateTimeViewRendererProps<TDate>) => React.JSX.Element;