@mui/material 6.2.1 → 6.3.0

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 (59) hide show
  1. package/AccordionSummary/AccordionSummary.js +4 -3
  2. package/Autocomplete/Autocomplete.js +1 -1
  3. package/Backdrop/Backdrop.js +1 -9
  4. package/CHANGELOG.md +41 -0
  5. package/Collapse/Collapse.js +5 -4
  6. package/Fade/Fade.js +5 -2
  7. package/FilledInput/FilledInput.js +1 -3
  8. package/Grow/Grow.js +5 -2
  9. package/Icon/Icon.js +1 -3
  10. package/Input/Input.js +1 -3
  11. package/OutlinedInput/OutlinedInput.js +1 -3
  12. package/Slide/Slide.js +5 -2
  13. package/StepContent/StepContent.d.ts +31 -2
  14. package/StepContent/StepContent.js +39 -7
  15. package/StepLabel/StepLabel.js +1 -3
  16. package/SvgIcon/SvgIcon.js +1 -3
  17. package/TablePagination/TablePagination.d.ts +134 -18
  18. package/TablePagination/TablePagination.js +89 -33
  19. package/Zoom/Zoom.js +5 -2
  20. package/index.js +1 -1
  21. package/modern/AccordionSummary/AccordionSummary.js +4 -3
  22. package/modern/Autocomplete/Autocomplete.js +1 -1
  23. package/modern/Backdrop/Backdrop.js +1 -9
  24. package/modern/Collapse/Collapse.js +5 -4
  25. package/modern/Fade/Fade.js +5 -2
  26. package/modern/FilledInput/FilledInput.js +1 -3
  27. package/modern/Grow/Grow.js +5 -2
  28. package/modern/Icon/Icon.js +1 -3
  29. package/modern/Input/Input.js +1 -3
  30. package/modern/OutlinedInput/OutlinedInput.js +1 -3
  31. package/modern/Slide/Slide.js +5 -2
  32. package/modern/StepContent/StepContent.js +39 -7
  33. package/modern/StepLabel/StepLabel.js +1 -3
  34. package/modern/SvgIcon/SvgIcon.js +1 -3
  35. package/modern/TablePagination/TablePagination.js +89 -33
  36. package/modern/Zoom/Zoom.js +5 -2
  37. package/modern/index.js +1 -1
  38. package/modern/version/index.js +3 -3
  39. package/node/AccordionSummary/AccordionSummary.js +4 -3
  40. package/node/Autocomplete/Autocomplete.js +1 -1
  41. package/node/Backdrop/Backdrop.js +1 -9
  42. package/node/Collapse/Collapse.js +5 -4
  43. package/node/Fade/Fade.js +5 -2
  44. package/node/FilledInput/FilledInput.js +1 -3
  45. package/node/Grow/Grow.js +5 -2
  46. package/node/Icon/Icon.js +1 -3
  47. package/node/Input/Input.js +1 -3
  48. package/node/OutlinedInput/OutlinedInput.js +1 -3
  49. package/node/Slide/Slide.js +5 -2
  50. package/node/StepContent/StepContent.js +39 -7
  51. package/node/StepLabel/StepLabel.js +1 -3
  52. package/node/SvgIcon/SvgIcon.js +1 -3
  53. package/node/TablePagination/TablePagination.js +89 -33
  54. package/node/Zoom/Zoom.js +5 -2
  55. package/node/index.js +1 -1
  56. package/node/version/index.js +3 -3
  57. package/package.json +5 -5
  58. package/useAutocomplete/useAutocomplete.d.ts +20 -5
  59. package/version/index.js +3 -3
@@ -38,6 +38,7 @@ const AccordionSummaryRoot = styled(ButtonBase, {
38
38
  };
39
39
  return {
40
40
  display: 'flex',
41
+ width: '100%',
41
42
  minHeight: 48,
42
43
  padding: theme.spacing(0, 2),
43
44
  transition: theme.transitions.create(['min-height', 'background-color'], transition),
@@ -60,7 +61,7 @@ const AccordionSummaryRoot = styled(ButtonBase, {
60
61
  }]
61
62
  };
62
63
  }));
63
- const AccordionSummaryContent = styled('div', {
64
+ const AccordionSummaryContent = styled('span', {
64
65
  name: 'MuiAccordionSummary',
65
66
  slot: 'Content',
66
67
  overridesResolver: (props, styles) => styles.content
@@ -68,6 +69,7 @@ const AccordionSummaryContent = styled('div', {
68
69
  theme
69
70
  }) => ({
70
71
  display: 'flex',
72
+ textAlign: 'start',
71
73
  flexGrow: 1,
72
74
  margin: '12px 0',
73
75
  variants: [{
@@ -82,7 +84,7 @@ const AccordionSummaryContent = styled('div', {
82
84
  }
83
85
  }]
84
86
  })));
85
- const AccordionSummaryExpandIconWrapper = styled('div', {
87
+ const AccordionSummaryExpandIconWrapper = styled('span', {
86
88
  name: 'MuiAccordionSummary',
87
89
  slot: 'ExpandIconWrapper',
88
90
  overridesResolver: (props, styles) => styles.expandIconWrapper
@@ -137,7 +139,6 @@ const AccordionSummary = /*#__PURE__*/React.forwardRef(function AccordionSummary
137
139
  focusRipple: false,
138
140
  disableRipple: true,
139
141
  disabled: disabled,
140
- component: "div",
141
142
  "aria-expanded": expanded,
142
143
  className: clsx(classes.root, className),
143
144
  focusVisibleClassName: clsx(classes.focusVisible, focusVisibleClassName),
@@ -952,7 +952,7 @@ process.env.NODE_ENV !== "production" ? Autocomplete.propTypes /* remove-proptyp
952
952
  * If provided, the options will be grouped under the returned string.
953
953
  * The groupBy value is also used as the text for group headings when `renderGroup` is not provided.
954
954
  *
955
- * @param {Value} options The options to group.
955
+ * @param {Value} option The Autocomplete option.
956
956
  * @returns {string}
957
957
  */
958
958
  groupBy: PropTypes.func,
@@ -10,13 +10,6 @@ import useSlot from "../utils/useSlot.js";
10
10
  import Fade from "../Fade/index.js";
11
11
  import { getBackdropUtilityClass } from "./backdropClasses.js";
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
- const removeOwnerState = props => {
14
- const {
15
- ownerState,
16
- ...rest
17
- } = props;
18
- return rest;
19
- };
20
13
  const useUtilityClasses = ownerState => {
21
14
  const {
22
15
  classes,
@@ -105,12 +98,11 @@ const Backdrop = /*#__PURE__*/React.forwardRef(function Backdrop(inProps, ref) {
105
98
  externalForwardedProps,
106
99
  ownerState
107
100
  });
108
- const transitionPropsRemoved = removeOwnerState(transitionProps);
109
101
  return /*#__PURE__*/_jsx(TransitionSlot, {
110
102
  in: open,
111
103
  timeout: transitionDuration,
112
104
  ...other,
113
- ...transitionPropsRemoved,
105
+ ...transitionProps,
114
106
  children: /*#__PURE__*/_jsx(RootSlot, {
115
107
  "aria-hidden": true,
116
108
  ...rootProps,
package/CHANGELOG.md CHANGED
@@ -1,5 +1,46 @@
1
1
  # [Versions](https://mui.com/versions/)
2
2
 
3
+ ## 6.3.0
4
+
5
+ <!-- generated comparing v6.2.1..master -->
6
+
7
+ _Dec 23, 2024_
8
+
9
+ A big thanks to the 11 contributors who made this release possible. Here are some highlights ✨:
10
+
11
+ - Fix invalid HTML structure in the Accordion component (#44408) @ZeeshanTamboli
12
+ The HTML elements of the Accordion summary have been updated:
13
+ - the root element is now button (previously div).
14
+ - summary content and the icon wrapper are now span (previously div).
15
+ This will only impact you if you used the HTML element as selectors in your styles.
16
+
17
+ ### `@mui/material@6.3.0`
18
+
19
+ - [Accordion] Fix invalid HTML inside heading (#44408) @ZeeshanTamboli
20
+ - [useAutocomplete] Improve TS typing of `groupedOptions` prop (#44657) @lewxdev
21
+ - Prevent `ownerState` propagation for transition slots (#44401) @ZeeshanTamboli
22
+ - [StepContent] Add slots and slotProps (#44742) @sai6855
23
+ - [TablePagination] Add the rest of `slots` and `slotProps`. (#44570) @siriwatknp
24
+
25
+ ### `@mui/system@6.3.0`
26
+
27
+ - Set `before` directly without using prepend for global styles (#44648) @siriwatknp
28
+
29
+ ### Docs
30
+
31
+ - [material-ui] Improve `theme.applyStyles()` docs (#44658) @DiegoAndai
32
+ - [material-ui] Update MD callout (#43958) @aarongarciah
33
+
34
+ ### Core
35
+
36
+ - Remove unnecessary conditional around `.muiName =` (#44071) @Janpot
37
+ - [blog] Material UI: 2024 EOY updates blog post (#44722) @alelthomas
38
+ - Fix quickstart command in pigment docs (#44806) @yash49
39
+ - [docs-infra] Remove Next.js production profiler (#44823) @romgrk
40
+ - [docs-infra] Remove no longer support `optimizeFonts` Next.js option (#44802) @LukasTy
41
+
42
+ All contributors of this release in alphabetical order: @aarongarciah, @alelthomas, @DiegoAndai, @Janpot, @lewxdev, @LukasTy, @romgrk, @sai6855, @siriwatknp, @yash49, @ZeeshanTamboli
43
+
3
44
  ## 6.2.1
4
45
 
5
46
  <!-- generated comparing v6.2.0..master -->
@@ -272,7 +272,10 @@ const Collapse = /*#__PURE__*/React.forwardRef(function Collapse(inProps, ref) {
272
272
  nodeRef: nodeRef,
273
273
  timeout: timeout === 'auto' ? null : timeout,
274
274
  ...other,
275
- children: (state, childProps) => /*#__PURE__*/_jsx(CollapseRoot, {
275
+ children: (state, {
276
+ ownerState: incomingOwnerState,
277
+ ...restChildProps
278
+ }) => /*#__PURE__*/_jsx(CollapseRoot, {
276
279
  as: component,
277
280
  className: clsx(classes.root, className, {
278
281
  'entered': classes.entered,
@@ -283,13 +286,11 @@ const Collapse = /*#__PURE__*/React.forwardRef(function Collapse(inProps, ref) {
283
286
  ...style
284
287
  },
285
288
  ref: handleRef,
286
- ...childProps,
287
- // `ownerState` is set after `childProps` to override any existing `ownerState` property in `childProps`
288
- // that might have been forwarded from the Transition component.
289
289
  ownerState: {
290
290
  ...ownerState,
291
291
  state
292
292
  },
293
+ ...restChildProps,
293
294
  children: /*#__PURE__*/_jsx(CollapseWrapper, {
294
295
  ownerState: {
295
296
  ...ownerState,
package/Fade/Fade.js CHANGED
@@ -114,7 +114,10 @@ const Fade = /*#__PURE__*/React.forwardRef(function Fade(props, ref) {
114
114
  addEndListener: handleAddEndListener,
115
115
  timeout: timeout,
116
116
  ...other,
117
- children: (state, childProps) => {
117
+ children: (state, {
118
+ ownerState,
119
+ ...restChildProps
120
+ }) => {
118
121
  return /*#__PURE__*/React.cloneElement(children, {
119
122
  style: {
120
123
  opacity: 0,
@@ -124,7 +127,7 @@ const Fade = /*#__PURE__*/React.forwardRef(function Fade(props, ref) {
124
127
  ...children.props.style
125
128
  },
126
129
  ref: handleRef,
127
- ...childProps
130
+ ...restChildProps
128
131
  });
129
132
  }
130
133
  });
@@ -512,7 +512,5 @@ process.env.NODE_ENV !== "production" ? FilledInput.propTypes /* remove-proptype
512
512
  */
513
513
  value: PropTypes.any
514
514
  } : void 0;
515
- if (FilledInput) {
516
- FilledInput.muiName = 'Input';
517
- }
515
+ FilledInput.muiName = 'Input';
518
516
  export default FilledInput;
package/Grow/Grow.js CHANGED
@@ -163,7 +163,10 @@ const Grow = /*#__PURE__*/React.forwardRef(function Grow(props, ref) {
163
163
  addEndListener: handleAddEndListener,
164
164
  timeout: timeout === 'auto' ? null : timeout,
165
165
  ...other,
166
- children: (state, childProps) => {
166
+ children: (state, {
167
+ ownerState,
168
+ ...restChildProps
169
+ }) => {
167
170
  return /*#__PURE__*/React.cloneElement(children, {
168
171
  style: {
169
172
  opacity: 0,
@@ -174,7 +177,7 @@ const Grow = /*#__PURE__*/React.forwardRef(function Grow(props, ref) {
174
177
  ...children.props.style
175
178
  },
176
179
  ref: handleRef,
177
- ...childProps
180
+ ...restChildProps
178
181
  });
179
182
  }
180
183
  });
package/Icon/Icon.js CHANGED
@@ -181,7 +181,5 @@ process.env.NODE_ENV !== "production" ? Icon.propTypes /* remove-proptypes */ =
181
181
  */
182
182
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
183
183
  } : void 0;
184
- if (Icon) {
185
- Icon.muiName = 'Icon';
186
- }
184
+ Icon.muiName = 'Icon';
187
185
  export default Icon;
package/Input/Input.js CHANGED
@@ -357,7 +357,5 @@ process.env.NODE_ENV !== "production" ? Input.propTypes /* remove-proptypes */ =
357
357
  */
358
358
  value: PropTypes.any
359
359
  } : void 0;
360
- if (Input) {
361
- Input.muiName = 'Input';
362
- }
360
+ Input.muiName = 'Input';
363
361
  export default Input;
@@ -406,7 +406,5 @@ process.env.NODE_ENV !== "production" ? OutlinedInput.propTypes /* remove-propty
406
406
  */
407
407
  value: PropTypes.any
408
408
  } : void 0;
409
- if (OutlinedInput) {
410
- OutlinedInput.muiName = 'Input';
411
- }
409
+ OutlinedInput.muiName = 'Input';
412
410
  export default OutlinedInput;
package/Slide/Slide.js CHANGED
@@ -217,7 +217,10 @@ const Slide = /*#__PURE__*/React.forwardRef(function Slide(props, ref) {
217
217
  in: inProp,
218
218
  timeout: timeout,
219
219
  ...other,
220
- children: (state, childProps) => {
220
+ children: (state, {
221
+ ownerState,
222
+ ...restChildProps
223
+ }) => {
221
224
  return /*#__PURE__*/React.cloneElement(children, {
222
225
  ref: handleRef,
223
226
  style: {
@@ -225,7 +228,7 @@ const Slide = /*#__PURE__*/React.forwardRef(function Slide(props, ref) {
225
228
  ...style,
226
229
  ...children.props.style
227
230
  },
228
- ...childProps
231
+ ...restChildProps
229
232
  });
230
233
  }
231
234
  });
@@ -1,11 +1,38 @@
1
1
  import * as React from 'react';
2
2
  import { SxProps } from '@mui/system';
3
- import { InternalStandardProps as StandardProps } from '..';
3
+ import { CollapseProps, InternalStandardProps as StandardProps } from '..';
4
4
  import { Theme } from '../styles';
5
5
  import { TransitionProps } from '../transitions/transition';
6
6
  import { StepContentClasses } from './stepContentClasses';
7
+ import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types';
7
8
 
8
- export interface StepContentProps extends StandardProps<React.HTMLAttributes<HTMLDivElement>> {
9
+ export interface StepContentSlots {
10
+ /**
11
+ * The component that renders the transition slot.
12
+ * [Follow this guide](https://mui.com/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
13
+ * @default Collapse
14
+ */
15
+ transition?: React.JSXElementConstructor<
16
+ TransitionProps & { children?: React.ReactElement<unknown, any> }
17
+ >;
18
+ }
19
+
20
+ export type StepContentSlotsAndSlotProps = CreateSlotsAndSlotProps<
21
+ StepContentSlots,
22
+ {
23
+ /**
24
+ * Props forwared to the transition slot.
25
+ * By default, the available props are based on the [Collapse](https://mui.com/material-ui/api/collapse/#props) component
26
+ */
27
+ transition: SlotProps<React.ElementType<CollapseProps>, {}, StepContentOwnerState>;
28
+ }
29
+ >;
30
+
31
+ export interface StepContentOwnerState extends StepContentProps {}
32
+
33
+ export interface StepContentProps
34
+ extends StandardProps<React.HTMLAttributes<HTMLDivElement>>,
35
+ StepContentSlotsAndSlotProps {
9
36
  /**
10
37
  * The content of the component.
11
38
  */
@@ -22,6 +49,7 @@ export interface StepContentProps extends StandardProps<React.HTMLAttributes<HTM
22
49
  * The component used for the transition.
23
50
  * [Follow this guide](https://mui.com/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
24
51
  * @default Collapse
52
+ * @deprecated Use `slots.transition` instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
25
53
  */
26
54
  TransitionComponent?: React.JSXElementConstructor<
27
55
  TransitionProps & { children: React.ReactElement<unknown, any> }
@@ -37,6 +65,7 @@ export interface StepContentProps extends StandardProps<React.HTMLAttributes<HTM
37
65
  /**
38
66
  * Props applied to the transition element.
39
67
  * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.
68
+ * @deprecated Use `slotProps.transition` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
40
69
  */
41
70
  TransitionProps?: TransitionProps;
42
71
  }
@@ -11,6 +11,7 @@ import Collapse from "../Collapse/index.js";
11
11
  import StepperContext from "../Stepper/StepperContext.js";
12
12
  import StepContext from "../Step/StepContext.js";
13
13
  import { getStepContentUtilityClass } from "./stepContentClasses.js";
14
+ import useSlot from "../utils/useSlot.js";
14
15
  import { jsx as _jsx } from "react/jsx-runtime";
15
16
  const useUtilityClasses = ownerState => {
16
17
  const {
@@ -66,6 +67,8 @@ const StepContent = /*#__PURE__*/React.forwardRef(function StepContent(inProps,
66
67
  TransitionComponent = Collapse,
67
68
  transitionDuration: transitionDurationProp = 'auto',
68
69
  TransitionProps,
70
+ slots = {},
71
+ slotProps = {},
69
72
  ...other
70
73
  } = props;
71
74
  const {
@@ -90,19 +93,32 @@ const StepContent = /*#__PURE__*/React.forwardRef(function StepContent(inProps,
90
93
  if (transitionDurationProp === 'auto' && !TransitionComponent.muiSupportAuto) {
91
94
  transitionDuration = undefined;
92
95
  }
96
+ const externalForwardedProps = {
97
+ slots,
98
+ slotProps: {
99
+ transition: TransitionProps,
100
+ ...slotProps
101
+ }
102
+ };
103
+ const [TransitionSlot, transitionProps] = useSlot('transition', {
104
+ elementType: StepContentTransition,
105
+ externalForwardedProps,
106
+ ownerState,
107
+ className: classes.transition,
108
+ additionalProps: {
109
+ in: active || expanded,
110
+ timeout: transitionDuration,
111
+ unmountOnExit: true
112
+ }
113
+ });
93
114
  return /*#__PURE__*/_jsx(StepContentRoot, {
94
115
  className: clsx(classes.root, className),
95
116
  ref: ref,
96
117
  ownerState: ownerState,
97
118
  ...other,
98
- children: /*#__PURE__*/_jsx(StepContentTransition, {
119
+ children: /*#__PURE__*/_jsx(TransitionSlot, {
99
120
  as: TransitionComponent,
100
- in: active || expanded,
101
- className: classes.transition,
102
- ownerState: ownerState,
103
- timeout: transitionDuration,
104
- unmountOnExit: true,
105
- ...TransitionProps,
121
+ ...transitionProps,
106
122
  children: children
107
123
  })
108
124
  });
@@ -124,6 +140,20 @@ process.env.NODE_ENV !== "production" ? StepContent.propTypes /* remove-proptype
124
140
  * @ignore
125
141
  */
126
142
  className: PropTypes.string,
143
+ /**
144
+ * The props used for each slot inside.
145
+ * @default {}
146
+ */
147
+ slotProps: PropTypes.shape({
148
+ transition: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
149
+ }),
150
+ /**
151
+ * The components used for each slot inside.
152
+ * @default {}
153
+ */
154
+ slots: PropTypes.shape({
155
+ transition: PropTypes.elementType
156
+ }),
127
157
  /**
128
158
  * The system prop that allows defining system overrides as well as additional CSS styles.
129
159
  */
@@ -132,6 +162,7 @@ process.env.NODE_ENV !== "production" ? StepContent.propTypes /* remove-proptype
132
162
  * The component used for the transition.
133
163
  * [Follow this guide](https://mui.com/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
134
164
  * @default Collapse
165
+ * @deprecated Use `slots.transition` instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
135
166
  */
136
167
  TransitionComponent: PropTypes.elementType,
137
168
  /**
@@ -149,6 +180,7 @@ process.env.NODE_ENV !== "production" ? StepContent.propTypes /* remove-proptype
149
180
  /**
150
181
  * Props applied to the transition element.
151
182
  * By default, the element is based on this [`Transition`](https://reactcommunity.org/react-transition-group/transition/) component.
183
+ * @deprecated Use `slotProps.transition` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
152
184
  */
153
185
  TransitionProps: PropTypes.object
154
186
  } : void 0;
@@ -267,7 +267,5 @@ process.env.NODE_ENV !== "production" ? StepLabel.propTypes /* remove-proptypes
267
267
  */
268
268
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
269
269
  } : void 0;
270
- if (StepLabel) {
271
- StepLabel.muiName = 'StepLabel';
272
- }
270
+ StepLabel.muiName = 'StepLabel';
273
271
  export default StepLabel;
@@ -230,7 +230,5 @@ process.env.NODE_ENV !== "production" ? SvgIcon.propTypes /* remove-proptypes */
230
230
  */
231
231
  viewBox: PropTypes.string
232
232
  } : void 0;
233
- if (SvgIcon) {
234
- SvgIcon.muiName = 'SvgIcon';
235
- }
233
+ SvgIcon.muiName = 'SvgIcon';
236
234
  export default SvgIcon;
@@ -2,11 +2,14 @@ import * as React from 'react';
2
2
  import { SxProps } from '@mui/system';
3
3
  import { Theme } from '../styles';
4
4
  import { OverridableComponent, OverrideProps } from '../OverridableComponent';
5
- import { TablePaginationActionsProps } from './TablePaginationActions';
5
+ import { TablePaginationActionsProps, TablePaginationActionsSlots } from './TablePaginationActions';
6
6
  import { TableCellProps } from '../TableCell';
7
7
  import { IconButtonProps } from '../IconButton';
8
8
  import { SelectProps } from '../Select';
9
9
  import { TablePaginationClasses } from './tablePaginationClasses';
10
+ import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types';
11
+ import { ToolbarProps } from '../Toolbar';
12
+ import { MenuItemProps } from '../MenuItem';
10
13
 
11
14
  export interface LabelDisplayedRowsArgs {
12
15
  from: number;
@@ -15,6 +18,133 @@ export interface LabelDisplayedRowsArgs {
15
18
  page: number;
16
19
  }
17
20
 
21
+ export interface TablePaginationRootSlotPropsOverrides {}
22
+
23
+ export interface TablePaginationToolbarSlotPropsOverrides {}
24
+
25
+ export interface TablePaginationSpacerSlotPropsOverrides {}
26
+
27
+ export interface TablePaginationSelectLabelSlotPropsOverrides {}
28
+
29
+ export interface TablePaginationSelectSlotPropsOverrides {}
30
+
31
+ export interface TablePaginationMenuItemSlotPropsOverrides {}
32
+
33
+ export interface TablePaginationDisplayedRowsSlotPropsOverrides {}
34
+
35
+ export interface TablePaginationActionsSlotPropsOverrides {}
36
+
37
+ export interface TablePaginationSlots {
38
+ /**
39
+ * The component that renders the root slot.
40
+ * [Follow this guide](https://mui.com/material-ui/api/table-cell/#props) to learn more about the requirements for this component.
41
+ * @default TableCell
42
+ */
43
+ root: React.ElementType;
44
+ /**
45
+ * The component that renders the toolbar slot.
46
+ * [Follow this guide](https://mui.com/material-ui/api/toolbar/#props) to learn more about the requirements for this component.
47
+ * @default Toolbar
48
+ */
49
+ toolbar: React.ElementType;
50
+ /**
51
+ * The tag that renders the spacer slot.
52
+ * @default 'div'
53
+ */
54
+ spacer: React.ElementType;
55
+ /**
56
+ * The tag that renders the selectLabel slot.
57
+ * @default 'p'
58
+ */
59
+ selectLabel: React.ElementType;
60
+ /**
61
+ * The component that renders the select slot.
62
+ * [Follow this guide](https://mui.com/material-ui/api/select/#props) to learn more about the requirements for this component.
63
+ * @default Select
64
+ */
65
+ select: React.ElementType;
66
+ /**
67
+ * The component that renders the select slot.
68
+ * [Follow this guide](https://mui.com/material-ui/api/menu-item/#props) to learn more about the requirements for this component.
69
+ * @default MenuItem
70
+ */
71
+ menuItem: React.ElementType;
72
+ /**
73
+ * The tag that renders the displayedRows slot.
74
+ * @default 'p'
75
+ */
76
+ displayedRows: React.ElementType;
77
+ /**
78
+ * The slots that passed to the actions slot.
79
+ */
80
+ actions: TablePaginationActionsSlots;
81
+ }
82
+
83
+ export type TablePaginationSlotsAndSlotProps = CreateSlotsAndSlotProps<
84
+ TablePaginationSlots,
85
+ {
86
+ /**
87
+ * Props forwarded to the root slot.
88
+ * By default, the avaible props are based on the [TableCell](https://mui.com/material-ui/api/table-cell/#props) component.
89
+ */
90
+ root: SlotProps<
91
+ React.ElementType<TableCellProps>,
92
+ TablePaginationRootSlotPropsOverrides,
93
+ TablePaginationOwnerState
94
+ >;
95
+ /**
96
+ * Props forwarded to the toolbar slot.
97
+ * By default, the avaible props are based on the [Toolbar](https://mui.com/material-ui/api/toolbar/#props) component.
98
+ */
99
+ toolbar: SlotProps<
100
+ React.ElementType<ToolbarProps>,
101
+ TablePaginationToolbarSlotPropsOverrides,
102
+ TablePaginationOwnerState
103
+ >;
104
+ /**
105
+ * Props forwarded to the spacer slot.
106
+ * By default, the avaible props are based on the div element.
107
+ */
108
+ spacer: SlotProps<'div', TablePaginationSpacerSlotPropsOverrides, TablePaginationOwnerState>;
109
+ /**
110
+ * Props forwarded to the selectLabel slot.
111
+ * By default, the avaible props are based on the paragraph element.
112
+ */
113
+ selectLabel: SlotProps<
114
+ 'p',
115
+ TablePaginationSelectLabelSlotPropsOverrides,
116
+ TablePaginationOwnerState
117
+ >;
118
+ /**
119
+ * Props forwarded to the select slot.
120
+ * By default, the avaible props are based on the [Select](https://mui.com/material-ui/api/select/#props) component.
121
+ */
122
+ select: Partial<SelectProps> & TablePaginationSelectSlotPropsOverrides;
123
+ /**
124
+ * Props forwarded to the menuItem slot.
125
+ * By default, the avaible props are based on the [MenuItem](https://mui.com/material-ui/api/menu-item/#props) component.
126
+ */
127
+ menuItem: SlotProps<
128
+ React.ElementType<MenuItemProps>,
129
+ TablePaginationMenuItemSlotPropsOverrides,
130
+ TablePaginationOwnerState
131
+ >;
132
+ /**
133
+ * Props forwarded to the displayedRows slot.
134
+ * By default, the avaible props are based on the paragraph element.
135
+ */
136
+ displayedRows: SlotProps<
137
+ 'p',
138
+ TablePaginationDisplayedRowsSlotPropsOverrides,
139
+ TablePaginationOwnerState
140
+ >;
141
+ /**
142
+ * Props forwarded to the actions slot.
143
+ */
144
+ actions: TablePaginationActionsProps['slotProps'] & TablePaginationActionsSlotPropsOverrides;
145
+ }
146
+ >;
147
+
18
148
  /**
19
149
  * This type is kept for compatibility. Use `TablePaginationOwnProps` instead.
20
150
  */
@@ -134,30 +264,16 @@ export interface TablePaginationOwnProps extends TablePaginationBaseProps {
134
264
  * @default false
135
265
  */
136
266
  showLastButton?: boolean;
137
- /**
138
- * The props used for each slot inside the TablePagination.
139
- * @default {}
140
- */
141
- slotProps?: {
142
- actions?: TablePaginationActionsProps['slotProps'];
143
- select?: Partial<SelectProps>;
144
- };
145
- /**
146
- * The components used for each slot inside the TablePagination.
147
- * Either a string to use a HTML element or a component.
148
- * @default {}
149
- */
150
- slots?: {
151
- actions?: TablePaginationActionsProps['slots'];
152
- };
153
267
  /**
154
268
  * The system prop that allows defining system overrides as well as additional CSS styles.
155
269
  */
156
270
  sx?: SxProps<Theme>;
157
271
  }
158
272
 
273
+ export interface TablePaginationOwnerState extends TablePaginationOwnProps {}
274
+
159
275
  export interface TablePaginationTypeMap<AdditionalProps, RootComponent extends React.ElementType> {
160
- props: AdditionalProps & TablePaginationOwnProps;
276
+ props: AdditionalProps & TablePaginationOwnProps & TablePaginationSlotsAndSlotProps;
161
277
  defaultComponent: RootComponent;
162
278
  }
163
279