@mui/material 9.0.0-alpha.1 → 9.0.0-alpha.3

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 (74) hide show
  1. package/Autocomplete/Autocomplete.d.mts +16 -0
  2. package/Autocomplete/Autocomplete.d.ts +16 -0
  3. package/Autocomplete/Autocomplete.js +48 -25
  4. package/Autocomplete/Autocomplete.mjs +48 -25
  5. package/Box/Box.d.mts +1 -0
  6. package/Box/Box.d.ts +1 -0
  7. package/Button/Button.d.mts +1 -0
  8. package/Button/Button.d.ts +1 -0
  9. package/CHANGELOG.md +65 -0
  10. package/CardHeader/CardHeader.js +1 -0
  11. package/CardHeader/CardHeader.mjs +1 -0
  12. package/Divider/Divider.d.mts +1 -0
  13. package/Divider/Divider.d.ts +1 -0
  14. package/List/List.d.mts +1 -0
  15. package/List/List.d.ts +1 -0
  16. package/ListItemButton/ListItemButton.d.mts +1 -0
  17. package/ListItemButton/ListItemButton.d.ts +1 -0
  18. package/ListItemIcon/ListItemIcon.d.mts +1 -0
  19. package/ListItemIcon/ListItemIcon.d.ts +1 -0
  20. package/ListItemText/ListItemText.d.mts +1 -0
  21. package/ListItemText/ListItemText.d.ts +1 -0
  22. package/ListItemText/ListItemText.js +1 -0
  23. package/ListItemText/ListItemText.mjs +1 -0
  24. package/ListSubheader/ListSubheader.d.mts +1 -0
  25. package/ListSubheader/ListSubheader.d.ts +1 -0
  26. package/MenuList/MenuList.js +76 -106
  27. package/MenuList/MenuList.mjs +76 -106
  28. package/Paper/Paper.d.mts +1 -0
  29. package/Paper/Paper.d.ts +1 -0
  30. package/SpeedDialIcon/SpeedDialIcon.js +4 -10
  31. package/SpeedDialIcon/SpeedDialIcon.mjs +4 -10
  32. package/Step/Step.js +7 -5
  33. package/Step/Step.mjs +7 -5
  34. package/StepButton/StepButton.js +16 -6
  35. package/StepButton/StepButton.mjs +16 -6
  36. package/StepConnector/StepConnector.js +2 -2
  37. package/StepConnector/StepConnector.mjs +2 -2
  38. package/StepContent/StepContent.js +2 -2
  39. package/StepContent/StepContent.mjs +2 -2
  40. package/StepIcon/StepIcon.js +1 -4
  41. package/StepIcon/StepIcon.mjs +1 -4
  42. package/StepLabel/StepLabel.js +3 -7
  43. package/StepLabel/StepLabel.mjs +3 -7
  44. package/Stepper/Stepper.js +44 -7
  45. package/Stepper/Stepper.mjs +44 -7
  46. package/Stepper/StepperContext.d.mts +7 -0
  47. package/Stepper/StepperContext.d.ts +7 -0
  48. package/Stepper/StepperContext.js +2 -1
  49. package/Stepper/StepperContext.mjs +1 -0
  50. package/Stepper/index.d.mts +0 -1
  51. package/Stepper/index.d.ts +0 -1
  52. package/Tab/Tab.js +0 -1
  53. package/Tab/Tab.mjs +0 -1
  54. package/Tabs/Tabs.js +46 -97
  55. package/Tabs/Tabs.mjs +46 -97
  56. package/Typography/Typography.d.mts +1 -0
  57. package/Typography/Typography.d.ts +1 -0
  58. package/index.js +1 -1
  59. package/index.mjs +1 -1
  60. package/package.json +20 -6
  61. package/themeCssVarsAugmentation/index.js +5 -0
  62. package/themeCssVarsAugmentation/index.mjs +5 -0
  63. package/useAutocomplete/useAutocomplete.js +24 -0
  64. package/useAutocomplete/useAutocomplete.mjs +24 -0
  65. package/utils/index.d.mts +2 -0
  66. package/utils/index.d.ts +2 -0
  67. package/utils/index.js +14 -0
  68. package/utils/index.mjs +2 -0
  69. package/utils/useRovingTabIndex.d.mts +2 -0
  70. package/utils/useRovingTabIndex.d.ts +2 -0
  71. package/utils/useRovingTabIndex.js +9 -0
  72. package/utils/useRovingTabIndex.mjs +2 -0
  73. package/version/index.js +2 -2
  74. package/version/index.mjs +2 -2
@@ -83,6 +83,21 @@ export interface AutocompleteRenderInputParams {
83
83
  }
84
84
  export interface AutocompletePropsSizeOverrides {}
85
85
  export interface AutocompleteSlots {
86
+ /**
87
+ * The component that renders the root.
88
+ * @default 'div'
89
+ */
90
+ root: React.ElementType;
91
+ /**
92
+ * The component used to render the clear indicator element.
93
+ * @default IconButton
94
+ */
95
+ clearIndicator: React.JSXElementConstructor<IconButtonProps>;
96
+ /**
97
+ * The component used to render the popup indicator element.
98
+ * @default IconButton
99
+ */
100
+ popupIndicator: React.JSXElementConstructor<IconButtonProps>;
86
101
  /**
87
102
  * The component used to render the listbox.
88
103
  * @default 'ul'
@@ -100,6 +115,7 @@ export interface AutocompleteSlots {
100
115
  popper: React.JSXElementConstructor<PopperProps & AutocompletePopperSlotPropsOverrides>;
101
116
  }
102
117
  export type AutocompleteSlotsAndSlotProps<Value, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent']> = CreateSlotsAndSlotProps<AutocompleteSlots, {
118
+ root: SlotProps<'div', {}, AutocompleteOwnerState<Value, Multiple, DisableClearable, FreeSolo, ChipComponent>>;
103
119
  chip: SlotProps<React.ElementType<Partial<ChipProps<ChipComponent>>>, {}, AutocompleteOwnerState<Value, Multiple, DisableClearable, FreeSolo, ChipComponent>>;
104
120
  clearIndicator: SlotProps<React.ElementType<Partial<IconButtonProps>>, {}, AutocompleteOwnerState<Value, Multiple, DisableClearable, FreeSolo, ChipComponent>>;
105
121
  /**
@@ -83,6 +83,21 @@ export interface AutocompleteRenderInputParams {
83
83
  }
84
84
  export interface AutocompletePropsSizeOverrides {}
85
85
  export interface AutocompleteSlots {
86
+ /**
87
+ * The component that renders the root.
88
+ * @default 'div'
89
+ */
90
+ root: React.ElementType;
91
+ /**
92
+ * The component used to render the clear indicator element.
93
+ * @default IconButton
94
+ */
95
+ clearIndicator: React.JSXElementConstructor<IconButtonProps>;
96
+ /**
97
+ * The component used to render the popup indicator element.
98
+ * @default IconButton
99
+ */
100
+ popupIndicator: React.JSXElementConstructor<IconButtonProps>;
86
101
  /**
87
102
  * The component used to render the listbox.
88
103
  * @default 'ul'
@@ -100,6 +115,7 @@ export interface AutocompleteSlots {
100
115
  popper: React.JSXElementConstructor<PopperProps & AutocompletePopperSlotPropsOverrides>;
101
116
  }
102
117
  export type AutocompleteSlotsAndSlotProps<Value, Multiple extends boolean | undefined, DisableClearable extends boolean | undefined, FreeSolo extends boolean | undefined, ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent']> = CreateSlotsAndSlotProps<AutocompleteSlots, {
118
+ root: SlotProps<'div', {}, AutocompleteOwnerState<Value, Multiple, DisableClearable, FreeSolo, ChipComponent>>;
103
119
  chip: SlotProps<React.ElementType<Partial<ChipProps<ChipComponent>>>, {}, AutocompleteOwnerState<Value, Multiple, DisableClearable, FreeSolo, ChipComponent>>;
104
120
  clearIndicator: SlotProps<React.ElementType<Partial<IconButtonProps>>, {}, AutocompleteOwnerState<Value, Multiple, DisableClearable, FreeSolo, ChipComponent>>;
105
121
  /**
@@ -15,7 +15,6 @@ Object.defineProperty(exports, "createFilterOptions", {
15
15
  exports.default = void 0;
16
16
  var React = _interopRequireWildcard(require("react"));
17
17
  var _propTypes = _interopRequireDefault(require("prop-types"));
18
- var _clsx = _interopRequireDefault(require("clsx"));
19
18
  var _integerPropType = _interopRequireDefault(require("@mui/utils/integerPropType"));
20
19
  var _chainPropTypes = _interopRequireDefault(require("@mui/utils/chainPropTypes"));
21
20
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
@@ -548,6 +547,17 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
548
547
  ...slotProps
549
548
  }
550
549
  };
550
+ const [RootSlot, rootProps] = (0, _useSlot.default)('root', {
551
+ ref,
552
+ className: [classes.root, className],
553
+ elementType: AutocompleteRoot,
554
+ externalForwardedProps: {
555
+ ...externalForwardedProps,
556
+ ...other
557
+ },
558
+ getSlotProps: getRootProps,
559
+ ownerState
560
+ });
551
561
  const [ListboxSlot, listboxProps] = (0, _useSlot.default)('listbox', {
552
562
  elementType: AutocompleteListbox,
553
563
  externalForwardedProps,
@@ -577,6 +587,31 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
577
587
  open: popupOpen
578
588
  }
579
589
  });
590
+ const [ClearIndicatorSlot, clearIndicatorProps] = (0, _useSlot.default)('clearIndicator', {
591
+ elementType: AutocompleteClearIndicator,
592
+ externalForwardedProps,
593
+ ownerState,
594
+ className: classes.clearIndicator,
595
+ shouldForwardComponentProp: true,
596
+ additionalProps: {
597
+ ...getClearProps(),
598
+ 'aria-label': clearText,
599
+ title: clearText
600
+ }
601
+ });
602
+ const [PopupIndicatorSlot, popupIndicatorProps] = (0, _useSlot.default)('popupIndicator', {
603
+ elementType: AutocompletePopupIndicator,
604
+ externalForwardedProps,
605
+ ownerState,
606
+ className: classes.popupIndicator,
607
+ shouldForwardComponentProp: true,
608
+ additionalProps: {
609
+ ...getPopupIndicatorProps(),
610
+ disabled,
611
+ 'aria-label': popupOpen ? closeText : openText,
612
+ title: popupOpen ? closeText : openText
613
+ }
614
+ });
580
615
  let startAdornment;
581
616
  const getCustomizedItemProps = params => ({
582
617
  className: classes.tag,
@@ -658,14 +693,9 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
658
693
  inputValue
659
694
  }, ownerState);
660
695
  };
661
- const clearIndicatorSlotProps = externalForwardedProps.slotProps.clearIndicator;
662
- const popupIndicatorSlotProps = externalForwardedProps.slotProps.popupIndicator;
663
696
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
664
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(AutocompleteRoot, {
665
- ref: ref,
666
- className: (0, _clsx.default)(classes.root, className),
667
- ownerState: ownerState,
668
- ...getRootProps(other),
697
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(RootSlot, {
698
+ ...rootProps,
669
699
  children: renderInput({
670
700
  id,
671
701
  disabled,
@@ -685,22 +715,11 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
685
715
  endAdornment: /*#__PURE__*/(0, _jsxRuntime.jsxs)(AutocompleteEndAdornment, {
686
716
  className: classes.endAdornment,
687
717
  ownerState: ownerState,
688
- children: [hasClearIcon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(AutocompleteClearIndicator, {
689
- ...getClearProps(),
690
- "aria-label": clearText,
691
- title: clearText,
692
- ownerState: ownerState,
693
- ...clearIndicatorSlotProps,
694
- className: (0, _clsx.default)(classes.clearIndicator, clearIndicatorSlotProps?.className),
718
+ children: [hasClearIcon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ClearIndicatorSlot, {
719
+ ...clearIndicatorProps,
695
720
  children: clearIcon
696
- }) : null, hasPopupIcon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(AutocompletePopupIndicator, {
697
- ...getPopupIndicatorProps(),
698
- disabled: disabled,
699
- "aria-label": popupOpen ? closeText : openText,
700
- title: popupOpen ? closeText : openText,
701
- ownerState: ownerState,
702
- ...popupIndicatorSlotProps,
703
- className: (0, _clsx.default)(classes.popupIndicator, popupIndicatorSlotProps?.className),
721
+ }) : null, hasPopupIcon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(PopupIndicatorSlot, {
722
+ ...popupIndicatorProps,
704
723
  children: popupIcon
705
724
  }) : null]
706
725
  })
@@ -1184,16 +1203,20 @@ process.env.NODE_ENV !== "production" ? Autocomplete.propTypes /* remove-proptyp
1184
1203
  listbox: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
1185
1204
  paper: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
1186
1205
  popper: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
1187
- popupIndicator: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])
1206
+ popupIndicator: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
1207
+ root: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])
1188
1208
  }),
1189
1209
  /**
1190
1210
  * The components used for each slot inside.
1191
1211
  * @default {}
1192
1212
  */
1193
1213
  slots: _propTypes.default.shape({
1214
+ clearIndicator: _propTypes.default.elementType,
1194
1215
  listbox: _propTypes.default.elementType,
1195
1216
  paper: _propTypes.default.elementType,
1196
- popper: _propTypes.default.elementType
1217
+ popper: _propTypes.default.elementType,
1218
+ popupIndicator: _propTypes.default.elementType,
1219
+ root: _propTypes.default.elementType
1197
1220
  }),
1198
1221
  /**
1199
1222
  * The system prop that allows defining system overrides as well as additional CSS styles.
@@ -3,7 +3,6 @@
3
3
  var _ClearIcon, _ArrowDropDownIcon;
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import clsx from 'clsx';
7
6
  import integerPropType from '@mui/utils/integerPropType';
8
7
  import chainPropTypes from '@mui/utils/chainPropTypes';
9
8
  import composeClasses from '@mui/utils/composeClasses';
@@ -536,6 +535,17 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
536
535
  ...slotProps
537
536
  }
538
537
  };
538
+ const [RootSlot, rootProps] = useSlot('root', {
539
+ ref,
540
+ className: [classes.root, className],
541
+ elementType: AutocompleteRoot,
542
+ externalForwardedProps: {
543
+ ...externalForwardedProps,
544
+ ...other
545
+ },
546
+ getSlotProps: getRootProps,
547
+ ownerState
548
+ });
539
549
  const [ListboxSlot, listboxProps] = useSlot('listbox', {
540
550
  elementType: AutocompleteListbox,
541
551
  externalForwardedProps,
@@ -565,6 +575,31 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
565
575
  open: popupOpen
566
576
  }
567
577
  });
578
+ const [ClearIndicatorSlot, clearIndicatorProps] = useSlot('clearIndicator', {
579
+ elementType: AutocompleteClearIndicator,
580
+ externalForwardedProps,
581
+ ownerState,
582
+ className: classes.clearIndicator,
583
+ shouldForwardComponentProp: true,
584
+ additionalProps: {
585
+ ...getClearProps(),
586
+ 'aria-label': clearText,
587
+ title: clearText
588
+ }
589
+ });
590
+ const [PopupIndicatorSlot, popupIndicatorProps] = useSlot('popupIndicator', {
591
+ elementType: AutocompletePopupIndicator,
592
+ externalForwardedProps,
593
+ ownerState,
594
+ className: classes.popupIndicator,
595
+ shouldForwardComponentProp: true,
596
+ additionalProps: {
597
+ ...getPopupIndicatorProps(),
598
+ disabled,
599
+ 'aria-label': popupOpen ? closeText : openText,
600
+ title: popupOpen ? closeText : openText
601
+ }
602
+ });
568
603
  let startAdornment;
569
604
  const getCustomizedItemProps = params => ({
570
605
  className: classes.tag,
@@ -646,14 +681,9 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
646
681
  inputValue
647
682
  }, ownerState);
648
683
  };
649
- const clearIndicatorSlotProps = externalForwardedProps.slotProps.clearIndicator;
650
- const popupIndicatorSlotProps = externalForwardedProps.slotProps.popupIndicator;
651
684
  return /*#__PURE__*/_jsxs(React.Fragment, {
652
- children: [/*#__PURE__*/_jsx(AutocompleteRoot, {
653
- ref: ref,
654
- className: clsx(classes.root, className),
655
- ownerState: ownerState,
656
- ...getRootProps(other),
685
+ children: [/*#__PURE__*/_jsx(RootSlot, {
686
+ ...rootProps,
657
687
  children: renderInput({
658
688
  id,
659
689
  disabled,
@@ -673,22 +703,11 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
673
703
  endAdornment: /*#__PURE__*/_jsxs(AutocompleteEndAdornment, {
674
704
  className: classes.endAdornment,
675
705
  ownerState: ownerState,
676
- children: [hasClearIcon ? /*#__PURE__*/_jsx(AutocompleteClearIndicator, {
677
- ...getClearProps(),
678
- "aria-label": clearText,
679
- title: clearText,
680
- ownerState: ownerState,
681
- ...clearIndicatorSlotProps,
682
- className: clsx(classes.clearIndicator, clearIndicatorSlotProps?.className),
706
+ children: [hasClearIcon ? /*#__PURE__*/_jsx(ClearIndicatorSlot, {
707
+ ...clearIndicatorProps,
683
708
  children: clearIcon
684
- }) : null, hasPopupIcon ? /*#__PURE__*/_jsx(AutocompletePopupIndicator, {
685
- ...getPopupIndicatorProps(),
686
- disabled: disabled,
687
- "aria-label": popupOpen ? closeText : openText,
688
- title: popupOpen ? closeText : openText,
689
- ownerState: ownerState,
690
- ...popupIndicatorSlotProps,
691
- className: clsx(classes.popupIndicator, popupIndicatorSlotProps?.className),
709
+ }) : null, hasPopupIcon ? /*#__PURE__*/_jsx(PopupIndicatorSlot, {
710
+ ...popupIndicatorProps,
692
711
  children: popupIcon
693
712
  }) : null]
694
713
  })
@@ -1172,16 +1191,20 @@ process.env.NODE_ENV !== "production" ? Autocomplete.propTypes /* remove-proptyp
1172
1191
  listbox: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
1173
1192
  paper: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
1174
1193
  popper: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
1175
- popupIndicator: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
1194
+ popupIndicator: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
1195
+ root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
1176
1196
  }),
1177
1197
  /**
1178
1198
  * The components used for each slot inside.
1179
1199
  * @default {}
1180
1200
  */
1181
1201
  slots: PropTypes.shape({
1202
+ clearIndicator: PropTypes.elementType,
1182
1203
  listbox: PropTypes.elementType,
1183
1204
  paper: PropTypes.elementType,
1184
- popper: PropTypes.elementType
1205
+ popper: PropTypes.elementType,
1206
+ popupIndicator: PropTypes.elementType,
1207
+ root: PropTypes.elementType
1185
1208
  }),
1186
1209
  /**
1187
1210
  * The system prop that allows defining system overrides as well as additional CSS styles.
package/Box/Box.d.mts CHANGED
@@ -8,6 +8,7 @@ import { Theme as MaterialTheme } from "../styles/index.mjs";
8
8
  * Demos:
9
9
  *
10
10
  * - [Box](https://next.mui.com/material-ui/react-box/)
11
+ * - [Menubar](https://next.mui.com/material-ui/react-menubar/)
11
12
  *
12
13
  * API:
13
14
  *
package/Box/Box.d.ts CHANGED
@@ -8,6 +8,7 @@ import { Theme as MaterialTheme } from "../styles/index.js";
8
8
  * Demos:
9
9
  *
10
10
  * - [Box](https://next.mui.com/material-ui/react-box/)
11
+ * - [Menubar](https://next.mui.com/material-ui/react-menubar/)
11
12
  *
12
13
  * API:
13
14
  *
@@ -117,6 +117,7 @@ export type ExtendButton<TypeMap extends OverridableTypeMap> = ((props: {
117
117
  *
118
118
  * - [Button Group](https://next.mui.com/material-ui/react-button-group/)
119
119
  * - [Button](https://next.mui.com/material-ui/react-button/)
120
+ * - [Menubar](https://next.mui.com/material-ui/react-menubar/)
120
121
  * - [Number Field](https://next.mui.com/material-ui/react-number-field/)
121
122
  *
122
123
  * API:
@@ -117,6 +117,7 @@ export type ExtendButton<TypeMap extends OverridableTypeMap> = ((props: {
117
117
  *
118
118
  * - [Button Group](https://next.mui.com/material-ui/react-button-group/)
119
119
  * - [Button](https://next.mui.com/material-ui/react-button/)
120
+ * - [Menubar](https://next.mui.com/material-ui/react-menubar/)
120
121
  * - [Number Field](https://next.mui.com/material-ui/react-number-field/)
121
122
  *
122
123
  * API:
package/CHANGELOG.md CHANGED
@@ -1,5 +1,70 @@
1
1
  # [Versions](https://mui.com/versions/)
2
2
 
3
+ ## 9.0.0-alpha.3
4
+
5
+ <!-- generated comparing v9.0.0-alpha.2..master -->
6
+
7
+ _Mar 12, 2026_
8
+
9
+ A big thanks to the 10 contributors who made this release possible. Here are some highlights ✨:
10
+
11
+ - 📖 A new [Menubar](https://mui.com/material-ui/react-menubar/) component page integrated with [Base UI](https://base-ui.com/react/components/menubar)
12
+ - ♿️ Improved the Roving TabIndex keyboard navigation for the Stepper, Tabs and MenuList components.
13
+
14
+ ### `@mui/material@9.0.0-alpha.3`
15
+
16
+ - [autocomplete] Add `root` slot (#47852) @GerardasB
17
+ - [autocomplete] Fix popup reopening on window focus regain with openOnFocus (#47790) @aman44444
18
+ - [autocomplete] Support full slots for clearIndicator and popupIndicator (#47891) @silviuaavram
19
+ - [material-ui] Partially revert "[material-ui] Clean up duplicated CSS rules (#47838)" (#47927) @sai6855
20
+ - [stepper][menulist][tabs] Improve accessibility (#47687) @silviuaavram
21
+
22
+ ### Docs
23
+
24
+ - [docs][codemod] Add v7 migration docs for deprecated Autocomplete APIs and Autocomplete codemod (#47945) @ZeeshanTamboli
25
+ - [docs] Update faq about vendor chunks (#47747) @Janpot
26
+ - [docs] Use direct palette vars in Tailwind v4 snippet (#47940) @Ahmad-Alaziz
27
+ - [docs][menubar] Add Menubar component page (#47616) @siriwatknp
28
+
29
+ ### Core
30
+
31
+ - [core] Fix the release prepare steps (#47951) @silviuaavram
32
+ - [core] Remove Joy UI code and docs (#47939) @mnajdova
33
+ - [code-infra] Add previously missed export of themeCssVarsAugmentation (#47918) @brijeshb42
34
+ - [docs-infra] Import font module for nextjs transpilation (#47935) @brijeshb42
35
+ - [docs-infra] Migrate simpler modules from docs to mui-docs (#47897) @brijeshb42
36
+ - [test] Fix detached anchorEl elements in tests (#47929) @Janpot
37
+
38
+ All contributors of this release in alphabetical order: @Ahmad-Alaziz, @aman44444, @brijeshb42, @GerardasB, @Janpot, @mnajdova, @sai6855, @silviuaavram, @siriwatknp, @ZeeshanTamboli
39
+
40
+ ## 9.0.0-alpha.2
41
+
42
+ <!-- generated comparing v9.0.0-alpha.1..master -->
43
+
44
+ _Mar 5, 2026_
45
+
46
+ A big thanks to the 4 contributors who made this release possible.
47
+
48
+ ### @mui/material@9.0.0-alpha.2
49
+
50
+ - Clean up duplicated CSS rules (#47838) @sai6855
51
+
52
+ ### @mui/system@9.0.0-alpha.2
53
+
54
+ - Refactor sortContainerQueries to define regex outside of sort function (#47817) @sai6855
55
+
56
+ ### Docs
57
+
58
+ - Move shared components to @mui/docs package (#47672) @Janpot
59
+ - Fix small typo in NumberField page (#47877) @arthur-plazanet
60
+
61
+ ### Core
62
+
63
+ - [code-infra] Reduce paths for attw checks (#47896) @brijeshb42
64
+ - [docs-infra] Run syncTeamMembers (#47900) @Janpot
65
+
66
+ All contributors of this release in alphabetical order: @arthur-plazanet, @brijeshb42, @Janpot, @sai6855
67
+
3
68
  ## 9.0.0-alpha.1
4
69
 
5
70
  <!-- generated comparing v9.0.0-alpha.0..master -->
@@ -68,6 +68,7 @@ const CardHeaderContent = (0, _zeroStyled.styled)('div', {
68
68
  slot: 'Content'
69
69
  })({
70
70
  flex: '1 1 auto',
71
+ // Combine this and the below selector once https://github.com/emotion-js/emotion/issues/3366 is solved
71
72
  [`.${_Typography.typographyClasses.root}:where(& .${_cardHeaderClasses.default.title})`]: {
72
73
  display: 'block'
73
74
  },
@@ -61,6 +61,7 @@ const CardHeaderContent = styled('div', {
61
61
  slot: 'Content'
62
62
  })({
63
63
  flex: '1 1 auto',
64
+ // Combine this and the below selector once https://github.com/emotion-js/emotion/issues/3366 is solved
64
65
  [`.${typographyClasses.root}:where(& .${cardHeaderClasses.title})`]: {
65
66
  display: 'block'
66
67
  },
@@ -62,6 +62,7 @@ export interface DividerTypeMap<AdditionalProps = {}, RootComponent extends Reac
62
62
  *
63
63
  * - [Divider](https://next.mui.com/material-ui/react-divider/)
64
64
  * - [Lists](https://next.mui.com/material-ui/react-list/)
65
+ * - [Menubar](https://next.mui.com/material-ui/react-menubar/)
65
66
  *
66
67
  * API:
67
68
  *
@@ -62,6 +62,7 @@ export interface DividerTypeMap<AdditionalProps = {}, RootComponent extends Reac
62
62
  *
63
63
  * - [Divider](https://next.mui.com/material-ui/react-divider/)
64
64
  * - [Lists](https://next.mui.com/material-ui/react-list/)
65
+ * - [Menubar](https://next.mui.com/material-ui/react-menubar/)
65
66
  *
66
67
  * API:
67
68
  *
package/List/List.d.mts CHANGED
@@ -52,6 +52,7 @@ export type ExtendList<TypeMap extends OverridableTypeMap> = OverridableComponen
52
52
  * Demos:
53
53
  *
54
54
  * - [Lists](https://next.mui.com/material-ui/react-list/)
55
+ * - [Menubar](https://next.mui.com/material-ui/react-menubar/)
55
56
  * - [Transfer List](https://next.mui.com/material-ui/react-transfer-list/)
56
57
  *
57
58
  * API:
package/List/List.d.ts CHANGED
@@ -52,6 +52,7 @@ export type ExtendList<TypeMap extends OverridableTypeMap> = OverridableComponen
52
52
  * Demos:
53
53
  *
54
54
  * - [Lists](https://next.mui.com/material-ui/react-list/)
55
+ * - [Menubar](https://next.mui.com/material-ui/react-menubar/)
55
56
  * - [Transfer List](https://next.mui.com/material-ui/react-transfer-list/)
56
57
  *
57
58
  * API:
@@ -72,6 +72,7 @@ export type ListItemButtonTypeMap<AdditionalProps = {}, RootComponent extends Re
72
72
  * Demos:
73
73
  *
74
74
  * - [Lists](https://next.mui.com/material-ui/react-list/)
75
+ * - [Menubar](https://next.mui.com/material-ui/react-menubar/)
75
76
  *
76
77
  * API:
77
78
  *
@@ -72,6 +72,7 @@ export type ListItemButtonTypeMap<AdditionalProps = {}, RootComponent extends Re
72
72
  * Demos:
73
73
  *
74
74
  * - [Lists](https://next.mui.com/material-ui/react-list/)
75
+ * - [Menubar](https://next.mui.com/material-ui/react-menubar/)
75
76
  *
76
77
  * API:
77
78
  *
@@ -25,6 +25,7 @@ export interface ListItemIconProps extends StandardProps<React.HTMLAttributes<HT
25
25
  * Demos:
26
26
  *
27
27
  * - [Lists](https://next.mui.com/material-ui/react-list/)
28
+ * - [Menubar](https://next.mui.com/material-ui/react-menubar/)
28
29
  *
29
30
  * API:
30
31
  *
@@ -25,6 +25,7 @@ export interface ListItemIconProps extends StandardProps<React.HTMLAttributes<HT
25
25
  * Demos:
26
26
  *
27
27
  * - [Lists](https://next.mui.com/material-ui/react-list/)
28
+ * - [Menubar](https://next.mui.com/material-ui/react-menubar/)
28
29
  *
29
30
  * API:
30
31
  *
@@ -98,6 +98,7 @@ export interface ListItemTextProps<PrimaryTypographyComponent extends React.Elem
98
98
  * Demos:
99
99
  *
100
100
  * - [Lists](https://next.mui.com/material-ui/react-list/)
101
+ * - [Menubar](https://next.mui.com/material-ui/react-menubar/)
101
102
  *
102
103
  * API:
103
104
  *
@@ -98,6 +98,7 @@ export interface ListItemTextProps<PrimaryTypographyComponent extends React.Elem
98
98
  * Demos:
99
99
  *
100
100
  * - [Lists](https://next.mui.com/material-ui/react-list/)
101
+ * - [Menubar](https://next.mui.com/material-ui/react-menubar/)
101
102
  *
102
103
  * API:
103
104
  *
@@ -51,6 +51,7 @@ const ListItemTextRoot = (0, _zeroStyled.styled)('div', {
51
51
  minWidth: 0,
52
52
  marginTop: 4,
53
53
  marginBottom: 4,
54
+ // Combine this and the below selector once https://github.com/emotion-js/emotion/issues/3366 is solved
54
55
  [`.${_Typography.typographyClasses.root}:where(& .${_listItemTextClasses.default.primary})`]: {
55
56
  display: 'block'
56
57
  },
@@ -44,6 +44,7 @@ const ListItemTextRoot = styled('div', {
44
44
  minWidth: 0,
45
45
  marginTop: 4,
46
46
  marginBottom: 4,
47
+ // Combine this and the below selector once https://github.com/emotion-js/emotion/issues/3366 is solved
47
48
  [`.${typographyClasses.root}:where(& .${listItemTextClasses.primary})`]: {
48
49
  display: 'block'
49
50
  },
@@ -47,6 +47,7 @@ export interface ListSubheaderTypeMap<AdditionalProps = {}, RootComponent extend
47
47
  * Demos:
48
48
  *
49
49
  * - [Lists](https://next.mui.com/material-ui/react-list/)
50
+ * - [Menubar](https://next.mui.com/material-ui/react-menubar/)
50
51
  *
51
52
  * API:
52
53
  *
@@ -47,6 +47,7 @@ export interface ListSubheaderTypeMap<AdditionalProps = {}, RootComponent extend
47
47
  * Demos:
48
48
  *
49
49
  * - [Lists](https://next.mui.com/material-ui/react-list/)
50
+ * - [Menubar](https://next.mui.com/material-ui/react-menubar/)
50
51
  *
51
52
  * API:
52
53
  *