@mui/material 7.3.5 → 7.3.6

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 (72) hide show
  1. package/Accordion/Accordion.d.ts +56 -55
  2. package/AppBar/AppBar.d.ts +13 -2
  3. package/AppBar/AppBar.js +12 -1
  4. package/Button/Button.d.ts +1 -0
  5. package/ButtonBase/ButtonBase.js +8 -1
  6. package/ButtonBase/TouchRipple.js +1 -1
  7. package/CHANGELOG.md +87 -0
  8. package/Chip/Chip.js +1 -1
  9. package/CssBaseline/CssBaseline.d.ts +1 -1
  10. package/CssBaseline/CssBaseline.js +1 -1
  11. package/FormControl/FormControl.d.ts +1 -0
  12. package/FormHelperText/FormHelperText.d.ts +1 -0
  13. package/FormLabel/FormLabel.d.ts +1 -0
  14. package/IconButton/IconButton.d.ts +1 -0
  15. package/InputLabel/InputLabel.d.ts +1 -0
  16. package/ListItem/ListItem.d.ts +5 -0
  17. package/ListItem/ListItem.js +19 -4
  18. package/MenuList/MenuList.js +2 -1
  19. package/OutlinedInput/OutlinedInput.d.ts +1 -0
  20. package/ScopedCssBaseline/ScopedCssBaseline.d.ts +1 -1
  21. package/ScopedCssBaseline/ScopedCssBaseline.js +1 -1
  22. package/Select/SelectInput.d.ts +2 -0
  23. package/Select/SelectInput.js +6 -0
  24. package/Slider/Slider.d.ts +1 -1
  25. package/Slider/useSlider.types.d.ts +1 -1
  26. package/Snackbar/Snackbar.js +1 -3
  27. package/Tabs/Tabs.js +3 -2
  28. package/TextField/TextField.d.ts +10 -5
  29. package/Unstable_TrapFocus/FocusTrap.js +13 -8
  30. package/esm/Accordion/Accordion.d.ts +56 -55
  31. package/esm/AppBar/AppBar.d.ts +13 -2
  32. package/esm/AppBar/AppBar.js +12 -1
  33. package/esm/Button/Button.d.ts +1 -0
  34. package/esm/ButtonBase/ButtonBase.js +8 -1
  35. package/esm/ButtonBase/TouchRipple.js +1 -1
  36. package/esm/Chip/Chip.js +1 -1
  37. package/esm/CssBaseline/CssBaseline.d.ts +1 -1
  38. package/esm/CssBaseline/CssBaseline.js +1 -1
  39. package/esm/FormControl/FormControl.d.ts +1 -0
  40. package/esm/FormHelperText/FormHelperText.d.ts +1 -0
  41. package/esm/FormLabel/FormLabel.d.ts +1 -0
  42. package/esm/IconButton/IconButton.d.ts +1 -0
  43. package/esm/InputLabel/InputLabel.d.ts +1 -0
  44. package/esm/ListItem/ListItem.d.ts +5 -0
  45. package/esm/ListItem/ListItem.js +19 -4
  46. package/esm/MenuList/MenuList.js +2 -1
  47. package/esm/OutlinedInput/OutlinedInput.d.ts +1 -0
  48. package/esm/ScopedCssBaseline/ScopedCssBaseline.d.ts +1 -1
  49. package/esm/ScopedCssBaseline/ScopedCssBaseline.js +1 -1
  50. package/esm/Select/SelectInput.d.ts +2 -0
  51. package/esm/Select/SelectInput.js +6 -0
  52. package/esm/Slider/Slider.d.ts +1 -1
  53. package/esm/Slider/useSlider.types.d.ts +1 -1
  54. package/esm/Snackbar/Snackbar.js +1 -3
  55. package/esm/Tabs/Tabs.js +3 -2
  56. package/esm/TextField/TextField.d.ts +10 -5
  57. package/esm/Unstable_TrapFocus/FocusTrap.js +13 -8
  58. package/esm/index.js +1 -1
  59. package/esm/styles/createThemeNoVars.d.ts +4 -3
  60. package/esm/styles/createThemeWithVars.d.ts +2 -2
  61. package/esm/useAutocomplete/useAutocomplete.js +15 -2
  62. package/esm/utils/getActiveElement.d.ts +2 -0
  63. package/esm/utils/getActiveElement.js +2 -0
  64. package/esm/version/index.js +2 -2
  65. package/index.js +1 -1
  66. package/package.json +6 -6
  67. package/styles/createThemeNoVars.d.ts +4 -3
  68. package/styles/createThemeWithVars.d.ts +2 -2
  69. package/useAutocomplete/useAutocomplete.js +15 -2
  70. package/utils/getActiveElement.d.ts +2 -0
  71. package/utils/getActiveElement.js +9 -0
  72. package/version/index.js +2 -2
@@ -55,62 +55,63 @@ export type AccordionSlotsAndSlotProps = CreateSlotsAndSlotProps<AccordionSlots,
55
55
  */
56
56
  region: SlotProps<'div', AccordionRegionSlotPropsOverrides, AccordionOwnerState>;
57
57
  }>;
58
+ export interface AccordionOwnProps {
59
+ /**
60
+ * The content of the component.
61
+ */
62
+ children: NonNullable<React.ReactNode>;
63
+ /**
64
+ * Override or extend the styles applied to the component.
65
+ */
66
+ classes?: Partial<AccordionClasses>;
67
+ /**
68
+ * If `true`, expands the accordion by default.
69
+ * @default false
70
+ */
71
+ defaultExpanded?: boolean;
72
+ /**
73
+ * If `true`, the component is disabled.
74
+ * @default false
75
+ */
76
+ disabled?: boolean;
77
+ /**
78
+ * If `true`, it removes the margin between two expanded accordion items and the increase of height.
79
+ * @default false
80
+ */
81
+ disableGutters?: boolean;
82
+ /**
83
+ * If `true`, expands the accordion, otherwise collapse it.
84
+ * Setting this prop enables control over the accordion.
85
+ */
86
+ expanded?: boolean;
87
+ /**
88
+ * Callback fired when the expand/collapse state is changed.
89
+ *
90
+ * @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.
91
+ * @param {boolean} expanded The `expanded` state of the accordion.
92
+ */
93
+ onChange?: (event: React.SyntheticEvent, expanded: boolean) => void;
94
+ /**
95
+ * The system prop that allows defining system overrides as well as additional CSS styles.
96
+ */
97
+ sx?: SxProps<Theme>;
98
+ /**
99
+ * The component used for the transition.
100
+ * [Follow this guide](https://mui.com/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
101
+ * @deprecated Use `slots.transition` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
102
+ */
103
+ TransitionComponent?: React.JSXElementConstructor<TransitionProps & {
104
+ children?: React.ReactElement<unknown, any>;
105
+ }>;
106
+ /**
107
+ * Props applied to the transition element.
108
+ * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.
109
+ * @deprecated Use `slotProps.transition` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
110
+ */
111
+ TransitionProps?: TransitionProps;
112
+ }
58
113
  export type AccordionTypeMap<AdditionalProps = {}, RootComponent extends React.ElementType = 'div'> = ExtendPaperTypeMap<{
59
- props: AdditionalProps & {
60
- /**
61
- * The content of the component.
62
- */
63
- children: NonNullable<React.ReactNode>;
64
- /**
65
- * Override or extend the styles applied to the component.
66
- */
67
- classes?: Partial<AccordionClasses>;
68
- /**
69
- * If `true`, expands the accordion by default.
70
- * @default false
71
- */
72
- defaultExpanded?: boolean;
73
- /**
74
- * If `true`, the component is disabled.
75
- * @default false
76
- */
77
- disabled?: boolean;
78
- /**
79
- * If `true`, it removes the margin between two expanded accordion items and the increase of height.
80
- * @default false
81
- */
82
- disableGutters?: boolean;
83
- /**
84
- * If `true`, expands the accordion, otherwise collapse it.
85
- * Setting this prop enables control over the accordion.
86
- */
87
- expanded?: boolean;
88
- /**
89
- * Callback fired when the expand/collapse state is changed.
90
- *
91
- * @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.
92
- * @param {boolean} expanded The `expanded` state of the accordion.
93
- */
94
- onChange?: (event: React.SyntheticEvent, expanded: boolean) => void;
95
- /**
96
- * The system prop that allows defining system overrides as well as additional CSS styles.
97
- */
98
- sx?: SxProps<Theme>;
99
- /**
100
- * The component used for the transition.
101
- * [Follow this guide](https://mui.com/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
102
- * @deprecated Use `slots.transition` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
103
- */
104
- TransitionComponent?: React.JSXElementConstructor<TransitionProps & {
105
- children?: React.ReactElement<unknown, any>;
106
- }>;
107
- /**
108
- * Props applied to the transition element.
109
- * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.
110
- * @deprecated Use `slotProps.transition` instead. This prop will be removed in a future major release. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
111
- */
112
- TransitionProps?: TransitionProps;
113
- } & AccordionSlotsAndSlotProps;
114
+ props: AdditionalProps & AccordionOwnProps & AccordionSlotsAndSlotProps;
114
115
  defaultComponent: RootComponent;
115
116
  }, 'onChange' | 'classes'>;
116
117
 
@@ -18,6 +18,12 @@ export interface AppBarOwnProps {
18
18
  * @default 'primary'
19
19
  */
20
20
  color?: OverridableStringUnion<PropTypes.Color | 'transparent' | 'error' | 'info' | 'success' | 'warning', AppBarPropsColorOverrides>;
21
+ /**
22
+ * Shadow depth, corresponds to `dp` in the spec.
23
+ * It accepts values between 0 and 24 inclusive.
24
+ * @default 4
25
+ */
26
+ elevation?: number;
21
27
  /**
22
28
  * If true, the `color` prop is applied in dark mode.
23
29
  * @default false
@@ -25,11 +31,16 @@ export interface AppBarOwnProps {
25
31
  enableColorOnDark?: boolean;
26
32
  /**
27
33
  * The positioning type. The behavior of the different options is described
28
- * [in the MDN web docs](https://developer.mozilla.org/en-US/docs/Web/CSS/position).
34
+ * [in the MDN web docs](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/position).
29
35
  * Note: `sticky` is not universally supported and will fall back to `static` when unavailable.
30
36
  * @default 'fixed'
31
37
  */
32
38
  position?: 'fixed' | 'absolute' | 'sticky' | 'static' | 'relative';
39
+ /**
40
+ * If `false`, rounded corners are enabled.
41
+ * @default true
42
+ */
43
+ square?: boolean;
33
44
  /**
34
45
  * The system prop that allows defining system overrides as well as additional CSS styles.
35
46
  */
@@ -38,7 +49,7 @@ export interface AppBarOwnProps {
38
49
  export type AppBarTypeMap<AdditionalProps = {}, RootComponent extends React.ElementType = 'header'> = ExtendPaperTypeMap<{
39
50
  props: AdditionalProps & AppBarOwnProps;
40
51
  defaultComponent: RootComponent;
41
- }, 'position' | 'color' | 'classes'>;
52
+ }, 'position' | 'color' | 'classes' | 'elevation' | 'square'>;
42
53
 
43
54
  /**
44
55
  *
package/AppBar/AppBar.js CHANGED
@@ -214,6 +214,12 @@ process.env.NODE_ENV !== "production" ? AppBar.propTypes /* remove-proptypes */
214
214
  * @default 'primary'
215
215
  */
216
216
  color: _propTypes.default /* @typescript-to-proptypes-ignore */.oneOfType([_propTypes.default.oneOf(['default', 'inherit', 'primary', 'secondary', 'transparent', 'error', 'info', 'success', 'warning']), _propTypes.default.string]),
217
+ /**
218
+ * Shadow depth, corresponds to `dp` in the spec.
219
+ * It accepts values between 0 and 24 inclusive.
220
+ * @default 4
221
+ */
222
+ elevation: _propTypes.default.number,
217
223
  /**
218
224
  * If true, the `color` prop is applied in dark mode.
219
225
  * @default false
@@ -221,11 +227,16 @@ process.env.NODE_ENV !== "production" ? AppBar.propTypes /* remove-proptypes */
221
227
  enableColorOnDark: _propTypes.default.bool,
222
228
  /**
223
229
  * The positioning type. The behavior of the different options is described
224
- * [in the MDN web docs](https://developer.mozilla.org/en-US/docs/Web/CSS/position).
230
+ * [in the MDN web docs](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/position).
225
231
  * Note: `sticky` is not universally supported and will fall back to `static` when unavailable.
226
232
  * @default 'fixed'
227
233
  */
228
234
  position: _propTypes.default.oneOf(['absolute', 'fixed', 'relative', 'static', 'sticky']),
235
+ /**
236
+ * If `false`, rounded corners are enabled.
237
+ * @default true
238
+ */
239
+ square: _propTypes.default.bool,
229
240
  /**
230
241
  * The system prop that allows defining system overrides as well as additional CSS styles.
231
242
  */
@@ -117,6 +117,7 @@ export type ExtendButton<TypeMap extends OverridableTypeMap> = ((props: {
117
117
  *
118
118
  * - [Button Group](https://mui.com/material-ui/react-button-group/)
119
119
  * - [Button](https://mui.com/material-ui/react-button/)
120
+ * - [Number Field](https://mui.com/material-ui/react-number-field/)
120
121
  *
121
122
  * API:
122
123
  *
@@ -229,7 +229,10 @@ const ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, re
229
229
  }
230
230
  const buttonProps = {};
231
231
  if (ComponentProp === 'button') {
232
- buttonProps.type = type === undefined ? 'button' : type;
232
+ const hasFormAttributes = !!other.formAction;
233
+ // ButtonBase was defaulting to type="button" when no type prop was provided, which prevented form submission and broke formAction functionality.
234
+ // The fix checks for form-related attributes and skips the default type to allow the browser's natural submit behavior (type="submit").
235
+ buttonProps.type = type === undefined && !hasFormAttributes ? 'button' : type;
233
236
  buttonProps.disabled = disabled;
234
237
  } else {
235
238
  if (!other.href && !other.to) {
@@ -357,6 +360,10 @@ process.env.NODE_ENV !== "production" ? ButtonBase.propTypes /* remove-proptypes
357
360
  * if needed.
358
361
  */
359
362
  focusVisibleClassName: _propTypes.default.string,
363
+ /**
364
+ * @ignore
365
+ */
366
+ formAction: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.string]),
360
367
  /**
361
368
  * @ignore
362
369
  */
@@ -235,7 +235,7 @@ const TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(inProps,
235
235
  rippleSize = Math.sqrt(sizeX ** 2 + sizeY ** 2);
236
236
  }
237
237
 
238
- // Touche devices
238
+ // Touch devices
239
239
  if (event?.touches) {
240
240
  // check that this isn't another touchstart due to multitouch
241
241
  // otherwise we will only clear a single timer when unmounting while two
package/CHANGELOG.md CHANGED
@@ -1,5 +1,92 @@
1
1
  # [Versions](https://mui.com/versions/)
2
2
 
3
+ ## 7.3.6
4
+
5
+ <!-- generated comparing v7.3.5..master -->
6
+
7
+ _Dec 3, 2025_
8
+
9
+ A big thanks to the 22 contributors who made this release possible.
10
+
11
+ ### @mui/material@7.3.6
12
+
13
+ - [Accordion] Move properties to the AccordionOwnProps interface (#47348) @Aleksan4e3
14
+ - [Autocomplete] Remove unnecessary `filterSelectedOptions` dependency from `syncHighlightedIndex` useCallback (#47378) @ZeeshanTamboli
15
+ - [Autocomplete] Fix input caret not showing when focusing after chip navigation (#47249) @vrachuri28
16
+ - [Autocomplete] Fix ArrowLeft crash when value is not set with single-value rendering (#47214) @rithik56
17
+ - [Button] Fix running formAction when passed (#47185) @sai6855
18
+ - [Chip] Remove leftover closing parenthesis in CSS class key (#47345) @ZeeshanTamboli
19
+ - [ListItem] Add `secondaryAction` slot to `ListItem` (#47399) @sai6855
20
+ - [NumberField] Fix scroll behavior (#47397) @oliviertassinari
21
+ - [Select] Fix keyboard navigation while rendering in shadow DOM (#47380) @xBlizZer
22
+ - [Select] Fix cannot pass certain event handlers (#47366) @ZeeshanTamboli
23
+ - [Slider] Accept readonly array for `marks` prop (#47370) @pcorpet
24
+ - [Snackbar] Avoid unnecessary `ownerState` spread into `useSnackbar` (#47373) @ZeeshanTamboli
25
+ - [TextField] Allow custom props in slot props via TS module augmentation (#47367) @kumarvishwajeettrivedi
26
+ - [Tabs] Fix Arrow key navigation failing when component is rendered in shadow DOM (#47178) @sai6855
27
+ - Fix typings for theme `applyStyles` with custom color schemes (#47242) @akankshahu
28
+
29
+ ### @mui/system@7.3.6
30
+
31
+ - Fix unwanted attribute on DOM from InitColorSchemeScript `class` attribute (#47200) @siriwatknp
32
+
33
+ ### @mui/lab@7.3.6
34
+
35
+ - [Masonry] Fix layout flicker and single column issue (#43903) @Fanzzzd
36
+
37
+ ### Docs
38
+
39
+ - Fix default theme viewer styling (#47400) @sai6855
40
+ - Remove repetitive words (#47384) @rifeplight
41
+ - Fix link to Portal API docs (#47383) @ZeeshanTamboli
42
+ - Remove mentions of MUI Base from Material UI docs (#47324) @mapache-salvaje
43
+ - Update CSP guidance (#47342) @rossdakin
44
+ - Fix pathname collision in LLMs docs generator (#47209) @siriwatknp
45
+ - Resolve redirected urls to their final location (#47193) @Janpot
46
+ - Document correct default values for `elevation` and `square` props (#47261) @Ad1tya-007
47
+ - Fix display of colors in dark mode in palette customization page (#47403) @sai6855
48
+ - Add Number Field component page (#47165) @siriwatknp
49
+ - Fix mcp schema change (#47171) @sai6855
50
+
51
+ ### Core
52
+
53
+ - [code-infra] Add types for markdown loader (#47075) @Janpot
54
+ - [code-infra] Build test utils with code-infra pipeline (#47405) @Janpot
55
+ - [code-infra] Vitest test migration (#44325) @JCQuintas
56
+ - [code-infra] Revive docs bundle analyzer (#47401) @Janpot
57
+ - [code-infra] Update tests from vitest PR (#47344) @Janpot
58
+ - [code-infra] Use util from code-infra to fetch changelogs (#47350) @brijeshb42
59
+ - [code-infra] Enable production sourcemaps (#47352) @Janpot
60
+ - [code-infra] Use code-infra orb utils in circle ci (#47179) @brijeshb42
61
+ - [code-infra] Use `next/font` for local fonts (#47351) @Janpot
62
+ - [code-infra] New broken links checker (#47113) @Janpot
63
+ - [code-infra] Remove profiler (#47258) @Janpot
64
+ - [code-infra] Api doc optimizations (#47188) @Janpot
65
+ - [code-infra] Increase type check parallelism (#47192) @Janpot
66
+ - [code-infra] Remove deprecated baseUrl (#47210) @Janpot
67
+ - [code-infra] Disable next.js cache (#47233) @Janpot
68
+ - [code-infra] release:build for bundle checker (#47207) @Janpot
69
+ - [code-infra] Parallelize module augmentation tests (#47208) @Janpot
70
+ - [code-infra] Fix next.js parallelism at 2 for macos runner (#47201) @Janpot
71
+ - [code-infra] Fix bash escape (#46969) @oliviertassinari
72
+ - [code-infra] Utilise eslint cache in CI (#47194) @Janpot
73
+ - [code-infra] Enable Next.js build cache to improve CI performance (#47176) @Copilot
74
+ - [code-infra] Remove `apps` folder (#47183) @Janpot
75
+ - [code-infra] Migrate everything to getStaticProps (#47152) @Janpot
76
+ - [docs-infra] Migrate to `next/font` (#47347) @Janpot
77
+ - [docs-infra] Add some `ComponentLinkHeader` bottom margin (#47328) @Janpot
78
+ - [docs-infra] Exclude a few pages from llms-txt (#47111) @Janpot
79
+ - [examples] Add missing .gitignore to NextJS App Router example (#47251) @shamblonaut
80
+ - [examples] Migrate Next.js `next.config.js` to `next.config.mjs` (#44040) @albarv340
81
+ - [internal] Remove leftover testing-library libraries from `mui-material` package (#47392) @ZeeshanTamboli
82
+ - [internal] Remove unnecessary `clean-css` package from docs (#47314) @ZeeshanTamboli
83
+ - [internal] Fix typo `buidApiDocs` -> `buildApiDocs` (#47235) @Ad1tya-007
84
+ - [internal] Remove unused `@vitest/browser` and `@vitest/coverage-v8` (#47189) @ZeeshanTamboli
85
+ - [test] Update e2e test app (#47252) @Ad1tya-007
86
+ - [test] Fix flaky Virtualize Autocomplete regression test (#47199) @ZeeshanTamboli
87
+
88
+ All contributors of this release in alphabetical order: @Ad1tya-007, @akankshahu, @albarv340, @Aleksan4e3, @brijeshb42, @Copilot, @Fanzzzd, @Janpot, @JCQuintas, @kumarvishwajeettrivedi, @mapache-salvaje, @oliviertassinari, @pcorpet, @rifeplight, @rithik56, @rossdakin, @sai6855, @shamblonaut, @siriwatknp, @vrachuri28, @xBlizZer, @ZeeshanTamboli
89
+
3
90
  ## 7.3.5
4
91
 
5
92
  <!-- generated comparing v7.3.4..master -->
package/Chip/Chip.js CHANGED
@@ -78,7 +78,7 @@ const ChipRoot = (0, _zeroStyled.styled)('div', {
78
78
  [`& .${_chipClasses.default.deleteIcon}`]: styles[`deleteIconColor${(0, _capitalize.default)(color)}`]
79
79
  }, {
80
80
  [`& .${_chipClasses.default.deleteIcon}`]: styles[`deleteIcon${(0, _capitalize.default)(variant)}Color${(0, _capitalize.default)(color)}`]
81
- }, styles.root, styles[`size${(0, _capitalize.default)(size)}`], styles[`color${(0, _capitalize.default)(color)}`], clickable && styles.clickable, clickable && color !== 'default' && styles[`clickableColor${(0, _capitalize.default)(color)})`], onDelete && styles.deletable, onDelete && color !== 'default' && styles[`deletableColor${(0, _capitalize.default)(color)}`], styles[variant], styles[`${variant}${(0, _capitalize.default)(color)}`]];
81
+ }, styles.root, styles[`size${(0, _capitalize.default)(size)}`], styles[`color${(0, _capitalize.default)(color)}`], clickable && styles.clickable, clickable && color !== 'default' && styles[`clickableColor${(0, _capitalize.default)(color)}`], onDelete && styles.deletable, onDelete && color !== 'default' && styles[`deletableColor${(0, _capitalize.default)(color)}`], styles[variant], styles[`${variant}${(0, _capitalize.default)(color)}`]];
82
82
  }
83
83
  })((0, _memoTheme.default)(({
84
84
  theme
@@ -7,7 +7,7 @@ export interface CssBaselineProps extends StyledComponentProps<never> {
7
7
  children?: React.ReactNode;
8
8
  /**
9
9
  * Enable `color-scheme` CSS property to use `theme.palette.mode`.
10
- * For more details, check out https://developer.mozilla.org/en-US/docs/Web/CSS/color-scheme
10
+ * For more details, check out https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/color-scheme
11
11
  * For browser support, check out https://caniuse.com/?search=color-scheme
12
12
  * @default false
13
13
  */
@@ -161,7 +161,7 @@ process.env.NODE_ENV !== "production" ? CssBaseline.propTypes /* remove-proptype
161
161
  children: _propTypes.default.node,
162
162
  /**
163
163
  * Enable `color-scheme` CSS property to use `theme.palette.mode`.
164
- * For more details, check out https://developer.mozilla.org/en-US/docs/Web/CSS/color-scheme
164
+ * For more details, check out https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/color-scheme
165
165
  * For browser support, check out https://caniuse.com/?search=color-scheme
166
166
  * @default false
167
167
  */
@@ -105,6 +105,7 @@ export interface FormControlTypeMap<AdditionalProps = {}, RootComponent extends
105
105
  * Demos:
106
106
  *
107
107
  * - [Checkbox](https://mui.com/material-ui/react-checkbox/)
108
+ * - [Number Field](https://mui.com/material-ui/react-number-field/)
108
109
  * - [Radio Group](https://mui.com/material-ui/react-radio-button/)
109
110
  * - [Switch](https://mui.com/material-ui/react-switch/)
110
111
  * - [Text Field](https://mui.com/material-ui/react-text-field/)
@@ -58,6 +58,7 @@ export interface FormHelperTextTypeMap<AdditionalProps = {}, RootComponent exten
58
58
  *
59
59
  * Demos:
60
60
  *
61
+ * - [Number Field](https://mui.com/material-ui/react-number-field/)
61
62
  * - [Text Field](https://mui.com/material-ui/react-text-field/)
62
63
  *
63
64
  * API:
@@ -60,6 +60,7 @@ export interface FormLabelTypeMap<AdditionalProps = {}, RootComponent extends Re
60
60
  * Demos:
61
61
  *
62
62
  * - [Checkbox](https://mui.com/material-ui/react-checkbox/)
63
+ * - [Number Field](https://mui.com/material-ui/react-number-field/)
63
64
  * - [Radio Group](https://mui.com/material-ui/react-radio-button/)
64
65
  * - [Switch](https://mui.com/material-ui/react-switch/)
65
66
  *
@@ -77,6 +77,7 @@ export type IconButtonTypeMap<AdditionalProps = {}, RootComponent extends React.
77
77
  * Demos:
78
78
  *
79
79
  * - [Button](https://mui.com/material-ui/react-button/)
80
+ * - [Number Field](https://mui.com/material-ui/react-number-field/)
80
81
  *
81
82
  * API:
82
83
  *
@@ -65,6 +65,7 @@ export type InputLabelTypeMap<AdditionalProps = {}, RootComponent extends React.
65
65
  *
66
66
  * Demos:
67
67
  *
68
+ * - [Number Field](https://mui.com/material-ui/react-number-field/)
68
69
  * - [Text Field](https://mui.com/material-ui/react-text-field/)
69
70
  *
70
71
  * API:
@@ -3,7 +3,9 @@ import { SxProps } from '@mui/system';
3
3
  import { Theme } from "../styles/index.js";
4
4
  import { OverridableComponent, OverrideProps } from "../OverridableComponent/index.js";
5
5
  import { ListItemClasses } from "./listItemClasses.js";
6
+ import { SlotProps } from "../utils/types.js";
6
7
  export interface ListItemComponentsPropsOverrides {}
8
+ export interface ListItemSecondaryActionSlotPropsOverrides {}
7
9
 
8
10
  /**
9
11
  * This type is kept for compatibility. Use `ListItemOwnProps` instead.
@@ -65,6 +67,7 @@ export interface ListItemBaseProps {
65
67
  */
66
68
  sx?: SxProps<Theme>;
67
69
  }
70
+ export interface ListItemOwnerState extends Omit<ListItemProps, 'slots' | 'slotProps'> {}
68
71
  export interface ListItemOwnProps extends ListItemBaseProps {
69
72
  /**
70
73
  * The components used for each slot inside.
@@ -93,6 +96,7 @@ export interface ListItemOwnProps extends ListItemBaseProps {
93
96
  */
94
97
  slotProps?: {
95
98
  root?: React.HTMLAttributes<HTMLDivElement> & ListItemComponentsPropsOverrides;
99
+ secondaryAction?: SlotProps<React.ElementType<React.HTMLAttributes<HTMLDivElement>>, ListItemSecondaryActionSlotPropsOverrides, ListItemOwnerState>;
96
100
  };
97
101
  /**
98
102
  * The components used for each slot inside.
@@ -101,6 +105,7 @@ export interface ListItemOwnProps extends ListItemBaseProps {
101
105
  */
102
106
  slots?: {
103
107
  root?: React.ElementType;
108
+ secondaryAction?: React.ElementType;
104
109
  };
105
110
  }
106
111
  export interface ListItemTypeMap<AdditionalProps, RootComponent extends React.ElementType> {
@@ -19,6 +19,7 @@ var _memoTheme = _interopRequireDefault(require("../utils/memoTheme"));
19
19
  var _DefaultPropsProvider = require("../DefaultPropsProvider");
20
20
  var _isMuiElement = _interopRequireDefault(require("../utils/isMuiElement"));
21
21
  var _useForkRef = _interopRequireDefault(require("../utils/useForkRef"));
22
+ var _useSlot = _interopRequireDefault(require("../utils/useSlot"));
22
23
  var _ListContext = _interopRequireDefault(require("../List/ListContext"));
23
24
  var _listItemClasses = require("./listItemClasses");
24
25
  var _ListItemButton = require("../ListItemButton");
@@ -43,7 +44,8 @@ const useUtilityClasses = ownerState => {
43
44
  } = ownerState;
44
45
  const slots = {
45
46
  root: ['root', dense && 'dense', !disableGutters && 'gutters', !disablePadding && 'padding', divider && 'divider', alignItems === 'flex-start' && 'alignItemsFlexStart', hasSecondaryAction && 'secondaryAction'],
46
- container: ['container']
47
+ container: ['container'],
48
+ secondaryAction: ['secondaryAction']
47
49
  };
48
50
  return (0, _composeClasses.default)(slots, _listItemClasses.getListItemUtilityClass, classes);
49
51
  };
@@ -205,6 +207,16 @@ const ListItem = /*#__PURE__*/React.forwardRef(function ListItem(inProps, ref) {
205
207
  };
206
208
  const classes = useUtilityClasses(ownerState);
207
209
  const handleRef = (0, _useForkRef.default)(listItemRef, ref);
210
+ const externalForwardedProps = {
211
+ slots,
212
+ slotProps
213
+ };
214
+ const [SecondaryActionSlot, secondaryActionSlotProps] = (0, _useSlot.default)('secondaryAction', {
215
+ elementType: _ListItemSecondaryAction.default,
216
+ externalForwardedProps,
217
+ ownerState,
218
+ className: classes.secondaryAction
219
+ });
208
220
  const Root = slots.root || components.Root || ListItemRoot;
209
221
  const rootProps = slotProps.root || componentsProps.root || {};
210
222
  const componentProps = {
@@ -262,7 +274,8 @@ const ListItem = /*#__PURE__*/React.forwardRef(function ListItem(inProps, ref) {
262
274
  }
263
275
  }),
264
276
  ...componentProps,
265
- children: [children, secondaryAction && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ListItemSecondaryAction.default, {
277
+ children: [children, secondaryAction && /*#__PURE__*/(0, _jsxRuntime.jsx)(SecondaryActionSlot, {
278
+ ...secondaryActionSlotProps,
266
279
  children: secondaryAction
267
280
  })]
268
281
  })
@@ -377,7 +390,8 @@ process.env.NODE_ENV !== "production" ? ListItem.propTypes /* remove-proptypes *
377
390
  * @default {}
378
391
  */
379
392
  slotProps: _propTypes.default.shape({
380
- root: _propTypes.default.object
393
+ root: _propTypes.default.object,
394
+ secondaryAction: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])
381
395
  }),
382
396
  /**
383
397
  * The components used for each slot inside.
@@ -385,7 +399,8 @@ process.env.NODE_ENV !== "production" ? ListItem.propTypes /* remove-proptypes *
385
399
  * @default {}
386
400
  */
387
401
  slots: _propTypes.default.shape({
388
- root: _propTypes.default.elementType
402
+ root: _propTypes.default.elementType,
403
+ secondaryAction: _propTypes.default.elementType
389
404
  }),
390
405
  /**
391
406
  * The system prop that allows defining system overrides as well as additional CSS styles.
@@ -12,6 +12,7 @@ var _reactIs = require("react-is");
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
  var _ownerDocument = _interopRequireDefault(require("../utils/ownerDocument"));
14
14
  var _List = _interopRequireDefault(require("../List"));
15
+ var _getActiveElement = _interopRequireDefault(require("../utils/getActiveElement"));
15
16
  var _getScrollbarSize = _interopRequireDefault(require("../utils/getScrollbarSize"));
16
17
  var _useForkRef = _interopRequireDefault(require("../utils/useForkRef"));
17
18
  var _useEnhancedEffect = _interopRequireDefault(require("../utils/useEnhancedEffect"));
@@ -143,7 +144,7 @@ const MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {
143
144
  * or document.body or document.documentElement. Only the first case will
144
145
  * trigger this specific handler.
145
146
  */
146
- const currentFocus = (0, _ownerDocument.default)(list).activeElement;
147
+ const currentFocus = (0, _getActiveElement.default)((0, _ownerDocument.default)(list));
147
148
  if (key === 'ArrowDown') {
148
149
  // Prevent scroll of the page
149
150
  event.preventDefault();
@@ -43,6 +43,7 @@ export interface OutlinedInputOwnerState extends Omit<OutlinedInputProps, 'slots
43
43
  *
44
44
  * Demos:
45
45
  *
46
+ * - [Number Field](https://mui.com/material-ui/react-number-field/)
46
47
  * - [Text Field](https://mui.com/material-ui/react-text-field/)
47
48
  *
48
49
  * API:
@@ -14,7 +14,7 @@ export interface ScopedCssBaselineOwnProps {
14
14
  classes?: Partial<ScopedCssBaselineClasses>;
15
15
  /**
16
16
  * Enable `color-scheme` CSS property to use `theme.palette.mode`.
17
- * For more details, check out https://developer.mozilla.org/en-US/docs/Web/CSS/color-scheme
17
+ * For more details, check out https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/color-scheme
18
18
  * For browser support, check out https://caniuse.com/?search=color-scheme
19
19
  */
20
20
  enableColorScheme?: boolean;
@@ -114,7 +114,7 @@ process.env.NODE_ENV !== "production" ? ScopedCssBaseline.propTypes /* remove-pr
114
114
  component: _propTypes.default.elementType,
115
115
  /**
116
116
  * Enable `color-scheme` CSS property to use `theme.palette.mode`.
117
- * For more details, check out https://developer.mozilla.org/en-US/docs/Web/CSS/color-scheme
117
+ * For more details, check out https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/color-scheme
118
118
  * For browser support, check out https://caniuse.com/?search=color-scheme
119
119
  */
120
120
  enableColorScheme: _propTypes.default.bool,
@@ -41,6 +41,8 @@ export interface SelectInputProps<Value = unknown> {
41
41
  onChange?: (event: SelectChangeEvent<Value>, child: React.ReactNode) => void;
42
42
  onClose?: (event: React.SyntheticEvent) => void;
43
43
  onFocus?: React.FocusEventHandler<any>;
44
+ onKeyDown?: React.KeyboardEventHandler;
45
+ onMouseDown?: React.MouseEventHandler;
44
46
  onOpen?: (event: React.SyntheticEvent) => void;
45
47
  open?: boolean;
46
48
  readOnly?: boolean;
@@ -135,6 +135,10 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
135
135
  onChange,
136
136
  onClose,
137
137
  onFocus,
138
+ // eslint-disable-next-line react/prop-types
139
+ onKeyDown,
140
+ // eslint-disable-next-line react/prop-types
141
+ onMouseDown,
138
142
  onOpen,
139
143
  open: openProp,
140
144
  readOnly,
@@ -229,6 +233,7 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
229
233
  }
230
234
  };
231
235
  const handleMouseDown = event => {
236
+ onMouseDown?.(event);
232
237
  // Ignore everything but left-click
233
238
  if (event.button !== 0) {
234
239
  return;
@@ -308,6 +313,7 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
308
313
  event.preventDefault();
309
314
  update(true, event);
310
315
  }
316
+ onKeyDown?.(event);
311
317
  }
312
318
  };
313
319
  const open = displayNode !== null && openState;
@@ -113,7 +113,7 @@ export interface SliderOwnProps<Value extends number | number[]> {
113
113
  * If an array, it should contain objects with `value` and an optional `label` keys.
114
114
  * @default false
115
115
  */
116
- marks?: boolean | Mark[];
116
+ marks?: boolean | readonly Mark[];
117
117
  /**
118
118
  * The maximum allowed value of the slider.
119
119
  * Should not be equal to min.
@@ -198,7 +198,7 @@ export interface UseSliderReturnValue {
198
198
  /**
199
199
  * The marks of the slider. Marks indicate predetermined values to which the user can move the slider.
200
200
  */
201
- marks: Mark[];
201
+ marks: readonly Mark[];
202
202
  /**
203
203
  * The thumb index for the current value when in hover state.
204
204
  */
@@ -164,9 +164,7 @@ const Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {
164
164
  const {
165
165
  getRootProps,
166
166
  onClickAway
167
- } = (0, _useSnackbar.default)({
168
- ...ownerState
169
- });
167
+ } = (0, _useSnackbar.default)(ownerState);
170
168
  const [exited, setExited] = React.useState(true);
171
169
  const handleExited = node => {
172
170
  setExited(true);
package/Tabs/Tabs.js CHANGED
@@ -26,6 +26,7 @@ var _useEventCallback = _interopRequireDefault(require("../utils/useEventCallbac
26
26
  var _tabsClasses = _interopRequireWildcard(require("./tabsClasses"));
27
27
  var _ownerDocument = _interopRequireDefault(require("../utils/ownerDocument"));
28
28
  var _ownerWindow = _interopRequireDefault(require("../utils/ownerWindow"));
29
+ var _getActiveElement = _interopRequireDefault(require("../utils/getActiveElement"));
29
30
  var _useSlot = _interopRequireDefault(require("../utils/useSlot"));
30
31
  var _jsxRuntime = require("react/jsx-runtime");
31
32
  const nextItem = (list, item) => {
@@ -704,11 +705,11 @@ const Tabs = /*#__PURE__*/React.forwardRef(function Tabs(inProps, ref) {
704
705
  return;
705
706
  }
706
707
  const list = tabListRef.current;
707
- const currentFocus = (0, _ownerDocument.default)(list).activeElement;
708
+ const currentFocus = (0, _getActiveElement.default)((0, _ownerDocument.default)(list));
708
709
  // Keyboard navigation assumes that [role="tab"] are siblings
709
710
  // though we might warn in the future about nested, interactive elements
710
711
  // as a a11y violation
711
- const role = currentFocus.getAttribute('role');
712
+ const role = currentFocus?.getAttribute('role');
712
713
  if (role !== 'tab') {
713
714
  return;
714
715
  }