@mui/x-date-pickers 6.16.1 → 6.16.2

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 (98) hide show
  1. package/AdapterDayjs/AdapterDayjs.js +6 -4
  2. package/AdapterMoment/AdapterMoment.js +2 -5
  3. package/CHANGELOG.md +104 -0
  4. package/DateField/DateField.d.ts +10 -0
  5. package/DateField/DateField.js +10 -0
  6. package/DateTimeField/DateTimeField.d.ts +10 -0
  7. package/DateTimeField/DateTimeField.js +10 -0
  8. package/DateTimePicker/DateTimePicker.d.ts +10 -0
  9. package/DateTimePicker/DateTimePicker.js +15 -0
  10. package/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +10 -0
  11. package/DesktopDateTimePicker/DesktopDateTimePicker.js +25 -7
  12. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +4 -3
  13. package/DesktopTimePicker/DesktopTimePicker.d.ts +10 -0
  14. package/DesktopTimePicker/DesktopTimePicker.js +18 -9
  15. package/DigitalClock/DigitalClock.js +1 -1
  16. package/MobileDateTimePicker/MobileDateTimePicker.d.ts +10 -0
  17. package/MobileDateTimePicker/MobileDateTimePicker.js +10 -0
  18. package/MobileTimePicker/MobileTimePicker.d.ts +10 -0
  19. package/MobileTimePicker/MobileTimePicker.js +10 -0
  20. package/StaticDateTimePicker/StaticDateTimePicker.d.ts +10 -0
  21. package/StaticDateTimePicker/StaticDateTimePicker.js +10 -0
  22. package/StaticTimePicker/StaticTimePicker.d.ts +10 -0
  23. package/StaticTimePicker/StaticTimePicker.js +10 -0
  24. package/TimeField/TimeField.d.ts +10 -0
  25. package/TimeField/TimeField.js +10 -0
  26. package/TimePicker/TimePicker.d.ts +10 -0
  27. package/TimePicker/TimePicker.js +10 -0
  28. package/dateTimeViewRenderers/dateTimeViewRenderers.d.ts +2 -1
  29. package/dateTimeViewRenderers/dateTimeViewRenderers.js +52 -33
  30. package/index.js +1 -1
  31. package/internals/components/FakeTextField/FakeTextField.d.ts +7 -0
  32. package/internals/components/FakeTextField/FakeTextField.js +19 -0
  33. package/internals/components/FakeTextField/index.d.ts +1 -0
  34. package/internals/components/FakeTextField/index.js +1 -0
  35. package/internals/utils/date-time-utils.d.ts +11 -0
  36. package/internals/utils/date-time-utils.js +32 -2
  37. package/legacy/AdapterDayjs/AdapterDayjs.js +6 -4
  38. package/legacy/AdapterMoment/AdapterMoment.js +2 -5
  39. package/legacy/DateField/DateField.js +10 -0
  40. package/legacy/DateTimeField/DateTimeField.js +10 -0
  41. package/legacy/DateTimePicker/DateTimePicker.js +15 -0
  42. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +24 -8
  43. package/legacy/DesktopTimePicker/DesktopTimePicker.js +19 -10
  44. package/legacy/DigitalClock/DigitalClock.js +1 -1
  45. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +10 -0
  46. package/legacy/MobileTimePicker/MobileTimePicker.js +10 -0
  47. package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +10 -0
  48. package/legacy/StaticTimePicker/StaticTimePicker.js +10 -0
  49. package/legacy/TimeField/TimeField.js +10 -0
  50. package/legacy/TimePicker/TimePicker.js +10 -0
  51. package/legacy/dateTimeViewRenderers/dateTimeViewRenderers.js +51 -33
  52. package/legacy/index.js +1 -1
  53. package/legacy/internals/components/FakeTextField/FakeTextField.js +19 -0
  54. package/legacy/internals/components/FakeTextField/index.js +1 -0
  55. package/legacy/internals/utils/date-time-utils.js +34 -2
  56. package/legacy/locales/esES.js +1 -1
  57. package/locales/esES.js +1 -1
  58. package/modern/AdapterDayjs/AdapterDayjs.js +6 -4
  59. package/modern/AdapterMoment/AdapterMoment.js +2 -5
  60. package/modern/DateField/DateField.js +10 -0
  61. package/modern/DateTimeField/DateTimeField.js +10 -0
  62. package/modern/DateTimePicker/DateTimePicker.js +15 -0
  63. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +25 -7
  64. package/modern/DesktopTimePicker/DesktopTimePicker.js +17 -8
  65. package/modern/DigitalClock/DigitalClock.js +1 -1
  66. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +10 -0
  67. package/modern/MobileTimePicker/MobileTimePicker.js +10 -0
  68. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +10 -0
  69. package/modern/StaticTimePicker/StaticTimePicker.js +10 -0
  70. package/modern/TimeField/TimeField.js +10 -0
  71. package/modern/TimePicker/TimePicker.js +10 -0
  72. package/modern/dateTimeViewRenderers/dateTimeViewRenderers.js +52 -33
  73. package/modern/index.js +1 -1
  74. package/modern/internals/components/FakeTextField/FakeTextField.js +19 -0
  75. package/modern/internals/components/FakeTextField/index.js +1 -0
  76. package/modern/internals/utils/date-time-utils.js +29 -2
  77. package/modern/locales/esES.js +1 -1
  78. package/node/AdapterDayjs/AdapterDayjs.js +6 -4
  79. package/node/AdapterMoment/AdapterMoment.js +2 -5
  80. package/node/DateField/DateField.js +10 -0
  81. package/node/DateTimeField/DateTimeField.js +10 -0
  82. package/node/DateTimePicker/DateTimePicker.js +15 -0
  83. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +24 -6
  84. package/node/DesktopTimePicker/DesktopTimePicker.js +17 -8
  85. package/node/DigitalClock/DigitalClock.js +1 -1
  86. package/node/MobileDateTimePicker/MobileDateTimePicker.js +10 -0
  87. package/node/MobileTimePicker/MobileTimePicker.js +10 -0
  88. package/node/StaticDateTimePicker/StaticDateTimePicker.js +10 -0
  89. package/node/StaticTimePicker/StaticTimePicker.js +10 -0
  90. package/node/TimeField/TimeField.js +10 -0
  91. package/node/TimePicker/TimePicker.js +10 -0
  92. package/node/dateTimeViewRenderers/dateTimeViewRenderers.js +51 -32
  93. package/node/index.js +1 -1
  94. package/node/internals/components/FakeTextField/FakeTextField.js +27 -0
  95. package/node/internals/components/FakeTextField/index.js +12 -0
  96. package/node/internals/utils/date-time-utils.js +29 -1
  97. package/node/locales/esES.js +1 -1
  98. package/package.json +1 -1
@@ -297,14 +297,16 @@ export class AdapterDayjs {
297
297
  return parsedValue.locale(this.locale);
298
298
  };
299
299
  this.getTimezone = value => {
300
- if (this.hasUTCPlugin() && value.isUTC()) {
301
- return 'UTC';
302
- }
303
300
  if (this.hasTimezonePlugin()) {
304
301
  var _value$$x;
305
302
  // @ts-ignore
306
303
  const zone = (_value$$x = value.$x) == null ? void 0 : _value$$x.$timezone;
307
- return zone != null ? zone : 'system';
304
+ if (zone) {
305
+ return zone;
306
+ }
307
+ }
308
+ if (this.hasUTCPlugin() && value.isUTC()) {
309
+ return 'UTC';
308
310
  }
309
311
  return 'system';
310
312
  };
@@ -241,16 +241,13 @@ export class AdapterMoment {
241
241
  };
242
242
  this.getTimezone = value => {
243
243
  var _value$_z, _ref, _this$moment$defaultZ;
244
- if (value.isUTC()) {
245
- return 'UTC';
246
- }
247
-
248
244
  // @ts-ignore
249
245
  // eslint-disable-next-line no-underscore-dangle
250
246
  const zone = (_value$_z = value._z) == null ? void 0 : _value$_z.name;
247
+ const defaultZone = value.isUTC() ? 'UTC' : 'system';
251
248
 
252
249
  // @ts-ignore
253
- return (_ref = zone != null ? zone : (_this$moment$defaultZ = this.moment.defaultZone) == null ? void 0 : _this$moment$defaultZ.name) != null ? _ref : 'system';
250
+ return (_ref = zone != null ? zone : (_this$moment$defaultZ = this.moment.defaultZone) == null ? void 0 : _this$moment$defaultZ.name) != null ? _ref : defaultZone;
254
251
  };
255
252
  this.setTimezone = (value, timezone) => {
256
253
  var _this$moment$defaultZ2, _this$moment$defaultZ3;
package/CHANGELOG.md CHANGED
@@ -3,6 +3,110 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 6.16.2
7
+
8
+ _Oct 12, 2023_
9
+
10
+ We'd like to offer a big thanks to the 12 contributors who made this release possible. Here are some highlights ✨:
11
+
12
+ - 📊 Chart's legend text management has been reworked and contains breaking changes (#10138) @alexfauquette
13
+ - 📝 Add [Bulk editing](https://mui.com/x/react-data-grid/recipes-editing/#bulk-editing) demo (#10333) @cherniavskii
14
+ - 🚀 Column grouping now works smoothly with column pinning (#10518) @MBilalShafi
15
+ - 🌍 Improve Arabic (ar-SD) and Spanish (es-ES) locales
16
+ - 🐞 Bugfixes
17
+ - 📚 Documentation improvements
18
+
19
+ ### Data Grid
20
+
21
+ #### `@mui/x-data-grid@6.16.2`
22
+
23
+ - [DataGrid] Fix `LazyLoading` demo crash (#10621) @MBilalShafi
24
+ - [DataGrid] Fix cells overlapping the scrollbar in iOS Safari (#10633) @cherniavskii
25
+ - [DataGrid] Fix `getRowId is not defined` error (#10613) @romgrk
26
+ - [DataGrid] Get quick filter to work OOTB with `date` and `dateTime` fields (#10636) @MBilalShafi
27
+ - [DataGrid] Make cursor for selectable cells to be `default` unless editable (#9997) @gitstart
28
+ - [DataGrid] Remove unnecessary syntax in JSDoc (#10567) @Lev-Shapiro
29
+ - [DataGrid] Update row hover behavior to match native hover (#10623) @cherniavskii
30
+ - [l10n] Improve Arabic (ar-SD) locale (#10625) @alabenyahia
31
+
32
+ #### `@mui/x-data-grid-pro@6.16.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
33
+
34
+ Same changes as in `@mui/x-data-grid@6.16.2`, plus:
35
+
36
+ - [DataGridPro] Improve column grouping and column pinning friendship (#10518) @MBilalShafi
37
+
38
+ #### `@mui/x-data-grid-premium@6.16.2` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
39
+
40
+ Same changes as in `@mui/x-data-grid-pro@6.16.2`.
41
+
42
+ ### Date Pickers
43
+
44
+ #### `@mui/x-date-pickers@6.16.2`
45
+
46
+ - [DateTimePicker] Add support for `DigitalClock` view renderer (#10624) @LukasTy
47
+ - [fields] Bootstrap the multi-HTML input component (#10638) @flaviendelangle
48
+ - [pickers] Fix timezone `UTC` false positive (#10586) @alexfauquette
49
+ - [l10n] Improve Spanish (es-ES) locale (#10588) @eduardodallmann
50
+
51
+ #### `@mui/x-date-pickers-pro@6.16.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
52
+
53
+ Same changes as in `@mui/x-date-pickers@6.16.2`.
54
+
55
+ ### Charts / `@mui/x-charts@6.0.0-alpha.15`
56
+
57
+ #### Breaking changes
58
+
59
+ The charts have a new text display mechanism.
60
+ It adds line break support and avoids overlapping text in the legend.
61
+ This comes with some breaking changes.
62
+
63
+ - The DOM structure is modified. An intermediary `<tspan />` element has been added. This can impact how your style is applied.
64
+ ```diff
65
+ - <text>The label</text>
66
+ + <text><tspan>The label</tspan></text>
67
+ ```
68
+
69
+ - The top margin has been reduced from 100 to 50 to benefit from the denser legend.
70
+
71
+ - To accurately compute the text size and then place it, styling should be provided as a JS object. For example, to set the legend font size, you should do:
72
+ ```jsx
73
+ <PieChart
74
+ {/** ... */}
75
+ slotProps={{
76
+ legend: {
77
+ labelStyle: {
78
+ fontSize: 16,
79
+ },
80
+ },
81
+ }}
82
+ />
83
+ ```
84
+ Support for other text elements (axis labels and tick labels) will be implemented in follow-up PR.
85
+
86
+ #### Changes
87
+
88
+ - [charts] Fix typo between internal/external variable (#10640) @alexfauquette
89
+ - [charts] Improve the management of the text (#10138) @alexfauquette
90
+
91
+ ### Docs
92
+
93
+ - [docs] Add bulk editing demo (#10333) @cherniavskii
94
+ - [docs] Add reference links to DateRangePicker components (#10629) @michelengelen
95
+ - [docs] Add reference links to DateTimePicker components (#10628) @michelengelen
96
+ - [docs] Add reference links to picker field components (#10631) @michelengelen
97
+ - [docs] Added reference links to TimePicker components (#10627) @michelengelen
98
+ - [docs] Avoid Pickers playground error due to empty views (#10654) @LukasTy
99
+ - [docs] Fix DataGrid[Pro/Premium] reference links (#10620) @michelengelen
100
+
101
+ ### Core
102
+
103
+ - [core] Bump monorepo (#10619) @alexfauquette
104
+ - [core] Update `no-response` workflow (#10491) @MBilalShafi
105
+ - [core] Update the issue templates to reflect the new support workflow (#10651) @MBilalShafi
106
+ - [test] Fix `testEval` not invoking test assertions (#10587) @cherniavskii
107
+ - [test] Fix dev mode warning (#10610) @oliviertassinari
108
+ - [test] Set UUID chance seed in visual tests (#10609) @oliviertassinari
109
+
6
110
  ## 6.16.1
7
111
 
8
112
  _Oct 6, 2023_
@@ -3,5 +3,15 @@ import { DateFieldProps } from './DateField.types';
3
3
  type DateFieldComponent = (<TDate>(props: DateFieldProps<TDate> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
4
4
  propTypes?: any;
5
5
  };
6
+ /**
7
+ * Demos:
8
+ *
9
+ * - [DateField](http://mui.com/x/react-date-pickers/date-field/)
10
+ * - [Fields](https://mui.com/x/react-date-pickers/fields/)
11
+ *
12
+ * API:
13
+ *
14
+ * - [DateField API](https://mui.com/x/api/date-pickers/date-field/)
15
+ */
6
16
  declare const DateField: DateFieldComponent;
7
17
  export { DateField };
@@ -12,6 +12,16 @@ import { refType } from '@mui/utils';
12
12
  import { useDateField } from './useDateField';
13
13
  import { useClearableField } from '../hooks';
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
+ /**
16
+ * Demos:
17
+ *
18
+ * - [DateField](http://mui.com/x/react-date-pickers/date-field/)
19
+ * - [Fields](https://mui.com/x/react-date-pickers/fields/)
20
+ *
21
+ * API:
22
+ *
23
+ * - [DateField API](https://mui.com/x/api/date-pickers/date-field/)
24
+ */
15
25
  const DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, ref) {
16
26
  var _ref, _slots$textField, _slotProps$textField;
17
27
  const themeProps = useThemeProps({
@@ -3,5 +3,15 @@ import { DateTimeFieldProps } from './DateTimeField.types';
3
3
  type DateTimeFieldComponent = (<TDate>(props: DateTimeFieldProps<TDate> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
4
4
  propTypes?: any;
5
5
  };
6
+ /**
7
+ * Demos:
8
+ *
9
+ * - [DateTimeField](http://mui.com/x/react-date-pickers/date-time-field/)
10
+ * - [Fields](https://mui.com/x/react-date-pickers/fields/)
11
+ *
12
+ * API:
13
+ *
14
+ * - [DateTimeField API](https://mui.com/x/api/date-pickers/date-time-field/)
15
+ */
6
16
  declare const DateTimeField: DateTimeFieldComponent;
7
17
  export { DateTimeField };
@@ -12,6 +12,16 @@ import { refType } from '@mui/utils';
12
12
  import { useDateTimeField } from './useDateTimeField';
13
13
  import { useClearableField } from '../hooks';
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
+ /**
16
+ * Demos:
17
+ *
18
+ * - [DateTimeField](http://mui.com/x/react-date-pickers/date-time-field/)
19
+ * - [Fields](https://mui.com/x/react-date-pickers/fields/)
20
+ *
21
+ * API:
22
+ *
23
+ * - [DateTimeField API](https://mui.com/x/api/date-pickers/date-time-field/)
24
+ */
15
25
  const DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inProps, ref) {
16
26
  var _ref, _slots$textField, _slotProps$textField;
17
27
  const themeProps = useThemeProps({
@@ -3,5 +3,15 @@ import { DateTimePickerProps } from './DateTimePicker.types';
3
3
  type DateTimePickerComponent = (<TDate>(props: DateTimePickerProps<TDate> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
4
4
  propTypes?: any;
5
5
  };
6
+ /**
7
+ * Demos:
8
+ *
9
+ * - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)
10
+ * - [Validation](https://mui.com/x/react-date-pickers/validation/)
11
+ *
12
+ * API:
13
+ *
14
+ * - [DateTimePicker API](https://mui.com/x/api/date-pickers/date-time-picker/)
15
+ */
6
16
  declare const DateTimePicker: DateTimePickerComponent;
7
17
  export { DateTimePicker };
@@ -10,6 +10,16 @@ import { DesktopDateTimePicker } from '../DesktopDateTimePicker';
10
10
  import { MobileDateTimePicker } from '../MobileDateTimePicker';
11
11
  import { DEFAULT_DESKTOP_MODE_MEDIA_QUERY } from '../internals/utils/utils';
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
+ /**
14
+ * Demos:
15
+ *
16
+ * - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)
17
+ * - [Validation](https://mui.com/x/react-date-pickers/validation/)
18
+ *
19
+ * API:
20
+ *
21
+ * - [DateTimePicker API](https://mui.com/x/api/date-pickers/date-time-picker/)
22
+ */
13
23
  const DateTimePicker = /*#__PURE__*/React.forwardRef(function DateTimePicker(inProps, ref) {
14
24
  const props = useThemeProps({
15
25
  props: inProps,
@@ -377,6 +387,11 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
377
387
  * The system prop that allows defining system overrides as well as additional CSS styles.
378
388
  */
379
389
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
390
+ /**
391
+ * Amount of time options below or at which the single column time renderer is used.
392
+ * @default 24
393
+ */
394
+ thresholdToRenderTimeInASingleColumn: PropTypes.number,
380
395
  /**
381
396
  * The time steps between two time unit options.
382
397
  * For example, if `timeStep.minutes = 8`, then the available minute options will be `[0, 8, 16, 24, 32, 40, 48, 56]`.
@@ -3,5 +3,15 @@ import { DesktopDateTimePickerProps } from './DesktopDateTimePicker.types';
3
3
  type DesktopDateTimePickerComponent = (<TDate>(props: DesktopDateTimePickerProps<TDate> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
4
4
  propTypes?: any;
5
5
  };
6
+ /**
7
+ * Demos:
8
+ *
9
+ * - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)
10
+ * - [Validation](https://mui.com/x/react-date-pickers/validation/)
11
+ *
12
+ * API:
13
+ *
14
+ * - [DesktopDateTimePicker API](https://mui.com/x/api/date-pickers/desktop-date-time-picker/)
15
+ */
6
16
  declare const DesktopDateTimePicker: DesktopDateTimePickerComponent;
7
17
  export { DesktopDateTimePicker };
@@ -13,7 +13,17 @@ import { validateDateTime } from '../internals/utils/validation/validateDateTime
13
13
  import { CalendarIcon } from '../icons';
14
14
  import { useDesktopPicker } from '../internals/hooks/useDesktopPicker';
15
15
  import { extractValidationProps } from '../internals/utils/validation/extractValidationProps';
16
- import { resolveDateTimeFormat } from '../internals/utils/date-time-utils';
16
+ import { resolveDateTimeFormat, resolveTimeViewsResponse } from '../internals/utils/date-time-utils';
17
+ /**
18
+ * Demos:
19
+ *
20
+ * - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)
21
+ * - [Validation](https://mui.com/x/react-date-pickers/validation/)
22
+ *
23
+ * API:
24
+ *
25
+ * - [DesktopDateTimePicker API](https://mui.com/x/api/date-pickers/desktop-date-time-picker/)
26
+ */
17
27
  const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDateTimePicker(inProps, ref) {
18
28
  var _defaultizedProps$amp, _defaultizedProps$yea, _defaultizedProps$slo2, _defaultizedProps$slo3, _defaultizedProps$slo4, _props$localeText$ope, _props$localeText;
19
29
  const localeText = useLocaleText();
@@ -21,11 +31,12 @@ const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDate
21
31
 
22
32
  // Props with the default values common to all date time pickers
23
33
  const defaultizedProps = useDateTimePickerDefaultizedProps(inProps, 'MuiDesktopDateTimePicker');
24
- const timeSteps = _extends({
25
- hours: 1,
26
- minutes: 5,
27
- seconds: 5
28
- }, defaultizedProps.timeSteps);
34
+ const {
35
+ shouldRenderTimeInASingleColumn,
36
+ thresholdToRenderTimeInASingleColumn,
37
+ views,
38
+ timeSteps
39
+ } = resolveTimeViewsResponse(defaultizedProps);
29
40
  const shouldUseNewRenderer = !defaultizedProps.viewRenderers || Object.keys(defaultizedProps.viewRenderers).length === 0;
30
41
  const viewRenderers =
31
42
  // we can only ensure the expected two-column layout if none of the renderers are overridden
@@ -54,10 +65,12 @@ const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDate
54
65
  const props = _extends({}, defaultizedProps, {
55
66
  viewRenderers,
56
67
  format: resolveDateTimeFormat(utils, defaultizedProps),
57
- views: defaultizedProps.ampm ? [...defaultizedProps.views, 'meridiem'] : defaultizedProps.views,
68
+ views,
58
69
  yearsPerRow: (_defaultizedProps$yea = defaultizedProps.yearsPerRow) != null ? _defaultizedProps$yea : 4,
59
70
  ampmInClock,
60
71
  timeSteps,
72
+ thresholdToRenderTimeInASingleColumn,
73
+ shouldRenderTimeInASingleColumn,
61
74
  slots: _extends({
62
75
  field: DateTimeField,
63
76
  openPickerIcon: CalendarIcon
@@ -431,6 +444,11 @@ DesktopDateTimePicker.propTypes = {
431
444
  * The system prop that allows defining system overrides as well as additional CSS styles.
432
445
  */
433
446
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
447
+ /**
448
+ * Amount of time options below or at which the single column time renderer is used.
449
+ * @default 24
450
+ */
451
+ thresholdToRenderTimeInASingleColumn: PropTypes.number,
434
452
  /**
435
453
  * The time steps between two time unit options.
436
454
  * For example, if `timeStep.minutes = 8`, then the available minute options will be `[0, 8, 16, 24, 32, 40, 48, 56]`.
@@ -6,11 +6,12 @@ import { UncapitalizeObjectKeys } from '../internals/utils/slots-migration';
6
6
  import { DesktopOnlyTimePickerProps } from '../internals/models/props/clock';
7
7
  import { DateOrTimeViewWithMeridiem } from '../internals/models';
8
8
  import { MultiSectionDigitalClockSlotsComponent, MultiSectionDigitalClockSlotsComponentsProps } from '../MultiSectionDigitalClock';
9
- export interface DesktopDateTimePickerSlotsComponent<TDate> extends BaseDateTimePickerSlotsComponent<TDate>, MakeOptional<UseDesktopPickerSlotsComponent<TDate, DateOrTimeViewWithMeridiem>, 'Field' | 'OpenPickerIcon'>, MultiSectionDigitalClockSlotsComponent {
9
+ import { DigitalClockSlotsComponent, DigitalClockSlotsComponentsProps } from '../DigitalClock';
10
+ export interface DesktopDateTimePickerSlotsComponent<TDate> extends BaseDateTimePickerSlotsComponent<TDate>, MakeOptional<UseDesktopPickerSlotsComponent<TDate, DateOrTimeViewWithMeridiem>, 'Field' | 'OpenPickerIcon'>, DigitalClockSlotsComponent, MultiSectionDigitalClockSlotsComponent {
10
11
  }
11
- export interface DesktopDateTimePickerSlotsComponentsProps<TDate> extends BaseDateTimePickerSlotsComponentsProps<TDate>, ExportedUseDesktopPickerSlotsComponentsProps<TDate, DateOrTimeViewWithMeridiem>, MultiSectionDigitalClockSlotsComponentsProps {
12
+ export interface DesktopDateTimePickerSlotsComponentsProps<TDate> extends BaseDateTimePickerSlotsComponentsProps<TDate>, ExportedUseDesktopPickerSlotsComponentsProps<TDate, DateOrTimeViewWithMeridiem>, DigitalClockSlotsComponentsProps, MultiSectionDigitalClockSlotsComponentsProps {
12
13
  }
13
- export interface DesktopDateTimePickerProps<TDate> extends BaseDateTimePickerProps<TDate, DateOrTimeViewWithMeridiem>, DesktopOnlyPickerProps<TDate>, Omit<DesktopOnlyTimePickerProps<TDate>, 'thresholdToRenderTimeInASingleColumn'> {
14
+ export interface DesktopDateTimePickerProps<TDate> extends BaseDateTimePickerProps<TDate, DateOrTimeViewWithMeridiem>, DesktopOnlyPickerProps<TDate>, DesktopOnlyTimePickerProps<TDate> {
14
15
  /**
15
16
  * Available views.
16
17
  */
@@ -3,5 +3,15 @@ import { DesktopTimePickerProps } from './DesktopTimePicker.types';
3
3
  type DesktopTimePickerComponent = (<TDate>(props: DesktopTimePickerProps<TDate> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
4
4
  propTypes?: any;
5
5
  };
6
+ /**
7
+ * Demos:
8
+ *
9
+ * - [TimePicker](https://mui.com/x/react-date-pickers/time-picker/)
10
+ * - [Validation](https://mui.com/x/react-date-pickers/validation/)
11
+ *
12
+ * API:
13
+ *
14
+ * - [DesktopTimePicker API](https://mui.com/x/api/date-pickers/desktop-time-picker/)
15
+ */
6
16
  declare const DesktopTimePicker: DesktopTimePickerComponent;
7
17
  export { DesktopTimePicker };
@@ -13,20 +13,29 @@ import { useDesktopPicker } from '../internals/hooks/useDesktopPicker';
13
13
  import { extractValidationProps } from '../internals/utils/validation/extractValidationProps';
14
14
  import { renderDigitalClockTimeView, renderMultiSectionDigitalClockTimeView } from '../timeViewRenderers';
15
15
  import { resolveTimeFormat } from '../internals/utils/time-utils';
16
+ import { resolveTimeViewsResponse } from '../internals/utils/date-time-utils';
17
+ /**
18
+ * Demos:
19
+ *
20
+ * - [TimePicker](https://mui.com/x/react-date-pickers/time-picker/)
21
+ * - [Validation](https://mui.com/x/react-date-pickers/validation/)
22
+ *
23
+ * API:
24
+ *
25
+ * - [DesktopTimePicker API](https://mui.com/x/api/date-pickers/desktop-time-picker/)
26
+ */
16
27
  const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePicker(inProps, ref) {
17
- var _defaultizedProps$thr, _defaultizedProps$amp, _viewRenderers$hours, _defaultizedProps$slo2, _defaultizedProps$slo3, _props$localeText$ope, _props$localeText;
28
+ var _defaultizedProps$amp, _viewRenderers$hours, _defaultizedProps$slo2, _defaultizedProps$slo3, _props$localeText$ope, _props$localeText;
18
29
  const localeText = useLocaleText();
19
30
  const utils = useUtils();
20
31
 
21
32
  // Props with the default values common to all time pickers
22
33
  const defaultizedProps = useTimePickerDefaultizedProps(inProps, 'MuiDesktopTimePicker');
23
- const thresholdToRenderTimeInASingleColumn = (_defaultizedProps$thr = defaultizedProps.thresholdToRenderTimeInASingleColumn) != null ? _defaultizedProps$thr : 24;
24
- const timeSteps = _extends({
25
- hours: 1,
26
- minutes: 5,
27
- seconds: 5
28
- }, defaultizedProps.timeSteps);
29
- const shouldRenderTimeInASingleColumn = 24 * 60 / (timeSteps.hours * timeSteps.minutes) <= thresholdToRenderTimeInASingleColumn;
34
+ const {
35
+ shouldRenderTimeInASingleColumn,
36
+ views: resolvedViews,
37
+ timeSteps
38
+ } = resolveTimeViewsResponse(defaultizedProps);
30
39
  const renderTimeView = shouldRenderTimeInASingleColumn ? renderDigitalClockTimeView : renderMultiSectionDigitalClockTimeView;
31
40
  const viewRenderers = _extends({
32
41
  hours: renderTimeView,
@@ -38,7 +47,7 @@ const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePick
38
47
  const actionBarActions = shouldRenderTimeInASingleColumn ? [] : ['accept'];
39
48
  // Need to avoid adding the `meridiem` view when unexpected renderer is specified
40
49
  const shouldHoursRendererContainMeridiemView = ((_viewRenderers$hours = viewRenderers.hours) == null ? void 0 : _viewRenderers$hours.name) === renderMultiSectionDigitalClockTimeView.name;
41
- const views = defaultizedProps.ampm && shouldHoursRendererContainMeridiemView ? [...defaultizedProps.views, 'meridiem'] : defaultizedProps.views;
50
+ const views = !shouldHoursRendererContainMeridiemView ? resolvedViews.filter(view => view !== 'meridiem') : resolvedViews;
42
51
 
43
52
  // Props with the default values specific to the desktop variant
44
53
  const props = _extends({}, defaultizedProps, {
@@ -153,7 +153,7 @@ export const DigitalClock = /*#__PURE__*/React.forwardRef(function DigitalClock(
153
153
  props,
154
154
  timezone
155
155
  });
156
- const handleValueChange = useEventCallback(newValue => handleRawValueChange(newValue, 'finish'));
156
+ const handleValueChange = useEventCallback(newValue => handleRawValueChange(newValue, 'finish', 'hours'));
157
157
  const {
158
158
  setValueAndGoToNextView
159
159
  } = useViews({
@@ -3,5 +3,15 @@ import { MobileDateTimePickerProps } from './MobileDateTimePicker.types';
3
3
  type MobileDateTimePickerComponent = (<TDate>(props: MobileDateTimePickerProps<TDate> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
4
4
  propTypes?: any;
5
5
  };
6
+ /**
7
+ * Demos:
8
+ *
9
+ * - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)
10
+ * - [Validation](https://mui.com/x/react-date-pickers/validation/)
11
+ *
12
+ * API:
13
+ *
14
+ * - [MobileDateTimePicker API](https://mui.com/x/api/date-pickers/mobile-date-time-picker/)
15
+ */
6
16
  declare const MobileDateTimePicker: MobileDateTimePickerComponent;
7
17
  export { MobileDateTimePicker };
@@ -13,6 +13,16 @@ import { extractValidationProps } from '../internals/utils/validation/extractVal
13
13
  import { renderDateViewCalendar } from '../dateViewRenderers';
14
14
  import { renderTimeViewClock } from '../timeViewRenderers';
15
15
  import { resolveDateTimeFormat } from '../internals/utils/date-time-utils';
16
+ /**
17
+ * Demos:
18
+ *
19
+ * - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)
20
+ * - [Validation](https://mui.com/x/react-date-pickers/validation/)
21
+ *
22
+ * API:
23
+ *
24
+ * - [MobileDateTimePicker API](https://mui.com/x/api/date-pickers/mobile-date-time-picker/)
25
+ */
16
26
  const MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTimePicker(inProps, ref) {
17
27
  var _defaultizedProps$amp, _defaultizedProps$slo2, _defaultizedProps$slo3, _props$localeText$ope, _props$localeText;
18
28
  const localeText = useLocaleText();
@@ -3,5 +3,15 @@ import { MobileTimePickerProps } from './MobileTimePicker.types';
3
3
  type MobileTimePickerComponent = (<TDate>(props: MobileTimePickerProps<TDate> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
4
4
  propTypes?: any;
5
5
  };
6
+ /**
7
+ * Demos:
8
+ *
9
+ * - [TimePicker](https://mui.com/x/react-date-pickers/time-picker/)
10
+ * - [Validation](https://mui.com/x/react-date-pickers/validation/)
11
+ *
12
+ * API:
13
+ *
14
+ * - [MobileTimePicker API](https://mui.com/x/api/date-pickers/mobile-time-picker/)
15
+ */
6
16
  declare const MobileTimePicker: MobileTimePickerComponent;
7
17
  export { MobileTimePicker };
@@ -12,6 +12,16 @@ import { useMobilePicker } from '../internals/hooks/useMobilePicker';
12
12
  import { extractValidationProps } from '../internals/utils/validation/extractValidationProps';
13
13
  import { renderTimeViewClock } from '../timeViewRenderers';
14
14
  import { resolveTimeFormat } from '../internals/utils/time-utils';
15
+ /**
16
+ * Demos:
17
+ *
18
+ * - [TimePicker](https://mui.com/x/react-date-pickers/time-picker/)
19
+ * - [Validation](https://mui.com/x/react-date-pickers/validation/)
20
+ *
21
+ * API:
22
+ *
23
+ * - [MobileTimePicker API](https://mui.com/x/api/date-pickers/mobile-time-picker/)
24
+ */
15
25
  const MobileTimePicker = /*#__PURE__*/React.forwardRef(function MobileTimePicker(inProps, ref) {
16
26
  var _defaultizedProps$amp, _defaultizedProps$slo2, _props$localeText$ope, _props$localeText;
17
27
  const localeText = useLocaleText();
@@ -3,5 +3,15 @@ import { StaticDateTimePickerProps } from './StaticDateTimePicker.types';
3
3
  type StaticDateTimePickerComponent = (<TDate>(props: StaticDateTimePickerProps<TDate> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
4
4
  propTypes?: any;
5
5
  };
6
+ /**
7
+ * Demos:
8
+ *
9
+ * - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)
10
+ * - [Validation](https://mui.com/x/react-date-pickers/validation/)
11
+ *
12
+ * API:
13
+ *
14
+ * - [StaticDateTimePicker API](https://mui.com/x/api/date-pickers/static-date-time-picker/)
15
+ */
6
16
  declare const StaticDateTimePicker: StaticDateTimePickerComponent;
7
17
  export { StaticDateTimePicker };
@@ -7,6 +7,16 @@ import { renderDateViewCalendar } from '../dateViewRenderers';
7
7
  import { singleItemValueManager } from '../internals/utils/valueManagers';
8
8
  import { useStaticPicker } from '../internals/hooks/useStaticPicker';
9
9
  import { validateDateTime } from '../internals/utils/validation/validateDateTime';
10
+ /**
11
+ * Demos:
12
+ *
13
+ * - [DateTimePicker](https://mui.com/x/react-date-pickers/date-time-picker/)
14
+ * - [Validation](https://mui.com/x/react-date-pickers/validation/)
15
+ *
16
+ * API:
17
+ *
18
+ * - [StaticDateTimePicker API](https://mui.com/x/api/date-pickers/static-date-time-picker/)
19
+ */
10
20
  const StaticDateTimePicker = /*#__PURE__*/React.forwardRef(function StaticDateTimePicker(inProps, ref) {
11
21
  var _defaultizedProps$dis, _defaultizedProps$amp, _defaultizedProps$yea, _defaultizedProps$slo, _defaultizedProps$slo2;
12
22
  const defaultizedProps = useDateTimePickerDefaultizedProps(inProps, 'MuiStaticDateTimePicker');
@@ -3,5 +3,15 @@ import { StaticTimePickerProps } from './StaticTimePicker.types';
3
3
  type StaticTimePickerComponent = (<TDate>(props: StaticTimePickerProps<TDate> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
4
4
  propTypes?: any;
5
5
  };
6
+ /**
7
+ * Demos:
8
+ *
9
+ * - [TimePicker](https://mui.com/x/react-date-pickers/time-picker/)
10
+ * - [Validation](https://mui.com/x/react-date-pickers/validation/)
11
+ *
12
+ * API:
13
+ *
14
+ * - [StaticTimePicker API](https://mui.com/x/api/date-pickers/static-time-picker/)
15
+ */
6
16
  declare const StaticTimePicker: StaticTimePickerComponent;
7
17
  export { StaticTimePicker };
@@ -6,6 +6,16 @@ import { renderTimeViewClock } from '../timeViewRenderers';
6
6
  import { singleItemValueManager } from '../internals/utils/valueManagers';
7
7
  import { useStaticPicker } from '../internals/hooks/useStaticPicker';
8
8
  import { validateTime } from '../internals/utils/validation/validateTime';
9
+ /**
10
+ * Demos:
11
+ *
12
+ * - [TimePicker](https://mui.com/x/react-date-pickers/time-picker/)
13
+ * - [Validation](https://mui.com/x/react-date-pickers/validation/)
14
+ *
15
+ * API:
16
+ *
17
+ * - [StaticTimePicker API](https://mui.com/x/api/date-pickers/static-time-picker/)
18
+ */
9
19
  const StaticTimePicker = /*#__PURE__*/React.forwardRef(function StaticTimePicker(inProps, ref) {
10
20
  var _defaultizedProps$dis, _defaultizedProps$amp, _defaultizedProps$slo;
11
21
  const defaultizedProps = useTimePickerDefaultizedProps(inProps, 'MuiStaticTimePicker');
@@ -3,5 +3,15 @@ import { TimeFieldProps } from './TimeField.types';
3
3
  type TimeFieldComponent = (<TDate>(props: TimeFieldProps<TDate> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
4
4
  propTypes?: any;
5
5
  };
6
+ /**
7
+ * Demos:
8
+ *
9
+ * - [TimeField](http://mui.com/x/react-date-pickers/time-field/)
10
+ * - [Fields](https://mui.com/x/react-date-pickers/fields/)
11
+ *
12
+ * API:
13
+ *
14
+ * - [TimeField API](https://mui.com/x/api/date-pickers/time-field/)
15
+ */
6
16
  declare const TimeField: TimeFieldComponent;
7
17
  export { TimeField };
@@ -12,6 +12,16 @@ import { refType } from '@mui/utils';
12
12
  import { useTimeField } from './useTimeField';
13
13
  import { useClearableField } from '../hooks';
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
+ /**
16
+ * Demos:
17
+ *
18
+ * - [TimeField](http://mui.com/x/react-date-pickers/time-field/)
19
+ * - [Fields](https://mui.com/x/react-date-pickers/fields/)
20
+ *
21
+ * API:
22
+ *
23
+ * - [TimeField API](https://mui.com/x/api/date-pickers/time-field/)
24
+ */
15
25
  const TimeField = /*#__PURE__*/React.forwardRef(function TimeField(inProps, ref) {
16
26
  var _ref, _slots$textField, _slotProps$textField;
17
27
  const themeProps = useThemeProps({
@@ -3,5 +3,15 @@ import { TimePickerProps } from './TimePicker.types';
3
3
  type TimePickerComponent = (<TDate>(props: TimePickerProps<TDate> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
4
4
  propTypes?: any;
5
5
  };
6
+ /**
7
+ * Demos:
8
+ *
9
+ * - [TimePicker](https://mui.com/x/react-date-pickers/time-picker/)
10
+ * - [Validation](https://mui.com/x/react-date-pickers/validation/)
11
+ *
12
+ * API:
13
+ *
14
+ * - [TimePicker API](https://mui.com/x/api/date-pickers/time-picker/)
15
+ */
6
16
  declare const TimePicker: TimePickerComponent;
7
17
  export { TimePicker };