@mui/lab 5.0.0-alpha.134 → 5.0.0-alpha.136

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 (54) hide show
  1. package/CHANGELOG.md +245 -10
  2. package/Masonry/Masonry.js +16 -6
  3. package/README.md +2 -2
  4. package/Timeline/Timeline.d.ts +3 -1
  5. package/Timeline/Timeline.js +4 -4
  6. package/Timeline/timelineClasses.d.ts +1 -1
  7. package/Timeline/timelineClasses.js +1 -1
  8. package/TimelineContent/TimelineContent.js +3 -3
  9. package/TimelineContent/timelineContentClasses.d.ts +2 -0
  10. package/TimelineContent/timelineContentClasses.js +1 -1
  11. package/TimelineItem/TimelineItem.d.ts +1 -1
  12. package/TimelineItem/TimelineItem.js +7 -6
  13. package/TimelineItem/timelineItemClasses.d.ts +2 -0
  14. package/TimelineItem/timelineItemClasses.js +1 -1
  15. package/TimelineOppositeContent/TimelineOppositeContent.js +3 -3
  16. package/TimelineOppositeContent/timelineOppositeContentClasses.d.ts +2 -0
  17. package/TimelineOppositeContent/timelineOppositeContentClasses.js +1 -1
  18. package/index.js +1 -1
  19. package/internal/convertTimelinePositionToClass.d.ts +1 -0
  20. package/internal/convertTimelinePositionToClass.js +4 -0
  21. package/legacy/Masonry/Masonry.js +14 -6
  22. package/legacy/Timeline/Timeline.js +4 -4
  23. package/legacy/Timeline/timelineClasses.js +1 -1
  24. package/legacy/TimelineContent/TimelineContent.js +3 -3
  25. package/legacy/TimelineContent/timelineContentClasses.js +1 -1
  26. package/legacy/TimelineItem/TimelineItem.js +13 -14
  27. package/legacy/TimelineItem/timelineItemClasses.js +1 -1
  28. package/legacy/TimelineOppositeContent/TimelineOppositeContent.js +3 -3
  29. package/legacy/TimelineOppositeContent/timelineOppositeContentClasses.js +1 -1
  30. package/legacy/index.js +1 -1
  31. package/legacy/internal/convertTimelinePositionToClass.js +4 -0
  32. package/modern/Masonry/Masonry.js +16 -6
  33. package/modern/Timeline/Timeline.js +4 -4
  34. package/modern/Timeline/timelineClasses.js +1 -1
  35. package/modern/TimelineContent/TimelineContent.js +3 -3
  36. package/modern/TimelineContent/timelineContentClasses.js +1 -1
  37. package/modern/TimelineItem/TimelineItem.js +7 -6
  38. package/modern/TimelineItem/timelineItemClasses.js +1 -1
  39. package/modern/TimelineOppositeContent/TimelineOppositeContent.js +3 -3
  40. package/modern/TimelineOppositeContent/timelineOppositeContentClasses.js +1 -1
  41. package/modern/index.js +1 -1
  42. package/modern/internal/convertTimelinePositionToClass.js +4 -0
  43. package/node/Masonry/Masonry.js +15 -5
  44. package/node/Timeline/Timeline.js +4 -4
  45. package/node/Timeline/timelineClasses.js +1 -1
  46. package/node/TimelineContent/TimelineContent.js +3 -3
  47. package/node/TimelineContent/timelineContentClasses.js +1 -1
  48. package/node/TimelineItem/TimelineItem.js +6 -5
  49. package/node/TimelineItem/timelineItemClasses.js +1 -1
  50. package/node/TimelineOppositeContent/TimelineOppositeContent.js +3 -3
  51. package/node/TimelineOppositeContent/timelineOppositeContentClasses.js +1 -1
  52. package/node/index.js +1 -1
  53. package/node/internal/convertTimelinePositionToClass.js +10 -0
  54. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -1,7 +1,242 @@
1
1
  # [Versions](https://mui.com/versions/)
2
2
 
3
+ ## 5.14.0
4
+
5
+ <!-- generated comparing v5.13.7..master -->
6
+
7
+ _Jul 11, 2023_
8
+
9
+ A big thanks to the 15 contributors who made this release possible. Here are some highlights ✨:
10
+
11
+ - 💫 Material UI, Joy UI, and Base UI are compatible with [NextJS App Router](https://nextjs.org/docs/app) (#37656) @mj12albert
12
+ - 📚 Added new guides for integrating with Next.js 13 App Router (#37656) @mj12albert
13
+ - Ⓜ️ [Material UI guide](https://mui.com/material-ui/guides/next-js-app-router/)
14
+ - 🅙 [Joy UI guide](https://mui.com/joy-ui/guides/next-js-app-router/)
15
+ - 🅱️ [Base UI guide](https://mui.com/base-ui/guides/next-js-app-router/)
16
+ - 🐛 bug fixes, 📚 documentation, and ⚙️ infrastructure improvements.
17
+
18
+ ### `@mui/material@5.14.0`
19
+
20
+ - [Autocomplete] Enable global customization of different options (#36971) @nicolas-ot
21
+
22
+ ### `@mui/material-next@6.0.0-alpha.92`
23
+
24
+ - [Slider][material-next] Slider restructure and style improvements (#37644) @DiegoAndai
25
+
26
+ ### `@mui/joy@5.0.0-alpha.87`
27
+
28
+ - [ButtonGroup] Fix style for single Button (#37692) @MaybePixem
29
+ - Fix theme typography fallback value (#37845) @siriwatknp
30
+
31
+ ### `@mui/icons-material@5.14.0`
32
+
33
+ - [icons-material] Rebuild icons with `"use client"` (#37894) @mj12albert
34
+
35
+ ### Docs
36
+
37
+ - [docs] Polish ukraine banner (#37905) @oliviertassinari
38
+ - [docs] Reduce ukraine banner size (#34795) @oliviertassinari
39
+ - [docs] Add callouts about controlled vs uncontrolled components in Core docs (#37849) @samuelsycamore
40
+ - [docs] Add missing Portal elements to Tailwind CSS interoperability guide (#37807) @enrique-ramirez
41
+ - [docs] Small pickers migration improvement (#37815) @alexfauquette
42
+ - [docs] Fix pickers product name (#37825) @LukasTy
43
+ - [docs][Joy][Link] Set `variant` and `color` defaults for the playground (#37817) @Studio384
44
+ - [docs][Joy][Table] Add `undefined` as an option to `stripe` (#37816) @Studio384
45
+ - [docs][base] Add Tailwind CSS & plain CSS demo on the Snackbar page (#37812) @mnajdova
46
+ - [docs][base] Add Tailwind CSS & plain CSS demo on Badge page (#37768) @mnajdova
47
+ - [docs][base] Fix Nested modal demo positioning (#37506) @gitstart
48
+ - [docs][base] Add Tailwind CSS & plain CSS demo on the Switch page (#37728) @mnajdova
49
+ - [docs-infra] Remove code tags in ToC (#37834) @cherniavskii
50
+ - [docs-infra] Fixes in API pages generation (#37813) @mnajdova
51
+ - [docs-infra] Add test case when using sh (#37818) @oliviertassinari
52
+ - [docs-infra] Use icons instead of words for the code copy button (#37664) @danilo-leal
53
+ - [docs-infra] Fix code parser (#37828) @alexfauquette
54
+ - [docs-infra] Fix `marked` deprecation warning (#37769) @alexfauquette
55
+ - [docs-infra] Allows to use codeblock in the docs (#37643) @alexfauquette
56
+ - [docs-infra][joy] Change Joy UI's playground variant selector (#37821) @danilo-leal
57
+
58
+ ### Core
59
+
60
+ - [core] Prepend "use-client" directive + add docs and examples for using MUI libraries with Next.js App Router (#37656) @mj12albert
61
+ - [core] Fix imports to React (#37863) @oliviertassinari
62
+ - [core] Disambiguate eslint plugin name @oliviertassinari
63
+ - [core] Sync the lint script name with the other repositories @oliviertassinari
64
+ - [core] Point to Crowdin directly @oliviertassinari
65
+ - [website] Sync career page (#37847) @oliviertassinari
66
+
67
+ All contributors of this release in alphabetical order: @alexfauquette, @cherniavskii, @danilo-leal, @DiegoAndai, @enrique-ramirez, @gitstart, @LukasTy, @MaybePixem, @mj12albert, @mnajdova, @nicolas-ot, @oliviertassinari, @samuelsycamore, @siriwatknp, @Studio384
68
+
69
+ ## 5.13.7
70
+
71
+ <!-- generated comparing v5.13.6..master -->
72
+
73
+ _Jul 4, 2023_
74
+
75
+ A big thanks to the 21 contributors who made this release possible.
76
+ This release focuses primarily on 🐛 bug fixes, 📚 documentation, and ⚙️ infrastructure improvements.
77
+
78
+ ### `@mui/material@5.13.7`
79
+
80
+ - [OutlinedInput] Fix form control properties in `ownerState` (#37668) @vonagam
81
+
82
+ ### `@mui/system@5.13.7`
83
+
84
+ - [Stack] Fix spacing when there are `<style>` children (#34966) @cmd-johnson
85
+
86
+ ### `@mui/icons-material@5.13.7`
87
+
88
+ - [icons] Add Microsoft logo (#37717) @zephyrus21
89
+
90
+ ### `@mui/joy@5.0.0-alpha.86`
91
+
92
+ - [Autocomplete][joy] Fix Autocomplete and Modal components to work together (#37515) @saikathalderr
93
+ - [Menu][Joy] Improve UX of `Menu` usage demo (#37797) @sai6855
94
+
95
+ ### `@mui/base@5.0.0-beta.6`
96
+
97
+ - [Slider][base][material][joy] Fix not draggable on the edge when `disableSwap={true}` (#35998) @sai6855
98
+ - [Slider][base] Provide slot state to Slider's thumb slot props callback (#37749) @mnajdova
99
+ - [Tabs] Wrap TabsList context creation in useMemo (#37370) @michaldudak
100
+ - [TextareaAutosize] Fix wrong height measurement (#37185) @bigteech
101
+
102
+ ### `@mui/lab@5.0.0-alpha.135`
103
+
104
+ - [Timeline] Fix position `alternate-reverse` generated classname (#37678) @ZeeshanTamboli
105
+
106
+ ### Docs
107
+
108
+ - [docs][base] Add demo for using the Button as a link (#37317) @AdamSundberg
109
+ - [docs][base] Add Tailwind CSS + plain CSS demo on the Select page (#37725) @mnajdova
110
+ - [docs][base] Make Base UI input demos denser (#37750) @zanivan
111
+ - [docs][base] Make Base UI button demos denser (#37689) @zanivan
112
+ - [docs][base] Add Tailwind CSS & plain CSS demos on the Input page (#37685) @mnajdova
113
+ - [docs][base] Fix horizontal scrolling on the mobile input page (#37688) @zanivan
114
+ - [docs] Improve Base UI index page (#37761) @oliviertassinari
115
+ - [docs] Fix incorrect package URL in README of example material-vite (#37755) @Dlouxgit
116
+ - [docs] Explain how to disable Base Select's portal (#37684) @michaldudak
117
+ - [docs] Shorten overview page URLs (#37660) @oliviertassinari
118
+ - [docs][material] Rename custom tab panel in Tabs demo to prevent confusion with @mui/lab (#37638) @MUK-Dev
119
+ - [docs][tabs] Document how to use routing with Tabs in Base UI (#37369) @michaldudak
120
+ - [docs] Rename product to productId (#37801) @siriwatknp
121
+ - [docs][base] Add Tailwind CSS & plain CSS demo on the Slider page (#37736) @mnajdova
122
+
123
+ ### Core
124
+
125
+ - [docs–infra] Prevent displaying multiple ads (#37696) @oliviertassinari
126
+ - [blog] Fix mismatch between plan and link @oliviertassinari
127
+ - [core] Update yarn lockfile (#37802) @michaldudak
128
+ - [core] Add bundle size Toolpad app link to PRs (#36311) @Janpot
129
+ - [core] Fix priority support prompt action flow (#37726) @DanailH
130
+ - [core] Fix typo in priority support @oliviertassinari
131
+ - [core][docs] add Eslint rule to ensure main demo component match file… (#37278) @alexfauquette
132
+ - [docs-infra] Fix truncated TOCs scrollbar (#37770) @oliviertassinari
133
+ - [docs-infra] Adjust demo container to be glued to the toolbar (#37744) @danilo-leal
134
+ - [docs-infra] Fix layout shift ad (#37694) @oliviertassinari
135
+ - [docs-infra] Improve demos toolbar (#37762) @oliviertassinari
136
+ - [docs-infra] Make the GitHub link in the nav bar open in a new tab (#37766) @gateremark
137
+ - [docs-infra] Allow to persist icons in ToC (#37731) @cherniavskii
138
+ - [docs-infra] Improve product mapping (#37729) @oliviertassinari
139
+ - [docs-infra] Add design polish to the comment and anchor buttons (#37734) @danilo-leal
140
+ - [docs-infra] Tweak editable code blocks callout design (#37681) @danilo-leal
141
+ - [docs-infra] Improve the edit page experience (#37695) @oliviertassinari
142
+ - [docs-infra] Support rendering markdown outside of docs (#37691) @oliviertassinari
143
+ - [docs-infra] Polish demo toolbar button designs (#37680) @danilo-leal
144
+ - [docs-infra] Adjust demo component container design (#37659) @danilo-leal
145
+ - [test] Fix test:e2e local run (#37719) @oliviertassinari
146
+ - [test] Remove failing test in dev @oliviertassinari
147
+ - [website] Add no-op service worker to fix stale cache issue (#37607) @cherniavskii
148
+ - [website] Transition the Core page to be Material UI instead (#37583) @danilo-leal
149
+ - [website] Update the pricing page to reflect sales (#37751) @oliviertassinari
150
+ - [website] Match Copyright with the rest of the website @oliviertassinari
151
+ - [website] Support deep linking to pricing FAQ @oliviertassinari
152
+
153
+ All contributors of this release in alphabetical order: @AdamSundberg, @alexfauquette, @bigteech, @cherniavskii, @cmd-johnson, @DanailH, @danilo-leal, @Dlouxgit, @gateremark, @Janpot, @michaldudak, @mnajdova, @MUK-Dev, @oliviertassinari, @sai6855, @saikathalderr, @siriwatknp, @vonagam, @zanivan, @ZeeshanTamboli, @zephyrus21
154
+
155
+ ## 5.13.6
156
+
157
+ _Jun 21, 2023_
158
+
159
+ A big thanks to the 25 contributors who made this release possible. Here are some highlights ✨:
160
+
161
+ - 💫 Added [Slider](https://mui.com/material-ui/react-slider/#material-you-version) component using the new Material You design language (#37520) @DiegoAndai.
162
+ - 📚 Added [examples](https://github.com/mui/material-ui/tree/master/examples/material-next-app-router-ts) showcasing how you can use Material UI with next.js's app directory (#37315) @smo043
163
+
164
+ ### `@mui/material@5.13.6`
165
+
166
+ - &#8203;<!-- 45 -->[Autocomplete] Fixed autocomplete's existing option selection (#37012) @bencevoros
167
+ - &#8203;<!-- 44 -->[Autocomplete] Add hint demos to Material UI and Joy UI docs (#37496) @sai6855
168
+ - &#8203;<!-- 13 -->[Masonry] Fix ResizeObserver loop limit exceeded error (#37208) @hbjORbj
169
+ - &#8203;<!-- 11 -->[Tooltip][material] Improve warning when Tooltip receives string child (#37530) @DiegoAndai
170
+ - &#8203;<!-- 10 -->[Modal] Add missing members to ModalOwnProps (#37568) @ivp-dev
171
+ - &#8203;<!-- 09 -->[Slider] Arrow keys control does not work with float numbers (#37071) @gitstart
172
+ - &#8203;<!-- 08 -->[SvgIcon] allow `svg` as a child (#37231) @siriwatknp
173
+ - &#8203;<!-- 07 -->[Timeline] Add alternate reverse position (#37311) @abhinavkmrru
174
+ - &#8203;<!-- 06 -->[Tooltip] Fix type of sx prop in `slotProps` (#37550) @SuperKXT
175
+ - &#8203;<!-- 05 -->[TouchRipple] perf: avoid calling `clearTimeout()` (#37512) @romgrk
176
+
177
+ ### `@mui/material-next@6.0.0-alpha.90`
178
+
179
+ - &#8203;<!-- 12 -->[Material You] Add Slider component with Material You design (#37520) @DiegoAndai
180
+
181
+ ### `@mui/joy@5.0.0-alpha.85`
182
+
183
+ - &#8203;<!-- 37 -->[ButtonGroup][joy] Missing border when spacing is more than zero (#37577) @siriwatknp
184
+ - &#8203;<!-- 36 -->[CardActions][joy] Add `CardActions` component (#37441) @siriwatknp
185
+ - &#8203;<!-- 14 -->[Menu][joy] Fix closing of `Menu` in demos (#36917) @sai6855
186
+
187
+ ### `@mui/base@5.0.0-beta.5`
188
+
189
+ - &#8203;<!-- 39 -->[Menu][base] Add the resetHighlight action (#37392) @michaldudak
190
+ - &#8203;<!-- 38 -->[Select][base] Expose the `areOptionsEqual` prop (#37615) @michaldudak
191
+
192
+ ### `@mui/utils@5.13.2`
193
+
194
+ - &#8203;<!-- 04 -->[utils] Allow nested imports in @mui/utils to speed up build (#37586) @flaviendelangle
195
+
196
+ ### Docs
197
+
198
+ - &#8203;<!-- 43 -->[docs][base] Improve Base UI all components images (#37590) @danilo-leal
199
+ - &#8203;<!-- 42 -->[docs][base] Add pages for coming soon components (#37575) @danilo-leal
200
+ - &#8203;<!-- 41 -->[docs][base] Add a Snackbar introduction demo (#37602) @danilo-leal
201
+ - &#8203;<!-- 40 -->[docs][base] Add page for all Base UI components (#37536) @danilo-leal
202
+ - &#8203;<!-- 33 -->[docs] Fix scrollbar on snackbar page (#37657) @oliviertassinari
203
+ - &#8203;<!-- 32 -->[docs] Switch order of snackbar buttons in demos (#37389) @Primajin
204
+ - &#8203;<!-- 31 -->[docs] Add support for Tailwind CSS and plain CSS demos (#37319) @mnajdova
205
+ - &#8203;<!-- 30 -->[docs] Tree view color fix for dark mode in Gmail example (#37051) @PunitSoniME
206
+ - &#8203;<!-- 29 -->[docs] Inline the Base UI demo (#37603) @oliviertassinari
207
+ - &#8203;<!-- 28 -->[docs] Fix typo in themed components page (#37598) @vinayr
208
+ - &#8203;<!-- 27 -->[docs] Fix render inline code in CSS description generation (#37448) @alexfauquette
209
+ - &#8203;<!-- 26 -->[docs] Add styles to styled argument list (#37558) @DiegoAndai
210
+ - &#8203;<!-- 25 -->[docs] Improve awkward wording in READMEs of example projects (#37110) @DIWAKARKASHYAP
211
+ - &#8203;<!-- 24 -->[docs] Fix small base -> base-ui migration issue (#37594) @oliviertassinari
212
+ - &#8203;<!-- 23 -->[docs] Fix GitHub typo (#37578) @oliviertassinari
213
+ - &#8203;<!-- 22 -->[docs] Improve release guide (#37547) @DiegoAndai
214
+ - &#8203;<!-- 21 -->[docs] Review fixes to the Material UI's "Example projects" page (#37444) @danilo-leal
215
+ - &#8203;<!-- 17 -->[docs][joy] Add a messages template (#37546) @sernstberger
216
+ - &#8203;<!-- 16 -->[docs][joy] Add pages for coming soon Joy UI components (#36920) @danilo-leal
217
+ - &#8203;<!-- 15 -->[docs][joy] Add design and consistency tweaks to the Playground (#37580) @danilo-leal
218
+ - &#8203;<!-- 37 -->[docs] Add and revise Base UI + Create React App examples (#36825) @samuelsycamore
219
+ - &#8203;<!-- 20 -->[docs-infra] Fix demos border radius (#37658) @oliviertassinari
220
+ - &#8203;<!-- 19 -->[docs-infra] Add analyticsTags to Algolia (#37600) @Janpot
221
+ - &#8203;<!-- 18 -->[docs-infra] Simplify product id handling (#37593) @oliviertassinari
222
+ - &#8203;<!-- 35 -->[CHANGELOG] Add missing release date for v5.13.5 @oliviertassinari
223
+ - &#8203;<!-- 16 -->[examples] Shell command fix in the readme file of material-next-app-router-ts example (#37675) @bablukpik
224
+ - &#8203;<!-- 15 -->[examples] Next.js v13 app router with Material UI (#37315) @smo043
225
+
226
+ ### Core
227
+
228
+ - &#8203;<!-- 34 -->[core] Update to Node.js v18 for `test-dev` CI (#37604) @ZeeshanTamboli
229
+ - &#8203;<!-- 39 -->[core] Add priority support issue template (#37671) @DanailH
230
+ - &#8203;<!-- 03 -->[website] Update roadmap page (#37587) @cherniavskii
231
+ - &#8203;<!-- 02 -->[website] Add CSP to limit iframes to self @oliviertassinari
232
+ - &#8203;<!-- 01 -->[website] Link mui-x Stack Overflow in footer link (#37509) @richbustos
233
+
234
+ All contributors of this release in alphabetical order: @abhinavkmrru, @alexfauquette, @bencevoros, @cherniavskii, @danilo-leal, @DiegoAndai, @DIWAKARKASHYAP, @flaviendelangle, @gitstart, @hbjORbj, @ivp-dev, @Janpot, @michaldudak, @mnajdova, @oliviertassinari, @Primajin, @PunitSoniME, @richbustos, @romgrk, @sai6855, @sernstberger, @siriwatknp, @SuperKXT, @vinayr, @ZeeshanTamboli
235
+
3
236
  ## 5.13.5
4
237
 
238
+ _Jun 12, 2023_
239
+
5
240
  A big thanks to the 9 contributors who made this release possible. Here are some highlights ✨:
6
241
 
7
242
  - 💫 Added `ButtonGroup` component in Joy UI (#37407) @siriwatknp.
@@ -352,7 +587,7 @@ A big thanks to the 18 contributors who made this release possible. Here are som
352
587
 
353
588
  There is codemod that you can run in your project to do the transformation:
354
589
 
355
- ```sh
590
+ ```bash
356
591
  npx @mui/codemod v5.0.0/base-remove-component-prop <path>
357
592
  ```
358
593
 
@@ -451,7 +686,7 @@ A big thanks to the 12 contributors who made this release possible. Here are som
451
686
 
452
687
  You can use this [codemod](https://github.com/mui/material-ui/blob/master/packages/mui-codemod/src/v5.0.0/base-remove-unstyled-suffix.js) to help with the migration:
453
688
 
454
- ```sh
689
+ ```bash
455
690
  npx @mui/codemod v5.0.0/base-remove-unstyled-suffix <path>
456
691
  ```
457
692
 
@@ -6096,7 +6331,7 @@ A big thanks to the 18 contributors who made this release possible. Here are som
6096
6331
 
6097
6332
  replace `@material-ui/*` prefix with `@mui/*`:
6098
6333
 
6099
- ```sh
6334
+ ```bash
6100
6335
  @material-ui/system -> @mui/system
6101
6336
  @material-ui/styles -> @mui/styles
6102
6337
  @material-ui/lab -> @mui/lab
@@ -6109,7 +6344,7 @@ A big thanks to the 18 contributors who made this release possible. Here are som
6109
6344
 
6110
6345
  except these 3 packages that are renamed.
6111
6346
 
6112
- ```sh
6347
+ ```bash
6113
6348
  @material-ui/core => @mui/material // represents Material Design components.
6114
6349
  @material-ui/icons => @mui/icons-material // represents Material Design icons.
6115
6350
  @material-ui/unstyled => @mui/base // fully functional components with minimum styles.
@@ -9775,7 +10010,7 @@ A big thanks to the 34 contributors who made this release possible. Here are som
9775
10010
 
9776
10011
  While the source code is currently hosted in the [main repository](https://github.com/mui/material-ui), we might move it to the [x repository](https://github.com/mui/mui-x) in the future, depending on what is easier for the commercial date range picker. The date picker will stay open source no matter what.
9777
10012
 
9778
- - 📚 Revamp the documentation for [the system](https://mui.com/system/getting-started/overview/). The System contains CSS utilities. The documentation now promotes the use of the `sx` prop. It's ideal for adding one-off styles, e.g. padding, but when pushed to its limits, it can be used to implement quickly a complete page.
10013
+ - 📚 Revamp the documentation for [the system](https://mui.com/system/getting-started/). The System contains CSS utilities. The documentation now promotes the use of the `sx` prop. It's ideal for adding one-off styles, e.g. padding, but when pushed to its limits, it can be used to implement quickly a complete page.
9779
10014
  - 👩‍🎨 Upgrade emotion to v11 (#23007) @mnajdova.
9780
10015
  - And many more 🐛 bug fixes and 📚 improvements.
9781
10016
 
@@ -10177,7 +10412,7 @@ Here are some highlights ✨:
10177
10412
  If you target IE11, you need to use the new bundle (`legacy`). We are treating IE11 as a second class-citizen, which is a continuation of the direction taken in #22873.
10178
10413
 
10179
10414
  - 🚀 Improve the internal benchmark suite (#22923, #23058) @mnajdova.
10180
- This was a prerequisite step to improve the [system](https://mui.com/system/getting-started/overview/). We needed to be able to measure performance. After #22945, we have measured that the `Box` component is x3 faster in v5-alpha compared to v4.
10415
+ This was a prerequisite step to improve the [system](https://mui.com/system/getting-started/). We needed to be able to measure performance. After #22945, we have measured that the `Box` component is x3 faster in v5-alpha compared to v4.
10181
10416
  - ✏️ A new blog post: [Q3 2020 Update](https://mui.com/blog/2020-q3-update/) (#23055) @oliviertassinari.
10182
10417
  - 🐙 Migrate more tests to react-testing-library @deiga, @Morteza-Jenabzadeh, @nicholas-l.
10183
10418
  - And many more 🐛 bug fixes and 📚 improvements.
@@ -10518,7 +10753,7 @@ Here are some highlights ✨:
10518
10753
 
10519
10754
  The new styling solution saves 2kB gzipped in the bundle compared to JSS, and about 14 kB gzipped if you were already using emotion or styled-components.
10520
10755
 
10521
- Last but not least, the change allows us to take advantage dynamic style props. We will use them for dynamic color props, variant props, and new style props (an improved [system](https://mui.com/system/getting-started/overview/)).
10756
+ Last but not least, the change allows us to take advantage dynamic style props. We will use them for dynamic color props, variant props, and new style props (an improved [system](https://mui.com/system/getting-started/)).
10522
10757
 
10523
10758
  This change has been in our roadmap for more than a year.
10524
10759
  We announced it in the [v4 release blog post](https://mui.com/blog/material-ui-v4-is-out/) as a direction v5 would take.
@@ -10804,13 +11039,13 @@ Here are some highlights ✨:
10804
11039
 
10805
11040
  Before:
10806
11041
 
10807
- ```sh
11042
+ ```bash
10808
11043
  theme.spacing(2) => 16
10809
11044
  ```
10810
11045
 
10811
11046
  After:
10812
11047
 
10813
- ```sh
11048
+ ```bash
10814
11049
  theme.spacing(2) => '16px'
10815
11050
  ```
10816
11051
 
@@ -11771,7 +12006,7 @@ A big thanks to the 33 contributors who made this release possible. Here are som
11771
12006
  />
11772
12007
  ```
11773
12008
 
11774
- - [Typography] Replace the `srOnly` prop so as to not duplicate the capabilities of [System](https://mui.com/system/getting-started/overview/) (#21413) @mnajdova.
12009
+ - [Typography] Replace the `srOnly` prop so as to not duplicate the capabilities of [System](https://mui.com/system/getting-started/) (#21413) @mnajdova.
11775
12010
 
11776
12011
  ```diff
11777
12012
  -import Typography from '@material-ui/core/Typography';
@@ -5,7 +5,7 @@ import { unstable_composeClasses as composeClasses } from '@mui/base';
5
5
  import * as ReactDOM from 'react-dom';
6
6
  import { styled, useThemeProps } from '@mui/material/styles';
7
7
  import { createUnarySpacing, getValue, handleBreakpoints, unstable_resolveBreakpointValues as resolveBreakpointValues } from '@mui/system';
8
- import { deepmerge, unstable_useForkRef as useForkRef } from '@mui/utils';
8
+ import { deepmerge, unstable_useForkRef as useForkRef, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';
9
9
  import clsx from 'clsx';
10
10
  import PropTypes from 'prop-types';
11
11
  import * as React from 'react';
@@ -221,19 +221,29 @@ const Masonry = /*#__PURE__*/React.forwardRef(function Masonry(inProps, ref) {
221
221
  });
222
222
  }
223
223
  };
224
- const observer = React.useRef(typeof ResizeObserver === 'undefined' ? undefined : new ResizeObserver(handleResize));
225
- React.useEffect(() => {
226
- const resizeObserver = observer.current;
224
+ useEnhancedEffect(() => {
227
225
  // IE and old browsers are not supported
228
- if (resizeObserver === undefined) {
226
+ if (typeof ResizeObserver === 'undefined') {
229
227
  return undefined;
230
228
  }
229
+ let animationFrame;
230
+ const resizeObserver = new ResizeObserver(() => {
231
+ // see https://github.com/mui/material-ui/issues/36909
232
+ animationFrame = window.requestAnimationFrame(handleResize);
233
+ });
231
234
  if (masonryRef.current) {
232
235
  masonryRef.current.childNodes.forEach(childNode => {
233
236
  resizeObserver.observe(childNode);
234
237
  });
235
238
  }
236
- return () => resizeObserver ? resizeObserver.disconnect() : {};
239
+ return () => {
240
+ if (animationFrame) {
241
+ window.cancelAnimationFrame(animationFrame);
242
+ }
243
+ if (resizeObserver) {
244
+ resizeObserver.disconnect();
245
+ }
246
+ };
237
247
  }, [columns, spacing, children]);
238
248
  const handleRef = useForkRef(ref, masonryRef);
239
249
 
package/README.md CHANGED
@@ -8,7 +8,7 @@ Install the package in your project directory with:
8
8
 
9
9
  <!-- #default-branch-switch -->
10
10
 
11
- ```sh
11
+ ```bash
12
12
  // with npm
13
13
  npm install @mui/lab
14
14
 
@@ -21,7 +21,7 @@ If you are not already using them in your project, you can install with:
21
21
 
22
22
  <!-- #default-branch-switch -->
23
23
 
24
- ```sh
24
+ ```bash
25
25
  // with npm
26
26
  npm install @mui/material @emotion/react @emotion/styled
27
27
 
@@ -8,7 +8,7 @@ export interface TimelineProps extends StandardProps<React.HTMLAttributes<HTMLUL
8
8
  * The position where the TimelineContent should appear relative to the time axis.
9
9
  * @default 'right'
10
10
  */
11
- position?: 'left' | 'right' | 'alternate';
11
+ position?: 'left' | 'right' | 'alternate' | 'alternate-reverse';
12
12
  /**
13
13
  * The content of the component.
14
14
  */
@@ -25,6 +25,8 @@ export interface TimelineProps extends StandardProps<React.HTMLAttributes<HTMLUL
25
25
  positionRight?: string;
26
26
  /** Styles applied to the root element if `position="alternate"`. */
27
27
  positionAlternate?: string;
28
+ /** Styles applied to the root element if `position="alternate-reverse"`. */
29
+ positionAlternateReverse?: string;
28
30
  };
29
31
  /**
30
32
  * className applied to the root element.
@@ -7,11 +7,11 @@ import clsx from 'clsx';
7
7
 
8
8
  // eslint-disable-next-line no-restricted-imports -- importing types
9
9
 
10
- import { capitalize } from '@mui/material/utils';
11
10
  import { unstable_composeClasses as composeClasses } from '@mui/base';
12
11
  import { styled, useThemeProps } from '@mui/material/styles';
13
12
  import TimelineContext from './TimelineContext';
14
13
  import { getTimelineUtilityClass } from './timelineClasses';
14
+ import convertTimelinePositionToClass from '../internal/convertTimelinePositionToClass';
15
15
  import { jsx as _jsx } from "react/jsx-runtime";
16
16
  const useUtilityClasses = ownerState => {
17
17
  const {
@@ -19,7 +19,7 @@ const useUtilityClasses = ownerState => {
19
19
  classes
20
20
  } = ownerState;
21
21
  const slots = {
22
- root: ['root', position && `position${capitalize(position)}`]
22
+ root: ['root', position && convertTimelinePositionToClass(position)]
23
23
  };
24
24
  return composeClasses(slots, getTimelineUtilityClass, classes);
25
25
  };
@@ -30,7 +30,7 @@ const TimelineRoot = styled('ul', {
30
30
  const {
31
31
  ownerState
32
32
  } = props;
33
- return [styles.root, ownerState.position && styles[`position${capitalize(ownerState.position)}`]];
33
+ return [styles.root, ownerState.position && styles[convertTimelinePositionToClass(ownerState.position)]];
34
34
  }
35
35
  })({
36
36
  display: 'flex',
@@ -98,7 +98,7 @@ process.env.NODE_ENV !== "production" ? Timeline.propTypes /* remove-proptypes *
98
98
  * The position where the TimelineContent should appear relative to the time axis.
99
99
  * @default 'right'
100
100
  */
101
- position: PropTypes.oneOf(['alternate', 'left', 'right']),
101
+ position: PropTypes.oneOf(['alternate-reverse', 'alternate', 'left', 'right']),
102
102
  /**
103
103
  * The system prop that allows defining system overrides as well as additional CSS styles.
104
104
  */
@@ -1,3 +1,3 @@
1
1
  export declare function getTimelineUtilityClass(slot: string): string;
2
- declare const timelineClasses: Record<"root" | "positionLeft" | "positionRight" | "positionAlternate", string>;
2
+ declare const timelineClasses: Record<"root" | "positionLeft" | "positionRight" | "positionAlternate" | "positionAlternateReverse", string>;
3
3
  export default timelineClasses;
@@ -3,5 +3,5 @@ import generateUtilityClasses from '@mui/material/generateUtilityClasses';
3
3
  export function getTimelineUtilityClass(slot) {
4
4
  return generateUtilityClass('MuiTimeline', slot);
5
5
  }
6
- const timelineClasses = generateUtilityClasses('MuiTimeline', ['root', 'positionLeft', 'positionRight', 'positionAlternate']);
6
+ const timelineClasses = generateUtilityClasses('MuiTimeline', ['root', 'positionLeft', 'positionRight', 'positionAlternate', 'positionAlternateReverse']);
7
7
  export default timelineClasses;
@@ -4,12 +4,12 @@ const _excluded = ["className"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
- import { capitalize } from '@mui/material/utils';
8
7
  import { styled, useThemeProps } from '@mui/material/styles';
9
8
  import { unstable_composeClasses as composeClasses } from '@mui/base';
10
9
  import Typography from '@mui/material/Typography';
11
10
  import TimelineContext from '../Timeline/TimelineContext';
12
11
  import { getTimelineContentUtilityClass } from './timelineContentClasses';
12
+ import convertTimelinePositionToClass from '../internal/convertTimelinePositionToClass';
13
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
14
  const useUtilityClasses = ownerState => {
15
15
  const {
@@ -17,7 +17,7 @@ const useUtilityClasses = ownerState => {
17
17
  classes
18
18
  } = ownerState;
19
19
  const slots = {
20
- root: ['root', `position${capitalize(position)}`]
20
+ root: ['root', convertTimelinePositionToClass(position)]
21
21
  };
22
22
  return composeClasses(slots, getTimelineContentUtilityClass, classes);
23
23
  };
@@ -28,7 +28,7 @@ const TimelineContentRoot = styled(Typography, {
28
28
  const {
29
29
  ownerState
30
30
  } = props;
31
- return [styles.root, styles[`position${capitalize(ownerState.position)}`]];
31
+ return [styles.root, styles[convertTimelinePositionToClass(ownerState.position)]];
32
32
  }
33
33
  })(({
34
34
  ownerState
@@ -7,6 +7,8 @@ export interface TimelineContentClasses {
7
7
  positionLeft: string;
8
8
  /** Styles applied to the root element if `position="alternate"`. */
9
9
  positionAlternate: string;
10
+ /** Styles applied to the root element if `position="alternate-reverse"`. */
11
+ positionAlternateReverse: string;
10
12
  }
11
13
  export type TimelineContentClassKey = keyof TimelineContentClasses;
12
14
  export declare function getTimelineContentUtilityClass(slot: string): string;
@@ -3,5 +3,5 @@ import generateUtilityClasses from '@mui/material/generateUtilityClasses';
3
3
  export function getTimelineContentUtilityClass(slot) {
4
4
  return generateUtilityClass('MuiTimelineContent', slot);
5
5
  }
6
- const timelineContentClasses = generateUtilityClasses('MuiTimelineContent', ['root', 'positionLeft', 'positionRight', 'positionAlternate']);
6
+ const timelineContentClasses = generateUtilityClasses('MuiTimelineContent', ['root', 'positionLeft', 'positionRight', 'positionAlternate', 'positionAlternateReverse']);
7
7
  export default timelineContentClasses;
@@ -8,7 +8,7 @@ export interface TimelineItemProps extends StandardProps<React.HTMLAttributes<HT
8
8
  /**
9
9
  * The position where the timeline's item should appear.
10
10
  */
11
- position?: 'left' | 'right';
11
+ position?: 'left' | 'right' | 'alternate' | 'alternate-reverse';
12
12
  /**
13
13
  * The content of the component.
14
14
  */
@@ -4,13 +4,14 @@ const _excluded = ["position", "className"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
- import { capitalize, isMuiElement } from '@mui/material/utils';
7
+ import { isMuiElement } from '@mui/material/utils';
8
8
  import { styled, useThemeProps } from '@mui/material/styles';
9
9
  import { unstable_composeClasses as composeClasses } from '@mui/base';
10
10
  import { timelineContentClasses } from '../TimelineContent';
11
11
  import { timelineOppositeContentClasses } from '../TimelineOppositeContent';
12
12
  import TimelineContext from '../Timeline/TimelineContext';
13
13
  import { getTimelineItemUtilityClass } from './timelineItemClasses';
14
+ import convertTimelinePositionToClass from '../internal/convertTimelinePositionToClass';
14
15
  import { jsx as _jsx } from "react/jsx-runtime";
15
16
  const useUtilityClasses = ownerState => {
16
17
  const {
@@ -19,7 +20,7 @@ const useUtilityClasses = ownerState => {
19
20
  hasOppositeContent
20
21
  } = ownerState;
21
22
  const slots = {
22
- root: ['root', `position${capitalize(position)}`, !hasOppositeContent && 'missingOppositeContent']
23
+ root: ['root', convertTimelinePositionToClass(position), !hasOppositeContent && 'missingOppositeContent']
23
24
  };
24
25
  return composeClasses(slots, getTimelineItemUtilityClass, classes);
25
26
  };
@@ -30,7 +31,7 @@ const TimelineItemRoot = styled('li', {
30
31
  const {
31
32
  ownerState
32
33
  } = props;
33
- return [styles.root, styles[`position${capitalize(ownerState.position)}`]];
34
+ return [styles.root, styles[convertTimelinePositionToClass(ownerState.position)]];
34
35
  }
35
36
  })(({
36
37
  ownerState
@@ -41,8 +42,8 @@ const TimelineItemRoot = styled('li', {
41
42
  minHeight: 70
42
43
  }, ownerState.position === 'left' && {
43
44
  flexDirection: 'row-reverse'
44
- }, ownerState.position === 'alternate' && {
45
- '&:nth-of-type(even)': {
45
+ }, (ownerState.position === 'alternate' || ownerState.position === 'alternate-reverse') && {
46
+ [`&:nth-of-type(${ownerState.position === 'alternate' ? 'even' : 'odd'})`]: {
46
47
  flexDirection: 'row-reverse',
47
48
  [`& .${timelineContentClasses.root}`]: {
48
49
  textAlign: 'right'
@@ -114,7 +115,7 @@ process.env.NODE_ENV !== "production" ? TimelineItem.propTypes /* remove-proptyp
114
115
  /**
115
116
  * The position where the timeline's item should appear.
116
117
  */
117
- position: PropTypes.oneOf(['left', 'right']),
118
+ position: PropTypes.oneOf(['alternate-reverse', 'alternate', 'left', 'right']),
118
119
  /**
119
120
  * The system prop that allows defining system overrides as well as additional CSS styles.
120
121
  */
@@ -7,6 +7,8 @@ export interface TimelineItemClasses {
7
7
  positionRight: string;
8
8
  /** Styles applied to the root element if `position="alternate"`. */
9
9
  positionAlternate: string;
10
+ /** Styles applied to the root element if `position="alternate-reverse"`. */
11
+ positionAlternateReverse: string;
10
12
  /** Styles applied to the root element if TimelineOppositeContent isn't provided. */
11
13
  missingOppositeContent: string;
12
14
  }
@@ -3,5 +3,5 @@ import generateUtilityClasses from '@mui/material/generateUtilityClasses';
3
3
  export function getTimelineItemUtilityClass(slot) {
4
4
  return generateUtilityClass('MuiTimelineItem', slot);
5
5
  }
6
- const timelineItemClasses = generateUtilityClasses('MuiTimelineItem', ['root', 'positionLeft', 'positionRight', 'positionAlternate', 'missingOppositeContent']);
6
+ const timelineItemClasses = generateUtilityClasses('MuiTimelineItem', ['root', 'positionLeft', 'positionRight', 'positionAlternate', 'positionAlternateReverse', 'missingOppositeContent']);
7
7
  export default timelineItemClasses;
@@ -5,11 +5,11 @@ import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { styled, useThemeProps } from '@mui/material/styles';
8
- import { capitalize } from '@mui/material/utils';
9
8
  import { unstable_composeClasses as composeClasses } from '@mui/base';
10
9
  import Typography from '@mui/material/Typography';
11
10
  import TimelineContext from '../Timeline/TimelineContext';
12
11
  import { getTimelineOppositeContentUtilityClass } from './timelineOppositeContentClasses';
12
+ import convertTimelinePositionToClass from '../internal/convertTimelinePositionToClass';
13
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
14
  const useUtilityClasses = ownerState => {
15
15
  const {
@@ -17,7 +17,7 @@ const useUtilityClasses = ownerState => {
17
17
  classes
18
18
  } = ownerState;
19
19
  const slots = {
20
- root: ['root', `position${capitalize(position)}`]
20
+ root: ['root', convertTimelinePositionToClass(position)]
21
21
  };
22
22
  return composeClasses(slots, getTimelineOppositeContentUtilityClass, classes);
23
23
  };
@@ -28,7 +28,7 @@ const TimelineOppositeContentRoot = styled(Typography, {
28
28
  const {
29
29
  ownerState
30
30
  } = props;
31
- return [styles.root, styles[`position${capitalize(ownerState.position)}`]];
31
+ return [styles.root, styles[convertTimelinePositionToClass(ownerState.position)]];
32
32
  }
33
33
  })(({
34
34
  ownerState
@@ -7,6 +7,8 @@ export interface TimelineOppositeContentClasses {
7
7
  positionLeft: string;
8
8
  /** Styles applied to the root element if `position="alternate"`. */
9
9
  positionAlternate: string;
10
+ /** Styles applied to the root element if `position="alternate-reverse"`. */
11
+ positionAlternateReverse: string;
10
12
  }
11
13
  export type TimelineOppositeContentClassKey = keyof TimelineOppositeContentClasses;
12
14
  export declare function getTimelineOppositeContentUtilityClass(slot: string): string;
@@ -3,5 +3,5 @@ import generateUtilityClasses from '@mui/material/generateUtilityClasses';
3
3
  export function getTimelineOppositeContentUtilityClass(slot) {
4
4
  return generateUtilityClass('MuiTimelineOppositeContent', slot);
5
5
  }
6
- const timelineOppositeContentClasses = generateUtilityClasses('MuiTimelineOppositeContent', ['root', 'positionLeft', 'positionRight', 'positionAlternate']);
6
+ const timelineOppositeContentClasses = generateUtilityClasses('MuiTimelineOppositeContent', ['root', 'positionLeft', 'positionRight', 'positionAlternate', 'positionAlternateReverse']);
7
7
  export default timelineOppositeContentClasses;