@mui/docs 7.3.2 → 7.3.4

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.
package/Ad/Ad.js CHANGED
@@ -64,22 +64,26 @@ const inHouseAds = [{
64
64
  name: 'templates',
65
65
  link: 'https://mui.com/store/?utm_source=docs&utm_medium=referral&utm_campaign=in-house-templates',
66
66
  img: '/static/ads-in-house/themes-2.jpg',
67
- description: '<b>Premium Templates</b>. Start your project with the best templates for admins, dashboards, and more.'
67
+ descriptionHeader: 'Premium Templates',
68
+ description: 'Start your project with the best templates for admins, dashboards, and more.'
68
69
  }, {
69
70
  name: 'themes',
70
71
  link: 'https://mui.com/store/?utm_source=docs&utm_medium=referral&utm_campaign=in-house-themes',
71
72
  img: '/static/ads-in-house/themes.png',
72
- description: '<b>Premium Themes</b>. Kickstart your application development with a ready-made theme.'
73
+ descriptionHeader: 'Premium Themes',
74
+ description: 'Kickstart your application development with a ready-made theme.'
73
75
  }, {
74
76
  name: 'tidelift',
75
77
  link: 'https://tidelift.com/?utm_source=npm-material-ui&utm_medium=referral&utm_campaign=enterprise&utm_content=ad',
76
78
  img: '/static/ads-in-house/tidelift.png',
77
- description: '<b>MUI for enterprise</b>. Save time and reduce risk. Managed open source — backed by maintainers.'
79
+ descriptionHeader: 'MUI for enterprise',
80
+ description: 'Save time and reduce risk. Managed open source — backed by maintainers.'
78
81
  }, {
79
82
  name: 'figma',
80
83
  link: 'https://mui.com/store/items/figma-react/?utm_source=docs&utm_medium=referral&utm_campaign=in-house-figma',
81
84
  img: '/static/ads-in-house/figma.png',
82
- description: '<b>For Figma</b>. A large UI kit with over 600 handcrafted Material UI, MUI X, Joy UI components 🎨.'
85
+ descriptionHeader: 'For Figma',
86
+ description: 'A large UI kit with over 600 handcrafted Material UI, MUI X, Joy UI components 🎨.'
83
87
  }];
84
88
  class AdErrorBoundary extends React.Component {
85
89
  state = {
package/Ad/AdCarbon.js CHANGED
@@ -117,7 +117,8 @@ function AdCarbonInline() {
117
117
  link: ad.statlink,
118
118
  img: ad.image,
119
119
  name: ad.company,
120
- description: `<strong>${ad.company}</strong> - ${ad.description}`,
120
+ descriptionHeader: ad.company,
121
+ description: ad.description,
121
122
  poweredby: 'Carbon',
122
123
  label: 'carbon-demo-inline'
123
124
  }
package/Ad/AdDisplay.d.ts CHANGED
@@ -3,6 +3,7 @@ export interface AdParameters {
3
3
  name: string;
4
4
  link: string;
5
5
  img?: string;
6
+ descriptionHeader: string;
6
7
  description: string;
7
8
  poweredby: string;
8
9
  label: string;
package/Ad/AdDisplay.js CHANGED
@@ -60,8 +60,6 @@ function AdDisplay(props) {
60
60
  }, [GADisplayRatio, ad.label]);
61
61
  const shape = shapeProp === 'auto' ? _AdManager.adShape : shapeProp;
62
62
  const Root = shape === 'image' ? ImageShape : InlineShape;
63
-
64
- /* eslint-disable react/no-danger */
65
63
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Root, {
66
64
  className: className,
67
65
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("a", {
@@ -81,16 +79,15 @@ function AdDisplay(props) {
81
79
  src: ad.img,
82
80
  alt: ad.name
83
81
  })
84
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
82
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
85
83
  className: "AdDisplay-description",
86
- dangerouslySetInnerHTML: {
87
- __html: ad.description
88
- }
84
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("strong", {
85
+ children: ad.descriptionHeader
86
+ }), " - ", ad.description]
89
87
  })]
90
88
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
91
89
  className: "AdDisplay-poweredby",
92
90
  children: t('adPublisher').replace('{{publisher}}', ad.poweredby)
93
91
  })]
94
92
  });
95
- /* eslint-enable react/no-danger */
96
93
  }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,91 @@
1
1
  # [Versions](https://mui.com/versions/)
2
2
 
3
+ ## 7.3.4
4
+
5
+ <!-- generated comparing v7.3.3..master -->
6
+
7
+ _Oct 2, 2025_
8
+
9
+ A big thanks to the 3 contributors who made this release possible. Here are some highlights ✨:
10
+
11
+ Small update to revert a change that broke the `<Tabs>` component. Also publishing a beta version of `@mui/lab` which was accidentally published as a stable release.
12
+
13
+ ### `@mui/material@7.3.4`
14
+
15
+ - [Tabs] Revert "Fix not scrolling to correct tab after refresh when auto scrollable (#46869)" (#47014) @ZeeshanTamboli
16
+
17
+ ### Docs
18
+
19
+ - Sort package manager automatically (#46897) @Janpot
20
+
21
+ ### Core
22
+
23
+ - Bring @mui/lab back to unstable version (#47012) @Janpot
24
+ - Fix `ThemeOptions` and `createTheme*` cyclic dependency (#47007) @siriwatknp
25
+
26
+ All contributors of this release in alphabetical order: @Janpot, @siriwatknp, @ZeeshanTamboli
27
+
28
+ ## 7.3.3
29
+
30
+ <!-- generated comparing v7.3.2..master -->
31
+
32
+ _Sep 30, 2025_
33
+
34
+ A big thanks to the 14 contributors who made this release possible.
35
+
36
+ ### `@mui/material@7.3.3`
37
+
38
+ - [Autocomplete] Sync highlighted index when popup is opened (#46894) @ZeeshanTamboli
39
+ - [CircularProgress] Add track slot via enableTrackSlot (#46907) @monam2
40
+ - [locale] Split locales into separate files (#46933) @christopherschroer
41
+ - [Tabs] Fix not scrolling to correct tab after refresh when auto scrollable (#46869) @Jayesh-11
42
+
43
+ ### Docs
44
+
45
+ - Add a guide for building extensible themes (#46896) @siriwatknp
46
+ - Add v7 community course to resources page (#46944) @alelthomas
47
+ - Improve performance of Default Theme Viewer (#46841) @sai6855
48
+ - Fix typo in blog component MainContent (#46868) @jonyen
49
+ - [Steppers] Replace TransitionProps with slotProps.transition (#46898) @sai6855
50
+
51
+ ### Core
52
+
53
+ - [blog] Fix year in Punta Cana retreat post (#46943) @mapache-salvaje
54
+ - [blog] Punta Cana retreat post (#46892) @mapache-salvaje
55
+ - [code-infra] Publish from CI (#46851) @Janpot
56
+ - [code-infra] Convert reportBrokenLink script to ts (#47002) @brijeshb42
57
+ - [code-infra] Update module resolution for typescript@next (#46940) @Janpot
58
+ - [code-infra] Run continuous releases during ci-check (#46948) @Janpot
59
+ - [code-infra] Fix github actions check for continuous release (#46941) @Janpot
60
+ - [code-infra] Address high/critical dependabot reports (#46937) @Janpot
61
+ - [code-infra] Update ci.yml triggers (#46860) @Janpot
62
+ - [code-infra] Exact match for renovate file name (#46916) @Janpot
63
+ - [code-infra] Disable dependency update for `@material-ui/core` in codemod (#46899) @Janpot
64
+ - [code-infra] Transpile `assertion-error` in karma tests (#46909) @Janpot
65
+ - [code-infra] Disable browserstack on circleci cron jobs (#46905) @Janpot
66
+ - [code-infra] Remove `copy-files` command usage from packages (#46902) @brijeshb42
67
+ - [code-infra] Low-hanging ts conversion (#46903) @Janpot
68
+ - [code-infra] Bring batch of changes from vitest PR (#46795) @Janpot
69
+ - [code-infra] Remove dependency on `fs-extra` (#46755) @bernardobelchior
70
+ - [code-infra] Make error code extraction independent of build (#46865) @brijeshb42
71
+ - [docs-infra] Fix markdown generation script to find correct files (#46954) @siriwatknp
72
+ - [docs-infra] Fix unnecessary redirects (#46951) @Janpot
73
+ - [docs-infra] Remove `dangerouslySetInnerHTML` for ad description (#46936) @Janpot
74
+ - [docs-infra] Display "View as Markdown" only on Material UI (#46861) @siriwatknp
75
+ - [infra] Fix JSON files not being imported in TS demos (#47000) @bernardobelchior
76
+ - [infra] Turn `literal | (string & {})` to `PropTypes.string` (#46934) @siriwatknp
77
+ - [infra] Bump node.js version and make local usage strict (#46834) @brijeshb42
78
+ - [infra] Remove "main" fields from publishable packages (#46856) @brijeshb42
79
+ - [internal] Refactor `useForkRef` TS types: tighten `cleanupRef` and simplify ref typing (#46967) @wo-o29
80
+ - [internal] Fix naming to match convention (2099cb0) @oliviertassinari
81
+ - [internal] Fix naming to match convention (29aad62) @oliviertassinari
82
+ - [internal] Use same option as other repositories (eabda77) @oliviertassinari
83
+ - [internal] Normalize <meta name='viewport' (9d1922a) @oliviertassinari
84
+ - [internal] Normalize charset='utf-8' (f1aae00) @oliviertassinari
85
+ - [test] Split infinitive (0237fda) @oliviertassinari
86
+
87
+ All contributors of this release in alphabetical order: @alelthomas, @bernardobelchior, @brijeshb42, @christopherschroer, @Janpot, @Jayesh-11, @jonyen, @mapache-salvaje, @monam2, @oliviertassinari, @sai6855, @siriwatknp, @wo-o29, @ZeeshanTamboli
88
+
3
89
  ## 7.3.2
4
90
 
5
91
  <!-- generated comparing v7.3.1..master -->
@@ -12,8 +12,8 @@ var _Chip = _interopRequireDefault(require("@mui/material/Chip"));
12
12
  var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
13
13
  var _ChatRounded2 = _interopRequireDefault(require("@mui/icons-material/ChatRounded"));
14
14
  var _GitHub = _interopRequireDefault(require("@mui/icons-material/GitHub"));
15
- var _SvgIcon2 = _interopRequireDefault(require("@mui/material/SvgIcon"));
16
15
  var _styles = require("@mui/material/styles");
16
+ var _MarkdownIcon2 = _interopRequireDefault(require("../svgIcons/MarkdownIcon"));
17
17
  var _SketchIcon = _interopRequireDefault(require("../svgIcons/SketchIcon"));
18
18
  var _FigmaIcon = _interopRequireDefault(require("../svgIcons/FigmaIcon"));
19
19
  var _BundleSizeIcon2 = _interopRequireDefault(require("../svgIcons/BundleSizeIcon"));
@@ -21,7 +21,7 @@ var _W3CIcon2 = _interopRequireDefault(require("../svgIcons/W3CIcon"));
21
21
  var _MaterialDesignIcon2 = _interopRequireDefault(require("../svgIcons/MaterialDesignIcon"));
22
22
  var _i18n = require("../i18n");
23
23
  var _jsxRuntime = require("react/jsx-runtime");
24
- var _SvgIcon, _ChatRounded, _BundleSizeIcon, _GitHubIcon, _W3CIcon, _MaterialDesignIcon, _li, _li2;
24
+ var _MarkdownIcon, _ChatRounded, _BundleSizeIcon, _GitHubIcon, _W3CIcon, _MaterialDesignIcon, _li, _li2;
25
25
  const Root = (0, _styles.styled)('ul')(({
26
26
  theme
27
27
  }) => ({
@@ -62,7 +62,7 @@ function ComponentLinkHeader(props) {
62
62
  const router = (0, _router.useRouter)();
63
63
  const packageName = headers.packageName ?? defaultPackageNames[headers.productId] ?? '@mui/material';
64
64
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Root, {
65
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
65
+ children: [packageName === '@mui/material' && /*#__PURE__*/(0, _jsxRuntime.jsx)("li", {
66
66
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Chip.default, {
67
67
  clickable: true,
68
68
  role: undefined,
@@ -70,22 +70,7 @@ function ComponentLinkHeader(props) {
70
70
  size: "small",
71
71
  variant: "outlined",
72
72
  href: `${router.pathname}.md`,
73
- icon: _SvgIcon || (_SvgIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_SvgIcon2.default, {
74
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("svg", {
75
- width: "16",
76
- height: "16",
77
- viewBox: "0 0 24 24",
78
- fill: "none",
79
- xmlns: "http://www.w3.org/2000/svg",
80
- "aria-hidden": "true",
81
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("title", {
82
- children: "Markdown"
83
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
84
- d: "M22.269 19.385H1.731a1.73 1.73 0 0 1-1.73-1.73V6.345a1.73 1.73 0 0 1 1.73-1.73h20.538a1.73 1.73 0 0 1 1.73 1.73v11.308a1.73 1.73 0 0 1-1.73 1.731zm-16.5-3.462v-4.5l2.308 2.885 2.307-2.885v4.5h2.308V8.078h-2.308l-2.307 2.885-2.308-2.885H3.461v7.847zM21.231 12h-2.308V8.077h-2.307V12h-2.308l3.461 4.039z",
85
- fill: "currentColor"
86
- })]
87
- })
88
- })),
73
+ icon: _MarkdownIcon || (_MarkdownIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_MarkdownIcon2.default, {})),
89
74
  "data-ga-event-category": "ComponentLinkHeader",
90
75
  "data-ga-event-action": "click",
91
76
  "data-ga-event-label": "Markdown",
@@ -16,6 +16,7 @@ var _Tab = require("@mui/base/Tab");
16
16
  var _useLocalStorageState = _interopRequireDefault(require("@mui/utils/useLocalStorageState"));
17
17
  var _HighlightedCode = require("../HighlightedCode");
18
18
  var _jsxRuntime = require("react/jsx-runtime");
19
+ const PACKAGE_MANAGER_ORDER = new Map(['npm', 'pnpm', 'yarn'].map((manager, index) => [manager, index]));
19
20
  const CodeTabList = exports.CodeTabList = (0, _styles.styled)(_TabsList.TabsList)(({
20
21
  theme
21
22
  }) => ({
@@ -319,9 +320,15 @@ function HighlightedCodeWithTabs(props) {
319
320
  tabs,
320
321
  storageKey
321
322
  } = props;
322
- const availableTabs = React.useMemo(() => tabs.map(({
323
- tab
324
- }) => tab), [tabs]);
323
+ const availableTabs = React.useMemo(() => {
324
+ const result = tabs.map(({
325
+ tab
326
+ }) => tab);
327
+ if (storageKey === 'package-manager') {
328
+ result.sort((a, b) => (PACKAGE_MANAGER_ORDER.get(a) ?? Infinity) - (PACKAGE_MANAGER_ORDER.get(b) ?? Infinity));
329
+ }
330
+ return result;
331
+ }, [storageKey, tabs]);
325
332
  const [activeTab, setActiveTab] = (0, _useLocalStorageState.default)(storageKey ?? null, availableTabs[0]);
326
333
  // During hydration, activeTab is null, default to first value.
327
334
  const defaultizedActiveTab = activeTab ?? availableTabs[0];
package/esm/Ad/Ad.js CHANGED
@@ -55,22 +55,26 @@ const inHouseAds = [{
55
55
  name: 'templates',
56
56
  link: 'https://mui.com/store/?utm_source=docs&utm_medium=referral&utm_campaign=in-house-templates',
57
57
  img: '/static/ads-in-house/themes-2.jpg',
58
- description: '<b>Premium Templates</b>. Start your project with the best templates for admins, dashboards, and more.'
58
+ descriptionHeader: 'Premium Templates',
59
+ description: 'Start your project with the best templates for admins, dashboards, and more.'
59
60
  }, {
60
61
  name: 'themes',
61
62
  link: 'https://mui.com/store/?utm_source=docs&utm_medium=referral&utm_campaign=in-house-themes',
62
63
  img: '/static/ads-in-house/themes.png',
63
- description: '<b>Premium Themes</b>. Kickstart your application development with a ready-made theme.'
64
+ descriptionHeader: 'Premium Themes',
65
+ description: 'Kickstart your application development with a ready-made theme.'
64
66
  }, {
65
67
  name: 'tidelift',
66
68
  link: 'https://tidelift.com/?utm_source=npm-material-ui&utm_medium=referral&utm_campaign=enterprise&utm_content=ad',
67
69
  img: '/static/ads-in-house/tidelift.png',
68
- description: '<b>MUI for enterprise</b>. Save time and reduce risk. Managed open source — backed by maintainers.'
70
+ descriptionHeader: 'MUI for enterprise',
71
+ description: 'Save time and reduce risk. Managed open source — backed by maintainers.'
69
72
  }, {
70
73
  name: 'figma',
71
74
  link: 'https://mui.com/store/items/figma-react/?utm_source=docs&utm_medium=referral&utm_campaign=in-house-figma',
72
75
  img: '/static/ads-in-house/figma.png',
73
- description: '<b>For Figma</b>. A large UI kit with over 600 handcrafted Material UI, MUI X, Joy UI components 🎨.'
76
+ descriptionHeader: 'For Figma',
77
+ description: 'A large UI kit with over 600 handcrafted Material UI, MUI X, Joy UI components 🎨.'
74
78
  }];
75
79
  class AdErrorBoundary extends React.Component {
76
80
  state = {
@@ -108,7 +108,8 @@ export function AdCarbonInline() {
108
108
  link: ad.statlink,
109
109
  img: ad.image,
110
110
  name: ad.company,
111
- description: `<strong>${ad.company}</strong> - ${ad.description}`,
111
+ descriptionHeader: ad.company,
112
+ description: ad.description,
112
113
  poweredby: 'Carbon',
113
114
  label: 'carbon-demo-inline'
114
115
  }
@@ -3,6 +3,7 @@ export interface AdParameters {
3
3
  name: string;
4
4
  link: string;
5
5
  img?: string;
6
+ descriptionHeader: string;
6
7
  description: string;
7
8
  poweredby: string;
8
9
  label: string;
@@ -53,8 +53,6 @@ export default function AdDisplay(props) {
53
53
  }, [GADisplayRatio, ad.label]);
54
54
  const shape = shapeProp === 'auto' ? adShape : shapeProp;
55
55
  const Root = shape === 'image' ? ImageShape : InlineShape;
56
-
57
- /* eslint-disable react/no-danger */
58
56
  return /*#__PURE__*/_jsxs(Root, {
59
57
  className: className,
60
58
  children: [/*#__PURE__*/_jsxs("a", {
@@ -74,16 +72,15 @@ export default function AdDisplay(props) {
74
72
  src: ad.img,
75
73
  alt: ad.name
76
74
  })
77
- }), /*#__PURE__*/_jsx("span", {
75
+ }), /*#__PURE__*/_jsxs("span", {
78
76
  className: "AdDisplay-description",
79
- dangerouslySetInnerHTML: {
80
- __html: ad.description
81
- }
77
+ children: [/*#__PURE__*/_jsx("strong", {
78
+ children: ad.descriptionHeader
79
+ }), " - ", ad.description]
82
80
  })]
83
81
  }), /*#__PURE__*/_jsx("span", {
84
82
  className: "AdDisplay-poweredby",
85
83
  children: t('adPublisher').replace('{{publisher}}', ad.poweredby)
86
84
  })]
87
85
  });
88
- /* eslint-enable react/no-danger */
89
86
  }
@@ -1,12 +1,12 @@
1
- var _SvgIcon, _ChatRounded, _BundleSizeIcon, _GitHubIcon, _W3CIcon, _MaterialDesignIcon, _li, _li2;
1
+ var _MarkdownIcon, _ChatRounded, _BundleSizeIcon, _GitHubIcon, _W3CIcon, _MaterialDesignIcon, _li, _li2;
2
2
  import * as React from 'react';
3
3
  import { useRouter } from 'next/router';
4
4
  import Chip from '@mui/material/Chip';
5
5
  import Tooltip from '@mui/material/Tooltip';
6
6
  import ChatRounded from '@mui/icons-material/ChatRounded';
7
7
  import GitHubIcon from '@mui/icons-material/GitHub';
8
- import SvgIcon from '@mui/material/SvgIcon';
9
8
  import { styled } from '@mui/material/styles';
9
+ import MarkdownIcon from "../svgIcons/MarkdownIcon.js";
10
10
  import SketchIcon from "../svgIcons/SketchIcon.js";
11
11
  import FigmaIcon from "../svgIcons/FigmaIcon.js";
12
12
  import BundleSizeIcon from "../svgIcons/BundleSizeIcon.js";
@@ -54,7 +54,7 @@ export function ComponentLinkHeader(props) {
54
54
  const router = useRouter();
55
55
  const packageName = headers.packageName ?? defaultPackageNames[headers.productId] ?? '@mui/material';
56
56
  return /*#__PURE__*/_jsxs(Root, {
57
- children: [/*#__PURE__*/_jsx("li", {
57
+ children: [packageName === '@mui/material' && /*#__PURE__*/_jsx("li", {
58
58
  children: /*#__PURE__*/_jsx(Chip, {
59
59
  clickable: true,
60
60
  role: undefined,
@@ -62,22 +62,7 @@ export function ComponentLinkHeader(props) {
62
62
  size: "small",
63
63
  variant: "outlined",
64
64
  href: `${router.pathname}.md`,
65
- icon: _SvgIcon || (_SvgIcon = /*#__PURE__*/_jsx(SvgIcon, {
66
- children: /*#__PURE__*/_jsxs("svg", {
67
- width: "16",
68
- height: "16",
69
- viewBox: "0 0 24 24",
70
- fill: "none",
71
- xmlns: "http://www.w3.org/2000/svg",
72
- "aria-hidden": "true",
73
- children: [/*#__PURE__*/_jsx("title", {
74
- children: "Markdown"
75
- }), /*#__PURE__*/_jsx("path", {
76
- d: "M22.269 19.385H1.731a1.73 1.73 0 0 1-1.73-1.73V6.345a1.73 1.73 0 0 1 1.73-1.73h20.538a1.73 1.73 0 0 1 1.73 1.73v11.308a1.73 1.73 0 0 1-1.73 1.731zm-16.5-3.462v-4.5l2.308 2.885 2.307-2.885v4.5h2.308V8.078h-2.308l-2.307 2.885-2.308-2.885H3.461v7.847zM21.231 12h-2.308V8.077h-2.307V12h-2.308l3.461 4.039z",
77
- fill: "currentColor"
78
- })]
79
- })
80
- })),
65
+ icon: _MarkdownIcon || (_MarkdownIcon = /*#__PURE__*/_jsx(MarkdownIcon, {})),
81
66
  "data-ga-event-category": "ComponentLinkHeader",
82
67
  "data-ga-event-action": "click",
83
68
  "data-ga-event-label": "Markdown",
@@ -7,6 +7,7 @@ import { Tab as TabBase } from '@mui/base/Tab';
7
7
  import useLocalStorageState from '@mui/utils/useLocalStorageState';
8
8
  import { HighlightedCode } from "../HighlightedCode/index.js";
9
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ const PACKAGE_MANAGER_ORDER = new Map(['npm', 'pnpm', 'yarn'].map((manager, index) => [manager, index]));
10
11
  export const CodeTabList = styled(TabsListBase)(({
11
12
  theme
12
13
  }) => ({
@@ -310,9 +311,15 @@ export function HighlightedCodeWithTabs(props) {
310
311
  tabs,
311
312
  storageKey
312
313
  } = props;
313
- const availableTabs = React.useMemo(() => tabs.map(({
314
- tab
315
- }) => tab), [tabs]);
314
+ const availableTabs = React.useMemo(() => {
315
+ const result = tabs.map(({
316
+ tab
317
+ }) => tab);
318
+ if (storageKey === 'package-manager') {
319
+ result.sort((a, b) => (PACKAGE_MANAGER_ORDER.get(a) ?? Infinity) - (PACKAGE_MANAGER_ORDER.get(b) ?? Infinity));
320
+ }
321
+ return result;
322
+ }, [storageKey, tabs]);
316
323
  const [activeTab, setActiveTab] = useLocalStorageState(storageKey ?? null, availableTabs[0]);
317
324
  // During hydration, activeTab is null, default to first value.
318
325
  const defaultizedActiveTab = activeTab ?? availableTabs[0];
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ import { SvgIconProps } from '@mui/material/SvgIcon';
3
+ export default function MarkdownIcon(props: SvgIconProps): React.JSX.Element;
@@ -0,0 +1,23 @@
1
+ var _svg;
2
+ import * as React from 'react';
3
+ import SvgIcon from '@mui/material/SvgIcon';
4
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
+ export default function MarkdownIcon(props) {
6
+ return /*#__PURE__*/_jsx(SvgIcon, {
7
+ ...props,
8
+ children: _svg || (_svg = /*#__PURE__*/_jsxs("svg", {
9
+ width: "16",
10
+ height: "16",
11
+ viewBox: "0 0 24 24",
12
+ fill: "none",
13
+ xmlns: "http://www.w3.org/2000/svg",
14
+ "aria-hidden": "true",
15
+ children: [/*#__PURE__*/_jsx("title", {
16
+ children: "Markdown"
17
+ }), /*#__PURE__*/_jsx("path", {
18
+ d: "M22.269 19.385H1.731a1.73 1.73 0 0 1-1.73-1.73V6.345a1.73 1.73 0 0 1 1.73-1.73h20.538a1.73 1.73 0 0 1 1.73 1.73v11.308a1.73 1.73 0 0 1-1.73 1.731zm-16.5-3.462v-4.5l2.308 2.885 2.307-2.885v4.5h2.308V8.078h-2.308l-2.307 2.885-2.308-2.885H3.461v7.847zM21.231 12h-2.308V8.077h-2.307V12h-2.308l3.461 4.039z",
19
+ fill: "currentColor"
20
+ })]
21
+ }))
22
+ });
23
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/docs",
3
- "version": "7.3.2",
3
+ "version": "7.3.4",
4
4
  "author": "MUI Team",
5
5
  "description": "MUI Docs - Documentation building blocks.",
6
6
  "keywords": [
@@ -21,12 +21,12 @@
21
21
  },
22
22
  "homepage": "https://github.com/mui/material-ui/tree/master/packages/mui-docs",
23
23
  "dependencies": {
24
- "@babel/runtime": "^7.28.3",
24
+ "@babel/runtime": "^7.28.4",
25
25
  "clipboard-copy": "^4.0.1",
26
26
  "clsx": "^2.1.1",
27
27
  "nprogress": "^0.2.0",
28
28
  "prop-types": "^15.8.1",
29
- "@mui/internal-markdown": "^2.0.10"
29
+ "@mui/internal-markdown": "^2.0.11"
30
30
  },
31
31
  "peerDependencies": {
32
32
  "@mui/base": "^5.0.0 || ^5.0.0-beta || ^7.0.0 || ^7.0.0-beta",
@@ -34,7 +34,7 @@
34
34
  "@mui/material": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^7.0.0-beta",
35
35
  "@mui/system": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^7.0.0-beta",
36
36
  "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
37
- "chai": "^4.5.0",
37
+ "chai": "^6.0.1",
38
38
  "csstype": "^3.1.3",
39
39
  "next": "^13.5.1 || ^14 || ^15.0.0",
40
40
  "react": "^17.0.0 || ^18.0.0 || ^19.0.0"
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ import { SvgIconProps } from '@mui/material/SvgIcon';
3
+ export default function MarkdownIcon(props: SvgIconProps): React.JSX.Element;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = MarkdownIcon;
9
+ var React = _interopRequireWildcard(require("react"));
10
+ var _SvgIcon = _interopRequireDefault(require("@mui/material/SvgIcon"));
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ var _svg;
13
+ function MarkdownIcon(props) {
14
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_SvgIcon.default, {
15
+ ...props,
16
+ children: _svg || (_svg = /*#__PURE__*/(0, _jsxRuntime.jsxs)("svg", {
17
+ width: "16",
18
+ height: "16",
19
+ viewBox: "0 0 24 24",
20
+ fill: "none",
21
+ xmlns: "http://www.w3.org/2000/svg",
22
+ "aria-hidden": "true",
23
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("title", {
24
+ children: "Markdown"
25
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
26
+ d: "M22.269 19.385H1.731a1.73 1.73 0 0 1-1.73-1.73V6.345a1.73 1.73 0 0 1 1.73-1.73h20.538a1.73 1.73 0 0 1 1.73 1.73v11.308a1.73 1.73 0 0 1-1.73 1.731zm-16.5-3.462v-4.5l2.308 2.885 2.307-2.885v4.5h2.308V8.078h-2.308l-2.307 2.885-2.308-2.885H3.461v7.847zM21.231 12h-2.308V8.077h-2.307V12h-2.308l3.461 4.039z",
27
+ fill: "currentColor"
28
+ })]
29
+ }))
30
+ });
31
+ }