@mui/lab 5.0.0-alpha.128 → 5.0.0-alpha.130

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 (119) hide show
  1. package/Alert/Alert.js +4 -4
  2. package/AlertTitle/AlertTitle.js +4 -4
  3. package/Autocomplete/Autocomplete.js +4 -4
  4. package/AvatarGroup/AvatarGroup.js +4 -4
  5. package/CHANGELOG.md +244 -0
  6. package/LoadingButton/LoadingButton.js +74 -62
  7. package/Masonry/Masonry.js +34 -29
  8. package/Pagination/Pagination.js +4 -4
  9. package/PaginationItem/PaginationItem.js +4 -4
  10. package/Rating/Rating.js +4 -4
  11. package/Skeleton/Skeleton.js +4 -4
  12. package/SpeedDial/SpeedDial.js +4 -4
  13. package/SpeedDialAction/SpeedDialAction.js +4 -4
  14. package/SpeedDialIcon/SpeedDialIcon.js +4 -4
  15. package/TabList/TabList.js +6 -8
  16. package/TabPanel/TabPanel.js +12 -13
  17. package/Timeline/Timeline.js +14 -12
  18. package/TimelineConnector/TimelineConnector.js +7 -9
  19. package/TimelineContent/TimelineContent.js +15 -15
  20. package/TimelineDot/TimelineDot.js +38 -31
  21. package/TimelineItem/TimelineItem.js +33 -31
  22. package/TimelineOppositeContent/TimelineOppositeContent.js +15 -15
  23. package/TimelineSeparator/TimelineSeparator.js +7 -9
  24. package/ToggleButton/ToggleButton.js +4 -4
  25. package/ToggleButtonGroup/ToggleButtonGroup.js +4 -4
  26. package/TreeItem/TreeItem.js +37 -37
  27. package/TreeItem/TreeItemContent.js +15 -18
  28. package/TreeView/TreeView.js +35 -33
  29. package/TreeView/descendants.js +13 -14
  30. package/index.js +1 -1
  31. package/legacy/Alert/Alert.js +4 -2
  32. package/legacy/AlertTitle/AlertTitle.js +4 -2
  33. package/legacy/Autocomplete/Autocomplete.js +4 -2
  34. package/legacy/AvatarGroup/AvatarGroup.js +4 -2
  35. package/legacy/LoadingButton/LoadingButton.js +16 -15
  36. package/legacy/Masonry/Masonry.js +10 -8
  37. package/legacy/Pagination/Pagination.js +4 -2
  38. package/legacy/PaginationItem/PaginationItem.js +4 -2
  39. package/legacy/Rating/Rating.js +4 -2
  40. package/legacy/Skeleton/Skeleton.js +4 -2
  41. package/legacy/SpeedDial/SpeedDial.js +4 -2
  42. package/legacy/SpeedDialAction/SpeedDialAction.js +4 -2
  43. package/legacy/SpeedDialIcon/SpeedDialIcon.js +4 -2
  44. package/legacy/TabList/TabList.js +4 -2
  45. package/legacy/TabPanel/TabPanel.js +6 -4
  46. package/legacy/Timeline/Timeline.js +8 -3
  47. package/legacy/TimelineConnector/TimelineConnector.js +4 -2
  48. package/legacy/TimelineContent/TimelineContent.js +6 -4
  49. package/legacy/TimelineDot/TimelineDot.js +10 -8
  50. package/legacy/TimelineItem/TimelineItem.js +7 -6
  51. package/legacy/TimelineOppositeContent/TimelineOppositeContent.js +6 -4
  52. package/legacy/TimelineSeparator/TimelineSeparator.js +4 -2
  53. package/legacy/ToggleButton/ToggleButton.js +4 -2
  54. package/legacy/ToggleButtonGroup/ToggleButtonGroup.js +4 -2
  55. package/legacy/TreeItem/TreeItem.js +9 -8
  56. package/legacy/TreeItem/TreeItemContent.js +5 -3
  57. package/legacy/TreeView/TreeView.js +8 -6
  58. package/legacy/TreeView/descendants.js +6 -4
  59. package/legacy/index.js +1 -1
  60. package/modern/Alert/Alert.js +4 -4
  61. package/modern/AlertTitle/AlertTitle.js +4 -4
  62. package/modern/Autocomplete/Autocomplete.js +4 -4
  63. package/modern/AvatarGroup/AvatarGroup.js +4 -4
  64. package/modern/LoadingButton/LoadingButton.js +74 -62
  65. package/modern/Masonry/Masonry.js +34 -29
  66. package/modern/Pagination/Pagination.js +4 -4
  67. package/modern/PaginationItem/PaginationItem.js +4 -4
  68. package/modern/Rating/Rating.js +4 -4
  69. package/modern/Skeleton/Skeleton.js +4 -4
  70. package/modern/SpeedDial/SpeedDial.js +4 -4
  71. package/modern/SpeedDialAction/SpeedDialAction.js +4 -4
  72. package/modern/SpeedDialIcon/SpeedDialIcon.js +4 -4
  73. package/modern/TabList/TabList.js +6 -8
  74. package/modern/TabPanel/TabPanel.js +12 -13
  75. package/modern/Timeline/Timeline.js +14 -12
  76. package/modern/TimelineConnector/TimelineConnector.js +7 -9
  77. package/modern/TimelineContent/TimelineContent.js +15 -15
  78. package/modern/TimelineDot/TimelineDot.js +38 -31
  79. package/modern/TimelineItem/TimelineItem.js +33 -31
  80. package/modern/TimelineOppositeContent/TimelineOppositeContent.js +15 -15
  81. package/modern/TimelineSeparator/TimelineSeparator.js +7 -9
  82. package/modern/ToggleButton/ToggleButton.js +4 -4
  83. package/modern/ToggleButtonGroup/ToggleButtonGroup.js +4 -4
  84. package/modern/TreeItem/TreeItem.js +37 -37
  85. package/modern/TreeItem/TreeItemContent.js +15 -18
  86. package/modern/TreeView/TreeView.js +35 -33
  87. package/modern/TreeView/descendants.js +13 -14
  88. package/modern/index.js +1 -1
  89. package/node/Alert/Alert.js +4 -4
  90. package/node/AlertTitle/AlertTitle.js +4 -4
  91. package/node/Autocomplete/Autocomplete.js +4 -4
  92. package/node/AvatarGroup/AvatarGroup.js +4 -4
  93. package/node/LoadingButton/LoadingButton.js +74 -62
  94. package/node/Masonry/Masonry.js +34 -29
  95. package/node/Pagination/Pagination.js +4 -4
  96. package/node/PaginationItem/PaginationItem.js +4 -4
  97. package/node/Rating/Rating.js +4 -4
  98. package/node/Skeleton/Skeleton.js +4 -4
  99. package/node/SpeedDial/SpeedDial.js +4 -4
  100. package/node/SpeedDialAction/SpeedDialAction.js +4 -4
  101. package/node/SpeedDialIcon/SpeedDialIcon.js +4 -4
  102. package/node/TabContext/TabContext.js +1 -2
  103. package/node/TabList/TabList.js +6 -8
  104. package/node/TabPanel/TabPanel.js +12 -13
  105. package/node/Timeline/Timeline.js +13 -12
  106. package/node/TimelineConnector/TimelineConnector.js +7 -9
  107. package/node/TimelineContent/TimelineContent.js +15 -15
  108. package/node/TimelineDot/TimelineDot.js +38 -31
  109. package/node/TimelineItem/TimelineItem.js +33 -31
  110. package/node/TimelineOppositeContent/TimelineOppositeContent.js +15 -15
  111. package/node/TimelineSeparator/TimelineSeparator.js +7 -9
  112. package/node/ToggleButton/ToggleButton.js +4 -4
  113. package/node/ToggleButtonGroup/ToggleButtonGroup.js +4 -4
  114. package/node/TreeItem/TreeItem.js +37 -37
  115. package/node/TreeItem/TreeItemContent.js +16 -20
  116. package/node/TreeView/TreeView.js +35 -33
  117. package/node/TreeView/descendants.js +13 -14
  118. package/node/index.js +1 -1
  119. package/package.json +4 -4
package/Alert/Alert.js CHANGED
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
1
  import * as React from 'react';
3
2
  import Alert from '@mui/material/Alert';
4
3
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -12,7 +11,8 @@ export default /*#__PURE__*/React.forwardRef(function DeprecatedAlert(props, ref
12
11
  console.warn(['MUI: The Alert component was moved from the lab to the core.', '', "You should use `import { Alert } from '@mui/material'`", "or `import Alert from '@mui/material/Alert'`"].join('\n'));
13
12
  warnedOnce = true;
14
13
  }
15
- return /*#__PURE__*/_jsx(Alert, _extends({
16
- ref: ref
17
- }, props));
14
+ return /*#__PURE__*/_jsx(Alert, {
15
+ ref: ref,
16
+ ...props
17
+ });
18
18
  });
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
1
  import * as React from 'react';
3
2
  import AlertTitle from '@mui/material/AlertTitle';
4
3
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -12,7 +11,8 @@ export default /*#__PURE__*/React.forwardRef(function DeprecatedAlertTitle(props
12
11
  console.warn(['MUI: The AlertTitle component was moved from the lab to the core.', '', "You should use `import { AlertTitle } from '@mui/material'`", "or `import AlertTitle from '@mui/material/AlertTitle'`"].join('\n'));
13
12
  warnedOnce = true;
14
13
  }
15
- return /*#__PURE__*/_jsx(AlertTitle, _extends({
16
- ref: ref
17
- }, props));
14
+ return /*#__PURE__*/_jsx(AlertTitle, {
15
+ ref: ref,
16
+ ...props
17
+ });
18
18
  });
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
1
  import * as React from 'react';
3
2
  import Autocomplete from '@mui/material/Autocomplete';
4
3
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -12,7 +11,8 @@ export default /*#__PURE__*/React.forwardRef(function DeprecatedAutocomplete(pro
12
11
  console.warn(['MUI: The Autocomplete component was moved from the lab to the core.', '', "You should use `import { Autocomplete } from '@mui/material'`", "or `import Autocomplete from '@mui/material/Autocomplete'`"].join('\n'));
13
12
  warnedOnce = true;
14
13
  }
15
- return /*#__PURE__*/_jsx(Autocomplete, _extends({
16
- ref: ref
17
- }, props));
14
+ return /*#__PURE__*/_jsx(Autocomplete, {
15
+ ref: ref,
16
+ ...props
17
+ });
18
18
  });
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
1
  import * as React from 'react';
3
2
  import AvatarGroup from '@mui/material/AvatarGroup';
4
3
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -12,7 +11,8 @@ export default /*#__PURE__*/React.forwardRef(function DeprecatedAvatarGroup(prop
12
11
  console.warn(['MUI: The AvatarGroup component was moved from the lab to the core.', '', "You should use `import { AvatarGroup } from '@mui/material'`", "or `import AvatarGroup from '@mui/material/AvatarGroup'`"].join('\n'));
13
12
  warnedOnce = true;
14
13
  }
15
- return /*#__PURE__*/_jsx(AvatarGroup, _extends({
16
- ref: ref
17
- }, props));
14
+ return /*#__PURE__*/_jsx(AvatarGroup, {
15
+ ref: ref,
16
+ ...props
17
+ });
18
18
  });
package/CHANGELOG.md CHANGED
@@ -1,5 +1,249 @@
1
1
  # [Versions](https://mui.com/versions/)
2
2
 
3
+ ## 5.13.1
4
+
5
+ <!-- generated comparing v5.13.0..master -->
6
+
7
+ _May 16, 2023_
8
+
9
+ A big thanks to the 25 contributors who made this release possible. Here are some highlights ✨:
10
+
11
+ - 🌏 Added Central Myanmar (my-MY), Malay (ms-MS), Nepali (ne-NP), Tagalog (tl-TL) locales (#37017) @cccEric
12
+ - 🐛 bug fixes and 📚 documentation improvements.
13
+
14
+ ### `@mui/material@5.13.1`
15
+
16
+ - [Autocomplete] Allow tooltip text selection (#36503) @safeamiiir
17
+ - [Dialog] Fixed broken dialog when using maxWidth="xs" and custom breakpoint unit (#37237) @jguddas
18
+ - [l10n] Add Central Myanmar (my-MY), Malay (ms-MS), Nepali (ne-NP), Tagalog (tl-TL) locales (#37017) @cccEric
19
+
20
+ ### `@mui/utils@5.13.1`
21
+
22
+ - [utils] Fix downstream bundlers remove React 17 useId compatibility (#37183) @nickiaconis
23
+
24
+ ### `@mui/base@5.0.0-beta.1`
25
+
26
+ - [Select][base] Keep focus on the trigger element when listbox is open (#37244) @michaldudak
27
+
28
+ ### `@mui/joy@5.0.0-alpha.80`
29
+
30
+ - [Autocomplete] Fixed scroll into view (#37217) @sai6855
31
+ - [AutocompleteOption][Avatar] js test replaced with ts test (#37088) @PunitSoniME
32
+ - [Breadcrumbs] Replace js-tests with ts-tests (#37107) @mauwaz
33
+ - [RadioGroup] Turn JS test to TS test (#37138) @uuxxx
34
+ - [SvgIcon] Turn JS test to TS test (#37151) @nicolas-ot
35
+ - [Tooltip] Turn JS test to TS test (#37149) @nicolas-ot
36
+ - [Typography] Convert Typography test to TypeScript (#37165) @DerTimonius
37
+ - [Sheet][Slider][Stack][Switch] Replace js-tests with ts-tests (#37139) @mauwaz
38
+ - Miscellaneous fixes (#37274) @siriwatknp
39
+
40
+ ### Docs
41
+
42
+ - [docs] Remove upload button (#36844) @Bastian
43
+ - [docs] Update link to overriding component structure guide (#36870) @hbjORbj
44
+ - [docs] Fix Material Design templates (#37187) @oliviertassinari
45
+ - [docs] Fix link to Joy UI GitHub issues @oliviertassinari
46
+ - [docs] Show default value for `filterOptions` prop in Autocomplete's API docs (#37230) @ZeeshanTamboli
47
+ - [docs] Add summary and improve `test_static` CI doc in CONTRIBUTING readme file (#36711) @kriskw1999
48
+ - [docs] Update theme customization typescript (#35551) @siriwatknp
49
+ - [docs] Add Joy Frames X web blocks template (#37203) @siriwatknp
50
+ - [docs] Change Base UI `alpha` to `beta` in README (#37228) @ZeeshanTamboli
51
+ - [docs] Improve Base UI overview page (#37227) @mnajdova
52
+ - [docs] Update Joy + Material guide (#36911) @cherniavskii
53
+
54
+ ### Core
55
+
56
+ - [core] Remove `toEqualDateTime` chai matcher (#37073) @flaviendelangle
57
+ - [core] Check dependency cycles inside packages directory only (#37223) @michaldudak
58
+ - [core] Remove outdated babel proposal plugins (#36795) @kkocdko
59
+ - [website] Add Diego to About Us page (#37284) @DiegoAndai
60
+ - [website] Add Victor teamMember card to 'About' (#37283) @zanivan
61
+ - [website] Add Rich to the 'About' page (#37221) @richbustos
62
+
63
+ All contributors of this release in alphabetical order: @Bastian, @binh1298, @cccEric, @cherniavskii, @DerTimonius, @DiegoAndai, @flaviendelangle, @hbjORbj, @jguddas, @kkocdko, @kriskw1999, @mauwaz, @michaldudak, @mnajdova, @nickiaconis, @nicolas-ot, @oliviertassinari, @PunitSoniME, @richbustos, @safeamiiir, @sai6855, @siriwatknp, @uuxxx, @zanivan, @ZeeshanTamboli
64
+
65
+ ## 5.13.0
66
+
67
+ <!-- generated comparing v5.12.3..master -->
68
+
69
+ _May 10, 2023_
70
+
71
+ A big thanks to the 18 contributors who made this release possible. Here are some highlights ✨:
72
+
73
+ - 🚀 Base UI is now in beta - all planned breaking changes are now complete!
74
+ - 🗺 We have a new [project roadmap](https://github.com/orgs/mui/projects/18/views/1) on GitHub where you can learn about what's coming next.
75
+ - 🐛 Various bug fixes, 📚 documentation and 🧪 testing improvements
76
+
77
+ ### `@mui/material@5.13.0`
78
+
79
+ - [Autocomplete] Support `ChipComponent` type (#37112) @sai6855
80
+ - [AppBar] Fix component type (#37172) @sai6855
81
+ - [Select] Simplify handleChange in SelectInput (#37040) @ulrichstark
82
+
83
+ ### `@mui/joy@5.0.0-alpha.79`
84
+
85
+ - [Input][joy] Improve alignment on date fields (#37146) @wewakekumar
86
+ - [Alery][joy] Turn JS test to TS test (#37077) @hbjORbj
87
+ - [AspectRatio][joy] js test replaced with ts test (#37087) @PunitSoniME
88
+ - [Badge][AvatarGroup][joy] js test replaced with ts test (#37089) @PunitSoniME
89
+ - [Box][Card][MenuList][joy] Turn JS test to TS test (#37126) @uuxxx
90
+ - [List][Menu][joy] Turn JS test to TS test (#37123) @uuxxx
91
+ - [test][Joy] Remove duplicate Avatar test (#37201) @zignis
92
+ - [test][joy] js test cases converted to ts (#37117) @PunitSoniME
93
+ - [Button][joy] Convert Button test to typescript (#37181) @akash191095
94
+ - [CardContent][CardCover][CardOverflow][Chip][ChipDelete][joy] js text case converted to ts (#37116) @PunitSoniME
95
+ - [Radio][IconButton][Checkbox][Option][joy] Switch to TypeScript unit test (#37137) @DerTimonius
96
+
97
+ ### `@mui/base@5.0.0-beta.0`
98
+
99
+ - [Select][base] Do not call onChange after initial render (#37141) @michaldudak
100
+ - [Select][base] Rename the `optionStringifier` prop (#37118) @michaldudak
101
+ - [typescript][base] Fix types of components callbacks parameters (#37169) @michaldudak
102
+ - [Select], [TablePagination] Use more descriptive parameter names (#37064) @michaldudak
103
+
104
+ ### Docs
105
+
106
+ - [docs] Stray design tweaks to Base UI demos (#37003) @danilo-leal
107
+ - [docs] Move outdated CSS prefixing docs (#36710) @kriskw1999
108
+ - [docs] Improve "Example projects" page design (#37007) @danilo-leal
109
+ - [docs] Redirect NoSsr, Portal and TextareaAutosize to Base UI API page (#37175) @ZeeshanTamboli
110
+ - [docs] Demonstrate `TextField` customization using theme style overrides (#36805) @ZeeshanTamboli
111
+ - [docs] Tweak the "Edit this page" button icon (#37142) @danilo-leal
112
+ - [docs] Update links to the public roadmap (#36995) @mnajdova
113
+ - [docs] Improve Multiselect demo styling (#37120) @michaldudak
114
+ - [Stack] Fix import description @oliviertassinari
115
+
116
+ ### Core
117
+
118
+ - [blog] Fix images using "MUI Base" instead of "Base UI" (#37044) @danilo-leal
119
+ - [core] Add VSCode extensions recommendations (#37166) @michaldudak
120
+ - [test] `e2e-website` related minor fixes (#37204) @ZeeshanTamboli
121
+ - [website] Update the active positions (#37075) @DanailH
122
+ - [website] Add Romain to the About page (#37124) @romgrk
123
+ - [website] Make Toolpad alpha labels consistent (#37125) @gerdadesign
124
+
125
+ All contributors of this release in alphabetical order: @akash191095, @DanailH, @danilo-leal, @DerTimonius, @gerdadesign, @hbjORbj, @kriskw1999, @michaldudak, @mnajdova, @oliviertassinari, @PunitSoniME, @romgrk, @sai6855, @ulrichstark, @uuxxx, @wewakekumar, @ZeeshanTamboli, @zignis
126
+
127
+ ## 5.12.3
128
+
129
+ <!-- generated comparing v5.12.2..master -->
130
+
131
+ _May 2, 2023_
132
+
133
+ A big thanks to the 18 contributors who made this release possible. Here are some highlights ✨:
134
+
135
+ - all planned breaking changes for Base UI are done. The first beta release should come next week 🎉
136
+ - 🐛 bug fixes and 📚 documentation improvements.
137
+
138
+ ### `@mui/material@5.12.3`
139
+
140
+ - &#8203;<!-- 43 -->[Accordion] Add missing `component` type (#37111) @sai6855
141
+ - &#8203;<!-- 23 -->[ButtonGroup] Should not retain divider color when it is disabled and variant is `text` (#36967) @DavidBoyer11
142
+ - &#8203;<!-- 21 -->[Divider] Fix styles on dividers with text (#35072) @maxdestors
143
+ - &#8203;<!-- 04 -->[TextField] Improve IntelliSense support for props (#36737) @sai6855
144
+ - &#8203;<!-- 03 -->[TextField] Fix running click event on disabled (#36892) @sai6855
145
+
146
+ ### `@mui/joy@5.0.0-alpha.78`
147
+
148
+ - &#8203;<!-- 09 -->[Joy] Miscellaneous fixes and docs improvement (#37026) @siriwatknp
149
+
150
+ ### `@mui/base@5.0.0-alpha.128`
151
+
152
+ #### Breaking changes
153
+
154
+ - The `component` prop is no longer supported because it can be replaced with the slots API. This is how the transformation will look like:
155
+
156
+ ```diff
157
+ <Button
158
+ - component="span"
159
+ + slots={{ root: "span" }}
160
+ />
161
+ ```
162
+
163
+ If using TypeScript, the custom component type should be added as a generic on the `Button` component.
164
+
165
+ ```diff
166
+ -<Button
167
+ +<Button<typeof CustomComponent>
168
+ slots={{ root: CustomComponent }}
169
+ customProp="foo"
170
+ />
171
+ ```
172
+
173
+ There is codemod that you can run in your project to do the transformation:
174
+
175
+ ```sh
176
+ npx @mui/codemod v5.0.0/base-remove-component-prop <path>
177
+ ```
178
+
179
+ The full documentation about the codemod can be found [here](https://github.com/mui/material-ui/blob/master/packages/mui-codemod/README.md#base-remove-component-prop).
180
+
181
+ This is the list of PR related to this change:
182
+
183
+ - &#8203;<!-- 40 -->[Button][base] Drop `component` prop (#36677) @mnajdova
184
+ - &#8203;<!-- 42 -->[Badge][base] Drop `component` prop (#37028) @hbjORbj
185
+ - &#8203;<!-- 37 -->[FormControl][base] Drop component prop (#37031) @hbjORbj
186
+ - &#8203;<!-- 35 -->[Input][base] Drop component prop (#37057) @hbjORbj
187
+ - &#8203;<!-- 34 -->[Menu][base] Drop component prop (#37033) @hbjORbj
188
+ - &#8203;<!-- 33 -->[MenuItem][base] Drop component prop (#37032) @hbjORbj
189
+ - &#8203;<!-- 32 -->[Modal][base] Drop component prop (#37058) @hbjORbj
190
+ - &#8203;<!-- 31 -->[Option][base] Drop component prop (#37052) @hbjORbj
191
+ - &#8203;<!-- 30 -->[OptionGroup][base] Drop component prop (#37055) @hbjORbj
192
+ - &#8203;<!-- 31 -->[Popper][base] Drop component prop (#37084) @hbjORbj
193
+ - &#8203;<!-- 29 -->[Select][base] Drop component prop (#37035) @hbjORbj
194
+ - &#8203;<!-- 28 -->[Slider][base] Drop component prop (#37056) @hbjORbj
195
+ - &#8203;<!-- 27 -->[Snackbar][base] Drop component prop (#37041) @nicolas-ot
196
+ - &#8203;<!-- 26 -->[Switch][base] Drop component prop (#37053) @hbjORbj
197
+ - &#8203;<!-- 25 -->[Tab][base] Drop component prop (#36768) @sai6855
198
+ - &#8203;<!-- 24 -->[Tabs][base] Drop component prop (#36770) @sai6855
199
+ - &#8203;<!-- 08 -->[TablePagination][base] Drop component prop (#37059) @sai6855
200
+ - &#8203;<!-- 07 -->[TabPanel][base] Drop component prop (#37054) @sai6855
201
+ - &#8203;<!-- 06 -->[TabsList][base] Drop component prop (#37042) @sai6855
202
+
203
+ - &#8203;<!-- 41 -->[base] Improve API consistency (#36970) @michaldudak
204
+
205
+ Brought consistency to Base UI components and hooks' parameters and return values:
206
+
207
+ 1. Whenever a hook needs a ref, it's now called `<slot_name>Ref`, which matches the `get<slot_name>Props` in the return value.
208
+ 2. All hooks that accept external refs now return merged refs, making combining multiple hooks on one element easier. This was proven necessary in several compound components (like menuItem being both a button and a list item). The type of this value is `React.RefCallback` as using the more general `React.Ref` caused variance issues.
209
+ 3. Type of accepted refs is standardized to `React.Ref<Element>`
210
+ 4. Naming and typing of the forwarded ref in unstyled components were standardized - it's forwardedRef: React.ForwardedRef<Element> (unless a more specific type is needed).
211
+ 5. The shape of the definition of unstyled components was standardized - it's React.forwardRef(function Component(props: Props, forwardedRef: React.Ref<Element>) { ... });. Specifically, the generic parameters of forwardRef were removed as they are specified in function arguments.
212
+
213
+ #### Changes
214
+
215
+ - &#8203;<!-- 36 -->[FormControl][base] Do not use optional fields in useFormControlContext's return value (#37037) @michaldudak
216
+
217
+ ### Docs
218
+
219
+ - &#8203;<!-- 39 -->[base][docs] Add Base UI Quickstart Guide (#36717) @mj12albert
220
+ - &#8203;<!-- 20 -->[docs] Fix Material UI's API linking to Base UI (#37121) @mnajdova
221
+ - &#8203;<!-- 19 -->[docs] Fix pagination in the DataGrid demo (#37114) @cherniavskii
222
+ - &#8203;<!-- 18 -->[docs] Add notification to the release of the new Time Picker UI (#37065) @joserodolfofreitas
223
+ - &#8203;<!-- 17 -->[docs] Specify "Material UI" (not "MUI") where appropriate throughout the docs (#37066) @samuelsycamore
224
+ - &#8203;<!-- 16 -->[docs] Use focus-visible instead of focus for Menu demos (#36847) @michaldudak
225
+ - &#8203;<!-- 15 -->[docs] Fix small regressions API pages (#36972) @oliviertassinari
226
+ - &#8203;<!-- 14 -->[docs] Handle a few docs-feedback (#36977) @oliviertassinari
227
+ - &#8203;<!-- 13 -->[docs] Fix anchor link in customization (#37004) @oliviertassinari
228
+ - &#8203;<!-- 12 -->[docs] Add a note about minimal required version for theme merging to the guides (#36973) @jakub-stastny
229
+ - &#8203;<!-- 11 -->[docs] smooth scrolling added for `back to top` (#37011) @PunitSoniME
230
+ - &#8203;<!-- 10 -->[docs] Remove `useFormControl` return values from demos page (#37036) @ZeeshanTamboli
231
+ - &#8203;<!-- 47 --> [docs][base] Move styles to the bottom of demos code for `SwitchUnstyled` (#36720) @varunmulay22
232
+ - &#8203;<!-- 46 --> [docs][base] Move styles to the bottom of demos code for `InputUnstyled` (#36724) @varunmulay22
233
+ - &#8203;<!-- 45 --> [docs][base] Move styles to the bottom of demos code for `SliderUnstyled` (#36721) @varunmulay22
234
+ - &#8203;<!-- 44 --> [docs][base] Move styles to the bottom of demos code for `Snackbar` (#36719) @varunmulay22
235
+ - &#8203;<!-- 38 -->[docs][base] Move styles to the bottom of demos code for `SelectUnstyled` (#36718) @varunmulay22
236
+ - &#8203;<!-- 05 -->[templates] Image not displayed in blog layout of React template. (#36991) @navedqb
237
+ - &#8203;<!-- 02 -->[website] Take the design role offline @oliviertassinari
238
+ - &#8203;<!-- 01 -->[website] Fix URL convention @oliviertassinari
239
+ - &#8203;<!-- 21 -->[docs] Turn off job banner on docs (#36080) @joserodolfofreitas
240
+
241
+ ### Core
242
+
243
+ - &#8203;<!-- 22 -->[core] Allow type alias as well in hooks API docs generation (#37034) @ZeeshanTamboli
244
+
245
+ All contributors of this release in alphabetical order: @cherniavskii, @DavidBoyer11, @hbjORbj, @jakub-stastny, @joserodolfofreitas, @maxdestors, @michaldudak, @mj12albert, @mnajdova, @navedqb, @nicolas-ot, @oliviertassinari, @PunitSoniME, @sai6855, @samuelsycamore, @siriwatknp, @varunmulay22, @ZeeshanTamboli
246
+
3
247
  ## 5.12.2
4
248
 
5
249
  <!-- generated comparing v5.12.1..master -->
@@ -1,6 +1,3 @@
1
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
- import _extends from "@babel/runtime/helpers/esm/extends";
3
- const _excluded = ["children", "disabled", "id", "loading", "loadingIndicator", "loadingPosition", "variant"];
4
1
  import * as React from 'react';
5
2
  import PropTypes from 'prop-types';
6
3
  import { chainPropTypes } from '@mui/utils';
@@ -25,7 +22,11 @@ const useUtilityClasses = ownerState => {
25
22
  loadingIndicator: ['loadingIndicator', loading && `loadingIndicator${capitalize(loadingPosition)}`]
26
23
  };
27
24
  const composedClasses = composeClasses(slots, getLoadingButtonUtilityClass, classes);
28
- return _extends({}, classes, composedClasses);
25
+ return {
26
+ ...classes,
27
+ // forward the outlined, color, etc. classes to Button
28
+ ...composedClasses
29
+ };
29
30
  };
30
31
 
31
32
  // TODO use `import { rootShouldForwardProp } from '../styles/styled';` once move to core
@@ -44,36 +45,39 @@ const LoadingButtonRoot = styled(Button, {
44
45
  })(({
45
46
  ownerState,
46
47
  theme
47
- }) => _extends({
48
+ }) => ({
48
49
  [`& .${loadingButtonClasses.startIconLoadingStart}, & .${loadingButtonClasses.endIconLoadingEnd}`]: {
49
50
  transition: theme.transitions.create(['opacity'], {
50
51
  duration: theme.transitions.duration.short
51
52
  }),
52
53
  opacity: 0
53
- }
54
- }, ownerState.loadingPosition === 'center' && {
55
- transition: theme.transitions.create(['background-color', 'box-shadow', 'border-color'], {
56
- duration: theme.transitions.duration.short
57
- }),
58
- [`&.${loadingButtonClasses.loading}`]: {
59
- color: 'transparent'
60
- }
61
- }, ownerState.loadingPosition === 'start' && ownerState.fullWidth && {
62
- [`& .${loadingButtonClasses.startIconLoadingStart}, & .${loadingButtonClasses.endIconLoadingEnd}`]: {
63
- transition: theme.transitions.create(['opacity'], {
54
+ },
55
+ ...(ownerState.loadingPosition === 'center' && {
56
+ transition: theme.transitions.create(['background-color', 'box-shadow', 'border-color'], {
64
57
  duration: theme.transitions.duration.short
65
58
  }),
66
- opacity: 0,
67
- marginRight: -8
68
- }
69
- }, ownerState.loadingPosition === 'end' && ownerState.fullWidth && {
70
- [`& .${loadingButtonClasses.startIconLoadingStart}, & .${loadingButtonClasses.endIconLoadingEnd}`]: {
71
- transition: theme.transitions.create(['opacity'], {
72
- duration: theme.transitions.duration.short
73
- }),
74
- opacity: 0,
75
- marginLeft: -8
76
- }
59
+ [`&.${loadingButtonClasses.loading}`]: {
60
+ color: 'transparent'
61
+ }
62
+ }),
63
+ ...(ownerState.loadingPosition === 'start' && ownerState.fullWidth && {
64
+ [`& .${loadingButtonClasses.startIconLoadingStart}, & .${loadingButtonClasses.endIconLoadingEnd}`]: {
65
+ transition: theme.transitions.create(['opacity'], {
66
+ duration: theme.transitions.duration.short
67
+ }),
68
+ opacity: 0,
69
+ marginRight: -8
70
+ }
71
+ }),
72
+ ...(ownerState.loadingPosition === 'end' && ownerState.fullWidth && {
73
+ [`& .${loadingButtonClasses.startIconLoadingStart}, & .${loadingButtonClasses.endIconLoadingEnd}`]: {
74
+ transition: theme.transitions.create(['opacity'], {
75
+ duration: theme.transitions.duration.short
76
+ }),
77
+ opacity: 0,
78
+ marginLeft: -8
79
+ }
80
+ })
77
81
  }));
78
82
  const LoadingButtonLoadingIndicator = styled('div', {
79
83
  name: 'MuiLoadingButton',
@@ -87,28 +91,35 @@ const LoadingButtonLoadingIndicator = styled('div', {
87
91
  })(({
88
92
  theme,
89
93
  ownerState
90
- }) => _extends({
94
+ }) => ({
91
95
  position: 'absolute',
92
96
  visibility: 'visible',
93
- display: 'flex'
94
- }, ownerState.loadingPosition === 'start' && (ownerState.variant === 'outlined' || ownerState.variant === 'contained') && {
95
- left: ownerState.size === 'small' ? 10 : 14
96
- }, ownerState.loadingPosition === 'start' && ownerState.variant === 'text' && {
97
- left: 6
98
- }, ownerState.loadingPosition === 'center' && {
99
- left: '50%',
100
- transform: 'translate(-50%)',
101
- color: (theme.vars || theme).palette.action.disabled
102
- }, ownerState.loadingPosition === 'end' && (ownerState.variant === 'outlined' || ownerState.variant === 'contained') && {
103
- right: ownerState.size === 'small' ? 10 : 14
104
- }, ownerState.loadingPosition === 'end' && ownerState.variant === 'text' && {
105
- right: 6
106
- }, ownerState.loadingPosition === 'start' && ownerState.fullWidth && {
107
- position: 'relative',
108
- left: -10
109
- }, ownerState.loadingPosition === 'end' && ownerState.fullWidth && {
110
- position: 'relative',
111
- right: -10
97
+ display: 'flex',
98
+ ...(ownerState.loadingPosition === 'start' && (ownerState.variant === 'outlined' || ownerState.variant === 'contained') && {
99
+ left: ownerState.size === 'small' ? 10 : 14
100
+ }),
101
+ ...(ownerState.loadingPosition === 'start' && ownerState.variant === 'text' && {
102
+ left: 6
103
+ }),
104
+ ...(ownerState.loadingPosition === 'center' && {
105
+ left: '50%',
106
+ transform: 'translate(-50%)',
107
+ color: (theme.vars || theme).palette.action.disabled
108
+ }),
109
+ ...(ownerState.loadingPosition === 'end' && (ownerState.variant === 'outlined' || ownerState.variant === 'contained') && {
110
+ right: ownerState.size === 'small' ? 10 : 14
111
+ }),
112
+ ...(ownerState.loadingPosition === 'end' && ownerState.variant === 'text' && {
113
+ right: 6
114
+ }),
115
+ ...(ownerState.loadingPosition === 'start' && ownerState.fullWidth && {
116
+ position: 'relative',
117
+ left: -10
118
+ }),
119
+ ...(ownerState.loadingPosition === 'end' && ownerState.fullWidth && {
120
+ position: 'relative',
121
+ right: -10
122
+ })
112
123
  }));
113
124
  const LoadingButton = /*#__PURE__*/React.forwardRef(function LoadingButton(inProps, ref) {
114
125
  const props = useThemeProps({
@@ -116,44 +127,45 @@ const LoadingButton = /*#__PURE__*/React.forwardRef(function LoadingButton(inPro
116
127
  name: 'MuiLoadingButton'
117
128
  });
118
129
  const {
119
- children,
120
- disabled = false,
121
- id: idProp,
122
- loading = false,
123
- loadingIndicator: loadingIndicatorProp,
124
- loadingPosition = 'center',
125
- variant = 'text'
126
- } = props,
127
- other = _objectWithoutPropertiesLoose(props, _excluded);
130
+ children,
131
+ disabled = false,
132
+ id: idProp,
133
+ loading = false,
134
+ loadingIndicator: loadingIndicatorProp,
135
+ loadingPosition = 'center',
136
+ variant = 'text',
137
+ ...other
138
+ } = props;
128
139
  const id = useId(idProp);
129
140
  const loadingIndicator = loadingIndicatorProp != null ? loadingIndicatorProp : /*#__PURE__*/_jsx(CircularProgress, {
130
141
  "aria-labelledby": id,
131
142
  color: "inherit",
132
143
  size: 16
133
144
  });
134
- const ownerState = _extends({}, props, {
145
+ const ownerState = {
146
+ ...props,
135
147
  disabled,
136
148
  loading,
137
149
  loadingIndicator,
138
150
  loadingPosition,
139
151
  variant
140
- });
152
+ };
141
153
  const classes = useUtilityClasses(ownerState);
142
154
  const loadingButtonLoadingIndicator = loading ? /*#__PURE__*/_jsx(LoadingButtonLoadingIndicator, {
143
155
  className: classes.loadingIndicator,
144
156
  ownerState: ownerState,
145
157
  children: loadingIndicator
146
158
  }) : null;
147
- return /*#__PURE__*/_jsxs(LoadingButtonRoot, _extends({
159
+ return /*#__PURE__*/_jsxs(LoadingButtonRoot, {
148
160
  disabled: disabled || loading,
149
161
  id: id,
150
- ref: ref
151
- }, other, {
162
+ ref: ref,
163
+ ...other,
152
164
  variant: variant,
153
165
  classes: classes,
154
166
  ownerState: ownerState,
155
167
  children: [ownerState.loadingPosition === 'end' ? children : loadingButtonLoadingIndicator, ownerState.loadingPosition === 'end' ? loadingButtonLoadingIndicator : children]
156
- }));
168
+ });
157
169
  });
158
170
  process.env.NODE_ENV !== "production" ? LoadingButton.propTypes /* remove-proptypes */ = {
159
171
  // ----------------------------- Warning --------------------------------
@@ -1,6 +1,3 @@
1
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
- import _extends from "@babel/runtime/helpers/esm/extends";
3
- const _excluded = ["children", "className", "component", "columns", "spacing", "defaultColumns", "defaultHeight", "defaultSpacing"];
4
1
  import { unstable_composeClasses as composeClasses } from '@mui/base';
5
2
  import * as ReactDOM from 'react-dom';
6
3
  import { styled, useThemeProps } from '@mui/material/styles';
@@ -56,11 +53,16 @@ export const getStyle = ({
56
53
  }
57
54
  stylesSSR.height = ownerState.defaultHeight;
58
55
  stylesSSR.margin = -(defaultSpacing / 2);
59
- stylesSSR['& > *'] = _extends({}, styles['& > *'], orderStyleSSR, {
56
+ stylesSSR['& > *'] = {
57
+ ...styles['& > *'],
58
+ ...orderStyleSSR,
60
59
  margin: defaultSpacing / 2,
61
60
  width: `calc(${(100 / ownerState.defaultColumns).toFixed(2)}% - ${defaultSpacing}px)`
62
- });
63
- return _extends({}, styles, stylesSSR);
61
+ };
62
+ return {
63
+ ...styles,
64
+ ...stylesSSR
65
+ };
64
66
  }
65
67
  const spacingValues = resolveBreakpointValues({
66
68
  values: ownerState.spacing,
@@ -76,14 +78,15 @@ export const getStyle = ({
76
78
  } else {
77
79
  spacing = propValue;
78
80
  }
79
- return _extends({
81
+ return {
80
82
  margin: `calc(0px - (${spacing} / 2))`,
81
83
  '& > *': {
82
84
  margin: `calc(${spacing} / 2)`
83
- }
84
- }, ownerState.maxColumnHeight && {
85
- height: typeof spacing === 'number' ? Math.ceil(ownerState.maxColumnHeight + parseToNumber(spacing)) : `calc(${ownerState.maxColumnHeight}px + ${spacing})`
86
- });
85
+ },
86
+ ...(ownerState.maxColumnHeight && {
87
+ height: typeof spacing === 'number' ? Math.ceil(ownerState.maxColumnHeight + parseToNumber(spacing)) : `calc(${ownerState.maxColumnHeight}px + ${spacing})`
88
+ })
89
+ };
87
90
  };
88
91
  styles = deepmerge(styles, handleBreakpoints({
89
92
  theme
@@ -141,21 +144,22 @@ const Masonry = /*#__PURE__*/React.forwardRef(function Masonry(inProps, ref) {
141
144
  name: 'MuiMasonry'
142
145
  });
143
146
  const {
144
- children,
145
- className,
146
- component = 'div',
147
- columns = 4,
148
- spacing = 1,
149
- defaultColumns,
150
- defaultHeight,
151
- defaultSpacing
152
- } = props,
153
- other = _objectWithoutPropertiesLoose(props, _excluded);
147
+ children,
148
+ className,
149
+ component = 'div',
150
+ columns = 4,
151
+ spacing = 1,
152
+ defaultColumns,
153
+ defaultHeight,
154
+ defaultSpacing,
155
+ ...other
156
+ } = props;
154
157
  const masonryRef = React.useRef();
155
158
  const [maxColumnHeight, setMaxColumnHeight] = React.useState();
156
159
  const isSSR = !maxColumnHeight && defaultHeight && defaultColumns !== undefined && defaultSpacing !== undefined;
157
160
  const [numberOfLineBreaks, setNumberOfLineBreaks] = React.useState(isSSR ? defaultColumns - 1 : 0);
158
- const ownerState = _extends({}, props, {
161
+ const ownerState = {
162
+ ...props,
159
163
  spacing,
160
164
  columns,
161
165
  maxColumnHeight,
@@ -163,7 +167,7 @@ const Masonry = /*#__PURE__*/React.forwardRef(function Masonry(inProps, ref) {
163
167
  defaultHeight,
164
168
  defaultSpacing,
165
169
  isSSR
166
- });
170
+ };
167
171
  const classes = useUtilityClasses(ownerState);
168
172
  const handleResize = masonryChildren => {
169
173
  if (!masonryRef.current || !masonryChildren || masonryChildren.length === 0) {
@@ -241,18 +245,19 @@ const Masonry = /*#__PURE__*/React.forwardRef(function Masonry(inProps, ref) {
241
245
  // a line break at the end of each column prevents columns from merging
242
246
  const lineBreaks = new Array(numberOfLineBreaks).fill('').map((_, index) => /*#__PURE__*/_jsx("span", {
243
247
  "data-class": "line-break",
244
- style: _extends({}, lineBreakStyle, {
248
+ style: {
249
+ ...lineBreakStyle,
245
250
  order: index + 1
246
- })
251
+ }
247
252
  }, index));
248
- return /*#__PURE__*/_jsxs(MasonryRoot, _extends({
253
+ return /*#__PURE__*/_jsxs(MasonryRoot, {
249
254
  as: component,
250
255
  className: clsx(classes.root, className),
251
256
  ref: handleRef,
252
- ownerState: ownerState
253
- }, other, {
257
+ ownerState: ownerState,
258
+ ...other,
254
259
  children: [children, lineBreaks]
255
- }));
260
+ });
256
261
  });
257
262
  process.env.NODE_ENV !== "production" ? Masonry.propTypes /* remove-proptypes */ = {
258
263
  // ----------------------------- Warning --------------------------------
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
1
  import * as React from 'react';
3
2
  import Pagination from '@mui/material/Pagination';
4
3
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -12,7 +11,8 @@ export default /*#__PURE__*/React.forwardRef(function DeprecatedPagination(props
12
11
  console.warn(['MUI: The Pagination component was moved from the lab to the core.', '', "You should use `import { Pagination } from '@mui/material'`", "or `import Pagination from '@mui/material/Pagination'`"].join('\n'));
13
12
  warnedOnce = true;
14
13
  }
15
- return /*#__PURE__*/_jsx(Pagination, _extends({
16
- ref: ref
17
- }, props));
14
+ return /*#__PURE__*/_jsx(Pagination, {
15
+ ref: ref,
16
+ ...props
17
+ });
18
18
  });