@mui/material 5.15.0 → 5.15.1

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 (34) hide show
  1. package/AccordionActions/AccordionActions.js +1 -1
  2. package/Autocomplete/Autocomplete.js +4 -4
  3. package/CHANGELOG.md +42 -0
  4. package/CardActions/CardActions.js +1 -1
  5. package/TablePagination/TablePagination.d.ts +8 -0
  6. package/TablePagination/TablePagination.js +27 -4
  7. package/TablePagination/TablePaginationActions.d.ts +49 -0
  8. package/TablePagination/TablePaginationActions.js +54 -19
  9. package/index.js +1 -1
  10. package/legacy/AccordionActions/AccordionActions.js +1 -1
  11. package/legacy/Autocomplete/Autocomplete.js +4 -4
  12. package/legacy/CardActions/CardActions.js +1 -1
  13. package/legacy/TablePagination/TablePagination.js +29 -4
  14. package/legacy/TablePagination/TablePaginationActions.js +56 -19
  15. package/legacy/index.js +1 -1
  16. package/legacy/styles/experimental_extendTheme.js +12 -6
  17. package/modern/AccordionActions/AccordionActions.js +1 -1
  18. package/modern/Autocomplete/Autocomplete.js +4 -4
  19. package/modern/CardActions/CardActions.js +1 -1
  20. package/modern/TablePagination/TablePagination.js +27 -4
  21. package/modern/TablePagination/TablePaginationActions.js +53 -18
  22. package/modern/index.js +1 -1
  23. package/modern/styles/experimental_extendTheme.js +12 -6
  24. package/node/AccordionActions/AccordionActions.js +1 -1
  25. package/node/Autocomplete/Autocomplete.js +4 -4
  26. package/node/CardActions/CardActions.js +1 -1
  27. package/node/TablePagination/TablePagination.js +27 -4
  28. package/node/TablePagination/TablePaginationActions.js +54 -19
  29. package/node/index.js +1 -1
  30. package/node/styles/experimental_extendTheme.js +11 -5
  31. package/package.json +6 -6
  32. package/styles/experimental_extendTheme.js +12 -6
  33. package/umd/material-ui.development.js +103 -39
  34. package/umd/material-ui.production.min.js +20 -20
@@ -34,11 +34,17 @@ function setColor(obj, key, defaultValue) {
34
34
  obj[key] = defaultValue;
35
35
  }
36
36
  }
37
+ function toRgb(color) {
38
+ if (!color || !color.startsWith('hsl')) {
39
+ return color;
40
+ }
41
+ return (0, _system.hslToRgb)(color);
42
+ }
37
43
  function setColorChannel(obj, key) {
38
44
  if (!(`${key}Channel` in obj)) {
39
45
  // custom channel token is not provided, generate one.
40
46
  // if channel token can't be generated, show a warning.
41
- obj[`${key}Channel`] = (0, _system.private_safeColorChannel)(obj[key], `MUI: Can't create \`palette.${key}Channel\` because \`palette.${key}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` + '\n' + `To suppress this warning, you need to explicitly provide the \`palette.${key}Channel\` as a string (in rgb format, e.g. "12 12 12") or undefined if you want to remove the channel token.`);
47
+ obj[`${key}Channel`] = (0, _system.private_safeColorChannel)(toRgb(obj[key]), `MUI: Can't create \`palette.${key}Channel\` because \`palette.${key}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` + '\n' + `To suppress this warning, you need to explicitly provide the \`palette.${key}Channel\` as a string (in rgb format, e.g. "12 12 12") or undefined if you want to remove the channel token.`);
42
48
  }
43
49
  }
44
50
  const silent = fn => {
@@ -257,16 +263,16 @@ function extendTheme(options = {}, ...args) {
257
263
  if (colors && typeof colors === 'object') {
258
264
  // Silent the error for custom palettes.
259
265
  if (colors.main) {
260
- setColor(palette[color], 'mainChannel', (0, _system.private_safeColorChannel)(colors.main));
266
+ setColor(palette[color], 'mainChannel', (0, _system.private_safeColorChannel)(toRgb(colors.main)));
261
267
  }
262
268
  if (colors.light) {
263
- setColor(palette[color], 'lightChannel', (0, _system.private_safeColorChannel)(colors.light));
269
+ setColor(palette[color], 'lightChannel', (0, _system.private_safeColorChannel)(toRgb(colors.light)));
264
270
  }
265
271
  if (colors.dark) {
266
- setColor(palette[color], 'darkChannel', (0, _system.private_safeColorChannel)(colors.dark));
272
+ setColor(palette[color], 'darkChannel', (0, _system.private_safeColorChannel)(toRgb(colors.dark)));
267
273
  }
268
274
  if (colors.contrastText) {
269
- setColor(palette[color], 'contrastTextChannel', (0, _system.private_safeColorChannel)(colors.contrastText));
275
+ setColor(palette[color], 'contrastTextChannel', (0, _system.private_safeColorChannel)(toRgb(colors.contrastText)));
270
276
  }
271
277
  if (color === 'text') {
272
278
  // Text colors: text.primary, text.secondary
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/material",
3
- "version": "5.15.0",
3
+ "version": "5.15.1",
4
4
  "private": false,
5
5
  "author": "MUI Team",
6
6
  "description": "React components that implement Google's Material Design.",
@@ -28,12 +28,12 @@
28
28
  },
29
29
  "dependencies": {
30
30
  "@babel/runtime": "^7.23.5",
31
- "@mui/base": "5.0.0-beta.27",
32
- "@mui/core-downloads-tracker": "^5.15.0",
33
- "@mui/system": "^5.15.0",
31
+ "@mui/base": "5.0.0-beta.28",
32
+ "@mui/core-downloads-tracker": "^5.15.1",
33
+ "@mui/system": "^5.15.1",
34
34
  "@mui/types": "^7.2.11",
35
- "@mui/utils": "^5.15.0",
36
- "@types/react-transition-group": "^4.4.9",
35
+ "@mui/utils": "^5.15.1",
36
+ "@types/react-transition-group": "^4.4.10",
37
37
  "clsx": "^2.0.0",
38
38
  "csstype": "^3.1.2",
39
39
  "prop-types": "^15.8.1",
@@ -3,7 +3,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
3
3
  const _excluded = ["colorSchemes", "cssVarPrefix", "shouldSkipGeneratingVar"],
4
4
  _excluded2 = ["palette"];
5
5
  import { deepmerge } from '@mui/utils';
6
- import { private_safeColorChannel as safeColorChannel, private_safeAlpha as safeAlpha, private_safeDarken as safeDarken, private_safeLighten as safeLighten, private_safeEmphasize as safeEmphasize, unstable_createGetCssVar as systemCreateGetCssVar, unstable_defaultSxConfig as defaultSxConfig, unstable_styleFunctionSx as styleFunctionSx, unstable_prepareCssVars as prepareCssVars } from '@mui/system';
6
+ import { private_safeColorChannel as safeColorChannel, private_safeAlpha as safeAlpha, private_safeDarken as safeDarken, private_safeLighten as safeLighten, private_safeEmphasize as safeEmphasize, unstable_createGetCssVar as systemCreateGetCssVar, unstable_defaultSxConfig as defaultSxConfig, unstable_styleFunctionSx as styleFunctionSx, unstable_prepareCssVars as prepareCssVars, hslToRgb } from '@mui/system';
7
7
  import defaultShouldSkipGeneratingVar from './shouldSkipGeneratingVar';
8
8
  import createThemeWithoutVars from './createTheme';
9
9
  import getOverlayAlpha from './getOverlayAlpha';
@@ -26,11 +26,17 @@ function setColor(obj, key, defaultValue) {
26
26
  obj[key] = defaultValue;
27
27
  }
28
28
  }
29
+ function toRgb(color) {
30
+ if (!color || !color.startsWith('hsl')) {
31
+ return color;
32
+ }
33
+ return hslToRgb(color);
34
+ }
29
35
  function setColorChannel(obj, key) {
30
36
  if (!(`${key}Channel` in obj)) {
31
37
  // custom channel token is not provided, generate one.
32
38
  // if channel token can't be generated, show a warning.
33
- obj[`${key}Channel`] = safeColorChannel(obj[key], `MUI: Can't create \`palette.${key}Channel\` because \`palette.${key}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` + '\n' + `To suppress this warning, you need to explicitly provide the \`palette.${key}Channel\` as a string (in rgb format, e.g. "12 12 12") or undefined if you want to remove the channel token.`);
39
+ obj[`${key}Channel`] = safeColorChannel(toRgb(obj[key]), `MUI: Can't create \`palette.${key}Channel\` because \`palette.${key}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` + '\n' + `To suppress this warning, you need to explicitly provide the \`palette.${key}Channel\` as a string (in rgb format, e.g. "12 12 12") or undefined if you want to remove the channel token.`);
34
40
  }
35
41
  }
36
42
  const silent = fn => {
@@ -248,16 +254,16 @@ export default function extendTheme(options = {}, ...args) {
248
254
  if (colors && typeof colors === 'object') {
249
255
  // Silent the error for custom palettes.
250
256
  if (colors.main) {
251
- setColor(palette[color], 'mainChannel', safeColorChannel(colors.main));
257
+ setColor(palette[color], 'mainChannel', safeColorChannel(toRgb(colors.main)));
252
258
  }
253
259
  if (colors.light) {
254
- setColor(palette[color], 'lightChannel', safeColorChannel(colors.light));
260
+ setColor(palette[color], 'lightChannel', safeColorChannel(toRgb(colors.light)));
255
261
  }
256
262
  if (colors.dark) {
257
- setColor(palette[color], 'darkChannel', safeColorChannel(colors.dark));
263
+ setColor(palette[color], 'darkChannel', safeColorChannel(toRgb(colors.dark)));
258
264
  }
259
265
  if (colors.contrastText) {
260
- setColor(palette[color], 'contrastTextChannel', safeColorChannel(colors.contrastText));
266
+ setColor(palette[color], 'contrastTextChannel', safeColorChannel(toRgb(colors.contrastText)));
261
267
  }
262
268
  if (color === 'text') {
263
269
  // Text colors: text.primary, text.secondary
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/material v5.15.0
2
+ * @mui/material v5.15.1
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -10869,11 +10869,17 @@ See https://mui.com/r/migration-v4/#mui-material-styles for more details.` );
10869
10869
  obj[key] = defaultValue;
10870
10870
  }
10871
10871
  }
10872
+ function toRgb(color) {
10873
+ if (!color || !color.startsWith('hsl')) {
10874
+ return color;
10875
+ }
10876
+ return hslToRgb(color);
10877
+ }
10872
10878
  function setColorChannel(obj, key) {
10873
10879
  if (!(`${key}Channel` in obj)) {
10874
10880
  // custom channel token is not provided, generate one.
10875
10881
  // if channel token can't be generated, show a warning.
10876
- obj[`${key}Channel`] = private_safeColorChannel(obj[key], `MUI: Can't create \`palette.${key}Channel\` because \`palette.${key}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` + '\n' + `To suppress this warning, you need to explicitly provide the \`palette.${key}Channel\` as a string (in rgb format, e.g. "12 12 12") or undefined if you want to remove the channel token.`);
10882
+ obj[`${key}Channel`] = private_safeColorChannel(toRgb(obj[key]), `MUI: Can't create \`palette.${key}Channel\` because \`palette.${key}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` + '\n' + `To suppress this warning, you need to explicitly provide the \`palette.${key}Channel\` as a string (in rgb format, e.g. "12 12 12") or undefined if you want to remove the channel token.`);
10877
10883
  }
10878
10884
  }
10879
10885
  const silent = fn => {
@@ -11091,16 +11097,16 @@ See https://mui.com/r/migration-v4/#mui-material-styles for more details.` );
11091
11097
  if (colors && typeof colors === 'object') {
11092
11098
  // Silent the error for custom palettes.
11093
11099
  if (colors.main) {
11094
- setColor(palette[color], 'mainChannel', private_safeColorChannel(colors.main));
11100
+ setColor(palette[color], 'mainChannel', private_safeColorChannel(toRgb(colors.main)));
11095
11101
  }
11096
11102
  if (colors.light) {
11097
- setColor(palette[color], 'lightChannel', private_safeColorChannel(colors.light));
11103
+ setColor(palette[color], 'lightChannel', private_safeColorChannel(toRgb(colors.light)));
11098
11104
  }
11099
11105
  if (colors.dark) {
11100
- setColor(palette[color], 'darkChannel', private_safeColorChannel(colors.dark));
11106
+ setColor(palette[color], 'darkChannel', private_safeColorChannel(toRgb(colors.dark)));
11101
11107
  }
11102
11108
  if (colors.contrastText) {
11103
- setColor(palette[color], 'contrastTextChannel', private_safeColorChannel(colors.contrastText));
11109
+ setColor(palette[color], 'contrastTextChannel', private_safeColorChannel(toRgb(colors.contrastText)));
11104
11110
  }
11105
11111
  if (color === 'text') {
11106
11112
  // Text colors: text.primary, text.secondary
@@ -13188,7 +13194,7 @@ See https://mui.com/r/migration-v4/#mui-material-styles for more details.` );
13188
13194
  padding: 8,
13189
13195
  justifyContent: 'flex-end'
13190
13196
  }, !ownerState.disableSpacing && {
13191
- '& > :not(:first-of-type)': {
13197
+ '& > :not(style) ~ :not(style)': {
13192
13198
  marginLeft: 8
13193
13199
  }
13194
13200
  }));
@@ -23037,7 +23043,7 @@ See https://mui.com/r/migration-v4/#mui-material-styles for more details.` );
23037
23043
  // | To update them edit the d.ts file and run "yarn proptypes" |
23038
23044
  // ----------------------------------------------------------------------
23039
23045
  /**
23040
- * If `true`, the portion of the selected suggestion that has not been typed by the user,
23046
+ * If `true`, the portion of the selected suggestion that the user hasn't typed,
23041
23047
  * known as the completion string, appears inline after the input cursor in the textbox.
23042
23048
  * The inline completion string is visually highlighted and has a selected state.
23043
23049
  * @default false
@@ -23053,7 +23059,7 @@ See https://mui.com/r/migration-v4/#mui-material-styles for more details.` );
23053
23059
  * when the Autocomplete loses focus unless the user chooses
23054
23060
  * a different option or changes the character string in the input.
23055
23061
  *
23056
- * When using `freeSolo` mode, the typed value will be the input value
23062
+ * When using the `freeSolo` mode, the typed value will be the input value
23057
23063
  * if the Autocomplete loses focus without highlighting an option.
23058
23064
  * @default false
23059
23065
  */
@@ -23088,8 +23094,8 @@ See https://mui.com/r/migration-v4/#mui-material-styles for more details.` );
23088
23094
  /**
23089
23095
  * If `true`, the input's text is cleared on blur if no value is selected.
23090
23096
  *
23091
- * Set to `true` if you want to help the user enter a new value.
23092
- * Set to `false` if you want to help the user resume their search.
23097
+ * Set it to `true` if you want to help the user enter a new value.
23098
+ * Set it to `false` if you want to help the user resume their search.
23093
23099
  * @default !props.freeSolo
23094
23100
  */
23095
23101
  clearOnBlur: PropTypes.bool,
@@ -26169,7 +26175,7 @@ See https://mui.com/r/migration-v4/#mui-material-styles for more details.` );
26169
26175
  alignItems: 'center',
26170
26176
  padding: 8
26171
26177
  }, !ownerState.disableSpacing && {
26172
- '& > :not(:first-of-type)': {
26178
+ '& > :not(style) ~ :not(style)': {
26173
26179
  marginLeft: 8
26174
26180
  }
26175
26181
  }));
@@ -38159,11 +38165,11 @@ See https://mui.com/r/migration-v4/#mui-material-styles for more details.` );
38159
38165
  const paginationItemClasses = generateUtilityClasses('MuiPaginationItem', ['root', 'page', 'sizeSmall', 'sizeLarge', 'text', 'textPrimary', 'textSecondary', 'outlined', 'outlinedPrimary', 'outlinedSecondary', 'rounded', 'ellipsis', 'firstLast', 'previousNext', 'focusVisible', 'disabled', 'selected', 'icon']);
38160
38166
  var paginationItemClasses$1 = paginationItemClasses;
38161
38167
 
38162
- var FirstPageIcon = createSvgIcon( /*#__PURE__*/jsxRuntime_1("path", {
38168
+ var FirstPageIconDefault = createSvgIcon( /*#__PURE__*/jsxRuntime_1("path", {
38163
38169
  d: "M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"
38164
38170
  }), 'FirstPage');
38165
38171
 
38166
- var LastPageIcon = createSvgIcon( /*#__PURE__*/jsxRuntime_1("path", {
38172
+ var LastPageIconDefault = createSvgIcon( /*#__PURE__*/jsxRuntime_1("path", {
38167
38173
  d: "M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"
38168
38174
  }), 'LastPage');
38169
38175
 
@@ -38395,13 +38401,13 @@ See https://mui.com/r/migration-v4/#mui-material-styles for more details.` );
38395
38401
  const normalizedIcons = theme.direction === 'rtl' ? {
38396
38402
  previous: slots.next || components.next || NavigateNextIcon,
38397
38403
  next: slots.previous || components.previous || NavigateBeforeIcon,
38398
- last: slots.first || components.first || FirstPageIcon,
38399
- first: slots.last || components.last || LastPageIcon
38404
+ last: slots.first || components.first || FirstPageIconDefault,
38405
+ first: slots.last || components.last || LastPageIconDefault
38400
38406
  } : {
38401
38407
  previous: slots.previous || components.previous || NavigateBeforeIcon,
38402
38408
  next: slots.next || components.next || NavigateNextIcon,
38403
- first: slots.first || components.first || FirstPageIcon,
38404
- last: slots.last || components.last || LastPageIcon
38409
+ first: slots.first || components.first || FirstPageIconDefault,
38410
+ last: slots.last || components.last || LastPageIconDefault
38405
38411
  };
38406
38412
  const Icon = normalizedIcons[type];
38407
38413
  return type === 'start-ellipsis' || type === 'end-ellipsis' ? /*#__PURE__*/jsxRuntime_1(PaginationItemEllipsis, {
@@ -47240,10 +47246,9 @@ See https://mui.com/r/migration-v4/#mui-material-styles for more details.` );
47240
47246
  d: "M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"
47241
47247
  }), 'KeyboardArrowRight');
47242
47248
 
47243
- var _LastPageIcon, _FirstPageIcon, _KeyboardArrowRight, _KeyboardArrowLeft, _KeyboardArrowLeft2, _KeyboardArrowRight2, _FirstPageIcon2, _LastPageIcon2;
47244
- const _excluded$a = ["backIconButtonProps", "count", "disabled", "getItemAriaLabel", "nextIconButtonProps", "onPageChange", "page", "rowsPerPage", "showFirstButton", "showLastButton", "slotProps"];
47249
+ const _excluded$a = ["backIconButtonProps", "count", "disabled", "getItemAriaLabel", "nextIconButtonProps", "onPageChange", "page", "rowsPerPage", "showFirstButton", "showLastButton", "slots", "slotProps"];
47245
47250
  const TablePaginationActions = /*#__PURE__*/React__namespace.forwardRef(function TablePaginationActions(props, ref) {
47246
- var _slotProps$firstButto, _slotProps$previousBu, _slotProps$nextButton, _slotProps$lastButton;
47251
+ var _slots$firstButton, _slots$lastButton, _slots$nextButton, _slots$previousButton, _slots$firstButtonIco, _slots$lastButtonIcon, _slots$nextButtonIcon, _slots$previousButton2;
47247
47252
  const {
47248
47253
  backIconButtonProps,
47249
47254
  count,
@@ -47255,7 +47260,8 @@ See https://mui.com/r/migration-v4/#mui-material-styles for more details.` );
47255
47260
  rowsPerPage,
47256
47261
  showFirstButton,
47257
47262
  showLastButton,
47258
- slotProps
47263
+ slots = {},
47264
+ slotProps = {}
47259
47265
  } = props,
47260
47266
  other = _objectWithoutPropertiesLoose(props, _excluded$a);
47261
47267
  const theme = useTheme();
@@ -47271,39 +47277,55 @@ See https://mui.com/r/migration-v4/#mui-material-styles for more details.` );
47271
47277
  const handleLastPageButtonClick = event => {
47272
47278
  onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));
47273
47279
  };
47280
+ const FirstButton = (_slots$firstButton = slots.firstButton) != null ? _slots$firstButton : IconButton$1;
47281
+ const LastButton = (_slots$lastButton = slots.lastButton) != null ? _slots$lastButton : IconButton$1;
47282
+ const NextButton = (_slots$nextButton = slots.nextButton) != null ? _slots$nextButton : IconButton$1;
47283
+ const PreviousButton = (_slots$previousButton = slots.previousButton) != null ? _slots$previousButton : IconButton$1;
47284
+ const FirstButtonIcon = (_slots$firstButtonIco = slots.firstButtonIcon) != null ? _slots$firstButtonIco : FirstPageIconDefault;
47285
+ const LastButtonIcon = (_slots$lastButtonIcon = slots.lastButtonIcon) != null ? _slots$lastButtonIcon : LastPageIconDefault;
47286
+ const NextButtonIcon = (_slots$nextButtonIcon = slots.nextButtonIcon) != null ? _slots$nextButtonIcon : KeyboardArrowRight;
47287
+ const PreviousButtonIcon = (_slots$previousButton2 = slots.previousButtonIcon) != null ? _slots$previousButton2 : KeyboardArrowLeft;
47288
+ const FirstButtonSlot = theme.direction === 'rtl' ? LastButton : FirstButton;
47289
+ const PreviousButtonSlot = theme.direction === 'rtl' ? NextButton : PreviousButton;
47290
+ const NextButtonSlot = theme.direction === 'rtl' ? PreviousButton : NextButton;
47291
+ const LastButtonSlot = theme.direction === 'rtl' ? FirstButton : LastButton;
47292
+ const firstButtonSlotProps = theme.direction === 'rtl' ? slotProps.lastButton : slotProps.firstButton;
47293
+ const previousButtonSlotProps = theme.direction === 'rtl' ? slotProps.nextButton : slotProps.previousButton;
47294
+ const nextButtonSlotProps = theme.direction === 'rtl' ? slotProps.previousButton : slotProps.nextButton;
47295
+ const lastButtonSlotProps = theme.direction === 'rtl' ? slotProps.firstButton : slotProps.lastButton;
47274
47296
  return /*#__PURE__*/jsxRuntime_2("div", _extends({
47275
47297
  ref: ref
47276
47298
  }, other, {
47277
- children: [showFirstButton && /*#__PURE__*/jsxRuntime_1(IconButton$1, _extends({
47299
+ children: [showFirstButton && /*#__PURE__*/jsxRuntime_1(FirstButtonSlot, _extends({
47278
47300
  onClick: handleFirstPageButtonClick,
47279
47301
  disabled: disabled || page === 0,
47280
47302
  "aria-label": getItemAriaLabel('first', page),
47281
47303
  title: getItemAriaLabel('first', page)
47282
- }, (_slotProps$firstButto = slotProps == null ? void 0 : slotProps.firstButton) != null ? _slotProps$firstButto : {}, {
47283
- children: theme.direction === 'rtl' ? _LastPageIcon || (_LastPageIcon = /*#__PURE__*/jsxRuntime_1(LastPageIcon, {})) : _FirstPageIcon || (_FirstPageIcon = /*#__PURE__*/jsxRuntime_1(FirstPageIcon, {}))
47284
- })), /*#__PURE__*/jsxRuntime_1(IconButton$1, _extends({
47304
+ }, firstButtonSlotProps, {
47305
+ children: theme.direction === 'rtl' ? /*#__PURE__*/jsxRuntime_1(LastButtonIcon, _extends({}, slotProps.lastButtonIcon)) : /*#__PURE__*/jsxRuntime_1(FirstButtonIcon, _extends({}, slotProps.firstButtonIcon))
47306
+ })), /*#__PURE__*/jsxRuntime_1(PreviousButtonSlot, _extends({
47285
47307
  onClick: handleBackButtonClick,
47286
47308
  disabled: disabled || page === 0,
47287
47309
  color: "inherit",
47288
47310
  "aria-label": getItemAriaLabel('previous', page),
47289
47311
  title: getItemAriaLabel('previous', page)
47290
- }, (_slotProps$previousBu = slotProps == null ? void 0 : slotProps.previousButton) != null ? _slotProps$previousBu : backIconButtonProps, {
47291
- children: theme.direction === 'rtl' ? _KeyboardArrowRight || (_KeyboardArrowRight = /*#__PURE__*/jsxRuntime_1(KeyboardArrowRight, {})) : _KeyboardArrowLeft || (_KeyboardArrowLeft = /*#__PURE__*/jsxRuntime_1(KeyboardArrowLeft, {}))
47292
- })), /*#__PURE__*/jsxRuntime_1(IconButton$1, _extends({
47312
+ }, previousButtonSlotProps != null ? previousButtonSlotProps : backIconButtonProps, {
47313
+ children: theme.direction === 'rtl' ? /*#__PURE__*/jsxRuntime_1(NextButtonIcon, _extends({}, slotProps.nextButtonIcon)) : /*#__PURE__*/jsxRuntime_1(PreviousButtonIcon, _extends({}, slotProps.previousButtonIcon))
47314
+ })), /*#__PURE__*/jsxRuntime_1(NextButtonSlot, _extends({
47293
47315
  onClick: handleNextButtonClick,
47294
47316
  disabled: disabled || (count !== -1 ? page >= Math.ceil(count / rowsPerPage) - 1 : false),
47295
47317
  color: "inherit",
47296
47318
  "aria-label": getItemAriaLabel('next', page),
47297
47319
  title: getItemAriaLabel('next', page)
47298
- }, (_slotProps$nextButton = slotProps == null ? void 0 : slotProps.nextButton) != null ? _slotProps$nextButton : nextIconButtonProps, {
47299
- children: theme.direction === 'rtl' ? _KeyboardArrowLeft2 || (_KeyboardArrowLeft2 = /*#__PURE__*/jsxRuntime_1(KeyboardArrowLeft, {})) : _KeyboardArrowRight2 || (_KeyboardArrowRight2 = /*#__PURE__*/jsxRuntime_1(KeyboardArrowRight, {}))
47300
- })), showLastButton && /*#__PURE__*/jsxRuntime_1(IconButton$1, _extends({
47320
+ }, nextButtonSlotProps != null ? nextButtonSlotProps : nextIconButtonProps, {
47321
+ children: theme.direction === 'rtl' ? /*#__PURE__*/jsxRuntime_1(PreviousButtonIcon, _extends({}, slotProps.previousButtonIcon)) : /*#__PURE__*/jsxRuntime_1(NextButtonIcon, _extends({}, slotProps.nextButtonIcon))
47322
+ })), showLastButton && /*#__PURE__*/jsxRuntime_1(LastButtonSlot, _extends({
47301
47323
  onClick: handleLastPageButtonClick,
47302
47324
  disabled: disabled || page >= Math.ceil(count / rowsPerPage) - 1,
47303
47325
  "aria-label": getItemAriaLabel('last', page),
47304
47326
  title: getItemAriaLabel('last', page)
47305
- }, (_slotProps$lastButton = slotProps == null ? void 0 : slotProps.lastButton) != null ? _slotProps$lastButton : {}, {
47306
- children: theme.direction === 'rtl' ? _FirstPageIcon2 || (_FirstPageIcon2 = /*#__PURE__*/jsxRuntime_1(FirstPageIcon, {})) : _LastPageIcon2 || (_LastPageIcon2 = /*#__PURE__*/jsxRuntime_1(LastPageIcon, {}))
47327
+ }, lastButtonSlotProps, {
47328
+ children: theme.direction === 'rtl' ? /*#__PURE__*/jsxRuntime_1(FirstButtonIcon, _extends({}, slotProps.firstButtonIcon)) : /*#__PURE__*/jsxRuntime_1(LastButtonIcon, _extends({}, slotProps.lastButtonIcon))
47307
47329
  }))]
47308
47330
  }));
47309
47331
  });
@@ -47364,9 +47386,28 @@ See https://mui.com/r/migration-v4/#mui-material-styles for more details.` );
47364
47386
  */
47365
47387
  slotProps: PropTypes.shape({
47366
47388
  firstButton: PropTypes.object,
47389
+ firstButtonIcon: PropTypes.object,
47367
47390
  lastButton: PropTypes.object,
47391
+ lastButtonIcon: PropTypes.object,
47368
47392
  nextButton: PropTypes.object,
47369
- previousButton: PropTypes.object
47393
+ nextButtonIcon: PropTypes.object,
47394
+ previousButton: PropTypes.object,
47395
+ previousButtonIcon: PropTypes.object
47396
+ }),
47397
+ /**
47398
+ * The components used for each slot inside the TablePaginationActions.
47399
+ * Either a string to use a HTML element or a component.
47400
+ * @default {}
47401
+ */
47402
+ slots: PropTypes.shape({
47403
+ firstButton: PropTypes.elementType,
47404
+ firstButtonIcon: PropTypes.elementType,
47405
+ lastButton: PropTypes.elementType,
47406
+ lastButtonIcon: PropTypes.elementType,
47407
+ nextButton: PropTypes.elementType,
47408
+ nextButtonIcon: PropTypes.elementType,
47409
+ previousButton: PropTypes.elementType,
47410
+ previousButtonIcon: PropTypes.elementType
47370
47411
  })
47371
47412
  } ;
47372
47413
  var TablePaginationActions$1 = TablePaginationActions;
@@ -47378,7 +47419,7 @@ See https://mui.com/r/migration-v4/#mui-material-styles for more details.` );
47378
47419
  var tablePaginationClasses$1 = tablePaginationClasses;
47379
47420
 
47380
47421
  var _InputBase;
47381
- const _excluded$9 = ["ActionsComponent", "backIconButtonProps", "className", "colSpan", "component", "count", "disabled", "getItemAriaLabel", "labelDisplayedRows", "labelRowsPerPage", "nextIconButtonProps", "onPageChange", "onRowsPerPageChange", "page", "rowsPerPage", "rowsPerPageOptions", "SelectProps", "showFirstButton", "showLastButton", "slotProps"];
47422
+ const _excluded$9 = ["ActionsComponent", "backIconButtonProps", "className", "colSpan", "component", "count", "disabled", "getItemAriaLabel", "labelDisplayedRows", "labelRowsPerPage", "nextIconButtonProps", "onPageChange", "onRowsPerPageChange", "page", "rowsPerPage", "rowsPerPageOptions", "SelectProps", "showFirstButton", "showLastButton", "slotProps", "slots"];
47382
47423
  const TablePaginationRoot = styled$1(TableCell$1, {
47383
47424
  name: 'MuiTablePagination',
47384
47425
  slot: 'Root',
@@ -47525,7 +47566,8 @@ See https://mui.com/r/migration-v4/#mui-material-styles for more details.` );
47525
47566
  SelectProps = {},
47526
47567
  showFirstButton = false,
47527
47568
  showLastButton = false,
47528
- slotProps
47569
+ slotProps = {},
47570
+ slots = {}
47529
47571
  } = props,
47530
47572
  other = _objectWithoutPropertiesLoose(props, _excluded$9);
47531
47573
  const ownerState = props;
@@ -47602,7 +47644,8 @@ See https://mui.com/r/migration-v4/#mui-material-styles for more details.` );
47602
47644
  rowsPerPage: rowsPerPage,
47603
47645
  showFirstButton: showFirstButton,
47604
47646
  showLastButton: showLastButton,
47605
- slotProps: slotProps == null ? void 0 : slotProps.actions,
47647
+ slotProps: slotProps.actions,
47648
+ slots: slots.actions,
47606
47649
  getItemAriaLabel: getItemAriaLabel,
47607
47650
  disabled: disabled
47608
47651
  })]
@@ -47764,12 +47807,33 @@ See https://mui.com/r/migration-v4/#mui-material-styles for more details.` );
47764
47807
  slotProps: PropTypes.shape({
47765
47808
  actions: PropTypes.shape({
47766
47809
  firstButton: PropTypes.object,
47810
+ firstButtonIcon: PropTypes.object,
47767
47811
  lastButton: PropTypes.object,
47812
+ lastButtonIcon: PropTypes.object,
47768
47813
  nextButton: PropTypes.object,
47769
- previousButton: PropTypes.object
47814
+ nextButtonIcon: PropTypes.object,
47815
+ previousButton: PropTypes.object,
47816
+ previousButtonIcon: PropTypes.object
47770
47817
  }),
47771
47818
  select: PropTypes.object
47772
47819
  }),
47820
+ /**
47821
+ * The components used for each slot inside the TablePagination.
47822
+ * Either a string to use a HTML element or a component.
47823
+ * @default {}
47824
+ */
47825
+ slots: PropTypes.shape({
47826
+ actions: PropTypes.shape({
47827
+ firstButton: PropTypes.elementType,
47828
+ firstButtonIcon: PropTypes.elementType,
47829
+ lastButton: PropTypes.elementType,
47830
+ lastButtonIcon: PropTypes.elementType,
47831
+ nextButton: PropTypes.elementType,
47832
+ nextButtonIcon: PropTypes.elementType,
47833
+ previousButton: PropTypes.elementType,
47834
+ previousButtonIcon: PropTypes.elementType
47835
+ })
47836
+ }),
47773
47837
  /**
47774
47838
  * The system prop that allows defining system overrides as well as additional CSS styles.
47775
47839
  */