@mui/material 6.1.1 → 6.1.2

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 (83) hide show
  1. package/Autocomplete/Autocomplete.js +1 -5
  2. package/Button/Button.js +3 -4
  3. package/CHANGELOG.md +62 -0
  4. package/ClickAwayListener/ClickAwayListener.js +2 -2
  5. package/Fade/Fade.js +2 -2
  6. package/Grow/Grow.js +2 -2
  7. package/Icon/Icon.js +1 -1
  8. package/LinearProgress/LinearProgress.js +7 -0
  9. package/MenuList/MenuList.js +2 -1
  10. package/Modal/Modal.js +3 -3
  11. package/Modal/ModalManager.d.ts +1 -1
  12. package/Modal/ModalManager.js +5 -5
  13. package/Modal/useModal.js +3 -5
  14. package/Portal/Portal.js +2 -2
  15. package/Rating/Rating.d.ts +1 -1
  16. package/Rating/Rating.js +7 -2
  17. package/Select/Select.js +2 -2
  18. package/Slide/Slide.js +2 -2
  19. package/SwipeableDrawer/SwipeableDrawer.d.ts +1 -1
  20. package/Tooltip/Tooltip.js +2 -2
  21. package/Unstable_TrapFocus/FocusTrap.js +3 -3
  22. package/Zoom/Zoom.js +2 -2
  23. package/index.js +1 -1
  24. package/modern/Autocomplete/Autocomplete.js +1 -5
  25. package/modern/Button/Button.js +3 -4
  26. package/modern/ClickAwayListener/ClickAwayListener.js +2 -2
  27. package/modern/Fade/Fade.js +2 -2
  28. package/modern/Grow/Grow.js +2 -2
  29. package/modern/Icon/Icon.js +1 -1
  30. package/modern/LinearProgress/LinearProgress.js +7 -0
  31. package/modern/MenuList/MenuList.js +2 -1
  32. package/modern/Modal/Modal.js +3 -3
  33. package/modern/Modal/ModalManager.js +5 -5
  34. package/modern/Modal/useModal.js +3 -5
  35. package/modern/Portal/Portal.js +2 -2
  36. package/modern/Rating/Rating.js +7 -2
  37. package/modern/Select/Select.js +2 -2
  38. package/modern/Slide/Slide.js +2 -2
  39. package/modern/Tooltip/Tooltip.js +2 -2
  40. package/modern/Unstable_TrapFocus/FocusTrap.js +3 -3
  41. package/modern/Zoom/Zoom.js +2 -2
  42. package/modern/index.js +1 -1
  43. package/modern/styles/createGetSelector.js +8 -7
  44. package/modern/styles/createThemeWithVars.js +2 -0
  45. package/modern/styles/shouldSkipGeneratingVar.js +1 -1
  46. package/modern/useAutocomplete/useAutocomplete.js +3 -1
  47. package/modern/version/index.js +2 -2
  48. package/node/Autocomplete/Autocomplete.js +1 -5
  49. package/node/Button/Button.js +3 -4
  50. package/node/ClickAwayListener/ClickAwayListener.js +2 -2
  51. package/node/Fade/Fade.js +2 -2
  52. package/node/Grow/Grow.js +2 -2
  53. package/node/Icon/Icon.js +1 -1
  54. package/node/LinearProgress/LinearProgress.js +7 -0
  55. package/node/MenuList/MenuList.js +2 -1
  56. package/node/Modal/Modal.js +3 -3
  57. package/node/Modal/ModalManager.js +5 -5
  58. package/node/Modal/useModal.js +3 -5
  59. package/node/Portal/Portal.js +1 -1
  60. package/node/Rating/Rating.js +7 -2
  61. package/node/Select/Select.js +2 -2
  62. package/node/Slide/Slide.js +2 -2
  63. package/node/Tooltip/Tooltip.js +2 -2
  64. package/node/Unstable_TrapFocus/FocusTrap.js +2 -2
  65. package/node/Zoom/Zoom.js +2 -2
  66. package/node/index.js +1 -1
  67. package/node/styles/createGetSelector.js +8 -7
  68. package/node/styles/createThemeWithVars.js +2 -0
  69. package/node/styles/shouldSkipGeneratingVar.js +1 -1
  70. package/node/useAutocomplete/useAutocomplete.js +3 -1
  71. package/node/version/index.js +2 -2
  72. package/package.json +6 -6
  73. package/styles/ThemeProvider.d.ts +6 -0
  74. package/styles/ThemeProviderWithVars.d.ts +1 -0
  75. package/styles/createGetSelector.d.ts +3 -8
  76. package/styles/createGetSelector.js +8 -7
  77. package/styles/createTheme.d.ts +1 -1
  78. package/styles/createThemeNoVars.d.ts +1 -0
  79. package/styles/createThemeWithVars.d.ts +8 -0
  80. package/styles/createThemeWithVars.js +2 -0
  81. package/styles/shouldSkipGeneratingVar.js +1 -1
  82. package/useAutocomplete/useAutocomplete.js +3 -1
  83. package/version/index.js +2 -2
@@ -710,11 +710,7 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
710
710
  ref: setAnchorEl,
711
711
  className: classes.inputRoot,
712
712
  startAdornment,
713
- onClick: event => {
714
- if (event.target === event.currentTarget) {
715
- handleInputMouseDown(event);
716
- }
717
- },
713
+ onMouseDown: event => handleInputMouseDown(event),
718
714
  ...((hasClearIcon || hasPopupIcon) && {
719
715
  endAdornment: /*#__PURE__*/_jsxs(AutocompleteEndAdornment, {
720
716
  className: classes.endAdornment,
package/Button/Button.js CHANGED
@@ -147,7 +147,7 @@ const ButtonRoot = styled(ButtonBase, {
147
147
  color: `var(--variant-textColor)`,
148
148
  backgroundColor: `var(--variant-textBg)`
149
149
  }
150
- }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter(['dark', 'contrastText'])).map(([color]) => ({
150
+ }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({
151
151
  props: {
152
152
  color
153
153
  },
@@ -171,9 +171,8 @@ const ButtonRoot = styled(ButtonBase, {
171
171
  color: 'inherit'
172
172
  },
173
173
  style: {
174
- '--variant-containedColor': theme.vars ?
175
- // this is safe because grey does not change between default light/dark mode
176
- theme.vars.palette.text.primary : theme.palette.getContrastText?.(inheritContainedBackgroundColor),
174
+ color: 'inherit',
175
+ borderColor: 'currentColor',
177
176
  '--variant-containedBg': theme.vars ? theme.vars.palette.Button.inheritContainedBg : inheritContainedBackgroundColor,
178
177
  '@media (hover: hover)': {
179
178
  '&:hover': {
package/CHANGELOG.md CHANGED
@@ -1,5 +1,67 @@
1
1
  # [Versions](https://mui.com/versions/)
2
2
 
3
+ ## v6.1.2
4
+
5
+ <!-- generated comparing v6.1.1..master -->
6
+
7
+ _Oct 2, 2024_
8
+
9
+ A big thanks to the 13 contributors who made this release possible.
10
+
11
+ ### `@mui/material@6.1.2`
12
+
13
+ - [Modal] Remove unnecessary `manager` prop handling (#43867) @ZeeshanTamboli
14
+ - [Autocomplete] Fix listbox opens and closes on click when used with `limitTags` (#42494) @appleSimple
15
+ - [Button] Ignore `dark` and `contrastText` if not provided in the theme (#43861) @siriwatknp
16
+ - [Button] Fix regression for color `inherit` (#43862) @siriwatknp
17
+ - [LinearProgress] Fix background color (#43949) @sai6855
18
+ - Support CSS variables with shadow DOM (#43948) @siriwatknp
19
+ - Improve getReactElementRef() utils (#43022) @sai6855
20
+ - [Modal] Replace `show` parameter name with `hide` in modal manager (#43868) @ZeeshanTamboli
21
+ - [Rating] Use Rating `name` as prefix of input element ids (#43829) @yash49
22
+ - [Drawer] Refactor getScrollbarSize usages (#43828) @BrianWoolfolk
23
+ - [Drawer] Fix issue with main window being used instead of iframe's window (#43818) @albarv340
24
+ - [ThemeProvider] Support setting default mode (#43951) @siriwatknp
25
+
26
+ ### Docs
27
+
28
+ - Update theme toggle demo (#43956) @Janpot
29
+ - Add note about minimum required webpack version (#43864) @Janpot
30
+ - Format Pigment CSS docs (#43812) @oliviertassinari
31
+ - Fix visual bug on dashboard template (#43836) @oliviertassinari
32
+ - Fix pigment-css.md syntax error (#43837) @kdichev
33
+ - Fix Sign-in template form experience (#43838) @oliviertassinari
34
+ - Remove "To be continued" section from v0 –> v1 migration guide (#43832) @samuelsycamore
35
+ - Fix 301 to chromium (#43809) @oliviertassinari
36
+ - [joy-ui] Add missing ComponentLinkHeader components (#43865) @samuelsycamore
37
+ - [Modal] Remove unnecessary type assertion (#43825) @ZeeshanTamboli
38
+ - [Table] Stabilize random series in virtualized table demo (#43744) @Janpot
39
+ - [system] Add migration guide link to `@mui/styles` pages (#43833) @samuelsycamore
40
+
41
+ ### Core
42
+
43
+ - [code-infra] Fix flaky dashboard screenshot - take 2 (#43937) @Janpot
44
+ - [code-infra] Replace all instances of `e` with `event` and add eslint rule (#43866) @samuelsycamore
45
+ - [code-infra] Fix and update bundling fixtures (#43709) @Janpot
46
+ - [code-infra] Update transitive dependencies with vulnerabilties (#43895) @Janpot
47
+ - [code-infra] Optimize regression tests (#43889) @Janpot
48
+ - [code-infra] Remove custom playwright installation steps (#43881) @Janpot
49
+ - [code-infra] Fix flaky dashboard screenshot (#43890) @Janpot
50
+ - [code-infra] Add new instanceof proptypes for toolpad (#43814) @Janpot
51
+ - Fix eslint-plugin-react-compiler issues in usePagination tests (#43946) @wilhelmlofsten
52
+ - Uniformity in version range @oliviertassinari
53
+ - Replace `toBeAriaHidden` matcher with `toBeInaccessible` in tests (#43870) @ZeeshanTamboli
54
+ - [docs-infra] Strengthen CSP (#43711) @oliviertassinari
55
+ - [docs-infra] Open Codesandbox demo with fontsize=12 (#43860) @siriwatknp
56
+ - [icons] Reduce Material Icon page size (#43911) @oliviertassinari
57
+ - [test] Point Istanbul to correct URL (#43935) @sai6855
58
+ - [test] Sync React.version parse logic with codebase (#43820) @oliviertassinari
59
+ - [website] Add 'Row spanning' (#43831) @oliviertassinari
60
+ - [website] Improve Next roles section (#43822) @oliviertassinari
61
+ - [website] Open the xCharts, eXplore and X general react engineer roles (#43805) @DanailH
62
+
63
+ All contributors of this release in alphabetical order: @albarv340, @appleSimple, @BrianWoolfolk, @DanailH, @Janpot, @kdichev, @oliviertassinari, @sai6855, @samuelsycamore, @siriwatknp, @wilhelmlofsten, @yash49, @ZeeshanTamboli
64
+
3
65
  ## v6.1.1
4
66
 
5
67
  <!-- generated comparing v6.1.0..master -->
@@ -3,7 +3,7 @@
3
3
  import * as React from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import { elementAcceptingRef, exactProp, unstable_ownerDocument as ownerDocument, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback } from '@mui/utils';
6
- import getReactNodeRef from '@mui/utils/getReactNodeRef';
6
+ import getReactElementRef from '@mui/utils/getReactElementRef';
7
7
 
8
8
  // TODO: return `EventHandlerName extends `on${infer EventName}` ? Lowercase<EventName> : never` once generatePropTypes runs with TS 4.1
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -48,7 +48,7 @@ function ClickAwayListener(props) {
48
48
  activatedRef.current = false;
49
49
  };
50
50
  }, []);
51
- const handleRef = useForkRef(getReactNodeRef(children), nodeRef);
51
+ const handleRef = useForkRef(getReactElementRef(children), nodeRef);
52
52
 
53
53
  // The handler doesn't take event.defaultPrevented into account:
54
54
  //
package/Fade/Fade.js CHANGED
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import { Transition } from 'react-transition-group';
6
6
  import elementAcceptingRef from '@mui/utils/elementAcceptingRef';
7
- import getReactNodeRef from '@mui/utils/getReactNodeRef';
7
+ import getReactElementRef from '@mui/utils/getReactElementRef';
8
8
  import { useTheme } from "../zero-styled/index.js";
9
9
  import { reflow, getTransitionProps } from "../transitions/utils.js";
10
10
  import useForkRef from "../utils/useForkRef.js";
@@ -48,7 +48,7 @@ const Fade = /*#__PURE__*/React.forwardRef(function Fade(props, ref) {
48
48
  } = props;
49
49
  const enableStrictModeCompat = true;
50
50
  const nodeRef = React.useRef(null);
51
- const handleRef = useForkRef(nodeRef, getReactNodeRef(children), ref);
51
+ const handleRef = useForkRef(nodeRef, getReactElementRef(children), ref);
52
52
  const normalizedTransitionCallback = callback => maybeIsAppearing => {
53
53
  if (callback) {
54
54
  const node = nodeRef.current;
package/Grow/Grow.js CHANGED
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import useTimeout from '@mui/utils/useTimeout';
6
6
  import elementAcceptingRef from '@mui/utils/elementAcceptingRef';
7
- import getReactNodeRef from '@mui/utils/getReactNodeRef';
7
+ import getReactElementRef from '@mui/utils/getReactElementRef';
8
8
  import { Transition } from 'react-transition-group';
9
9
  import { useTheme } from "../zero-styled/index.js";
10
10
  import { getTransitionProps, reflow } from "../transitions/utils.js";
@@ -58,7 +58,7 @@ const Grow = /*#__PURE__*/React.forwardRef(function Grow(props, ref) {
58
58
  const autoTimeout = React.useRef();
59
59
  const theme = useTheme();
60
60
  const nodeRef = React.useRef(null);
61
- const handleRef = useForkRef(nodeRef, getReactNodeRef(children), ref);
61
+ const handleRef = useForkRef(nodeRef, getReactElementRef(children), ref);
62
62
  const normalizedTransitionCallback = callback => maybeIsAppearing => {
63
63
  if (callback) {
64
64
  const node = nodeRef.current;
package/Icon/Icon.js CHANGED
@@ -37,7 +37,7 @@ const IconRoot = styled('span', {
37
37
  userSelect: 'none',
38
38
  width: '1em',
39
39
  height: '1em',
40
- // Chrome fix for https://bugs.chromium.org/p/chromium/issues/detail?id=820541
40
+ // Chrome fix for https://issues.chromium.org/issues/41375697
41
41
  // To remove at some point.
42
42
  overflow: 'hidden',
43
43
  display: 'inline-block',
@@ -293,6 +293,13 @@ const LinearProgressBar2 = styled('span', {
293
293
  style: {
294
294
  backgroundColor: 'var(--LinearProgressBar2-barColor, currentColor)'
295
295
  }
296
+ }, {
297
+ props: ({
298
+ ownerState
299
+ }) => ownerState.variant !== 'buffer' && ownerState.color === 'inherit',
300
+ style: {
301
+ backgroundColor: 'currentColor'
302
+ }
296
303
  }, {
297
304
  props: {
298
305
  color: 'inherit'
@@ -8,6 +8,7 @@ import List from "../List/index.js";
8
8
  import getScrollbarSize from "../utils/getScrollbarSize.js";
9
9
  import useForkRef from "../utils/useForkRef.js";
10
10
  import useEnhancedEffect from "../utils/useEnhancedEffect.js";
11
+ import { ownerWindow } from "../utils/index.js";
11
12
  import { jsx as _jsx } from "react/jsx-runtime";
12
13
  function nextItem(list, item, disableListWrap) {
13
14
  if (list === item) {
@@ -111,7 +112,7 @@ const MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {
111
112
  // of the menu.
112
113
  const noExplicitWidth = !listRef.current.style.width;
113
114
  if (containerElement.clientHeight < listRef.current.clientHeight && noExplicitWidth) {
114
- const scrollbarSize = `${getScrollbarSize(ownerDocument(containerElement))}px`;
115
+ const scrollbarSize = `${getScrollbarSize(ownerWindow(containerElement))}px`;
115
116
  listRef.current.style[direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;
116
117
  listRef.current.style.width = `calc(100% + ${scrollbarSize})`;
117
118
  }
package/Modal/Modal.js CHANGED
@@ -187,12 +187,12 @@ const Modal = /*#__PURE__*/React.forwardRef(function Modal(inProps, ref) {
187
187
  getSlotProps: otherHandlers => {
188
188
  return getBackdropProps({
189
189
  ...otherHandlers,
190
- onClick: e => {
190
+ onClick: event => {
191
191
  if (onBackdropClick) {
192
- onBackdropClick(e);
192
+ onBackdropClick(event);
193
193
  }
194
194
  if (otherHandlers?.onClick) {
195
- otherHandlers.onClick(e);
195
+ otherHandlers.onClick(event);
196
196
  }
197
197
  }
198
198
  });
@@ -1,7 +1,7 @@
1
1
  export interface ManagedModalProps {
2
2
  disableScrollLock?: boolean;
3
3
  }
4
- export declare function ariaHidden(element: Element, show: boolean): void;
4
+ export declare function ariaHidden(element: Element, hide: boolean): void;
5
5
  interface Modal {
6
6
  mount: Element;
7
7
  modalRef: Element;
@@ -7,8 +7,8 @@ function isOverflowing(container) {
7
7
  }
8
8
  return container.scrollHeight > container.clientHeight;
9
9
  }
10
- export function ariaHidden(element, show) {
11
- if (show) {
10
+ export function ariaHidden(element, hide) {
11
+ if (hide) {
12
12
  element.setAttribute('aria-hidden', 'true');
13
13
  } else {
14
14
  element.removeAttribute('aria-hidden');
@@ -26,13 +26,13 @@ function isAriaHiddenForbiddenOnElement(element) {
26
26
  const isInputHidden = element.tagName === 'INPUT' && element.getAttribute('type') === 'hidden';
27
27
  return isForbiddenTagName || isInputHidden;
28
28
  }
29
- function ariaHiddenSiblings(container, mountElement, currentElement, elementsToExclude, show) {
29
+ function ariaHiddenSiblings(container, mountElement, currentElement, elementsToExclude, hide) {
30
30
  const blacklist = [mountElement, currentElement, ...elementsToExclude];
31
31
  [].forEach.call(container.children, element => {
32
32
  const isNotExcludedElement = !blacklist.includes(element);
33
33
  const isNotForbiddenElement = !isAriaHiddenForbiddenOnElement(element);
34
34
  if (isNotExcludedElement && isNotForbiddenElement) {
35
- ariaHidden(element, show);
35
+ ariaHidden(element, hide);
36
36
  }
37
37
  });
38
38
  }
@@ -53,7 +53,7 @@ function handleContainer(containerInfo, props) {
53
53
  if (!props.disableScrollLock) {
54
54
  if (isOverflowing(container)) {
55
55
  // Compute the size before applying overflow hidden to avoid any scroll jumps.
56
- const scrollbarSize = getScrollbarSize(ownerDocument(container));
56
+ const scrollbarSize = getScrollbarSize(ownerWindow(container));
57
57
  restoreStyle.push({
58
58
  value: container.style.paddingRight,
59
59
  property: 'padding-right',
package/Modal/useModal.js CHANGED
@@ -13,7 +13,7 @@ function getHasTransition(children) {
13
13
 
14
14
  // A modal manager used to track and manage the state of open Modals.
15
15
  // Modals don't open on the server so this won't conflict with concurrent requests.
16
- const defaultManager = new ModalManager();
16
+ const manager = new ModalManager();
17
17
  /**
18
18
  *
19
19
  * Demos:
@@ -29,8 +29,6 @@ function useModal(parameters) {
29
29
  container,
30
30
  disableEscapeKeyDown = false,
31
31
  disableScrollLock = false,
32
- // @ts-ignore internal logic - Base UI supports the manager as a prop too
33
- manager = defaultManager,
34
32
  closeAfterTransition = false,
35
33
  onTransitionEnter,
36
34
  onTransitionExited,
@@ -76,7 +74,7 @@ function useModal(parameters) {
76
74
  handleMounted();
77
75
  }
78
76
  });
79
- const isTopModal = React.useCallback(() => manager.isTopModal(getModal()), [manager]);
77
+ const isTopModal = () => manager.isTopModal(getModal());
80
78
  const handlePortalRef = useEventCallback(node => {
81
79
  mountNodeRef.current = node;
82
80
  if (!node) {
@@ -90,7 +88,7 @@ function useModal(parameters) {
90
88
  });
91
89
  const handleClose = React.useCallback(() => {
92
90
  manager.remove(getModal(), ariaHiddenProp);
93
- }, [ariaHiddenProp, manager]);
91
+ }, [ariaHiddenProp]);
94
92
  React.useEffect(() => {
95
93
  return () => {
96
94
  handleClose();
package/Portal/Portal.js CHANGED
@@ -3,7 +3,7 @@
3
3
  import * as React from 'react';
4
4
  import * as ReactDOM from 'react-dom';
5
5
  import PropTypes from 'prop-types';
6
- import { exactProp, HTMLElementType, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useForkRef as useForkRef, unstable_setRef as setRef, unstable_getReactNodeRef as getReactNodeRef } from '@mui/utils';
6
+ import { exactProp, HTMLElementType, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useForkRef as useForkRef, unstable_setRef as setRef, unstable_getReactElementRef as getReactElementRef } from '@mui/utils';
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  function getContainer(container) {
9
9
  return typeof container === 'function' ? container() : container;
@@ -28,7 +28,7 @@ const Portal = /*#__PURE__*/React.forwardRef(function Portal(props, forwardedRef
28
28
  disablePortal = false
29
29
  } = props;
30
30
  const [mountNode, setMountNode] = React.useState(null);
31
- const handleRef = useForkRef(getReactNodeRef(children), forwardedRef);
31
+ const handleRef = useForkRef(/*#__PURE__*/React.isValidElement(children) ? getReactElementRef(children) : null, forwardedRef);
32
32
  useEnhancedEffect(() => {
33
33
  if (!disablePortal) {
34
34
  setMountNode(getContainer(container) || document.body);
@@ -74,7 +74,7 @@ export interface RatingProps
74
74
  /**
75
75
  * The name attribute of the radio `input` elements.
76
76
  * This input `name` should be unique within the page.
77
- * Being unique within a form is insufficient since the `name` is used to generated IDs.
77
+ * Being unique within a form is insufficient since the `name` is used to generate IDs.
78
78
  */
79
79
  name?: string;
80
80
  /**
package/Rating/Rating.js CHANGED
@@ -226,7 +226,12 @@ function RatingItem(props) {
226
226
  const isHovered = itemValue <= hover;
227
227
  const isFocused = itemValue <= focus;
228
228
  const isChecked = itemValue === ratingValueRounded;
229
- const id = useId();
229
+
230
+ // "name" ensures unique IDs across different Rating components in React 17,
231
+ // preventing one component from affecting another. React 18's useId already handles this.
232
+ // Update to const id = useId(); when React 17 support is dropped.
233
+ // More details: https://github.com/mui/material-ui/issues/40997
234
+ const id = `${name}-${useId()}`;
230
235
  const container = /*#__PURE__*/_jsx(RatingIcon, {
231
236
  as: IconContainerComponent,
232
237
  value: itemValue,
@@ -619,7 +624,7 @@ process.env.NODE_ENV !== "production" ? Rating.propTypes /* remove-proptypes */
619
624
  /**
620
625
  * The name attribute of the radio `input` elements.
621
626
  * This input `name` should be unique within the page.
622
- * Being unique within a form is insufficient since the `name` is used to generated IDs.
627
+ * Being unique within a form is insufficient since the `name` is used to generate IDs.
623
628
  */
624
629
  name: PropTypes.string,
625
630
  /**
package/Select/Select.js CHANGED
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import clsx from 'clsx';
6
6
  import deepmerge from '@mui/utils/deepmerge';
7
- import getReactNodeRef from '@mui/utils/getReactNodeRef';
7
+ import getReactElementRef from '@mui/utils/getReactElementRef';
8
8
  import SelectInput from "./SelectInput.js";
9
9
  import formControlState from "../FormControl/formControlState.js";
10
10
  import useFormControl from "../FormControl/useFormControl.js";
@@ -92,7 +92,7 @@ const Select = /*#__PURE__*/React.forwardRef(function Select(inProps, ref) {
92
92
  ownerState: ownerState
93
93
  })
94
94
  }[variant];
95
- const inputComponentRef = useForkRef(ref, getReactNodeRef(InputComponent));
95
+ const inputComponentRef = useForkRef(ref, getReactElementRef(InputComponent));
96
96
  return /*#__PURE__*/_jsx(React.Fragment, {
97
97
  children: /*#__PURE__*/React.cloneElement(InputComponent, {
98
98
  // Most of the logic is implemented in `SelectInput`.
package/Slide/Slide.js CHANGED
@@ -6,7 +6,7 @@ import { Transition } from 'react-transition-group';
6
6
  import chainPropTypes from '@mui/utils/chainPropTypes';
7
7
  import HTMLElementType from '@mui/utils/HTMLElementType';
8
8
  import elementAcceptingRef from '@mui/utils/elementAcceptingRef';
9
- import getReactNodeRef from '@mui/utils/getReactNodeRef';
9
+ import getReactElementRef from '@mui/utils/getReactElementRef';
10
10
  import debounce from "../utils/debounce.js";
11
11
  import useForkRef from "../utils/useForkRef.js";
12
12
  import { useTheme } from "../zero-styled/index.js";
@@ -106,7 +106,7 @@ const Slide = /*#__PURE__*/React.forwardRef(function Slide(props, ref) {
106
106
  ...other
107
107
  } = props;
108
108
  const childrenRef = React.useRef(null);
109
- const handleRef = useForkRef(getReactNodeRef(children), childrenRef, ref);
109
+ const handleRef = useForkRef(getReactElementRef(children), childrenRef, ref);
110
110
  const normalizedTransitionCallback = callback => isAppearing => {
111
111
  if (callback) {
112
112
  // onEnterXxx and onExitXxx callbacks have a different arguments.length value.
@@ -16,7 +16,7 @@ export interface SwipeableDrawerProps extends Omit<DrawerProps, 'onClose' | 'ope
16
16
  */
17
17
  allowSwipeInChildren?:
18
18
  | boolean
19
- | ((e: TouchEvent, swipeArea: HTMLDivElement, paper: HTMLDivElement) => boolean);
19
+ | ((event: TouchEvent, swipeArea: HTMLDivElement, paper: HTMLDivElement) => boolean);
20
20
  /**
21
21
  * Disable the backdrop transition.
22
22
  * This can improve the FPS on low-end devices.
@@ -10,7 +10,7 @@ import { alpha } from '@mui/system/colorManipulator';
10
10
  import { useRtl } from '@mui/system/RtlProvider';
11
11
  import isFocusVisible from '@mui/utils/isFocusVisible';
12
12
  import appendOwnerState from '@mui/utils/appendOwnerState';
13
- import getReactNodeRef from '@mui/utils/getReactNodeRef';
13
+ import getReactElementRef from '@mui/utils/getReactElementRef';
14
14
  import { styled, useTheme } from "../zero-styled/index.js";
15
15
  import memoTheme from "../utils/memoTheme.js";
16
16
  import { useDefaultProps } from "../DefaultPropsProvider/index.js";
@@ -514,7 +514,7 @@ const Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {
514
514
  document.removeEventListener('keydown', handleKeyDown);
515
515
  };
516
516
  }, [handleClose, open]);
517
- const handleRef = useForkRef(getReactNodeRef(children), setChildNode, ref);
517
+ const handleRef = useForkRef(getReactElementRef(children), setChildNode, ref);
518
518
 
519
519
  // There is no point in displaying an empty tooltip.
520
520
  // So we exclude all falsy values, except 0, which is valid.
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable consistent-return, jsx-a11y/no-noninteractive-tabindex */
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { exactProp, elementAcceptingRef, unstable_useForkRef as useForkRef, unstable_ownerDocument as ownerDocument, unstable_getReactNodeRef as getReactNodeRef } from '@mui/utils';
6
+ import { exactProp, elementAcceptingRef, unstable_useForkRef as useForkRef, unstable_ownerDocument as ownerDocument, unstable_getReactElementRef as getReactElementRef } from '@mui/utils';
7
7
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
8
  // Inspired by https://github.com/focus-trap/tabbable
9
9
  const candidatesSelector = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable="false"])'].join(',');
@@ -14,7 +14,7 @@ function getTabIndex(node) {
14
14
  }
15
15
 
16
16
  // Browsers do not return `tabIndex` correctly for contentEditable nodes;
17
- // https://bugs.chromium.org/p/chromium/issues/detail?id=661108&q=contenteditable%20tabindex&can=2
17
+ // https://issues.chromium.org/issues/41283952
18
18
  // so if they don't have a tabindex attribute specifically set, assume it's 0.
19
19
  // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default
20
20
  // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,
@@ -92,7 +92,7 @@ function FocusTrap(props) {
92
92
  // It waits for the active element to move into the component to activate.
93
93
  const activated = React.useRef(false);
94
94
  const rootRef = React.useRef(null);
95
- const handleRef = useForkRef(getReactNodeRef(children), rootRef);
95
+ const handleRef = useForkRef(getReactElementRef(children), rootRef);
96
96
  const lastKeydown = React.useRef(null);
97
97
  React.useEffect(() => {
98
98
  // We might render an empty child.
package/Zoom/Zoom.js CHANGED
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import { Transition } from 'react-transition-group';
6
6
  import elementAcceptingRef from '@mui/utils/elementAcceptingRef';
7
- import getReactNodeRef from '@mui/utils/getReactNodeRef';
7
+ import getReactElementRef from '@mui/utils/getReactElementRef';
8
8
  import { useTheme } from "../zero-styled/index.js";
9
9
  import { reflow, getTransitionProps } from "../transitions/utils.js";
10
10
  import useForkRef from "../utils/useForkRef.js";
@@ -48,7 +48,7 @@ const Zoom = /*#__PURE__*/React.forwardRef(function Zoom(props, ref) {
48
48
  ...other
49
49
  } = props;
50
50
  const nodeRef = React.useRef(null);
51
- const handleRef = useForkRef(nodeRef, getReactNodeRef(children), ref);
51
+ const handleRef = useForkRef(nodeRef, getReactElementRef(children), ref);
52
52
  const normalizedTransitionCallback = callback => maybeIsAppearing => {
53
53
  if (callback) {
54
54
  const node = nodeRef.current;
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/material v6.1.1
2
+ * @mui/material v6.1.2
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -710,11 +710,7 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
710
710
  ref: setAnchorEl,
711
711
  className: classes.inputRoot,
712
712
  startAdornment,
713
- onClick: event => {
714
- if (event.target === event.currentTarget) {
715
- handleInputMouseDown(event);
716
- }
717
- },
713
+ onMouseDown: event => handleInputMouseDown(event),
718
714
  ...((hasClearIcon || hasPopupIcon) && {
719
715
  endAdornment: /*#__PURE__*/_jsxs(AutocompleteEndAdornment, {
720
716
  className: classes.endAdornment,
@@ -147,7 +147,7 @@ const ButtonRoot = styled(ButtonBase, {
147
147
  color: `var(--variant-textColor)`,
148
148
  backgroundColor: `var(--variant-textBg)`
149
149
  }
150
- }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter(['dark', 'contrastText'])).map(([color]) => ({
150
+ }, ...Object.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({
151
151
  props: {
152
152
  color
153
153
  },
@@ -171,9 +171,8 @@ const ButtonRoot = styled(ButtonBase, {
171
171
  color: 'inherit'
172
172
  },
173
173
  style: {
174
- '--variant-containedColor': theme.vars ?
175
- // this is safe because grey does not change between default light/dark mode
176
- theme.vars.palette.text.primary : theme.palette.getContrastText?.(inheritContainedBackgroundColor),
174
+ color: 'inherit',
175
+ borderColor: 'currentColor',
177
176
  '--variant-containedBg': theme.vars ? theme.vars.palette.Button.inheritContainedBg : inheritContainedBackgroundColor,
178
177
  '@media (hover: hover)': {
179
178
  '&:hover': {
@@ -3,7 +3,7 @@
3
3
  import * as React from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import { elementAcceptingRef, exactProp, unstable_ownerDocument as ownerDocument, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback } from '@mui/utils';
6
- import getReactNodeRef from '@mui/utils/getReactNodeRef';
6
+ import getReactElementRef from '@mui/utils/getReactElementRef';
7
7
 
8
8
  // TODO: return `EventHandlerName extends `on${infer EventName}` ? Lowercase<EventName> : never` once generatePropTypes runs with TS 4.1
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -48,7 +48,7 @@ function ClickAwayListener(props) {
48
48
  activatedRef.current = false;
49
49
  };
50
50
  }, []);
51
- const handleRef = useForkRef(getReactNodeRef(children), nodeRef);
51
+ const handleRef = useForkRef(getReactElementRef(children), nodeRef);
52
52
 
53
53
  // The handler doesn't take event.defaultPrevented into account:
54
54
  //
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import { Transition } from 'react-transition-group';
6
6
  import elementAcceptingRef from '@mui/utils/elementAcceptingRef';
7
- import getReactNodeRef from '@mui/utils/getReactNodeRef';
7
+ import getReactElementRef from '@mui/utils/getReactElementRef';
8
8
  import { useTheme } from "../zero-styled/index.js";
9
9
  import { reflow, getTransitionProps } from "../transitions/utils.js";
10
10
  import useForkRef from "../utils/useForkRef.js";
@@ -48,7 +48,7 @@ const Fade = /*#__PURE__*/React.forwardRef(function Fade(props, ref) {
48
48
  } = props;
49
49
  const enableStrictModeCompat = true;
50
50
  const nodeRef = React.useRef(null);
51
- const handleRef = useForkRef(nodeRef, getReactNodeRef(children), ref);
51
+ const handleRef = useForkRef(nodeRef, getReactElementRef(children), ref);
52
52
  const normalizedTransitionCallback = callback => maybeIsAppearing => {
53
53
  if (callback) {
54
54
  const node = nodeRef.current;
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import useTimeout from '@mui/utils/useTimeout';
6
6
  import elementAcceptingRef from '@mui/utils/elementAcceptingRef';
7
- import getReactNodeRef from '@mui/utils/getReactNodeRef';
7
+ import getReactElementRef from '@mui/utils/getReactElementRef';
8
8
  import { Transition } from 'react-transition-group';
9
9
  import { useTheme } from "../zero-styled/index.js";
10
10
  import { getTransitionProps, reflow } from "../transitions/utils.js";
@@ -58,7 +58,7 @@ const Grow = /*#__PURE__*/React.forwardRef(function Grow(props, ref) {
58
58
  const autoTimeout = React.useRef();
59
59
  const theme = useTheme();
60
60
  const nodeRef = React.useRef(null);
61
- const handleRef = useForkRef(nodeRef, getReactNodeRef(children), ref);
61
+ const handleRef = useForkRef(nodeRef, getReactElementRef(children), ref);
62
62
  const normalizedTransitionCallback = callback => maybeIsAppearing => {
63
63
  if (callback) {
64
64
  const node = nodeRef.current;
@@ -37,7 +37,7 @@ const IconRoot = styled('span', {
37
37
  userSelect: 'none',
38
38
  width: '1em',
39
39
  height: '1em',
40
- // Chrome fix for https://bugs.chromium.org/p/chromium/issues/detail?id=820541
40
+ // Chrome fix for https://issues.chromium.org/issues/41375697
41
41
  // To remove at some point.
42
42
  overflow: 'hidden',
43
43
  display: 'inline-block',
@@ -293,6 +293,13 @@ const LinearProgressBar2 = styled('span', {
293
293
  style: {
294
294
  backgroundColor: 'var(--LinearProgressBar2-barColor, currentColor)'
295
295
  }
296
+ }, {
297
+ props: ({
298
+ ownerState
299
+ }) => ownerState.variant !== 'buffer' && ownerState.color === 'inherit',
300
+ style: {
301
+ backgroundColor: 'currentColor'
302
+ }
296
303
  }, {
297
304
  props: {
298
305
  color: 'inherit'
@@ -8,6 +8,7 @@ import List from "../List/index.js";
8
8
  import getScrollbarSize from "../utils/getScrollbarSize.js";
9
9
  import useForkRef from "../utils/useForkRef.js";
10
10
  import useEnhancedEffect from "../utils/useEnhancedEffect.js";
11
+ import { ownerWindow } from "../utils/index.js";
11
12
  import { jsx as _jsx } from "react/jsx-runtime";
12
13
  function nextItem(list, item, disableListWrap) {
13
14
  if (list === item) {
@@ -111,7 +112,7 @@ const MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {
111
112
  // of the menu.
112
113
  const noExplicitWidth = !listRef.current.style.width;
113
114
  if (containerElement.clientHeight < listRef.current.clientHeight && noExplicitWidth) {
114
- const scrollbarSize = `${getScrollbarSize(ownerDocument(containerElement))}px`;
115
+ const scrollbarSize = `${getScrollbarSize(ownerWindow(containerElement))}px`;
115
116
  listRef.current.style[direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;
116
117
  listRef.current.style.width = `calc(100% + ${scrollbarSize})`;
117
118
  }
@@ -187,12 +187,12 @@ const Modal = /*#__PURE__*/React.forwardRef(function Modal(inProps, ref) {
187
187
  getSlotProps: otherHandlers => {
188
188
  return getBackdropProps({
189
189
  ...otherHandlers,
190
- onClick: e => {
190
+ onClick: event => {
191
191
  if (onBackdropClick) {
192
- onBackdropClick(e);
192
+ onBackdropClick(event);
193
193
  }
194
194
  if (otherHandlers?.onClick) {
195
- otherHandlers.onClick(e);
195
+ otherHandlers.onClick(event);
196
196
  }
197
197
  }
198
198
  });