@mui/material 5.13.5 → 5.13.7

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.
@@ -154,14 +154,16 @@ const TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(inProps,
154
154
  const ignoringMouseDown = React.useRef(false);
155
155
  // We use a timer in order to only show the ripples for touch "click" like events.
156
156
  // We don't want to display the ripple for touch scroll events.
157
- const startTimer = React.useRef(null);
157
+ const startTimer = React.useRef(0);
158
158
 
159
159
  // This is the hook called once the previous timeout is ready.
160
160
  const startTimerCommit = React.useRef(null);
161
161
  const container = React.useRef(null);
162
162
  React.useEffect(() => {
163
163
  return () => {
164
- clearTimeout(startTimer.current);
164
+ if (startTimer.current) {
165
+ clearTimeout(startTimer.current);
166
+ }
165
167
  };
166
168
  }, []);
167
169
  const startCommit = React.useCallback(params => {
package/CHANGELOG.md CHANGED
@@ -1,7 +1,176 @@
1
1
  # [Versions](https://mui.com/versions/)
2
2
 
3
+ ## 5.13.7
4
+
5
+ <!-- generated comparing v5.13.6..master -->
6
+
7
+ _Jul 4, 2023_
8
+
9
+ A big thanks to the 21 contributors who made this release possible.
10
+ This release focuses primarily on 🐛 bug fixes, 📚 documentation, and ⚙️ infrastructure improvements.
11
+
12
+ ### `@mui/material@5.13.7`
13
+
14
+ - [OutlinedInput] Fix form control properties in `ownerState` (#37668) @vonagam
15
+
16
+ ### `@mui/system@5.13.7`
17
+
18
+ - [Stack] Fix spacing when there are `<style>` children (#34966) @cmd-johnson
19
+
20
+ ### `@mui/icons-material@5.13.7`
21
+
22
+ - [icons] Add Microsoft logo (#37717) @zephyrus21
23
+
24
+ ### `@mui/joy@5.0.0-alpha.86`
25
+
26
+ - [Autocomplete][joy] Fix Autocomplete and Modal components to work together (#37515) @saikathalderr
27
+ - [Menu][Joy] Improve UX of `Menu` usage demo (#37797) @sai6855
28
+
29
+ ### `@mui/base@5.0.0-beta.6`
30
+
31
+ - [Slider][base][material][joy] Fix not draggable on the edge when `disableSwap={true}` (#35998) @sai6855
32
+ - [Slider][base] Provide slot state to Slider's thumb slot props callback (#37749) @mnajdova
33
+ - [Tabs] Wrap TabsList context creation in useMemo (#37370) @michaldudak
34
+ - [TextareaAutosize] Fix wrong height measurement (#37185) @bigteech
35
+
36
+ ### `@mui/lab@5.0.0-alpha.135`
37
+
38
+ - [Timeline] Fix position `alternate-reverse` generated classname (#37678) @ZeeshanTamboli
39
+
40
+ ### Docs
41
+
42
+ - [docs][base] Add demo for using the Button as a link (#37317) @AdamSundberg
43
+ - [docs][base] Add Tailwind CSS + plain CSS demo on the Select page (#37725) @mnajdova
44
+ - [docs][base] Make Base UI input demos denser (#37750) @zanivan
45
+ - [docs][base] Make Base UI button demos denser (#37689) @zanivan
46
+ - [docs][base] Add Tailwind CSS & plain CSS demos on the Input page (#37685) @mnajdova
47
+ - [docs][base] Fix horizontal scrolling on the mobile input page (#37688) @zanivan
48
+ - [docs] Improve Base UI index page (#37761) @oliviertassinari
49
+ - [docs] Fix incorrect package URL in README of example material-vite (#37755) @Dlouxgit
50
+ - [docs] Explain how to disable Base Select's portal (#37684) @michaldudak
51
+ - [docs] Shorten overview page URLs (#37660) @oliviertassinari
52
+ - [docs][material] Rename custom tab panel in Tabs demo to prevent confusion with @mui/lab (#37638) @MUK-Dev
53
+ - [docs][tabs] Document how to use routing with Tabs in Base UI (#37369) @michaldudak
54
+ - [docs] Rename product to productId (#37801) @siriwatknp
55
+ - [docs][base] Add Tailwind CSS & plain CSS demo on the Slider page (#37736) @mnajdova
56
+
57
+ ### Core
58
+
59
+ - [docs–infra] Prevent displaying multiple ads (#37696) @oliviertassinari
60
+ - [blog] Fix mismatch between plan and link @oliviertassinari
61
+ - [core] Update yarn lockfile (#37802) @michaldudak
62
+ - [core] Add bundle size Toolpad app link to PRs (#36311) @Janpot
63
+ - [core] Fix priority support prompt action flow (#37726) @DanailH
64
+ - [core] Fix typo in priority support @oliviertassinari
65
+ - [core][docs] add Eslint rule to ensure main demo component match file… (#37278) @alexfauquette
66
+ - [docs-infra] Fix truncated TOCs scrollbar (#37770) @oliviertassinari
67
+ - [docs-infra] Adjust demo container to be glued to the toolbar (#37744) @danilo-leal
68
+ - [docs-infra] Fix layout shift ad (#37694) @oliviertassinari
69
+ - [docs-infra] Improve demos toolbar (#37762) @oliviertassinari
70
+ - [docs-infra] Make the GitHub link in the nav bar open in a new tab (#37766) @gateremark
71
+ - [docs-infra] Allow to persist icons in ToC (#37731) @cherniavskii
72
+ - [docs-infra] Improve product mapping (#37729) @oliviertassinari
73
+ - [docs-infra] Add design polish to the comment and anchor buttons (#37734) @danilo-leal
74
+ - [docs-infra] Tweak editable code blocks callout design (#37681) @danilo-leal
75
+ - [docs-infra] Improve the edit page experience (#37695) @oliviertassinari
76
+ - [docs-infra] Support rendering markdown outside of docs (#37691) @oliviertassinari
77
+ - [docs-infra] Polish demo toolbar button designs (#37680) @danilo-leal
78
+ - [docs-infra] Adjust demo component container design (#37659) @danilo-leal
79
+ - [test] Fix test:e2e local run (#37719) @oliviertassinari
80
+ - [test] Remove failing test in dev @oliviertassinari
81
+ - [website] Add no-op service worker to fix stale cache issue (#37607) @cherniavskii
82
+ - [website] Transition the Core page to be Material UI instead (#37583) @danilo-leal
83
+ - [website] Update the pricing page to reflect sales (#37751) @oliviertassinari
84
+ - [website] Match Copyright with the rest of the website @oliviertassinari
85
+ - [website] Support deep linking to pricing FAQ @oliviertassinari
86
+
87
+ 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
88
+
89
+ ## 5.13.6
90
+
91
+ _Jun 21, 2023_
92
+
93
+ A big thanks to the 25 contributors who made this release possible. Here are some highlights ✨:
94
+
95
+ - 💫 Added [Slider](https://mui.com/material-ui/react-slider/#material-you-version) component using the new Material You design language (#37520) @DiegoAndai.
96
+ - 📚 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
97
+
98
+ ### `@mui/material@5.13.6`
99
+
100
+ - &#8203;<!-- 45 -->[Autocomplete] Fixed autocomplete's existing option selection (#37012) @bencevoros
101
+ - &#8203;<!-- 44 -->[Autocomplete] Add hint demos to Material UI and Joy UI docs (#37496) @sai6855
102
+ - &#8203;<!-- 13 -->[Masonry] Fix ResizeObserver loop limit exceeded error (#37208) @hbjORbj
103
+ - &#8203;<!-- 11 -->[Tooltip][material] Improve warning when Tooltip receives string child (#37530) @DiegoAndai
104
+ - &#8203;<!-- 10 -->[Modal] Add missing members to ModalOwnProps (#37568) @ivp-dev
105
+ - &#8203;<!-- 09 -->[Slider] Arrow keys control does not work with float numbers (#37071) @gitstart
106
+ - &#8203;<!-- 08 -->[SvgIcon] allow `svg` as a child (#37231) @siriwatknp
107
+ - &#8203;<!-- 07 -->[Timeline] Add alternate reverse position (#37311) @abhinavkmrru
108
+ - &#8203;<!-- 06 -->[Tooltip] Fix type of sx prop in `slotProps` (#37550) @SuperKXT
109
+ - &#8203;<!-- 05 -->[TouchRipple] perf: avoid calling `clearTimeout()` (#37512) @romgrk
110
+
111
+ ### `@mui/material-next@6.0.0-alpha.90`
112
+
113
+ - &#8203;<!-- 12 -->[Material You] Add Slider component with Material You design (#37520) @DiegoAndai
114
+
115
+ ### `@mui/joy@5.0.0-alpha.85`
116
+
117
+ - &#8203;<!-- 37 -->[ButtonGroup][joy] Missing border when spacing is more than zero (#37577) @siriwatknp
118
+ - &#8203;<!-- 36 -->[CardActions][joy] Add `CardActions` component (#37441) @siriwatknp
119
+ - &#8203;<!-- 14 -->[Menu][joy] Fix closing of `Menu` in demos (#36917) @sai6855
120
+
121
+ ### `@mui/base@5.0.0-beta.5`
122
+
123
+ - &#8203;<!-- 39 -->[Menu][base] Add the resetHighlight action (#37392) @michaldudak
124
+ - &#8203;<!-- 38 -->[Select][base] Expose the `areOptionsEqual` prop (#37615) @michaldudak
125
+
126
+ ### `@mui/utils@5.13.2`
127
+
128
+ - &#8203;<!-- 04 -->[utils] Allow nested imports in @mui/utils to speed up build (#37586) @flaviendelangle
129
+
130
+ ### Docs
131
+
132
+ - &#8203;<!-- 43 -->[docs][base] Improve Base UI all components images (#37590) @danilo-leal
133
+ - &#8203;<!-- 42 -->[docs][base] Add pages for coming soon components (#37575) @danilo-leal
134
+ - &#8203;<!-- 41 -->[docs][base] Add a Snackbar introduction demo (#37602) @danilo-leal
135
+ - &#8203;<!-- 40 -->[docs][base] Add page for all Base UI components (#37536) @danilo-leal
136
+ - &#8203;<!-- 33 -->[docs] Fix scrollbar on snackbar page (#37657) @oliviertassinari
137
+ - &#8203;<!-- 32 -->[docs] Switch order of snackbar buttons in demos (#37389) @Primajin
138
+ - &#8203;<!-- 31 -->[docs] Add support for Tailwind CSS and plain CSS demos (#37319) @mnajdova
139
+ - &#8203;<!-- 30 -->[docs] Tree view color fix for dark mode in Gmail example (#37051) @PunitSoniME
140
+ - &#8203;<!-- 29 -->[docs] Inline the Base UI demo (#37603) @oliviertassinari
141
+ - &#8203;<!-- 28 -->[docs] Fix typo in themed components page (#37598) @vinayr
142
+ - &#8203;<!-- 27 -->[docs] Fix render inline code in CSS description generation (#37448) @alexfauquette
143
+ - &#8203;<!-- 26 -->[docs] Add styles to styled argument list (#37558) @DiegoAndai
144
+ - &#8203;<!-- 25 -->[docs] Improve awkward wording in READMEs of example projects (#37110) @DIWAKARKASHYAP
145
+ - &#8203;<!-- 24 -->[docs] Fix small base -> base-ui migration issue (#37594) @oliviertassinari
146
+ - &#8203;<!-- 23 -->[docs] Fix GitHub typo (#37578) @oliviertassinari
147
+ - &#8203;<!-- 22 -->[docs] Improve release guide (#37547) @DiegoAndai
148
+ - &#8203;<!-- 21 -->[docs] Review fixes to the Material UI's "Example projects" page (#37444) @danilo-leal
149
+ - &#8203;<!-- 17 -->[docs][joy] Add a messages template (#37546) @sernstberger
150
+ - &#8203;<!-- 16 -->[docs][joy] Add pages for coming soon Joy UI components (#36920) @danilo-leal
151
+ - &#8203;<!-- 15 -->[docs][joy] Add design and consistency tweaks to the Playground (#37580) @danilo-leal
152
+ - &#8203;<!-- 37 -->[docs] Add and revise Base UI + Create React App examples (#36825) @samuelsycamore
153
+ - &#8203;<!-- 20 -->[docs-infra] Fix demos border radius (#37658) @oliviertassinari
154
+ - &#8203;<!-- 19 -->[docs-infra] Add analyticsTags to Algolia (#37600) @Janpot
155
+ - &#8203;<!-- 18 -->[docs-infra] Simplify product id handling (#37593) @oliviertassinari
156
+ - &#8203;<!-- 35 -->[CHANGELOG] Add missing release date for v5.13.5 @oliviertassinari
157
+ - &#8203;<!-- 16 -->[examples] Shell command fix in the readme file of material-next-app-router-ts example (#37675) @bablukpik
158
+ - &#8203;<!-- 15 -->[examples] Next.js v13 app router with Material UI (#37315) @smo043
159
+
160
+ ### Core
161
+
162
+ - &#8203;<!-- 34 -->[core] Update to Node.js v18 for `test-dev` CI (#37604) @ZeeshanTamboli
163
+ - &#8203;<!-- 39 -->[core] Add priority support issue template (#37671) @DanailH
164
+ - &#8203;<!-- 03 -->[website] Update roadmap page (#37587) @cherniavskii
165
+ - &#8203;<!-- 02 -->[website] Add CSP to limit iframes to self @oliviertassinari
166
+ - &#8203;<!-- 01 -->[website] Link mui-x Stack Overflow in footer link (#37509) @richbustos
167
+
168
+ 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
169
+
3
170
  ## 5.13.5
4
171
 
172
+ _Jun 12, 2023_
173
+
5
174
  A big thanks to the 9 contributors who made this release possible. Here are some highlights ✨:
6
175
 
7
176
  - 💫 Added `ButtonGroup` component in Joy UI (#37407) @siriwatknp.
@@ -9775,7 +9944,7 @@ A big thanks to the 34 contributors who made this release possible. Here are som
9775
9944
 
9776
9945
  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
9946
 
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.
9947
+ - 📚 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
9948
  - 👩‍🎨 Upgrade emotion to v11 (#23007) @mnajdova.
9780
9949
  - And many more 🐛 bug fixes and 📚 improvements.
9781
9950
 
@@ -10177,7 +10346,7 @@ Here are some highlights ✨:
10177
10346
  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
10347
 
10179
10348
  - 🚀 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.
10349
+ 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
10350
  - ✏️ A new blog post: [Q3 2020 Update](https://mui.com/blog/2020-q3-update/) (#23055) @oliviertassinari.
10182
10351
  - 🐙 Migrate more tests to react-testing-library @deiga, @Morteza-Jenabzadeh, @nicholas-l.
10183
10352
  - And many more 🐛 bug fixes and 📚 improvements.
@@ -10518,7 +10687,7 @@ Here are some highlights ✨:
10518
10687
 
10519
10688
  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
10689
 
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/)).
10690
+ 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
10691
 
10523
10692
  This change has been in our roadmap for more than a year.
10524
10693
  We announced it in the [v4 release blog post](https://mui.com/blog/material-ui-v4-is-out/) as a direction v5 would take.
@@ -11771,7 +11940,7 @@ A big thanks to the 33 contributors who made this release possible. Here are som
11771
11940
  />
11772
11941
  ```
11773
11942
 
11774
- - [Typography] Replace the `srOnly` prop so as to not duplicate the capabilities of [System](https://mui.com/system/getting-started/overview/) (#21413) @mnajdova.
11943
+ - [Typography] Replace the `srOnly` prop so as to not duplicate the capabilities of [System](https://mui.com/system/getting-started/) (#21413) @mnajdova.
11775
11944
 
11776
11945
  ```diff
11777
11946
  -import Typography from '@material-ui/core/Typography';
package/Modal/Modal.js CHANGED
@@ -281,6 +281,14 @@ process.env.NODE_ENV !== "production" ? Modal.propTypes /* remove-proptypes */ =
281
281
  * @param {string} reason Can be: `"escapeKeyDown"`, `"backdropClick"`.
282
282
  */
283
283
  onClose: PropTypes.func,
284
+ /**
285
+ * A function called when a transition enters.
286
+ */
287
+ onTransitionEnter: PropTypes.func,
288
+ /**
289
+ * A function called when a transition has exited.
290
+ */
291
+ onTransitionExited: PropTypes.func,
284
292
  /**
285
293
  * If `true`, the component is shown.
286
294
  */
@@ -138,7 +138,7 @@ const OutlinedInput = /*#__PURE__*/React.forwardRef(function OutlinedInput(inPro
138
138
  const fcs = formControlState({
139
139
  props,
140
140
  muiFormControl,
141
- states: ['required']
141
+ states: ['color', 'disabled', 'error', 'focused', 'hiddenLabel', 'size', 'required']
142
142
  });
143
143
  const ownerState = _extends({}, props, {
144
144
  color: fcs.color || 'primary',
package/README.md CHANGED
@@ -7,13 +7,13 @@
7
7
 
8
8
  **MUI Core** contains foundational React UI component libraries for shipping new features faster.
9
9
 
10
- - [_Material UI_](https://mui.com/material-ui/getting-started/overview/) is a comprehensive library of components that features our implementation of Google's [Material Design](https://m2.material.io/design/introduction/) system.
10
+ - [_Material UI_](https://mui.com/material-ui/getting-started/) is a comprehensive library of components that features our implementation of Google's [Material Design](https://m2.material.io/design/introduction/) system.
11
11
 
12
- - [_Joy UI_](https://mui.com/joy-ui/getting-started/overview/) is a beautifully designed library of React UI components.
12
+ - [_Joy UI_](https://mui.com/joy-ui/getting-started/) is a beautifully designed library of React UI components.
13
13
 
14
- - [_Base UI_](https://mui.com/base-ui/getting-started/overview/) is our library of "unstyled" components and low-level hooks. With Base, you gain complete control over your app's CSS and accessibility features.
14
+ - [_Base UI_](https://mui.com/base-ui/getting-started/) is our library of "unstyled" components and low-level hooks. With Base, you gain complete control over your app's CSS and accessibility features.
15
15
 
16
- - [_MUI System_](https://mui.com/system/getting-started/overview/) is a collection of CSS utilities to help you rapidly lay out custom designs.
16
+ - [_MUI System_](https://mui.com/system/getting-started/) is a collection of CSS utilities to help you rapidly lay out custom designs.
17
17
 
18
18
  <div align="center">
19
19
 
@@ -177,10 +177,10 @@ Our documentation features [a collection of example projects using Material UI](
177
177
 
178
178
  ## Documentation
179
179
 
180
- - [Material UI](https://mui.com/material-ui/getting-started/overview/)
181
- - [Joy UI](https://mui.com/joy-ui/getting-started/overview/)
182
- - [Base UI](https://mui.com/base-ui/getting-started/overview/)
183
- - [MUI System](https://mui.com/system/getting-started/overview/)
180
+ - [Material UI](https://mui.com/material-ui/getting-started/)
181
+ - [Joy UI](https://mui.com/joy-ui/getting-started/)
182
+ - [Base UI](https://mui.com/base-ui/getting-started/)
183
+ - [MUI System](https://mui.com/system/getting-started/)
184
184
 
185
185
  ## Premium themes
186
186
 
package/Slider/Slider.js CHANGED
@@ -507,7 +507,8 @@ const Slider = /*#__PURE__*/React.forwardRef(function Slider(inputProps, ref) {
507
507
  marks,
508
508
  values,
509
509
  trackOffset,
510
- trackLeap
510
+ trackLeap,
511
+ getThumbStyle
511
512
  } = useSlider(_extends({}, ownerState, {
512
513
  rootRef: ref
513
514
  }));
@@ -638,9 +639,7 @@ const Slider = /*#__PURE__*/React.forwardRef(function Slider(inputProps, ref) {
638
639
  "data-index": index
639
640
  }, thumbProps, {
640
641
  className: clsx(classes.thumb, thumbProps.className, active === index && classes.active, focusedThumbIndex === index && classes.focusVisible),
641
- style: _extends({}, style, {
642
- pointerEvents: disableSwap && active !== index ? 'none' : undefined
643
- }, thumbProps.style),
642
+ style: _extends({}, style, getThumbStyle(index), thumbProps.style),
644
643
  children: /*#__PURE__*/_jsx(InputSlot, _extends({
645
644
  "data-index": index,
646
645
  "aria-label": getAriaLabel ? getAriaLabel(index) : ariaLabel,
@@ -41,7 +41,9 @@ const SvgIconRoot = styled('svg', {
41
41
  width: '1em',
42
42
  height: '1em',
43
43
  display: 'inline-block',
44
- fill: 'currentColor',
44
+ // the <svg> will define the property that has `currentColor`
45
+ // e.g. heroicons uses fill="none" and stroke="currentColor"
46
+ fill: ownerState.hasSvgAsChild ? undefined : 'currentColor',
45
47
  flexShrink: 0,
46
48
  transition: (_theme$transitions = theme.transitions) == null ? void 0 : (_theme$transitions$cr = _theme$transitions.create) == null ? void 0 : _theme$transitions$cr.call(_theme$transitions, 'fill', {
47
49
  duration: (_theme$transitions2 = theme.transitions) == null ? void 0 : (_theme$transitions2$d = _theme$transitions2.duration) == null ? void 0 : _theme$transitions2$d.shorter
@@ -77,13 +79,15 @@ const SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(inProps, ref) {
77
79
  viewBox = '0 0 24 24'
78
80
  } = props,
79
81
  other = _objectWithoutPropertiesLoose(props, _excluded);
82
+ const hasSvgAsChild = /*#__PURE__*/React.isValidElement(children) && children.type === 'svg';
80
83
  const ownerState = _extends({}, props, {
81
84
  color,
82
85
  component,
83
86
  fontSize,
84
87
  instanceFontSize: inProps.fontSize,
85
88
  inheritViewBox,
86
- viewBox
89
+ viewBox,
90
+ hasSvgAsChild
87
91
  });
88
92
  const more = {};
89
93
  if (!inheritViewBox) {
@@ -98,9 +102,9 @@ const SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(inProps, ref) {
98
102
  "aria-hidden": titleAccess ? undefined : true,
99
103
  role: titleAccess ? 'img' : undefined,
100
104
  ref: ref
101
- }, more, other, {
105
+ }, more, other, hasSvgAsChild && children.props, {
102
106
  ownerState: ownerState,
103
- children: [children, titleAccess ? /*#__PURE__*/_jsx("title", {
107
+ children: [hasSvgAsChild ? children.props.children : children, titleAccess ? /*#__PURE__*/_jsx("title", {
104
108
  children: titleAccess
105
109
  }) : null]
106
110
  }));
@@ -173,10 +173,10 @@ export interface TooltipProps extends StandardProps<React.HTMLAttributes<HTMLDiv
173
173
  popper?: Partial<PopperProps> & TooltipComponentsPropsOverrides;
174
174
  transition?: TransitionProps & TooltipComponentsPropsOverrides;
175
175
  tooltip?: React.HTMLProps<HTMLDivElement> &
176
- MUIStyledCommonProps &
176
+ MUIStyledCommonProps<Theme> &
177
177
  TooltipComponentsPropsOverrides;
178
178
  arrow?: React.HTMLProps<HTMLSpanElement> &
179
- MUIStyledCommonProps &
179
+ MUIStyledCommonProps<Theme> &
180
180
  TooltipComponentsPropsOverrides;
181
181
  };
182
182
  /**
@@ -219,7 +219,7 @@ const Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {
219
219
  });
220
220
  const {
221
221
  arrow = false,
222
- children,
222
+ children: childrenProp,
223
223
  components = {},
224
224
  componentsProps = {},
225
225
  describeChild = false,
@@ -247,6 +247,11 @@ const Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {
247
247
  TransitionProps
248
248
  } = props,
249
249
  other = _objectWithoutPropertiesLoose(props, _excluded);
250
+
251
+ // to prevent runtime errors, developers will need to provide a child as a React element anyway.
252
+ const children = /*#__PURE__*/React.isValidElement(childrenProp) ? childrenProp : /*#__PURE__*/_jsx("span", {
253
+ children: childrenProp
254
+ });
250
255
  const theme = useTheme();
251
256
  const isRtl = theme.direction === 'rtl';
252
257
  const [childNode, setChildNode] = React.useState();
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/material v5.13.5
2
+ * @mui/material v5.13.7
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -84,14 +84,16 @@ var TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(inProps, re
84
84
  var ignoringMouseDown = React.useRef(false);
85
85
  // We use a timer in order to only show the ripples for touch "click" like events.
86
86
  // We don't want to display the ripple for touch scroll events.
87
- var startTimer = React.useRef(null);
87
+ var startTimer = React.useRef(0);
88
88
 
89
89
  // This is the hook called once the previous timeout is ready.
90
90
  var startTimerCommit = React.useRef(null);
91
91
  var container = React.useRef(null);
92
92
  React.useEffect(function () {
93
93
  return function () {
94
- clearTimeout(startTimer.current);
94
+ if (startTimer.current) {
95
+ clearTimeout(startTimer.current);
96
+ }
95
97
  };
96
98
  }, []);
97
99
  var startCommit = React.useCallback(function (params) {
@@ -298,6 +298,14 @@ process.env.NODE_ENV !== "production" ? Modal.propTypes /* remove-proptypes */ =
298
298
  * @param {string} reason Can be: `"escapeKeyDown"`, `"backdropClick"`.
299
299
  */
300
300
  onClose: PropTypes.func,
301
+ /**
302
+ * A function called when a transition enters.
303
+ */
304
+ onTransitionEnter: PropTypes.func,
305
+ /**
306
+ * A function called when a transition has exited.
307
+ */
308
+ onTransitionExited: PropTypes.func,
301
309
  /**
302
310
  * If `true`, the component is shown.
303
311
  */
@@ -135,7 +135,7 @@ var OutlinedInput = /*#__PURE__*/React.forwardRef(function OutlinedInput(inProps
135
135
  var fcs = formControlState({
136
136
  props: props,
137
137
  muiFormControl: muiFormControl,
138
- states: ['required']
138
+ states: ['color', 'disabled', 'error', 'focused', 'hiddenLabel', 'size', 'required']
139
139
  });
140
140
  var ownerState = _extends({}, props, {
141
141
  color: fcs.color || 'primary',
@@ -529,7 +529,8 @@ var Slider = /*#__PURE__*/React.forwardRef(function Slider(inputProps, ref) {
529
529
  marks = _useSlider.marks,
530
530
  values = _useSlider.values,
531
531
  trackOffset = _useSlider.trackOffset,
532
- trackLeap = _useSlider.trackLeap;
532
+ trackLeap = _useSlider.trackLeap,
533
+ getThumbStyle = _useSlider.getThumbStyle;
533
534
  ownerState.marked = marks.length > 0 && marks.some(function (mark) {
534
535
  return mark.label;
535
536
  });
@@ -661,9 +662,7 @@ var Slider = /*#__PURE__*/React.forwardRef(function Slider(inputProps, ref) {
661
662
  "data-index": index
662
663
  }, thumbProps, {
663
664
  className: clsx(classes.thumb, thumbProps.className, active === index && classes.active, focusedThumbIndex === index && classes.focusVisible),
664
- style: _extends({}, style, {
665
- pointerEvents: disableSwap && active !== index ? 'none' : undefined
666
- }, thumbProps.style),
665
+ style: _extends({}, style, getThumbStyle(index), thumbProps.style),
667
666
  children: /*#__PURE__*/_jsx(InputSlot, _extends({
668
667
  "data-index": index,
669
668
  "aria-label": getAriaLabel ? getAriaLabel(index) : ariaLabel,
@@ -35,7 +35,9 @@ var SvgIconRoot = styled('svg', {
35
35
  width: '1em',
36
36
  height: '1em',
37
37
  display: 'inline-block',
38
- fill: 'currentColor',
38
+ // the <svg> will define the property that has `currentColor`
39
+ // e.g. heroicons uses fill="none" and stroke="currentColor"
40
+ fill: ownerState.hasSvgAsChild ? undefined : 'currentColor',
39
41
  flexShrink: 0,
40
42
  transition: (_theme$transitions = theme.transitions) == null ? void 0 : (_theme$transitions$cr = _theme$transitions.create) == null ? void 0 : _theme$transitions$cr.call(_theme$transitions, 'fill', {
41
43
  duration: (_theme$transitions2 = theme.transitions) == null ? void 0 : (_theme$transitions2$d = _theme$transitions2.duration) == null ? void 0 : _theme$transitions2$d.shorter
@@ -74,13 +76,15 @@ var SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(inProps, ref) {
74
76
  _props$viewBox = props.viewBox,
75
77
  viewBox = _props$viewBox === void 0 ? '0 0 24 24' : _props$viewBox,
76
78
  other = _objectWithoutProperties(props, ["children", "className", "color", "component", "fontSize", "htmlColor", "inheritViewBox", "titleAccess", "viewBox"]);
79
+ var hasSvgAsChild = /*#__PURE__*/React.isValidElement(children) && children.type === 'svg';
77
80
  var ownerState = _extends({}, props, {
78
81
  color: color,
79
82
  component: component,
80
83
  fontSize: fontSize,
81
84
  instanceFontSize: inProps.fontSize,
82
85
  inheritViewBox: inheritViewBox,
83
- viewBox: viewBox
86
+ viewBox: viewBox,
87
+ hasSvgAsChild: hasSvgAsChild
84
88
  });
85
89
  var more = {};
86
90
  if (!inheritViewBox) {
@@ -95,9 +99,9 @@ var SvgIcon = /*#__PURE__*/React.forwardRef(function SvgIcon(inProps, ref) {
95
99
  "aria-hidden": titleAccess ? undefined : true,
96
100
  role: titleAccess ? 'img' : undefined,
97
101
  ref: ref
98
- }, more, other, {
102
+ }, more, other, hasSvgAsChild && children.props, {
99
103
  ownerState: ownerState,
100
- children: [children, titleAccess ? /*#__PURE__*/_jsx("title", {
104
+ children: [hasSvgAsChild ? children.props.children : children, titleAccess ? /*#__PURE__*/_jsx("title", {
101
105
  children: titleAccess
102
106
  }) : null]
103
107
  }));
@@ -211,7 +211,7 @@ var Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {
211
211
  });
212
212
  var _props$arrow = props.arrow,
213
213
  arrow = _props$arrow === void 0 ? false : _props$arrow,
214
- children = props.children,
214
+ childrenProp = props.children,
215
215
  classesProp = props.classes,
216
216
  _props$components = props.components,
217
217
  components = _props$components === void 0 ? {} : _props$components,
@@ -256,7 +256,10 @@ var Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {
256
256
  _props$TransitionComp = props.TransitionComponent,
257
257
  TransitionComponentProp = _props$TransitionComp === void 0 ? Grow : _props$TransitionComp,
258
258
  TransitionProps = props.TransitionProps,
259
- other = _objectWithoutProperties(props, ["arrow", "children", "classes", "components", "componentsProps", "describeChild", "disableFocusListener", "disableHoverListener", "disableInteractive", "disableTouchListener", "enterDelay", "enterNextDelay", "enterTouchDelay", "followCursor", "id", "leaveDelay", "leaveTouchDelay", "onClose", "onOpen", "open", "placement", "PopperComponent", "PopperProps", "slotProps", "slots", "title", "TransitionComponent", "TransitionProps"]);
259
+ other = _objectWithoutProperties(props, ["arrow", "children", "classes", "components", "componentsProps", "describeChild", "disableFocusListener", "disableHoverListener", "disableInteractive", "disableTouchListener", "enterDelay", "enterNextDelay", "enterTouchDelay", "followCursor", "id", "leaveDelay", "leaveTouchDelay", "onClose", "onOpen", "open", "placement", "PopperComponent", "PopperProps", "slotProps", "slots", "title", "TransitionComponent", "TransitionProps"]); // to prevent runtime errors, developers will need to provide a child as a React element anyway.
260
+ var children = /*#__PURE__*/React.isValidElement(childrenProp) ? childrenProp : /*#__PURE__*/_jsx("span", {
261
+ children: childrenProp
262
+ });
260
263
  var theme = useTheme();
261
264
  var isRtl = theme.direction === 'rtl';
262
265
  var _React$useState = React.useState(),
package/legacy/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/material v5.13.5
2
+ * @mui/material v5.13.7
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -149,14 +149,16 @@ const TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(inProps,
149
149
  const ignoringMouseDown = React.useRef(false);
150
150
  // We use a timer in order to only show the ripples for touch "click" like events.
151
151
  // We don't want to display the ripple for touch scroll events.
152
- const startTimer = React.useRef(null);
152
+ const startTimer = React.useRef(0);
153
153
 
154
154
  // This is the hook called once the previous timeout is ready.
155
155
  const startTimerCommit = React.useRef(null);
156
156
  const container = React.useRef(null);
157
157
  React.useEffect(() => {
158
158
  return () => {
159
- clearTimeout(startTimer.current);
159
+ if (startTimer.current) {
160
+ clearTimeout(startTimer.current);
161
+ }
160
162
  };
161
163
  }, []);
162
164
  const startCommit = React.useCallback(params => {
@@ -280,6 +280,14 @@ process.env.NODE_ENV !== "production" ? Modal.propTypes /* remove-proptypes */ =
280
280
  * @param {string} reason Can be: `"escapeKeyDown"`, `"backdropClick"`.
281
281
  */
282
282
  onClose: PropTypes.func,
283
+ /**
284
+ * A function called when a transition enters.
285
+ */
286
+ onTransitionEnter: PropTypes.func,
287
+ /**
288
+ * A function called when a transition has exited.
289
+ */
290
+ onTransitionExited: PropTypes.func,
283
291
  /**
284
292
  * If `true`, the component is shown.
285
293
  */
@@ -138,7 +138,7 @@ const OutlinedInput = /*#__PURE__*/React.forwardRef(function OutlinedInput(inPro
138
138
  const fcs = formControlState({
139
139
  props,
140
140
  muiFormControl,
141
- states: ['required']
141
+ states: ['color', 'disabled', 'error', 'focused', 'hiddenLabel', 'size', 'required']
142
142
  });
143
143
  const ownerState = _extends({}, props, {
144
144
  color: fcs.color || 'primary',
@@ -506,7 +506,8 @@ const Slider = /*#__PURE__*/React.forwardRef(function Slider(inputProps, ref) {
506
506
  marks,
507
507
  values,
508
508
  trackOffset,
509
- trackLeap
509
+ trackLeap,
510
+ getThumbStyle
510
511
  } = useSlider(_extends({}, ownerState, {
511
512
  rootRef: ref
512
513
  }));
@@ -637,9 +638,7 @@ const Slider = /*#__PURE__*/React.forwardRef(function Slider(inputProps, ref) {
637
638
  "data-index": index
638
639
  }, thumbProps, {
639
640
  className: clsx(classes.thumb, thumbProps.className, active === index && classes.active, focusedThumbIndex === index && classes.focusVisible),
640
- style: _extends({}, style, {
641
- pointerEvents: disableSwap && active !== index ? 'none' : undefined
642
- }, thumbProps.style),
641
+ style: _extends({}, style, getThumbStyle(index), thumbProps.style),
643
642
  children: /*#__PURE__*/_jsx(InputSlot, _extends({
644
643
  "data-index": index,
645
644
  "aria-label": getAriaLabel ? getAriaLabel(index) : ariaLabel,