@mui/lab 5.0.0-alpha.53 → 5.0.0-alpha.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/CHANGELOG.md +107 -0
  2. package/CalendarPicker/CalendarPicker.d.ts +10 -0
  3. package/CalendarPicker/CalendarPicker.js +12 -0
  4. package/CalendarPicker/PickersCalendar.d.ts +2 -0
  5. package/CalendarPicker/PickersCalendar.js +9 -3
  6. package/CalendarPicker/PickersCalendarHeader.d.ts +1 -0
  7. package/CalendarPicker/PickersCalendarHeader.js +5 -4
  8. package/CalendarPickerSkeleton/CalendarPickerSkeleton.js +1 -1
  9. package/DatePicker/DatePicker.js +2 -0
  10. package/DateRangePicker/DateRangePicker.js +2 -0
  11. package/DateRangePickerDay/DateRangePickerDay.js +1 -1
  12. package/DateTimePicker/DateTimePicker.js +2 -0
  13. package/DesktopDatePicker/DesktopDatePicker.js +2 -0
  14. package/DesktopDateRangePicker/DesktopDateRangePicker.js +2 -0
  15. package/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -0
  16. package/LICENSE +21 -21
  17. package/LoadingButton/LoadingButton.js +1 -1
  18. package/Masonry/Masonry.js +15 -52
  19. package/MobileDatePicker/MobileDatePicker.js +2 -0
  20. package/MobileDateRangePicker/MobileDateRangePicker.js +2 -0
  21. package/MobileDateTimePicker/MobileDateTimePicker.js +2 -0
  22. package/MonthPicker/MonthPicker.d.ts +4 -0
  23. package/MonthPicker/MonthPicker.js +20 -4
  24. package/PickersDay/PickersDay.js +1 -1
  25. package/StaticDatePicker/StaticDatePicker.js +2 -0
  26. package/StaticDateRangePicker/StaticDateRangePicker.js +2 -0
  27. package/StaticDateTimePicker/StaticDateTimePicker.js +2 -0
  28. package/TabPanel/TabPanel.js +1 -1
  29. package/Timeline/Timeline.js +1 -1
  30. package/TimelineConnector/TimelineConnector.js +1 -1
  31. package/TimelineContent/TimelineContent.js +1 -1
  32. package/TimelineDot/TimelineDot.js +1 -1
  33. package/TimelineItem/TimelineItem.js +1 -1
  34. package/TimelineOppositeContent/TimelineOppositeContent.js +1 -1
  35. package/TimelineSeparator/TimelineSeparator.js +1 -1
  36. package/TreeItem/TreeItem.js +1 -1
  37. package/TreeView/TreeView.js +1 -1
  38. package/YearPicker/YearPicker.d.ts +2 -0
  39. package/YearPicker/YearPicker.js +17 -1
  40. package/index.js +1 -1
  41. package/internal/pickers/test-utils.js +4 -2
  42. package/legacy/CalendarPicker/CalendarPicker.js +12 -0
  43. package/legacy/CalendarPicker/PickersCalendar.js +10 -3
  44. package/legacy/CalendarPicker/PickersCalendarHeader.js +5 -4
  45. package/legacy/CalendarPickerSkeleton/CalendarPickerSkeleton.js +1 -1
  46. package/legacy/DatePicker/DatePicker.js +2 -0
  47. package/legacy/DateRangePicker/DateRangePicker.js +2 -0
  48. package/legacy/DateRangePickerDay/DateRangePickerDay.js +1 -1
  49. package/legacy/DateTimePicker/DateTimePicker.js +2 -0
  50. package/legacy/DesktopDatePicker/DesktopDatePicker.js +2 -0
  51. package/legacy/DesktopDateRangePicker/DesktopDateRangePicker.js +2 -0
  52. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -0
  53. package/legacy/LoadingButton/LoadingButton.js +1 -1
  54. package/legacy/Masonry/Masonry.js +15 -52
  55. package/legacy/MobileDatePicker/MobileDatePicker.js +2 -0
  56. package/legacy/MobileDateRangePicker/MobileDateRangePicker.js +2 -0
  57. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +2 -0
  58. package/legacy/MonthPicker/MonthPicker.js +19 -3
  59. package/legacy/PickersDay/PickersDay.js +1 -1
  60. package/legacy/StaticDatePicker/StaticDatePicker.js +2 -0
  61. package/legacy/StaticDateRangePicker/StaticDateRangePicker.js +2 -0
  62. package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +2 -0
  63. package/legacy/TabPanel/TabPanel.js +1 -1
  64. package/legacy/Timeline/Timeline.js +1 -1
  65. package/legacy/TimelineConnector/TimelineConnector.js +1 -1
  66. package/legacy/TimelineContent/TimelineContent.js +1 -1
  67. package/legacy/TimelineDot/TimelineDot.js +1 -1
  68. package/legacy/TimelineItem/TimelineItem.js +1 -1
  69. package/legacy/TimelineOppositeContent/TimelineOppositeContent.js +1 -1
  70. package/legacy/TimelineSeparator/TimelineSeparator.js +1 -1
  71. package/legacy/TreeItem/TreeItem.js +1 -1
  72. package/legacy/TreeView/TreeView.js +1 -1
  73. package/legacy/YearPicker/YearPicker.js +17 -1
  74. package/legacy/index.js +1 -1
  75. package/legacy/internal/pickers/test-utils.js +3 -2
  76. package/modern/CalendarPicker/CalendarPicker.js +12 -0
  77. package/modern/CalendarPicker/PickersCalendar.js +9 -3
  78. package/modern/CalendarPicker/PickersCalendarHeader.js +5 -4
  79. package/modern/CalendarPickerSkeleton/CalendarPickerSkeleton.js +1 -1
  80. package/modern/DatePicker/DatePicker.js +2 -0
  81. package/modern/DateRangePicker/DateRangePicker.js +2 -0
  82. package/modern/DateRangePickerDay/DateRangePickerDay.js +1 -1
  83. package/modern/DateTimePicker/DateTimePicker.js +2 -0
  84. package/modern/DesktopDatePicker/DesktopDatePicker.js +2 -0
  85. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +2 -0
  86. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -0
  87. package/modern/LoadingButton/LoadingButton.js +1 -1
  88. package/modern/Masonry/Masonry.js +15 -52
  89. package/modern/MobileDatePicker/MobileDatePicker.js +2 -0
  90. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +2 -0
  91. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +2 -0
  92. package/modern/MonthPicker/MonthPicker.js +20 -4
  93. package/modern/PickersDay/PickersDay.js +1 -1
  94. package/modern/StaticDatePicker/StaticDatePicker.js +2 -0
  95. package/modern/StaticDateRangePicker/StaticDateRangePicker.js +2 -0
  96. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +2 -0
  97. package/modern/TabPanel/TabPanel.js +1 -1
  98. package/modern/Timeline/Timeline.js +1 -1
  99. package/modern/TimelineConnector/TimelineConnector.js +1 -1
  100. package/modern/TimelineContent/TimelineContent.js +1 -1
  101. package/modern/TimelineDot/TimelineDot.js +1 -1
  102. package/modern/TimelineItem/TimelineItem.js +1 -1
  103. package/modern/TimelineOppositeContent/TimelineOppositeContent.js +1 -1
  104. package/modern/TimelineSeparator/TimelineSeparator.js +1 -1
  105. package/modern/TreeItem/TreeItem.js +1 -1
  106. package/modern/TreeView/TreeView.js +1 -1
  107. package/modern/YearPicker/YearPicker.js +17 -1
  108. package/modern/index.js +1 -1
  109. package/modern/internal/pickers/test-utils.js +4 -2
  110. package/node/CalendarPicker/CalendarPicker.js +12 -0
  111. package/node/CalendarPicker/PickersCalendar.js +9 -3
  112. package/node/CalendarPicker/PickersCalendarHeader.js +5 -4
  113. package/node/CalendarPickerSkeleton/CalendarPickerSkeleton.js +1 -1
  114. package/node/DatePicker/DatePicker.js +2 -0
  115. package/node/DateRangePicker/DateRangePicker.js +2 -0
  116. package/node/DateRangePickerDay/DateRangePickerDay.js +1 -1
  117. package/node/DateTimePicker/DateTimePicker.js +2 -0
  118. package/node/DesktopDatePicker/DesktopDatePicker.js +2 -0
  119. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +2 -0
  120. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -0
  121. package/node/LoadingButton/LoadingButton.js +1 -1
  122. package/node/Masonry/Masonry.js +19 -53
  123. package/node/MobileDatePicker/MobileDatePicker.js +2 -0
  124. package/node/MobileDateRangePicker/MobileDateRangePicker.js +2 -0
  125. package/node/MobileDateTimePicker/MobileDateTimePicker.js +2 -0
  126. package/node/MonthPicker/MonthPicker.js +20 -4
  127. package/node/PickersDay/PickersDay.js +1 -1
  128. package/node/StaticDatePicker/StaticDatePicker.js +2 -0
  129. package/node/StaticDateRangePicker/StaticDateRangePicker.js +2 -0
  130. package/node/StaticDateTimePicker/StaticDateTimePicker.js +2 -0
  131. package/node/TabPanel/TabPanel.js +1 -1
  132. package/node/Timeline/Timeline.js +1 -1
  133. package/node/TimelineConnector/TimelineConnector.js +1 -1
  134. package/node/TimelineContent/TimelineContent.js +1 -1
  135. package/node/TimelineDot/TimelineDot.js +1 -1
  136. package/node/TimelineItem/TimelineItem.js +1 -1
  137. package/node/TimelineOppositeContent/TimelineOppositeContent.js +1 -1
  138. package/node/TimelineSeparator/TimelineSeparator.js +1 -1
  139. package/node/TreeItem/TreeItem.js +1 -1
  140. package/node/TreeView/TreeView.js +1 -1
  141. package/node/YearPicker/YearPicker.js +17 -1
  142. package/node/index.js +1 -1
  143. package/node/internal/pickers/test-utils.js +3 -1
  144. package/package.json +6 -5
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["className", "date", "disableFuture", "disablePast", "maxDate", "minDate", "onChange", "onMonthChange"];
3
+ const _excluded = ["className", "date", "disabled", "disableFuture", "disablePast", "maxDate", "minDate", "onChange", "onMonthChange", "readOnly"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
@@ -43,12 +43,14 @@ const MonthPicker = /*#__PURE__*/React.forwardRef(function MonthPicker(inProps,
43
43
  const {
44
44
  className,
45
45
  date,
46
+ disabled,
46
47
  disableFuture,
47
48
  disablePast,
48
49
  maxDate,
49
50
  minDate,
50
51
  onChange,
51
- onMonthChange
52
+ onMonthChange,
53
+ readOnly
52
54
  } = props,
53
55
  other = _objectWithoutPropertiesLoose(props, _excluded);
54
56
 
@@ -67,6 +69,10 @@ const MonthPicker = /*#__PURE__*/React.forwardRef(function MonthPicker(inProps,
67
69
  };
68
70
 
69
71
  const onMonthSelect = month => {
72
+ if (readOnly) {
73
+ return;
74
+ }
75
+
70
76
  const newDate = utils.setMonth(date || now, month);
71
77
  onChange(newDate, 'finish');
72
78
 
@@ -87,7 +93,7 @@ const MonthPicker = /*#__PURE__*/React.forwardRef(function MonthPicker(inProps,
87
93
  value: monthNumber,
88
94
  selected: monthNumber === currentMonth,
89
95
  onSelect: onMonthSelect,
90
- disabled: shouldDisableMonth(month),
96
+ disabled: disabled || shouldDisableMonth(month),
91
97
  children: monthText
92
98
  }, monthText);
93
99
  })
@@ -116,6 +122,11 @@ process.env.NODE_ENV !== "production" ? MonthPicker.propTypes
116
122
  */
117
123
  date: PropTypes.any,
118
124
 
125
+ /**
126
+ * If `true` picker is disabled
127
+ */
128
+ disabled: PropTypes.bool,
129
+
119
130
  /**
120
131
  * If `true` future days are disabled.
121
132
  */
@@ -146,10 +157,15 @@ process.env.NODE_ENV !== "production" ? MonthPicker.propTypes
146
157
  */
147
158
  onMonthChange: PropTypes.func,
148
159
 
160
+ /**
161
+ * If `true` picker is readonly
162
+ */
163
+ readOnly: PropTypes.bool,
164
+
149
165
  /**
150
166
  * The system prop that allows defining system overrides as well as additional CSS styles.
151
167
  */
152
- sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
168
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object])), PropTypes.func, PropTypes.object])
153
169
  } : void 0;
154
170
  /**
155
171
  *
@@ -374,7 +374,7 @@ process.env.NODE_ENV !== "production" ? PickersDay.propTypes
374
374
  /**
375
375
  * The system prop that allows defining system overrides as well as additional CSS styles.
376
376
  */
377
- sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
377
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object])), PropTypes.func, PropTypes.object]),
378
378
 
379
379
  /**
380
380
  * If `true`, renders as today date.
@@ -121,6 +121,7 @@ process.env.NODE_ENV !== "production" ? StaticDatePicker.propTypes
121
121
 
122
122
  /**
123
123
  * If `true`, the picker and text field are disabled.
124
+ * @default false
124
125
  */
125
126
  disabled: PropTypes.bool,
126
127
 
@@ -302,6 +303,7 @@ process.env.NODE_ENV !== "production" ? StaticDatePicker.propTypes
302
303
 
303
304
  /**
304
305
  * Make picker read only.
306
+ * @default false
305
307
  */
306
308
  readOnly: PropTypes.bool,
307
309
 
@@ -170,6 +170,7 @@ process.env.NODE_ENV !== "production" ? StaticDateRangePicker.propTypes
170
170
 
171
171
  /**
172
172
  * If `true`, the picker and text field are disabled.
173
+ * @default false
173
174
  */
174
175
  disabled: PropTypes.bool,
175
176
 
@@ -348,6 +349,7 @@ process.env.NODE_ENV !== "production" ? StaticDateRangePicker.propTypes
348
349
 
349
350
  /**
350
351
  * Make picker read only.
352
+ * @default false
351
353
  */
352
354
  readOnly: PropTypes.bool,
353
355
 
@@ -138,6 +138,7 @@ process.env.NODE_ENV !== "production" ? StaticDateTimePicker.propTypes
138
138
 
139
139
  /**
140
140
  * If `true`, the picker and text field are disabled.
141
+ * @default false
141
142
  */
142
143
  disabled: PropTypes.bool,
143
144
 
@@ -371,6 +372,7 @@ process.env.NODE_ENV !== "production" ? StaticDateTimePicker.propTypes
371
372
 
372
373
  /**
373
374
  * Make picker read only.
375
+ * @default false
374
376
  */
375
377
  readOnly: PropTypes.bool,
376
378
 
@@ -91,7 +91,7 @@ process.env.NODE_ENV !== "production" ? TabPanel.propTypes
91
91
  /**
92
92
  * The system prop that allows defining system overrides as well as additional CSS styles.
93
93
  */
94
- sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
94
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object])), PropTypes.func, PropTypes.object]),
95
95
 
96
96
  /**
97
97
  * The `value` of the corresponding `Tab`. Must use the index of the `Tab` when
@@ -109,7 +109,7 @@ process.env.NODE_ENV !== "production" ? Timeline.propTypes
109
109
  /**
110
110
  * The system prop that allows defining system overrides as well as additional CSS styles.
111
111
  */
112
- sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
112
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object])), PropTypes.func, PropTypes.object])
113
113
  } : void 0;
114
114
  /**
115
115
  *
@@ -77,6 +77,6 @@ process.env.NODE_ENV !== "production" ? TimelineConnector.propTypes
77
77
  /**
78
78
  * The system prop that allows defining system overrides as well as additional CSS styles.
79
79
  */
80
- sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
80
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object])), PropTypes.func, PropTypes.object])
81
81
  } : void 0;
82
82
  export default TimelineConnector;
@@ -94,6 +94,6 @@ process.env.NODE_ENV !== "production" ? TimelineContent.propTypes
94
94
  /**
95
95
  * The system prop that allows defining system overrides as well as additional CSS styles.
96
96
  */
97
- sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
97
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object])), PropTypes.func, PropTypes.object])
98
98
  } : void 0;
99
99
  export default TimelineContent;
@@ -116,7 +116,7 @@ process.env.NODE_ENV !== "production" ? TimelineDot.propTypes
116
116
  /**
117
117
  * The system prop that allows defining system overrides as well as additional CSS styles.
118
118
  */
119
- sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
119
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object])), PropTypes.func, PropTypes.object]),
120
120
 
121
121
  /**
122
122
  * The dot can appear filled or outlined.
@@ -130,6 +130,6 @@ process.env.NODE_ENV !== "production" ? TimelineItem.propTypes
130
130
  /**
131
131
  * The system prop that allows defining system overrides as well as additional CSS styles.
132
132
  */
133
- sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
133
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object])), PropTypes.func, PropTypes.object])
134
134
  } : void 0;
135
135
  export default TimelineItem;
@@ -95,7 +95,7 @@ process.env.NODE_ENV !== "production" ? TimelineOppositeContent.propTypes
95
95
  /**
96
96
  * The system prop that allows defining system overrides as well as additional CSS styles.
97
97
  */
98
- sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
98
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object])), PropTypes.func, PropTypes.object])
99
99
  } : void 0;
100
100
  TimelineOppositeContent.muiName = 'TimelineOppositeContent';
101
101
  export default TimelineOppositeContent;
@@ -74,6 +74,6 @@ process.env.NODE_ENV !== "production" ? TimelineSeparator.propTypes
74
74
  /**
75
75
  * The system prop that allows defining system overrides as well as additional CSS styles.
76
76
  */
77
- sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
77
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object])), PropTypes.func, PropTypes.object])
78
78
  } : void 0;
79
79
  export default TimelineSeparator;
@@ -405,7 +405,7 @@ process.env.NODE_ENV !== "production" ? TreeItem.propTypes
405
405
  /**
406
406
  * The system prop that allows defining system overrides as well as additional CSS styles.
407
407
  */
408
- sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
408
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object])), PropTypes.func, PropTypes.object]),
409
409
 
410
410
  /**
411
411
  * The component used for the transition.
@@ -973,6 +973,6 @@ process.env.NODE_ENV !== "production" ? TreeView.propTypes
973
973
  /**
974
974
  * The system prop that allows defining system overrides as well as additional CSS styles.
975
975
  */
976
- sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
976
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object])), PropTypes.func, PropTypes.object])
977
977
  } : void 0;
978
978
  export default TreeView;
@@ -20,6 +20,7 @@ export interface YearPickerProps<TDate> extends ExportedYearPickerProps<TDate> {
20
20
  root?: string;
21
21
  };
22
22
  date: TDate | null;
23
+ disabled?: boolean;
23
24
  disableFuture?: boolean | null;
24
25
  disablePast?: boolean | null;
25
26
  isDateDisabled: (day: TDate) => boolean;
@@ -27,6 +28,7 @@ export interface YearPickerProps<TDate> extends ExportedYearPickerProps<TDate> {
27
28
  maxDate: TDate;
28
29
  onChange: PickerOnChangeFn<TDate>;
29
30
  onFocusedDayChange?: (day: TDate) => void;
31
+ readOnly?: boolean;
30
32
  }
31
33
  declare const _default: <TDate>(props: YearPickerProps<TDate>) => JSX.Element;
32
34
  /**
@@ -41,6 +41,7 @@ const YearPicker = /*#__PURE__*/React.forwardRef(function YearPicker(inProps, re
41
41
  autoFocus,
42
42
  className,
43
43
  date,
44
+ disabled,
44
45
  disableFuture,
45
46
  disablePast,
46
47
  isDateDisabled,
@@ -49,6 +50,7 @@ const YearPicker = /*#__PURE__*/React.forwardRef(function YearPicker(inProps, re
49
50
  onChange,
50
51
  onFocusedDayChange,
51
52
  onYearChange,
53
+ readOnly,
52
54
  shouldDisableYear
53
55
  } = props;
54
56
  const ownerState = props;
@@ -63,6 +65,10 @@ const YearPicker = /*#__PURE__*/React.forwardRef(function YearPicker(inProps, re
63
65
  const [focusedYear, setFocusedYear] = React.useState(currentYear);
64
66
 
65
67
  const handleYearSelection = (event, year, isFinish = 'finish') => {
68
+ if (readOnly) {
69
+ return;
70
+ }
71
+
66
72
  const submitDate = newDate => {
67
73
  onChange(newDate, isFinish);
68
74
 
@@ -141,7 +147,7 @@ const YearPicker = /*#__PURE__*/React.forwardRef(function YearPicker(inProps, re
141
147
  onKeyDown: handleKeyDown,
142
148
  autoFocus: autoFocus && yearNumber === focusedYear,
143
149
  ref: selected ? selectedYearRef : undefined,
144
- disabled: disablePast && utils.isBeforeYear(year, now) || disableFuture && utils.isAfterYear(year, now) || shouldDisableYear && shouldDisableYear(year),
150
+ disabled: disabled || disablePast && utils.isBeforeYear(year, now) || disableFuture && utils.isAfterYear(year, now) || shouldDisableYear && shouldDisableYear(year),
145
151
  children: utils.format(year, 'year')
146
152
  }, utils.format(year, 'year'));
147
153
  })
@@ -175,6 +181,11 @@ process.env.NODE_ENV !== "production" ? YearPicker.propTypes
175
181
  */
176
182
  date: PropTypes.any,
177
183
 
184
+ /**
185
+ * @ignore
186
+ */
187
+ disabled: PropTypes.bool,
188
+
178
189
  /**
179
190
  * @ignore
180
191
  */
@@ -215,6 +226,11 @@ process.env.NODE_ENV !== "production" ? YearPicker.propTypes
215
226
  */
216
227
  onYearChange: PropTypes.func,
217
228
 
229
+ /**
230
+ * @ignore
231
+ */
232
+ readOnly: PropTypes.bool,
233
+
218
234
  /**
219
235
  * Disable specific years dynamically.
220
236
  * Works like `shouldDisableDate` but for year selection view @DateIOType.
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license MUI v5.0.0-alpha.53
1
+ /** @license MUI v5.0.0-alpha.54
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
@@ -3,7 +3,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
3
3
  const _excluded = ["locale"];
4
4
  import * as React from 'react';
5
5
  import { parseISO } from 'date-fns';
6
- import { createClientRender, fireEvent, screen } from 'test/utils';
6
+ import { createRenderer, fireEvent, screen } from 'test/utils';
7
7
  import AdapterDateFns from '@mui/lab/AdapterDateFns';
8
8
  import LocalizationProvider from '@mui/lab/LocalizationProvider'; // TODO make possible to pass here any utils using cli
9
9
 
@@ -60,7 +60,9 @@ export function createPickerRender(_ref = {}) {
60
60
  } = _ref,
61
61
  renderOptions = _objectWithoutPropertiesLoose(_ref, _excluded);
62
62
 
63
- const clientRender = createClientRender(renderOptions);
63
+ const {
64
+ render: clientRender
65
+ } = createRenderer(renderOptions);
64
66
 
65
67
  function Wrapper({
66
68
  children
@@ -241,6 +241,12 @@ process.env.NODE_ENV !== "production" ? CalendarPicker.propTypes
241
241
  */
242
242
  defaultCalendarMonth: PropTypes.any,
243
243
 
244
+ /**
245
+ * If `true`, the picker and text field are disabled.
246
+ * @default false
247
+ */
248
+ disabled: PropTypes.bool,
249
+
244
250
  /**
245
251
  * @default false
246
252
  */
@@ -289,6 +295,12 @@ process.env.NODE_ENV !== "production" ? CalendarPicker.propTypes
289
295
  */
290
296
  openTo: PropTypes.oneOf(['day', 'month', 'year']),
291
297
 
298
+ /**
299
+ * Make picker read only.
300
+ * @default false
301
+ */
302
+ readOnly: PropTypes.bool,
303
+
292
304
  /**
293
305
  * Disable heavy animations.
294
306
  * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)
@@ -70,6 +70,7 @@ function PickersCalendar(props) {
70
70
  className = props.className,
71
71
  currentMonth = props.currentMonth,
72
72
  date = props.date,
73
+ disabled = props.disabled,
73
74
  disableHighlightToday = props.disableHighlightToday,
74
75
  focusedDay = props.focusedDay,
75
76
  isDateDisabled = props.isDateDisabled,
@@ -77,6 +78,7 @@ function PickersCalendar(props) {
77
78
  loading = props.loading,
78
79
  onChange = props.onChange,
79
80
  onMonthSwitchingAnimationEnd = props.onMonthSwitchingAnimationEnd,
81
+ readOnly = props.readOnly,
80
82
  reduceAnimations = props.reduceAnimations,
81
83
  renderDay = props.renderDay,
82
84
  _props$renderLoading = props.renderLoading,
@@ -92,10 +94,15 @@ function PickersCalendar(props) {
92
94
  var utils = useUtils();
93
95
  var handleDaySelect = React.useCallback(function (day) {
94
96
  var isFinish = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'finish';
95
- // TODO possibly buggy line figure out and add tests
97
+
98
+ if (readOnly) {
99
+ return;
100
+ } // TODO possibly buggy line figure out and add tests
101
+
102
+
96
103
  var finalDate = Array.isArray(date) ? day : utils.mergeDateAndTime(day, date || now);
97
104
  onChange(finalDate, isFinish);
98
- }, [date, now, onChange, utils]);
105
+ }, [date, now, onChange, readOnly, utils]);
99
106
  var currentMonthNumber = utils.getMonth(currentMonth);
100
107
  var selectedDates = (Array.isArray(date) ? date : [date]).filter(Boolean).map(function (selectedDateItem) {
101
108
  return selectedDateItem && utils.startOfDay(selectedDateItem);
@@ -136,7 +143,7 @@ function PickersCalendar(props) {
136
143
  key: day == null ? void 0 : day.toString(),
137
144
  day: day,
138
145
  isAnimating: isMonthSwitchingAnimating,
139
- disabled: isDateDisabled(day),
146
+ disabled: disabled || isDateDisabled(day),
140
147
  allowSameDateSelection: allowSameDateSelection,
141
148
  autoFocus: autoFocus && focusedDay !== null && utils.isSameDay(day, focusedDay),
142
149
  today: utils.isSameDay(day, now),
@@ -77,6 +77,7 @@ function PickersCalendarHeader(props) {
77
77
  _props$componentsProp = props.componentsProps,
78
78
  componentsProps = _props$componentsProp === void 0 ? {} : _props$componentsProp,
79
79
  month = props.currentMonth,
80
+ disabled = props.disabled,
80
81
  disableFuture = props.disableFuture,
81
82
  disablePast = props.disablePast,
82
83
  _props$getViewSwitchi = props.getViewSwitchingButtonText,
@@ -104,16 +105,16 @@ function PickersCalendarHeader(props) {
104
105
  };
105
106
 
106
107
  var isNextMonthDisabled = useNextMonthDisabled(month, {
107
- disableFuture: disableFuture,
108
+ disableFuture: disableFuture || disabled,
108
109
  maxDate: maxDate
109
110
  });
110
111
  var isPreviousMonthDisabled = usePreviousMonthDisabled(month, {
111
- disablePast: disablePast,
112
+ disablePast: disablePast || disabled,
112
113
  minDate: minDate
113
114
  });
114
115
 
115
116
  var handleToggleView = function handleToggleView() {
116
- if (views.length === 1 || !onViewChange) {
117
+ if (views.length === 1 || !onViewChange || disabled) {
117
118
  return;
118
119
  }
119
120
 
@@ -156,7 +157,7 @@ function PickersCalendarHeader(props) {
156
157
  ownerState: ownerState,
157
158
  children: utils.format(month, 'year')
158
159
  })
159
- }), views.length > 1 && /*#__PURE__*/_jsx(PickersCalendarHeaderSwitchViewButton, _extends({
160
+ }), views.length > 1 && !disabled && /*#__PURE__*/_jsx(PickersCalendarHeaderSwitchViewButton, _extends({
160
161
  size: "small",
161
162
  as: components.SwitchViewButton,
162
163
  "aria-label": getViewSwitchingButtonText(currentView)
@@ -150,6 +150,6 @@ process.env.NODE_ENV !== "production" ? CalendarPickerSkeleton.propTypes
150
150
  /**
151
151
  * The system prop that allows defining system overrides as well as additional CSS styles.
152
152
  */
153
- sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
153
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object])), PropTypes.func, PropTypes.object])
154
154
  } : void 0;
155
155
  export default CalendarPickerSkeleton;
@@ -153,6 +153,7 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes
153
153
 
154
154
  /**
155
155
  * If `true`, the picker and text field are disabled.
156
+ * @default false
156
157
  */
157
158
  disabled: PropTypes.bool,
158
159
 
@@ -344,6 +345,7 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes
344
345
 
345
346
  /**
346
347
  * Make picker read only.
348
+ * @default false
347
349
  */
348
350
  readOnly: PropTypes.bool,
349
351
 
@@ -215,6 +215,7 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes
215
215
 
216
216
  /**
217
217
  * If `true`, the picker and text field are disabled.
218
+ * @default false
218
219
  */
219
220
  disabled: PropTypes.bool,
220
221
 
@@ -405,6 +406,7 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes
405
406
 
406
407
  /**
407
408
  * Make picker read only.
409
+ * @default false
408
410
  */
409
411
  readOnly: PropTypes.bool,
410
412
 
@@ -233,7 +233,7 @@ process.env.NODE_ENV !== "production" ? DateRangePickerDay.propTypes
233
233
  /**
234
234
  * The system prop that allows defining system overrides as well as additional CSS styles.
235
235
  */
236
- sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
236
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object])), PropTypes.func, PropTypes.object])
237
237
  } : void 0;
238
238
  /**
239
239
  *
@@ -170,6 +170,7 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes
170
170
 
171
171
  /**
172
172
  * If `true`, the picker and text field are disabled.
173
+ * @default false
173
174
  */
174
175
  disabled: PropTypes.bool,
175
176
 
@@ -413,6 +414,7 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes
413
414
 
414
415
  /**
415
416
  * Make picker read only.
417
+ * @default false
416
418
  */
417
419
  readOnly: PropTypes.bool,
418
420
 
@@ -136,6 +136,7 @@ process.env.NODE_ENV !== "production" ? DesktopDatePicker.propTypes
136
136
 
137
137
  /**
138
138
  * If `true`, the picker and text field are disabled.
139
+ * @default false
139
140
  */
140
141
  disabled: PropTypes.bool,
141
142
 
@@ -321,6 +322,7 @@ process.env.NODE_ENV !== "production" ? DesktopDatePicker.propTypes
321
322
 
322
323
  /**
323
324
  * Make picker read only.
325
+ * @default false
324
326
  */
325
327
  readOnly: PropTypes.bool,
326
328
 
@@ -187,6 +187,7 @@ process.env.NODE_ENV !== "production" ? DesktopDateRangePicker.propTypes
187
187
 
188
188
  /**
189
189
  * If `true`, the picker and text field are disabled.
190
+ * @default false
190
191
  */
191
192
  disabled: PropTypes.bool,
192
193
 
@@ -371,6 +372,7 @@ process.env.NODE_ENV !== "production" ? DesktopDateRangePicker.propTypes
371
372
 
372
373
  /**
373
374
  * Make picker read only.
375
+ * @default false
374
376
  */
375
377
  readOnly: PropTypes.bool,
376
378
 
@@ -151,6 +151,7 @@ process.env.NODE_ENV !== "production" ? DesktopDateTimePicker.propTypes
151
151
 
152
152
  /**
153
153
  * If `true`, the picker and text field are disabled.
154
+ * @default false
154
155
  */
155
156
  disabled: PropTypes.bool,
156
157
 
@@ -388,6 +389,7 @@ process.env.NODE_ENV !== "production" ? DesktopDateTimePicker.propTypes
388
389
 
389
390
  /**
390
391
  * Make picker read only.
392
+ * @default false
391
393
  */
392
394
  readOnly: PropTypes.bool,
393
395
 
@@ -206,6 +206,6 @@ process.env.NODE_ENV !== "production" ? LoadingButton.propTypes
206
206
  /**
207
207
  * The system prop that allows defining system overrides as well as additional CSS styles.
208
208
  */
209
- sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
209
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object])), PropTypes.func, PropTypes.object])
210
210
  } : void 0;
211
211
  export default LoadingButton;