@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
package/CHANGELOG.md CHANGED
@@ -1,5 +1,112 @@
1
1
  ### [Versions](https://mui.com/versions/)
2
2
 
3
+ ## 5.1.0
4
+
5
+ <!-- generated comparing v5.0.6..master -->
6
+
7
+ _Nov 8, 2021_
8
+
9
+ A big thanks to the 33 contributors who made this release possible. Here are some highlights ✨:
10
+
11
+ - 🎉 Support custom elements under `ButtonGroup` (#28645) @ZeeshanTamboli
12
+ - 🛠 Add support for arrays in the `sx` prop (#29297) @siriwatknp
13
+ - And many more 🐛 bug fixes and 📚 improvements.
14
+
15
+ ### `@mui/material@5.1.0`
16
+
17
+ - &#8203;<!-- 68 -->[Autocomplete] Fix `hiddenLabel` prop of `TextField variant={filled}` inside Autocomplete (#29234) @jatinsandilya
18
+ - &#8203;<!-- 67 -->[Box] Support generateClassName and defaultClassName (#29347) @siriwatknp
19
+ - &#8203;<!-- 66 -->[ButtonGroup] Fix variant outlined always has primary color borders on hover (#29487) @ZeeshanTamboli
20
+ - &#8203;<!-- 65 -->[ButtonGroup] Support different elements under ButtonGroup (#28645) @ZeeshanTamboli
21
+ - &#8203;<!-- 62 -->[CssBaseline] Add `enableColorScheme` prop so enable using `color-scheme` property to deal with dark mode (#29454) @alexfauquette
22
+ - &#8203;<!-- 29 -->[FormControlLabel] Narrow the label type (#29324) @michaldudak
23
+ - &#8203;<!-- 28 -->[Grid] Fix usage when columns > 12 (#29196) @tanay123456789
24
+ - &#8203;<!-- 27 -->[InputBase] Do not repeat the same classname (#29353) @hbjORbj
25
+ - &#8203;<!-- 30 -->[InputBase] Remove WebkitAppearance from search type (#29383) @nicbarajas
26
+ - &#8203;<!-- 25 -->[ListItem] Add missing exports (#29571) @robcaldecott
27
+ - &#8203;<!-- 22 -->[Pagination] Allow customization of icons (#29336) @mbeltramin
28
+ - &#8203;<!-- 11 -->[TextField] Fix bootstrap, normalize.css, sanitize.css conflicts (#28674) @ChrisClaude
29
+ - &#8203;<!-- 10 -->[TextField] Fix invisible wrap within notched inputs (#29088) @DASPRiD
30
+ - &#8203;<!-- 09 -->[Tooltip] `open` prop in `componentsProps.popper` can be optional (#29370) @ZeeshanTamboli
31
+ - &#8203;<!-- 08 -->[Tooltip] Fix `className` not getting applied from PopperProps (#29023) @ZeeshanTamboli
32
+ - &#8203;<!-- 07 -->[useRadioGroup] Convert to TypeScript (#29326) @eps1lon
33
+
34
+ ### `@mui/system@5.1.0`
35
+
36
+ - &#8203;<!-- 21 -->[system] Introduce `mode` to CssVarsProvider (#29418) @siriwatknp
37
+ - &#8203;<!-- 20 -->[system] Improve breakpoints resolver function (#29300) @hbjORbj
38
+ - &#8203;<!-- 19 -->[system] Add array support for `sx` prop (#29297) @siriwatknp
39
+
40
+ ### `@mui/codemod@5.1.0`
41
+
42
+ - &#8203;<!-- 64 -->[codemod] Add codemod parser flag (#29059) (#29229) @ElonVolo
43
+
44
+ ### `@mui/lab@5.0.0-alpha.54`
45
+
46
+ - &#8203;<!-- 52 -->[DatePicker] Fix disabled/readOnly for view components (#28815) @adamfitzgibbon
47
+ - &#8203;<!-- 24 -->[Masonry] Fix crash on unmount when using React 18 (#29358) @eps1lon
48
+ - &#8203;<!-- 23 -->[Masonry] Improve height computation and detect changes in `children` (#29351) @hbjORbj
49
+
50
+ ### `@mui/joy@5.0.0-alpha.0`
51
+
52
+ - &#8203;<!-- 28 -->[Joy] Update default theme (#29478) @siriwatknp
53
+ - &#8203;<!-- 26 -->[Joy] Export CssVarsProvider with default theme (#29150) @siriwatknp
54
+ - &#8203;<!-- 25 -->[Joy] Remove `private` to leverage CodeSandbox (#29280) @siriwatknp
55
+
56
+ ### Docs
57
+
58
+ - &#8203;<!-- 51 -->[docs] Add differences between styled and sx (#28685) @eric-burel
59
+ - &#8203;<!-- 50 -->[docs] Track usage of dark mode in Google Analytics (#29419) @oliviertassinari
60
+ - &#8203;<!-- 49 -->[docs] Remove create-mui-theme as it is no longer working (#29472) @IPJT
61
+ - &#8203;<!-- 48 -->[docs] Fix warnings in AppSearch (#29459) @eps1lon
62
+ - &#8203;<!-- 47 -->[docs] Add framework example for ClassNameGenerator (#29453) @siriwatknp
63
+ - &#8203;<!-- 46 -->[docs] Fix layout shift when scrolling (#29436) @oliviertassinari
64
+ - &#8203;<!-- 45 -->[docs] Fix layout-shift on id='main-content' (#29425) @oliviertassinari
65
+ - &#8203;<!-- 44 -->[docs] Remove usage of `process.browser` (#29438) @oliviertassinari
66
+ - &#8203;<!-- 43 -->[docs] Add instruction on how to use the child selector API with emotion (#29350) @mnajdova
67
+ - &#8203;<!-- 42 -->[docs] Fix small typos (#29424) @oliviertassinari
68
+ - &#8203;<!-- 41 -->[docs] Fix TOC highlighting logic (#29435) @oliviertassinari
69
+ - &#8203;<!-- 40 -->[docs] Fix about page flags (#29314) @mbrookes
70
+ - &#8203;<!-- 39 -->[docs] Fix Box JS docs (#29282) @Pablion
71
+ - &#8203;<!-- 38 -->[docs] Update storybook section in migration to v5 docs (#28800) @siriwatknp
72
+ - &#8203;<!-- 37 -->[docs] Document how to enable color on dark mode (#29340) @Wimukti
73
+ - &#8203;<!-- 36 -->[docs] Display search functionality in all viewports (#28819) @eps1lon
74
+ - &#8203;<!-- 35 -->[docs] Query heading for ToC on demand (#29204) @eps1lon
75
+ - &#8203;<!-- 34 -->[docs] Add next.js styled-component guide and update links to example (#29118) @Jareechang
76
+ - &#8203;<!-- 33 -->[docs] Fix overriding `MuiTextField`'s default props in the migration guide (#29174) @tm1000
77
+ - &#8203;<!-- 32 -->[docs] Fix "clickable" and "deletable" typos (#28702) @jacklaurencegaray
78
+ - &#8203;<!-- 31 -->[docs] Update migration-v4 docs for wrong import path (#29042) @busches
79
+ - &#8203;<!-- 30 -->[docs] Add GitHub icon change to "Migration from v4 to v5" guide (#29182) @dan-mba
80
+ - &#8203;<!-- 06 -->[website] Benny Joo joining MUI (#29499) @mnajdova
81
+ - &#8203;<!-- 05 -->[website] Update the `Print export` feature info on the pricing page (#29484) @DanailH
82
+ - &#8203;<!-- 04 -->[website] Improve the dev rel role description (#29477) @oliviertassinari
83
+ - &#8203;<!-- 03 -->[website] Add customers section on Design Kits and Templates marketing pages (#29168) @danilo-leal
84
+ - &#8203;<!-- 02 -->[website] Improvements to the /core product page @danilo-leal
85
+ - &#8203;<!-- 01 -->[website] Fix typo on the About Page (#29286) @gssakash
86
+
87
+ ### Core
88
+
89
+ - &#8203;<!-- 63 -->[core] Handle RecordType and FieldType in generatePropDescription.ts (#29467) @flaviendelangle
90
+ - &#8203;<!-- 61 -->[core] Convert a named color to lowercase (#29465) @ainatenhi
91
+ - &#8203;<!-- 60 -->[core] Allow to reuse functions from `docs:api` (#28828) @m4theushw
92
+ - &#8203;<!-- 59 -->[core] Commit new nextjs 12 tsconfig (#29458) @eps1lon
93
+ - &#8203;<!-- 58 -->[core] Settle on MUI X for the official name (#29420) @oliviertassinari
94
+ - &#8203;<!-- 57 -->[core] Add mui as a npm keyword (#29427) @oliviertassinari
95
+ - &#8203;<!-- 56 -->[core] Fix issue template redirection (#29432) @oliviertassinari
96
+ - &#8203;<!-- 55 -->[core] Remove unecessary destructuration (#29354) @oliviertassinari
97
+ - &#8203;<!-- 54 -->[core] Use cross-env to set env variables in material-icons scripts (#29327) @michaldudak
98
+ - &#8203;<!-- 53 -->[core] Don't bump peer dependency ranges on dependency updates (#29303) @eps1lon
99
+ - &#8203;<!-- 18 -->[test] Fix browser tests (#29505) @eps1lon
100
+ - &#8203;<!-- 69 -->[test] Fix missing act warnings in latest React 18 alpha (#29357) @eps1lon
101
+ - &#8203;<!-- 17 -->[test] Replace `createClientRender` with new `createRenderer` API (#29471) @eps1lon
102
+ - &#8203;<!-- 16 -->[test] Fix possible "missing act" warning (#29463) @eps1lon
103
+ - &#8203;<!-- 15 -->[test] Remove render#baseElement (#29462) @eps1lon
104
+ - &#8203;<!-- 14 -->[test] Expose `AbortController` on global (#29360) @eps1lon
105
+ - &#8203;<!-- 13 -->[test] Add internal test for uniqe `name` in `Rating` (#29329) @eps1lon
106
+ - &#8203;<!-- 12 -->[test] Fix browser tests (#29305) @eps1lon
107
+
108
+ All contributors of this release in alphabetical order: @adamfitzgibbon, @ainatenhi, @alexfauquette, @busches, @ChrisClaude, @dan-mba, @DanailH, @danilo-leal, @DASPRiD, @ElonVolo, @eps1lon, @eric-burel, @flaviendelangle, @gssakash, @hbjORbj, @IPJT, @jacklaurencegaray, @Jareechang, @jatinsandilya, @m4theushw, @mbeltramin, @mbrookes, @michaldudak, @mnajdova, @nicbarajas, @oliviertassinari, @Pablion, @robcaldecott, @siriwatknp, @tanay123456789, @tm1000, @Wimukti, @ZeeshanTamboli
109
+
3
110
  ## 5.0.6
4
111
 
5
112
  <!-- generated comparing v5.0.5..master -->
@@ -18,6 +18,11 @@ export interface CalendarPickerProps<TDate> extends ExportedCalendarProps<TDate>
18
18
  * Default calendar month displayed when `value={null}`.
19
19
  */
20
20
  defaultCalendarMonth?: TDate;
21
+ /**
22
+ * If `true`, the picker and text field are disabled.
23
+ * @default false
24
+ */
25
+ disabled?: boolean;
21
26
  /**
22
27
  * @default false
23
28
  */
@@ -51,6 +56,11 @@ export interface CalendarPickerProps<TDate> extends ExportedCalendarProps<TDate>
51
56
  * @default 'day'
52
57
  */
53
58
  openTo?: CalendarPickerView;
59
+ /**
60
+ * Make picker read only.
61
+ * @default false
62
+ */
63
+ readOnly?: boolean;
54
64
  /**
55
65
  * Disable heavy animations.
56
66
  * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)
@@ -230,6 +230,12 @@ process.env.NODE_ENV !== "production" ? CalendarPicker.propTypes
230
230
  */
231
231
  defaultCalendarMonth: PropTypes.any,
232
232
 
233
+ /**
234
+ * If `true`, the picker and text field are disabled.
235
+ * @default false
236
+ */
237
+ disabled: PropTypes.bool,
238
+
233
239
  /**
234
240
  * @default false
235
241
  */
@@ -278,6 +284,12 @@ process.env.NODE_ENV !== "production" ? CalendarPicker.propTypes
278
284
  */
279
285
  openTo: PropTypes.oneOf(['day', 'month', 'year']),
280
286
 
287
+ /**
288
+ * Make picker read only.
289
+ * @default false
290
+ */
291
+ readOnly: PropTypes.bool,
292
+
281
293
  /**
282
294
  * Disable heavy animations.
283
295
  * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)
@@ -29,11 +29,13 @@ export interface PickersCalendarProps<TDate> extends ExportedCalendarProps<TDate
29
29
  className?: string;
30
30
  currentMonth: TDate;
31
31
  date: TDate | [TDate | null, TDate | null] | null;
32
+ disabled?: boolean;
32
33
  focusedDay: TDate | null;
33
34
  isDateDisabled: (day: TDate) => boolean;
34
35
  isMonthSwitchingAnimating: boolean;
35
36
  onFocusedDayChange: (newFocusedDay: TDate) => void;
36
37
  onMonthSwitchingAnimationEnd: () => void;
38
+ readOnly?: boolean;
37
39
  reduceAnimations: boolean;
38
40
  slideDirection: SlideDirection;
39
41
  TransitionProps?: Partial<SlideTransitionProps>;
@@ -70,6 +70,7 @@ function PickersCalendar(props) {
70
70
  className,
71
71
  currentMonth,
72
72
  date,
73
+ disabled,
73
74
  disableHighlightToday,
74
75
  focusedDay,
75
76
  isDateDisabled,
@@ -77,6 +78,7 @@ function PickersCalendar(props) {
77
78
  loading,
78
79
  onChange,
79
80
  onMonthSwitchingAnimationEnd,
81
+ readOnly,
80
82
  reduceAnimations,
81
83
  renderDay,
82
84
  renderLoading = () => _span || (_span = /*#__PURE__*/_jsx("span", {
@@ -89,10 +91,14 @@ function PickersCalendar(props) {
89
91
  const now = useNow();
90
92
  const utils = useUtils();
91
93
  const handleDaySelect = React.useCallback((day, isFinish = 'finish') => {
92
- // TODO possibly buggy line figure out and add tests
94
+ if (readOnly) {
95
+ return;
96
+ } // TODO possibly buggy line figure out and add tests
97
+
98
+
93
99
  const finalDate = Array.isArray(date) ? day : utils.mergeDateAndTime(day, date || now);
94
100
  onChange(finalDate, isFinish);
95
- }, [date, now, onChange, utils]);
101
+ }, [date, now, onChange, readOnly, utils]);
96
102
  const currentMonthNumber = utils.getMonth(currentMonth);
97
103
  const selectedDates = (Array.isArray(date) ? date : [date]).filter(Boolean).map(selectedDateItem => selectedDateItem && utils.startOfDay(selectedDateItem)); // need a new ref whenever the `key` of the transition changes: https://reactcommunity.org/react-transition-group/transition#Transition-prop-nodeRef.
98
104
 
@@ -126,7 +132,7 @@ function PickersCalendar(props) {
126
132
  key: day == null ? void 0 : day.toString(),
127
133
  day,
128
134
  isAnimating: isMonthSwitchingAnimating,
129
- disabled: isDateDisabled(day),
135
+ disabled: disabled || isDateDisabled(day),
130
136
  allowSameDateSelection,
131
137
  autoFocus: autoFocus && focusedDay !== null && utils.isSameDay(day, focusedDay),
132
138
  today: utils.isSameDay(day, now),
@@ -25,6 +25,7 @@ export interface PickersCalendarHeaderProps<TDate> extends ExportedArrowSwitcher
25
25
  switchViewButton?: React.ComponentPropsWithRef<typeof IconButton> & PickersCalendarHeaderComponentsPropsOverides;
26
26
  };
27
27
  currentMonth: TDate;
28
+ disabled?: boolean;
28
29
  views: readonly CalendarPickerView[];
29
30
  /**
30
31
  * Get aria-label text for switching between views button.
@@ -74,6 +74,7 @@ function PickersCalendarHeader(props) {
74
74
  components = {},
75
75
  componentsProps = {},
76
76
  currentMonth: month,
77
+ disabled,
77
78
  disableFuture,
78
79
  disablePast,
79
80
  getViewSwitchingButtonText = getSwitchingViewAriaText,
@@ -95,16 +96,16 @@ function PickersCalendarHeader(props) {
95
96
  const selectPreviousMonth = () => onMonthChange(utils.getPreviousMonth(month), 'right');
96
97
 
97
98
  const isNextMonthDisabled = useNextMonthDisabled(month, {
98
- disableFuture,
99
+ disableFuture: disableFuture || disabled,
99
100
  maxDate
100
101
  });
101
102
  const isPreviousMonthDisabled = usePreviousMonthDisabled(month, {
102
- disablePast,
103
+ disablePast: disablePast || disabled,
103
104
  minDate
104
105
  });
105
106
 
106
107
  const handleToggleView = () => {
107
- if (views.length === 1 || !onViewChange) {
108
+ if (views.length === 1 || !onViewChange || disabled) {
108
109
  return;
109
110
  }
110
111
 
@@ -145,7 +146,7 @@ function PickersCalendarHeader(props) {
145
146
  ownerState: ownerState,
146
147
  children: utils.format(month, 'year')
147
148
  })
148
- }), views.length > 1 && /*#__PURE__*/_jsx(PickersCalendarHeaderSwitchViewButton, _extends({
149
+ }), views.length > 1 && !disabled && /*#__PURE__*/_jsx(PickersCalendarHeaderSwitchViewButton, _extends({
149
150
  size: "small",
150
151
  as: components.SwitchViewButton,
151
152
  "aria-label": getViewSwitchingButtonText(currentView)
@@ -144,6 +144,6 @@ process.env.NODE_ENV !== "production" ? CalendarPickerSkeleton.propTypes
144
144
  /**
145
145
  * The system prop that allows defining system overrides as well as additional CSS styles.
146
146
  */
147
- sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
147
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object])), PropTypes.func, PropTypes.object])
148
148
  } : void 0;
149
149
  export default CalendarPickerSkeleton;
@@ -155,6 +155,7 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes
155
155
 
156
156
  /**
157
157
  * If `true`, the picker and text field are disabled.
158
+ * @default false
158
159
  */
159
160
  disabled: PropTypes.bool,
160
161
 
@@ -346,6 +347,7 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes
346
347
 
347
348
  /**
348
349
  * Make picker read only.
350
+ * @default false
349
351
  */
350
352
  readOnly: PropTypes.bool,
351
353
 
@@ -209,6 +209,7 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes
209
209
 
210
210
  /**
211
211
  * If `true`, the picker and text field are disabled.
212
+ * @default false
212
213
  */
213
214
  disabled: PropTypes.bool,
214
215
 
@@ -399,6 +400,7 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes
399
400
 
400
401
  /**
401
402
  * Make picker read only.
403
+ * @default false
402
404
  */
403
405
  readOnly: PropTypes.bool,
404
406
 
@@ -228,7 +228,7 @@ process.env.NODE_ENV !== "production" ? DateRangePickerDay.propTypes
228
228
  /**
229
229
  * The system prop that allows defining system overrides as well as additional CSS styles.
230
230
  */
231
- sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
231
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object])), PropTypes.func, PropTypes.object])
232
232
  } : void 0;
233
233
  /**
234
234
  *
@@ -172,6 +172,7 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes
172
172
 
173
173
  /**
174
174
  * If `true`, the picker and text field are disabled.
175
+ * @default false
175
176
  */
176
177
  disabled: PropTypes.bool,
177
178
 
@@ -415,6 +416,7 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes
415
416
 
416
417
  /**
417
418
  * Make picker read only.
419
+ * @default false
418
420
  */
419
421
  readOnly: PropTypes.bool,
420
422
 
@@ -134,6 +134,7 @@ process.env.NODE_ENV !== "production" ? DesktopDatePicker.propTypes
134
134
 
135
135
  /**
136
136
  * If `true`, the picker and text field are disabled.
137
+ * @default false
137
138
  */
138
139
  disabled: PropTypes.bool,
139
140
 
@@ -319,6 +320,7 @@ process.env.NODE_ENV !== "production" ? DesktopDatePicker.propTypes
319
320
 
320
321
  /**
321
322
  * Make picker read only.
323
+ * @default false
322
324
  */
323
325
  readOnly: PropTypes.bool,
324
326
 
@@ -181,6 +181,7 @@ process.env.NODE_ENV !== "production" ? DesktopDateRangePicker.propTypes
181
181
 
182
182
  /**
183
183
  * If `true`, the picker and text field are disabled.
184
+ * @default false
184
185
  */
185
186
  disabled: PropTypes.bool,
186
187
 
@@ -365,6 +366,7 @@ process.env.NODE_ENV !== "production" ? DesktopDateRangePicker.propTypes
365
366
 
366
367
  /**
367
368
  * Make picker read only.
369
+ * @default false
368
370
  */
369
371
  readOnly: PropTypes.bool,
370
372
 
@@ -149,6 +149,7 @@ process.env.NODE_ENV !== "production" ? DesktopDateTimePicker.propTypes
149
149
 
150
150
  /**
151
151
  * If `true`, the picker and text field are disabled.
152
+ * @default false
152
153
  */
153
154
  disabled: PropTypes.bool,
154
155
 
@@ -386,6 +387,7 @@ process.env.NODE_ENV !== "production" ? DesktopDateTimePicker.propTypes
386
387
 
387
388
  /**
388
389
  * Make picker read only.
390
+ * @default false
389
391
  */
390
392
  readOnly: PropTypes.bool,
391
393
 
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2014 Call-Em-All
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014 Call-Em-All
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -213,6 +213,6 @@ process.env.NODE_ENV !== "production" ? LoadingButton.propTypes
213
213
  /**
214
214
  * The system prop that allows defining system overrides as well as additional CSS styles.
215
215
  */
216
- sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
216
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object])), PropTypes.func, PropTypes.object])
217
217
  } : void 0;
218
218
  export default LoadingButton;
@@ -11,6 +11,9 @@ import * as React from 'react';
11
11
  import { getMasonryUtilityClass } from './masonryClasses';
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
13
  import { jsxs as _jsxs } from "react/jsx-runtime";
14
+ export const parseToNumber = val => {
15
+ return Number(val.replace('px', ''));
16
+ };
14
17
 
15
18
  const useUtilityClasses = ownerState => {
16
19
  const {
@@ -20,44 +23,6 @@ const useUtilityClasses = ownerState => {
20
23
  root: ['root']
21
24
  };
22
25
  return composeClasses(slots, getMasonryUtilityClass, classes);
23
- }; // compute base for responsive values; e.g.,
24
- // [1,2,3] => {xs: true, sm: true, md: true}
25
- // {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}
26
-
27
-
28
- const computeBreakpointsBase = (breakpoints, prop) => {
29
- const base = {};
30
-
31
- if (Array.isArray(prop)) {
32
- Object.keys(breakpoints.values).forEach((breakpoint, i, arr) => {
33
- if (i < arr.length) {
34
- base[breakpoint] = true;
35
- }
36
- });
37
- } else {
38
- Object.keys(breakpoints.values).forEach(breakpoint => {
39
- if (prop[breakpoint] != null) {
40
- base[breakpoint] = true;
41
- }
42
- });
43
- }
44
-
45
- return base;
46
- }; // if prop is an array, convert to object; e.g.,
47
- // (base: {xs: true, sm: true, md: true}, prop: [1,2,3]) => {xs: 1, sm: 2, md: 3}
48
-
49
-
50
- const validatePropValues = (base, prop) => {
51
- const values = {};
52
-
53
- if (Array.isArray(prop)) {
54
- Object.keys(base).forEach((breakpoint, i) => {
55
- values[breakpoint] = prop[i];
56
- });
57
- return values;
58
- }
59
-
60
- return prop;
61
26
  };
62
27
 
63
28
  export const getStyle = ({
@@ -95,10 +60,9 @@ export const getStyle = ({
95
60
  return _extends({}, styles, stylesSSR);
96
61
  }
97
62
 
98
- const spacingBreakpointsBase = computeBreakpointsBase(theme.breakpoints, ownerState.spacing);
99
63
  const spacingValues = resolveBreakpointValues({
100
- values: validatePropValues(spacingBreakpointsBase, ownerState.spacing),
101
- base: spacingBreakpointsBase
64
+ values: ownerState.spacing,
65
+ breakpoints: theme.breakpoints.values
102
66
  });
103
67
  const transformer = createUnarySpacing(theme);
104
68
 
@@ -118,10 +82,9 @@ export const getStyle = ({
118
82
  styles = deepmerge(styles, handleBreakpoints({
119
83
  theme
120
84
  }, spacingValues, spacingStyleFromPropValue));
121
- const columnBreakpointsBase = computeBreakpointsBase(theme.breakpoints, ownerState.columns);
122
85
  const columnValues = resolveBreakpointValues({
123
- values: validatePropValues(columnBreakpointsBase, ownerState.columns),
124
- base: columnBreakpointsBase
86
+ values: ownerState.columns,
87
+ breakpoints: theme.breakpoints.values
125
88
  });
126
89
 
127
90
  const columnStyleFromPropValue = propValue => {
@@ -208,8 +171,8 @@ const Masonry = /*#__PURE__*/React.forwardRef(function Masonry(inProps, ref) {
208
171
  const parentWidth = masonryRef.current.clientWidth;
209
172
  const childWidth = masonryRef.current.firstChild.clientWidth;
210
173
  const firstChildComputedStyle = window.getComputedStyle(masonryRef.current.firstChild);
211
- const firstChildMarginLeft = Number(firstChildComputedStyle.marginLeft.replace('px', ''));
212
- const firstChildMarginRight = Number(firstChildComputedStyle.marginRight.replace('px', ''));
174
+ const firstChildMarginLeft = parseToNumber(firstChildComputedStyle.marginLeft);
175
+ const firstChildMarginRight = parseToNumber(firstChildComputedStyle.marginRight);
213
176
 
214
177
  if (parentWidth === 0 || childWidth === 0) {
215
178
  return;
@@ -224,10 +187,10 @@ const Masonry = /*#__PURE__*/React.forwardRef(function Masonry(inProps, ref) {
224
187
  }
225
188
 
226
189
  const childComputedStyle = window.getComputedStyle(child);
227
- const childMarginTop = Number(childComputedStyle.marginTop.replace('px', ''));
228
- const childMarginBottom = Number(childComputedStyle.marginBottom.replace('px', '')); // if any one of children isn't rendered yet, masonry's height shouldn't be computed yet
190
+ const childMarginTop = parseToNumber(childComputedStyle.marginTop);
191
+ const childMarginBottom = parseToNumber(childComputedStyle.marginBottom); // if any one of children isn't rendered yet, masonry's height shouldn't be computed yet
229
192
 
230
- const childHeight = child.clientHeight ? Math.ceil(child.clientHeight) + childMarginTop + childMarginBottom : 0;
193
+ const childHeight = parseToNumber(childComputedStyle.height) ? Math.ceil(parseToNumber(childComputedStyle.height)) + childMarginTop + childMarginBottom : 0;
231
194
 
232
195
  if (childHeight === 0) {
233
196
  skip = true;
@@ -262,7 +225,7 @@ const Masonry = /*#__PURE__*/React.forwardRef(function Masonry(inProps, ref) {
262
225
 
263
226
 
264
227
  if (typeof ResizeObserver === 'undefined') {
265
- return null;
228
+ return undefined;
266
229
  }
267
230
 
268
231
  const resizeObserver = new ResizeObserver(handleResize);
@@ -281,7 +244,7 @@ const Masonry = /*#__PURE__*/React.forwardRef(function Masonry(inProps, ref) {
281
244
  return () => {
282
245
  resizeObserver.disconnect();
283
246
  };
284
- }, [columns, spacing]);
247
+ }, [columns, spacing, children]);
285
248
  const handleRef = useForkRef(ref, masonryRef);
286
249
  const lineBreakStyle = {
287
250
  flexBasis: '100%',
@@ -367,6 +330,6 @@ process.env.NODE_ENV !== "production" ? Masonry.propTypes
367
330
  /**
368
331
  * Allows defining system overrides as well as additional CSS styles.
369
332
  */
370
- sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
333
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object])), PropTypes.func, PropTypes.object])
371
334
  } : void 0;
372
335
  export default Masonry;
@@ -152,6 +152,7 @@ process.env.NODE_ENV !== "production" ? MobileDatePicker.propTypes
152
152
 
153
153
  /**
154
154
  * If `true`, the picker and text field are disabled.
155
+ * @default false
155
156
  */
156
157
  disabled: PropTypes.bool,
157
158
 
@@ -333,6 +334,7 @@ process.env.NODE_ENV !== "production" ? MobileDatePicker.propTypes
333
334
 
334
335
  /**
335
336
  * Make picker read only.
337
+ * @default false
336
338
  */
337
339
  readOnly: PropTypes.bool,
338
340
 
@@ -200,6 +200,7 @@ process.env.NODE_ENV !== "production" ? MobileDateRangePicker.propTypes
200
200
 
201
201
  /**
202
202
  * If `true`, the picker and text field are disabled.
203
+ * @default false
203
204
  */
204
205
  disabled: PropTypes.bool,
205
206
 
@@ -380,6 +381,7 @@ process.env.NODE_ENV !== "production" ? MobileDateRangePicker.propTypes
380
381
 
381
382
  /**
382
383
  * Make picker read only.
384
+ * @default false
383
385
  */
384
386
  readOnly: PropTypes.bool,
385
387
 
@@ -169,6 +169,7 @@ process.env.NODE_ENV !== "production" ? MobileDateTimePicker.propTypes
169
169
 
170
170
  /**
171
171
  * If `true`, the picker and text field are disabled.
172
+ * @default false
172
173
  */
173
174
  disabled: PropTypes.bool,
174
175
 
@@ -402,6 +403,7 @@ process.env.NODE_ENV !== "production" ? MobileDateTimePicker.propTypes
402
403
 
403
404
  /**
404
405
  * Make picker read only.
406
+ * @default false
405
407
  */
406
408
  readOnly: PropTypes.bool,
407
409
 
@@ -16,6 +16,8 @@ export interface MonthPickerProps<TDate> {
16
16
  };
17
17
  /** Date value for the MonthPicker */
18
18
  date: TDate | null;
19
+ /** If `true` picker is disabled */
20
+ disabled?: boolean;
19
21
  /** If `true` past days are disabled. */
20
22
  disablePast?: boolean | null;
21
23
  /** If `true` future days are disabled. */
@@ -27,6 +29,8 @@ export interface MonthPickerProps<TDate> {
27
29
  /** Callback fired on date change. */
28
30
  onChange: PickerOnChangeFn<TDate>;
29
31
  onMonthChange?: (date: TDate) => void | Promise<void>;
32
+ /** If `true` picker is readonly */
33
+ readOnly?: boolean;
30
34
  /**
31
35
  * The system prop that allows defining system overrides as well as additional CSS styles.
32
36
  */