@mui/material 5.14.2 → 5.14.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 (105) hide show
  1. package/Accordion/Accordion.d.ts +11 -6
  2. package/AccordionSummary/AccordionSummary.d.ts +9 -7
  3. package/AppBar/AppBar.d.ts +11 -6
  4. package/Autocomplete/Autocomplete.d.ts +20 -16
  5. package/Autocomplete/Autocomplete.js +19 -15
  6. package/Avatar/Avatar.d.ts +11 -6
  7. package/AvatarGroup/AvatarGroup.d.ts +1 -1
  8. package/Backdrop/Backdrop.d.ts +11 -6
  9. package/Badge/Badge.d.ts +11 -6
  10. package/BottomNavigation/BottomNavigation.d.ts +11 -6
  11. package/BottomNavigationAction/BottomNavigationAction.d.ts +9 -7
  12. package/Box/Box.d.ts +3 -3
  13. package/Breadcrumbs/Breadcrumbs.d.ts +11 -6
  14. package/Button/Button.d.ts +16 -14
  15. package/ButtonBase/ButtonBase.d.ts +17 -12
  16. package/ButtonGroup/ButtonGroup.d.ts +11 -6
  17. package/CHANGELOG.md +91 -1
  18. package/Card/Card.d.ts +13 -8
  19. package/CardActionArea/CardActionArea.d.ts +11 -6
  20. package/CardContent/CardContent.d.ts +11 -6
  21. package/CardMedia/CardMedia.d.ts +9 -7
  22. package/Chip/Chip.d.ts +11 -6
  23. package/Container/Container.d.ts +11 -6
  24. package/Dialog/Dialog.d.ts +1 -1
  25. package/DialogContentText/DialogContentText.d.ts +9 -7
  26. package/DialogTitle/DialogTitle.d.ts +9 -7
  27. package/Divider/Divider.d.ts +11 -6
  28. package/Divider/Divider.js +6 -0
  29. package/Drawer/Drawer.d.ts +1 -1
  30. package/Fab/Fab.d.ts +11 -6
  31. package/FormControl/FormControl.d.ts +11 -6
  32. package/FormHelperText/FormHelperText.d.ts +11 -6
  33. package/FormLabel/FormLabel.d.ts +14 -9
  34. package/Grid/Grid.d.ts +11 -6
  35. package/Icon/Icon.d.ts +11 -6
  36. package/IconButton/IconButton.d.ts +9 -7
  37. package/ImageList/ImageList.d.ts +11 -6
  38. package/ImageListItem/ImageListItem.d.ts +11 -6
  39. package/InputAdornment/InputAdornment.d.ts +11 -6
  40. package/InputLabel/InputLabel.d.ts +9 -7
  41. package/Link/Link.d.ts +20 -13
  42. package/List/List.d.ts +17 -10
  43. package/ListItem/ListItem.d.ts +9 -7
  44. package/ListItemButton/ListItemButton.d.ts +9 -7
  45. package/ListSubheader/ListSubheader.d.ts +11 -6
  46. package/Menu/Menu.d.ts +23 -2
  47. package/Menu/Menu.js +48 -10
  48. package/MenuItem/MenuItem.d.ts +11 -6
  49. package/MenuList/MenuList.d.ts +11 -6
  50. package/Modal/Modal.d.ts +11 -6
  51. package/OverridableComponent.d.ts +14 -14
  52. package/PaginationItem/PaginationItem.d.ts +12 -7
  53. package/Paper/Paper.d.ts +45 -38
  54. package/Paper/index.d.ts +1 -1
  55. package/Popover/Popover.d.ts +1 -1
  56. package/README.md +2 -2
  57. package/ScopedCssBaseline/ScopedCssBaseline.d.ts +11 -6
  58. package/Select/Select.d.ts +8 -8
  59. package/Select/Select.js +1 -1
  60. package/Select/SelectInput.d.ts +7 -7
  61. package/Skeleton/Skeleton.d.ts +11 -6
  62. package/Slider/Slider.d.ts +11 -6
  63. package/Stack/Stack.d.ts +11 -6
  64. package/Step/Step.d.ts +11 -6
  65. package/StepButton/StepButton.d.ts +11 -6
  66. package/Stepper/Stepper.d.ts +11 -6
  67. package/SvgIcon/SvgIcon.d.ts +11 -6
  68. package/Tab/Tab.d.ts +11 -6
  69. package/Table/Table.d.ts +11 -6
  70. package/TableBody/TableBody.d.ts +11 -6
  71. package/TableContainer/TableContainer.d.ts +11 -6
  72. package/TableFooter/TableFooter.d.ts +11 -6
  73. package/TableHead/TableHead.d.ts +11 -6
  74. package/TablePagination/TablePagination.d.ts +11 -6
  75. package/TableRow/TableRow.d.ts +11 -6
  76. package/TableSortLabel/TableSortLabel.d.ts +9 -7
  77. package/Tabs/Tabs.d.ts +11 -6
  78. package/ToggleButton/ToggleButton.d.ts +9 -7
  79. package/Toolbar/Toolbar.d.ts +11 -6
  80. package/Typography/Typography.d.ts +76 -70
  81. package/index.d.ts +9 -9
  82. package/index.js +1 -1
  83. package/legacy/Autocomplete/Autocomplete.js +19 -16
  84. package/legacy/Divider/Divider.js +6 -0
  85. package/legacy/Menu/Menu.js +49 -9
  86. package/legacy/Select/Select.js +1 -1
  87. package/legacy/index.js +1 -1
  88. package/modern/Autocomplete/Autocomplete.js +16 -12
  89. package/modern/Divider/Divider.js +6 -0
  90. package/modern/Menu/Menu.js +47 -10
  91. package/modern/Select/Select.js +1 -1
  92. package/modern/index.js +1 -1
  93. package/node/Autocomplete/Autocomplete.js +19 -15
  94. package/node/Divider/Divider.js +6 -0
  95. package/node/Menu/Menu.js +47 -9
  96. package/node/Select/Select.js +1 -1
  97. package/node/index.js +1 -1
  98. package/package.json +6 -6
  99. package/styles/ThemeProvider.d.ts +3 -3
  100. package/styles/components.d.ts +1 -0
  101. package/styles/createTypography.d.ts +9 -10
  102. package/styles/overrides.d.ts +2 -0
  103. package/types/OverridableComponentAugmentation.d.ts +7 -7
  104. package/umd/material-ui.development.js +318 -275
  105. package/umd/material-ui.production.min.js +21 -21
@@ -7,8 +7,11 @@ import { FormHelperTextClasses } from './formHelperTextClasses';
7
7
 
8
8
  export interface FormHelperTextPropsVariantOverrides {}
9
9
 
10
- export interface FormHelperTextTypeMap<P = {}, D extends React.ElementType = 'p'> {
11
- props: P & {
10
+ export interface FormHelperTextTypeMap<
11
+ AdditionalProps = {},
12
+ DefaultComponent extends React.ElementType = 'p',
13
+ > {
14
+ props: AdditionalProps & {
12
15
  /**
13
16
  * The content of the component.
14
17
  *
@@ -56,7 +59,7 @@ export interface FormHelperTextTypeMap<P = {}, D extends React.ElementType = 'p'
56
59
  FormHelperTextPropsVariantOverrides
57
60
  >;
58
61
  };
59
- defaultComponent: D;
62
+ defaultComponent: DefaultComponent;
60
63
  }
61
64
  /**
62
65
  *
@@ -71,8 +74,10 @@ export interface FormHelperTextTypeMap<P = {}, D extends React.ElementType = 'p'
71
74
  declare const FormHelperText: OverridableComponent<FormHelperTextTypeMap>;
72
75
 
73
76
  export type FormHelperTextProps<
74
- D extends React.ElementType = FormHelperTextTypeMap['defaultComponent'],
75
- P = {},
76
- > = OverrideProps<FormHelperTextTypeMap<P, D>, D>;
77
+ RootComponent extends React.ElementType = FormHelperTextTypeMap['defaultComponent'],
78
+ AdditionalProps = {},
79
+ > = OverrideProps<FormHelperTextTypeMap<AdditionalProps, RootComponent>, RootComponent> & {
80
+ component?: React.ElementType;
81
+ };
77
82
 
78
83
  export default FormHelperText;
@@ -51,9 +51,12 @@ export interface FormLabelOwnProps {
51
51
  sx?: SxProps<Theme>;
52
52
  }
53
53
 
54
- export interface FormLabelTypeMap<P = {}, D extends React.ElementType = 'label'> {
55
- props: P & FormLabelBaseProps & FormLabelOwnProps;
56
- defaultComponent: D;
54
+ export interface FormLabelTypeMap<
55
+ AdditionalProps = {},
56
+ DefaultComponent extends React.ElementType = 'label',
57
+ > {
58
+ props: AdditionalProps & FormLabelBaseProps & FormLabelOwnProps;
59
+ defaultComponent: DefaultComponent;
57
60
  }
58
61
 
59
62
  /**
@@ -72,14 +75,16 @@ declare const FormLabel: OverridableComponent<FormLabelTypeMap>;
72
75
 
73
76
  export type FormLabelBaseProps = React.LabelHTMLAttributes<HTMLLabelElement>;
74
77
 
75
- export interface ExtendFormLabelTypeMap<M extends OverridableTypeMap> {
76
- props: M['props'] & Pick<FormLabelOwnProps, 'filled' | 'color'>;
77
- defaultComponent: M['defaultComponent'];
78
+ export interface ExtendFormLabelTypeMap<TypeMap extends OverridableTypeMap> {
79
+ props: TypeMap['props'] & Pick<FormLabelOwnProps, 'filled' | 'color'>;
80
+ defaultComponent: TypeMap['defaultComponent'];
78
81
  }
79
82
 
80
83
  export type FormLabelProps<
81
- D extends React.ElementType = FormLabelTypeMap['defaultComponent'],
82
- P = {},
83
- > = OverrideProps<FormLabelTypeMap<P, D>, D>;
84
+ RootComponent extends React.ElementType = FormLabelTypeMap['defaultComponent'],
85
+ AdditionalProps = {},
86
+ > = OverrideProps<FormLabelTypeMap<AdditionalProps, RootComponent>, RootComponent> & {
87
+ component?: React.ElementType;
88
+ };
84
89
 
85
90
  export default FormLabel;
package/Grid/Grid.d.ts CHANGED
@@ -83,8 +83,11 @@ type Breakpoints = IfEquals<
83
83
  CustomBreakpoints
84
84
  >;
85
85
 
86
- export interface GridTypeMap<P = {}, D extends React.ElementType = 'div'> {
87
- props: P &
86
+ export interface GridTypeMap<
87
+ AdditionalProps = {},
88
+ DefaultComponent extends React.ElementType = 'div',
89
+ > {
90
+ props: AdditionalProps &
88
91
  SystemProps<Theme> & {
89
92
  /**
90
93
  * The content of the component.
@@ -150,7 +153,7 @@ export interface GridTypeMap<P = {}, D extends React.ElementType = 'div'> {
150
153
  */
151
154
  zeroMinWidth?: boolean;
152
155
  } & Breakpoints;
153
- defaultComponent: D;
156
+ defaultComponent: DefaultComponent;
154
157
  }
155
158
 
156
159
  /**
@@ -166,8 +169,10 @@ export interface GridTypeMap<P = {}, D extends React.ElementType = 'div'> {
166
169
  declare const Grid: OverridableComponent<GridTypeMap>;
167
170
 
168
171
  export type GridProps<
169
- D extends React.ElementType = GridTypeMap['defaultComponent'],
170
- P = {},
171
- > = OverrideProps<GridTypeMap<P, D>, D>;
172
+ RootComponent extends React.ElementType = GridTypeMap['defaultComponent'],
173
+ AdditionalProps = {},
174
+ > = OverrideProps<GridTypeMap<AdditionalProps, RootComponent>, RootComponent> & {
175
+ component?: React.ElementType;
176
+ };
172
177
 
173
178
  export default Grid;
package/Icon/Icon.d.ts CHANGED
@@ -9,8 +9,11 @@ export interface IconPropsSizeOverrides {}
9
9
 
10
10
  export interface IconPropsColorOverrides {}
11
11
 
12
- export interface IconTypeMap<P = {}, D extends React.ElementType = 'span'> {
13
- props: P & {
12
+ export interface IconTypeMap<
13
+ AdditionalProps = {},
14
+ DefaultComponent extends React.ElementType = 'span',
15
+ > {
16
+ props: AdditionalProps & {
14
17
  /**
15
18
  * The base class applied to the icon. Defaults to 'material-icons', but can be changed to any
16
19
  * other base class that suits the icon font you're using (e.g. material-icons-rounded, fas, etc).
@@ -56,7 +59,7 @@ export interface IconTypeMap<P = {}, D extends React.ElementType = 'span'> {
56
59
  */
57
60
  sx?: SxProps<Theme>;
58
61
  };
59
- defaultComponent: D;
62
+ defaultComponent: DefaultComponent;
60
63
  }
61
64
  /**
62
65
  *
@@ -72,8 +75,10 @@ export interface IconTypeMap<P = {}, D extends React.ElementType = 'span'> {
72
75
  declare const Icon: OverridableComponent<IconTypeMap> & { muiName: string };
73
76
 
74
77
  export type IconProps<
75
- D extends React.ElementType = IconTypeMap['defaultComponent'],
76
- P = {},
77
- > = OverrideProps<IconTypeMap<P, D>, D>;
78
+ RootComponent extends React.ElementType = IconTypeMap['defaultComponent'],
79
+ AdditionalProps = {},
80
+ > = OverrideProps<IconTypeMap<AdditionalProps, RootComponent>, RootComponent> & {
81
+ component?: React.ElementType;
82
+ };
78
83
 
79
84
  export default Icon;
@@ -11,10 +11,10 @@ export interface IconButtonPropsColorOverrides {}
11
11
  export interface IconButtonPropsSizeOverrides {}
12
12
 
13
13
  export type IconButtonTypeMap<
14
- P = {},
15
- D extends React.ElementType = 'button',
14
+ AdditionalProps = {},
15
+ DefaultComponent extends React.ElementType = 'button',
16
16
  > = ExtendButtonBaseTypeMap<{
17
- props: P & {
17
+ props: AdditionalProps & {
18
18
  /**
19
19
  * The icon to display.
20
20
  */
@@ -62,7 +62,7 @@ export type IconButtonTypeMap<
62
62
  */
63
63
  sx?: SxProps<Theme>;
64
64
  };
65
- defaultComponent: D;
65
+ defaultComponent: DefaultComponent;
66
66
  }>;
67
67
 
68
68
  /**
@@ -81,8 +81,10 @@ export type IconButtonTypeMap<
81
81
  declare const IconButton: ExtendButtonBase<IconButtonTypeMap>;
82
82
 
83
83
  export type IconButtonProps<
84
- D extends React.ElementType = IconButtonTypeMap['defaultComponent'],
85
- P = {},
86
- > = OverrideProps<IconButtonTypeMap<P, D>, D>;
84
+ RootComponent extends React.ElementType = IconButtonTypeMap['defaultComponent'],
85
+ AdditionalProps = {},
86
+ > = OverrideProps<IconButtonTypeMap<AdditionalProps, RootComponent>, RootComponent> & {
87
+ component?: React.ElementType;
88
+ };
87
89
 
88
90
  export default IconButton;
@@ -7,8 +7,11 @@ import { ImageListClasses } from './imageListClasses';
7
7
 
8
8
  export interface ImageListPropsVariantOverrides {}
9
9
 
10
- export interface ImageListTypeMap<P = {}, D extends React.ElementType = 'ul'> {
11
- props: P & {
10
+ export interface ImageListTypeMap<
11
+ AdditionalProps = {},
12
+ DefaultComponent extends React.ElementType = 'ul',
13
+ > {
14
+ props: AdditionalProps & {
12
15
  /**
13
16
  * The content of the component, normally `ImageListItem`s.
14
17
  */
@@ -45,7 +48,7 @@ export interface ImageListTypeMap<P = {}, D extends React.ElementType = 'ul'> {
45
48
  ImageListPropsVariantOverrides
46
49
  >;
47
50
  };
48
- defaultComponent: D;
51
+ defaultComponent: DefaultComponent;
49
52
  }
50
53
  /**
51
54
  *
@@ -60,8 +63,10 @@ export interface ImageListTypeMap<P = {}, D extends React.ElementType = 'ul'> {
60
63
  declare const ImageList: OverridableComponent<ImageListTypeMap>;
61
64
 
62
65
  export type ImageListProps<
63
- D extends React.ElementType = ImageListTypeMap['defaultComponent'],
64
- P = {},
65
- > = OverrideProps<ImageListTypeMap<P, D>, D>;
66
+ RootComponent extends React.ElementType = ImageListTypeMap['defaultComponent'],
67
+ AdditionalProps = {},
68
+ > = OverrideProps<ImageListTypeMap<AdditionalProps, RootComponent>, RootComponent> & {
69
+ component?: React.ElementType;
70
+ };
66
71
 
67
72
  export default ImageList;
@@ -4,8 +4,11 @@ import { Theme } from '..';
4
4
  import { OverridableComponent, OverrideProps } from '../OverridableComponent';
5
5
  import { ImageListItemClasses } from './imageListItemClasses';
6
6
 
7
- export interface ImageListItemTypeMap<P = {}, D extends React.ElementType = 'li'> {
8
- props: P & {
7
+ export interface ImageListItemTypeMap<
8
+ AdditionalProps = {},
9
+ DefaultComponent extends React.ElementType = 'li',
10
+ > {
11
+ props: AdditionalProps & {
9
12
  /**
10
13
  * The content of the component, normally an `<img>`.
11
14
  */
@@ -29,7 +32,7 @@ export interface ImageListItemTypeMap<P = {}, D extends React.ElementType = 'li'
29
32
  */
30
33
  sx?: SxProps<Theme>;
31
34
  };
32
- defaultComponent: D;
35
+ defaultComponent: DefaultComponent;
33
36
  }
34
37
  /**
35
38
  *
@@ -44,8 +47,10 @@ export interface ImageListItemTypeMap<P = {}, D extends React.ElementType = 'li'
44
47
  declare const ImageListItem: OverridableComponent<ImageListItemTypeMap>;
45
48
 
46
49
  export type ImageListItemProps<
47
- D extends React.ElementType = ImageListItemTypeMap['defaultComponent'],
48
- P = {},
49
- > = OverrideProps<ImageListItemTypeMap<P, D>, D>;
50
+ RootComponent extends React.ElementType = ImageListItemTypeMap['defaultComponent'],
51
+ AdditionalProps = {},
52
+ > = OverrideProps<ImageListItemTypeMap<AdditionalProps, RootComponent>, RootComponent> & {
53
+ component?: React.ElementType;
54
+ };
50
55
 
51
56
  export default ImageListItem;
@@ -4,8 +4,11 @@ import { OverridableComponent, OverrideProps } from '../OverridableComponent';
4
4
  import { Theme } from '..';
5
5
  import { InputAdornmentClasses } from './inputAdornmentClasses';
6
6
 
7
- export interface InputAdornmentTypeMap<P = {}, D extends React.ElementType = 'div'> {
8
- props: P & {
7
+ export interface InputAdornmentTypeMap<
8
+ AdditionalProps = {},
9
+ DefaultComponent extends React.ElementType = 'div',
10
+ > {
11
+ props: AdditionalProps & {
9
12
  /**
10
13
  * Override or extend the styles applied to the component.
11
14
  */
@@ -40,7 +43,7 @@ export interface InputAdornmentTypeMap<P = {}, D extends React.ElementType = 'di
40
43
  */
41
44
  variant?: 'standard' | 'outlined' | 'filled';
42
45
  };
43
- defaultComponent: D;
46
+ defaultComponent: DefaultComponent;
44
47
  }
45
48
  /**
46
49
  *
@@ -55,8 +58,10 @@ export interface InputAdornmentTypeMap<P = {}, D extends React.ElementType = 'di
55
58
  declare const InputAdornment: OverridableComponent<InputAdornmentTypeMap>;
56
59
 
57
60
  export type InputAdornmentProps<
58
- D extends React.ElementType = InputAdornmentTypeMap['defaultComponent'],
59
- P = {},
60
- > = OverrideProps<InputAdornmentTypeMap<P, D>, D>;
61
+ RootComponent extends React.ElementType = InputAdornmentTypeMap['defaultComponent'],
62
+ AdditionalProps = {},
63
+ > = OverrideProps<InputAdornmentTypeMap<AdditionalProps, RootComponent>, RootComponent> & {
64
+ component?: React.ElementType;
65
+ };
61
66
 
62
67
  export default InputAdornment;
@@ -9,10 +9,10 @@ import { OverridableComponent, OverrideProps } from '../OverridableComponent';
9
9
  export interface InputLabelPropsSizeOverrides {}
10
10
 
11
11
  export type InputLabelTypeMap<
12
- P = {},
13
- D extends React.ElementType = 'label',
12
+ AdditionalProps = {},
13
+ DefaultComponent extends React.ElementType = 'label',
14
14
  > = ExtendFormLabelTypeMap<{
15
- props: P & {
15
+ props: AdditionalProps & {
16
16
  /**
17
17
  * The content of the component.
18
18
  */
@@ -66,7 +66,7 @@ export type InputLabelTypeMap<
66
66
  */
67
67
  variant?: 'standard' | 'outlined' | 'filled';
68
68
  };
69
- defaultComponent: D;
69
+ defaultComponent: DefaultComponent;
70
70
  }>;
71
71
 
72
72
  /**
@@ -83,8 +83,10 @@ export type InputLabelTypeMap<
83
83
  declare const InputLabel: OverridableComponent<InputLabelTypeMap>;
84
84
 
85
85
  export type InputLabelProps<
86
- D extends React.ElementType = InputLabelTypeMap['defaultComponent'],
87
- P = {},
88
- > = OverrideProps<InputLabelTypeMap<P, D>, D>;
86
+ RootComponent extends React.ElementType = InputLabelTypeMap['defaultComponent'],
87
+ AdditionalProps = {},
88
+ > = OverrideProps<InputLabelTypeMap<AdditionalProps, RootComponent>, RootComponent> & {
89
+ component?: React.ElementType;
90
+ };
89
91
 
90
92
  export default InputLabel;
package/Link/Link.d.ts CHANGED
@@ -3,12 +3,15 @@ import { DistributiveOmit } from '@mui/types';
3
3
  import { SxProps } from '@mui/system';
4
4
  import { OverridableComponent, OverrideProps } from '../OverridableComponent';
5
5
  import { Theme } from '../styles';
6
- import { TypographyProps } from '../Typography';
6
+ import { TypographyOwnProps } from '../Typography';
7
7
  import { LinkClasses } from './linkClasses';
8
8
 
9
- export interface LinkTypeMap<P = {}, D extends React.ElementType = 'a'> {
10
- props: P &
11
- DistributiveOmit<LinkBaseProps, 'classes'> & {
9
+ export interface LinkTypeMap<
10
+ AdditionalProps = {},
11
+ DefaultComponent extends React.ElementType = 'a',
12
+ > {
13
+ props: AdditionalProps &
14
+ LinkBaseProps & {
12
15
  /**
13
16
  * The content of the component.
14
17
  */
@@ -21,7 +24,7 @@ export interface LinkTypeMap<P = {}, D extends React.ElementType = 'a'> {
21
24
  * The color of the link.
22
25
  * @default 'primary'
23
26
  */
24
- color?: TypographyProps['color'];
27
+ color?: TypographyOwnProps['color'];
25
28
  /**
26
29
  * The system prop that allows defining system overrides as well as additional CSS styles.
27
30
  */
@@ -29,7 +32,7 @@ export interface LinkTypeMap<P = {}, D extends React.ElementType = 'a'> {
29
32
  /**
30
33
  * `classes` prop applied to the [`Typography`](/material-ui/api/typography/) element.
31
34
  */
32
- TypographyClasses?: TypographyProps['classes'];
35
+ TypographyClasses?: TypographyOwnProps['classes'];
33
36
  /**
34
37
  * Controls when the link should have an underline.
35
38
  * @default 'always'
@@ -39,9 +42,9 @@ export interface LinkTypeMap<P = {}, D extends React.ElementType = 'a'> {
39
42
  * Applies the theme typography styles.
40
43
  * @default 'inherit'
41
44
  */
42
- variant?: TypographyProps['variant'];
45
+ variant?: TypographyOwnProps['variant'];
43
46
  };
44
- defaultComponent: D;
47
+ defaultComponent: DefaultComponent;
45
48
  }
46
49
 
47
50
  /**
@@ -58,12 +61,16 @@ export interface LinkTypeMap<P = {}, D extends React.ElementType = 'a'> {
58
61
  */
59
62
  declare const Link: OverridableComponent<LinkTypeMap>;
60
63
 
61
- export type LinkBaseProps = Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'color'> &
62
- DistributiveOmit<TypographyProps, 'children' | 'component' | 'color' | 'ref' | 'variant'>;
64
+ export type LinkBaseProps = DistributiveOmit<
65
+ TypographyOwnProps,
66
+ 'children' | 'color' | 'variant' | 'classes'
67
+ >;
63
68
 
64
69
  export type LinkProps<
65
- D extends React.ElementType = LinkTypeMap['defaultComponent'],
66
- P = {},
67
- > = OverrideProps<LinkTypeMap<P, D>, D>;
70
+ RootComponent extends React.ElementType = LinkTypeMap['defaultComponent'],
71
+ AdditionalProps = {},
72
+ > = OverrideProps<LinkTypeMap<AdditionalProps, RootComponent>, RootComponent> & {
73
+ component?: React.ElementType;
74
+ };
68
75
 
69
76
  export default Link;
package/List/List.d.ts CHANGED
@@ -4,8 +4,11 @@ import { Theme } from '..';
4
4
  import { OverridableComponent, OverridableTypeMap, OverrideProps } from '../OverridableComponent';
5
5
  import { ListClasses } from './listClasses';
6
6
 
7
- export interface ListTypeMap<P = {}, D extends React.ElementType = 'ul'> {
8
- props: P & {
7
+ export interface ListTypeMap<
8
+ AdditionalProps = {},
9
+ DefaultComponent extends React.ElementType = 'ul',
10
+ > {
11
+ props: AdditionalProps & {
9
12
  /**
10
13
  * The content of the component.
11
14
  */
@@ -35,18 +38,20 @@ export interface ListTypeMap<P = {}, D extends React.ElementType = 'ul'> {
35
38
  */
36
39
  sx?: SxProps<Theme>;
37
40
  };
38
- defaultComponent: D;
41
+ defaultComponent: DefaultComponent;
39
42
  }
40
43
 
41
44
  /**
42
45
  * utility to create component types that inherit props from List.
43
46
  */
44
- export interface ExtendListTypeMap<M extends OverridableTypeMap> {
45
- props: M['props'] & ListTypeMap['props'];
46
- defaultComponent: M['defaultComponent'];
47
+ export interface ExtendListTypeMap<TypeMap extends OverridableTypeMap> {
48
+ props: TypeMap['props'] & ListTypeMap['props'];
49
+ defaultComponent: TypeMap['defaultComponent'];
47
50
  }
48
51
 
49
- export type ExtendList<M extends OverridableTypeMap> = OverridableComponent<ExtendListTypeMap<M>>;
52
+ export type ExtendList<TypeMap extends OverridableTypeMap> = OverridableComponent<
53
+ ExtendListTypeMap<TypeMap>
54
+ >;
50
55
 
51
56
  /**
52
57
  *
@@ -62,8 +67,10 @@ export type ExtendList<M extends OverridableTypeMap> = OverridableComponent<Exte
62
67
  declare const List: ExtendList<ListTypeMap>;
63
68
 
64
69
  export type ListProps<
65
- D extends React.ElementType = ListTypeMap['defaultComponent'],
66
- P = {},
67
- > = OverrideProps<ListTypeMap<P, D>, D>;
70
+ RootComponent extends React.ElementType = ListTypeMap['defaultComponent'],
71
+ AdditionalProps = {},
72
+ > = OverrideProps<ListTypeMap<AdditionalProps, RootComponent>, RootComponent> & {
73
+ component?: React.ElementType;
74
+ };
68
75
 
69
76
  export default List;
@@ -84,8 +84,8 @@ export interface ListItemBaseProps {
84
84
  sx?: SxProps<Theme>;
85
85
  }
86
86
 
87
- export interface ListItemTypeMap<P, D extends React.ElementType> {
88
- props: P &
87
+ export interface ListItemTypeMap<AdditionalProps, DefaultComponent extends React.ElementType> {
88
+ props: AdditionalProps &
89
89
  ListItemBaseProps & {
90
90
  /**
91
91
  * The components used for each slot inside.
@@ -132,7 +132,7 @@ export interface ListItemTypeMap<P, D extends React.ElementType> {
132
132
  root?: React.ElementType;
133
133
  };
134
134
  };
135
- defaultComponent: D;
135
+ defaultComponent: DefaultComponent;
136
136
  }
137
137
 
138
138
  /**
@@ -177,9 +177,11 @@ declare const ListItem: ExtendButtonBase<
177
177
  >
178
178
  >;
179
179
 
180
- export type ListItemProps<D extends React.ElementType = 'li', P = {}> = OverrideProps<
181
- ListItemTypeMap<P, D>,
182
- D
183
- >;
180
+ export type ListItemProps<
181
+ RootComponent extends React.ElementType = 'li',
182
+ AdditionalProps = {},
183
+ > = OverrideProps<ListItemTypeMap<AdditionalProps, RootComponent>, RootComponent> & {
184
+ component?: React.ElementType;
185
+ };
184
186
 
185
187
  export default ListItem;
@@ -59,11 +59,11 @@ export interface ListItemButtonBaseProps {
59
59
  }
60
60
 
61
61
  export type ListItemButtonTypeMap<
62
- P = {},
63
- D extends React.ElementType = 'div',
62
+ AdditionalProps = {},
63
+ DefaultComponent extends React.ElementType = 'div',
64
64
  > = ExtendButtonBaseTypeMap<{
65
- props: P & ListItemButtonBaseProps;
66
- defaultComponent: D;
65
+ props: AdditionalProps & ListItemButtonBaseProps;
66
+ defaultComponent: DefaultComponent;
67
67
  }>;
68
68
 
69
69
  /**
@@ -80,8 +80,10 @@ export type ListItemButtonTypeMap<
80
80
  declare const ListItemButton: ExtendButtonBase<ListItemButtonTypeMap>;
81
81
 
82
82
  export type ListItemButtonProps<
83
- D extends React.ElementType = ListItemButtonTypeMap['defaultComponent'],
84
- P = {},
85
- > = OverrideProps<ListItemButtonTypeMap<P, D>, D>;
83
+ RootComponent extends React.ElementType = ListItemButtonTypeMap['defaultComponent'],
84
+ AdditionalProps = {},
85
+ > = OverrideProps<ListItemButtonTypeMap<AdditionalProps, RootComponent>, RootComponent> & {
86
+ component?: React.ElementType;
87
+ };
86
88
 
87
89
  export default ListItemButton;
@@ -4,8 +4,11 @@ import { Theme } from '..';
4
4
  import { OverridableComponent, OverrideProps } from '../OverridableComponent';
5
5
  import { ListSubheaderClasses } from './listSubheaderClasses';
6
6
 
7
- export interface ListSubheaderTypeMap<P = {}, D extends React.ElementType = 'li'> {
8
- props: P & {
7
+ export interface ListSubheaderTypeMap<
8
+ AdditionalProps = {},
9
+ DefaultComponent extends React.ElementType = 'li',
10
+ > {
11
+ props: AdditionalProps & {
9
12
  /**
10
13
  * The content of the component.
11
14
  */
@@ -39,7 +42,7 @@ export interface ListSubheaderTypeMap<P = {}, D extends React.ElementType = 'li'
39
42
  */
40
43
  sx?: SxProps<Theme>;
41
44
  };
42
- defaultComponent: D;
45
+ defaultComponent: DefaultComponent;
43
46
  }
44
47
 
45
48
  /**
@@ -55,8 +58,10 @@ export interface ListSubheaderTypeMap<P = {}, D extends React.ElementType = 'li'
55
58
  declare const ListSubheader: OverridableComponent<ListSubheaderTypeMap>;
56
59
 
57
60
  export type ListSubheaderProps<
58
- D extends React.ElementType = ListSubheaderTypeMap['defaultComponent'],
59
- P = {},
60
- > = OverrideProps<ListSubheaderTypeMap<P, D>, D>;
61
+ RootComponent extends React.ElementType = ListSubheaderTypeMap['defaultComponent'],
62
+ AdditionalProps = {},
63
+ > = OverrideProps<ListSubheaderTypeMap<AdditionalProps, RootComponent>, RootComponent> & {
64
+ component?: React.ElementType;
65
+ };
61
66
 
62
67
  export default ListSubheader;
package/Menu/Menu.d.ts CHANGED
@@ -1,14 +1,16 @@
1
1
  import * as React from 'react';
2
2
  import { SxProps } from '@mui/system';
3
+ import { MenuOwnerState, SlotComponentProps } from '@mui/base';
3
4
  import { InternalStandardProps as StandardProps } from '..';
4
- import { PaperProps } from '../Paper';
5
+ import Paper, { PaperProps } from '../Paper';
5
6
  import { PopoverProps } from '../Popover';
6
7
  import { MenuListProps } from '../MenuList';
7
8
  import { Theme } from '../styles';
8
9
  import { TransitionProps } from '../transitions/transition';
9
10
  import { MenuClasses } from './menuClasses';
10
11
 
11
- export interface MenuProps extends StandardProps<PopoverProps> {
12
+ export interface MenuProps
13
+ extends StandardProps<Omit<PopoverProps, 'slots' | 'slotProps'>, 'children'> {
12
14
  /**
13
15
  * An HTML element, or a function that returns one.
14
16
  * It's used to set the position of the menu.
@@ -58,6 +60,25 @@ export interface MenuProps extends StandardProps<PopoverProps> {
58
60
  * `classes` prop applied to the [`Popover`](/material-ui/api/popover/) element.
59
61
  */
60
62
  PopoverClasses?: PopoverProps['classes'];
63
+ /**
64
+ * The components used for each slot inside.
65
+ *
66
+ * @default {}
67
+ */
68
+ slots?: {
69
+ root?: React.ElementType;
70
+ paper?: React.ElementType;
71
+ };
72
+ /**
73
+ * The extra props for the slot components.
74
+ * You can override the existing props or add new ones.
75
+ *
76
+ * @default {}
77
+ */
78
+ slotProps?: {
79
+ root?: SlotComponentProps<typeof Menu, {}, MenuOwnerState>;
80
+ paper?: SlotComponentProps<typeof Paper, {}, {}>;
81
+ };
61
82
  /**
62
83
  * The system prop that allows defining system overrides as well as additional CSS styles.
63
84
  */