@mui/material 7.1.2 → 7.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 (110) hide show
  1. package/Accordion/Accordion.d.ts +11 -0
  2. package/Accordion/Accordion.js +19 -5
  3. package/Alert/Alert.js +2 -3
  4. package/Autocomplete/Autocomplete.js +4 -4
  5. package/Backdrop/Backdrop.js +1 -0
  6. package/Breadcrumbs/BreadcrumbCollapsed.js +3 -1
  7. package/Button/Button.js +5 -6
  8. package/ButtonGroup/ButtonGroup.js +3 -4
  9. package/CHANGELOG.md +141 -0
  10. package/Checkbox/Checkbox.js +2 -3
  11. package/Chip/Chip.js +11 -11
  12. package/Divider/Divider.js +1 -2
  13. package/FilledInput/FilledInput.js +1 -1
  14. package/IconButton/IconButton.js +2 -3
  15. package/Input/Input.js +1 -1
  16. package/Input/inputClasses.d.ts +12 -4
  17. package/LinearProgress/LinearProgress.js +1 -2
  18. package/Link/Link.js +11 -4
  19. package/Link/getTextDecoration.js +5 -0
  20. package/ListItemButton/ListItemButton.js +4 -5
  21. package/MenuItem/MenuItem.js +4 -5
  22. package/NativeSelect/NativeSelectInput.js +6 -2
  23. package/OutlinedInput/NotchedOutline.js +2 -0
  24. package/OutlinedInput/OutlinedInput.js +2 -2
  25. package/OutlinedInput/outlinedInputClasses.d.ts +12 -4
  26. package/PaginationItem/PaginationItem.js +7 -8
  27. package/Radio/Radio.js +2 -3
  28. package/Radio/RadioButtonIcon.js +7 -2
  29. package/Select/SelectInput.js +69 -20
  30. package/Skeleton/Skeleton.js +1 -1
  31. package/Slider/Slider.js +6 -15
  32. package/Snackbar/Snackbar.js +2 -8
  33. package/SpeedDial/SpeedDial.js +20 -6
  34. package/SwipeableDrawer/SwipeArea.js +1 -0
  35. package/Switch/Switch.js +6 -4
  36. package/TableCell/TableCell.js +1 -2
  37. package/TableRow/TableRow.js +2 -3
  38. package/ToggleButton/ToggleButton.js +7 -8
  39. package/Tooltip/Tooltip.js +2 -3
  40. package/esm/Accordion/Accordion.d.ts +11 -0
  41. package/esm/Accordion/Accordion.js +19 -5
  42. package/esm/Alert/Alert.js +2 -3
  43. package/esm/Autocomplete/Autocomplete.js +4 -4
  44. package/esm/Backdrop/Backdrop.js +1 -0
  45. package/esm/Breadcrumbs/BreadcrumbCollapsed.js +3 -1
  46. package/esm/Button/Button.js +5 -6
  47. package/esm/ButtonGroup/ButtonGroup.js +3 -4
  48. package/esm/Checkbox/Checkbox.js +2 -3
  49. package/esm/Chip/Chip.js +11 -11
  50. package/esm/Divider/Divider.js +1 -2
  51. package/esm/FilledInput/FilledInput.js +1 -1
  52. package/esm/IconButton/IconButton.js +2 -3
  53. package/esm/Input/Input.js +1 -1
  54. package/esm/Input/inputClasses.d.ts +12 -4
  55. package/esm/LinearProgress/LinearProgress.js +1 -2
  56. package/esm/Link/Link.js +11 -4
  57. package/esm/Link/getTextDecoration.js +5 -0
  58. package/esm/ListItemButton/ListItemButton.js +4 -5
  59. package/esm/MenuItem/MenuItem.js +4 -5
  60. package/esm/NativeSelect/NativeSelectInput.js +6 -2
  61. package/esm/OutlinedInput/NotchedOutline.js +2 -0
  62. package/esm/OutlinedInput/OutlinedInput.js +2 -2
  63. package/esm/OutlinedInput/outlinedInputClasses.d.ts +12 -4
  64. package/esm/PaginationItem/PaginationItem.js +7 -8
  65. package/esm/Radio/Radio.js +2 -3
  66. package/esm/Radio/RadioButtonIcon.js +7 -2
  67. package/esm/Select/SelectInput.js +69 -20
  68. package/esm/Skeleton/Skeleton.js +2 -2
  69. package/esm/Slider/Slider.js +6 -15
  70. package/esm/Snackbar/Snackbar.js +2 -8
  71. package/esm/SpeedDial/SpeedDial.js +20 -6
  72. package/esm/SwipeableDrawer/SwipeArea.js +1 -0
  73. package/esm/Switch/Switch.js +6 -4
  74. package/esm/TableCell/TableCell.js +1 -2
  75. package/esm/TableRow/TableRow.js +2 -3
  76. package/esm/ToggleButton/ToggleButton.js +7 -8
  77. package/esm/Tooltip/Tooltip.js +2 -3
  78. package/esm/index.js +1 -1
  79. package/esm/internal/SwitchBase.js +4 -1
  80. package/esm/locale/index.js +6 -3
  81. package/esm/styles/components.d.ts +5 -0
  82. package/esm/styles/createColorScheme.d.ts +3 -1
  83. package/esm/styles/createColorScheme.js +6 -1
  84. package/esm/styles/createPalette.js +29 -2
  85. package/esm/styles/createTheme.d.ts +1 -1
  86. package/esm/styles/createThemeNoVars.d.ts +4 -0
  87. package/esm/styles/createThemeNoVars.js +59 -1
  88. package/esm/styles/createThemeWithVars.d.ts +4 -0
  89. package/esm/styles/createThemeWithVars.js +98 -69
  90. package/esm/styles/shouldSkipGeneratingVar.js +1 -1
  91. package/esm/useAutocomplete/useAutocomplete.d.ts +1 -0
  92. package/esm/useAutocomplete/useAutocomplete.js +21 -3
  93. package/esm/version/index.js +3 -3
  94. package/index.js +1 -1
  95. package/internal/SwitchBase.js +4 -1
  96. package/locale/index.js +6 -3
  97. package/package.json +9 -11
  98. package/styles/components.d.ts +5 -0
  99. package/styles/createColorScheme.d.ts +3 -1
  100. package/styles/createColorScheme.js +6 -1
  101. package/styles/createPalette.js +30 -2
  102. package/styles/createTheme.d.ts +1 -1
  103. package/styles/createThemeNoVars.d.ts +4 -0
  104. package/styles/createThemeNoVars.js +59 -1
  105. package/styles/createThemeWithVars.d.ts +4 -0
  106. package/styles/createThemeWithVars.js +98 -69
  107. package/styles/shouldSkipGeneratingVar.js +1 -1
  108. package/useAutocomplete/useAutocomplete.d.ts +1 -0
  109. package/useAutocomplete/useAutocomplete.js +22 -3
  110. package/version/index.js +3 -3
package/Link/Link.js CHANGED
@@ -10,7 +10,6 @@ exports.default = void 0;
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _clsx = _interopRequireDefault(require("clsx"));
13
- var _colorManipulator = require("@mui/system/colorManipulator");
14
13
  var _elementTypeAcceptingRef = _interopRequireDefault(require("@mui/utils/elementTypeAcceptingRef"));
15
14
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
16
15
  var _isFocusVisible = _interopRequireDefault(require("@mui/utils/isFocusVisible"));
@@ -94,13 +93,21 @@ const LinkRoot = (0, _zeroStyled.styled)(_Typography.default, {
94
93
  style: {
95
94
  textDecorationColor: 'var(--Link-underlineColor)'
96
95
  }
96
+ }, {
97
+ props: ({
98
+ underline,
99
+ ownerState
100
+ }) => underline === 'always' && ownerState.color === 'inherit',
101
+ style: theme.colorSpace ? {
102
+ textDecorationColor: theme.alpha('currentColor', 0.4)
103
+ } : null
97
104
  }, ...Object.entries(theme.palette).filter((0, _createSimplePaletteValueFilter.default)()).map(([color]) => ({
98
105
  props: {
99
106
  underline: 'always',
100
107
  color
101
108
  },
102
109
  style: {
103
- '--Link-underlineColor': theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / 0.4)` : (0, _colorManipulator.alpha)(theme.palette[color].main, 0.4)
110
+ '--Link-underlineColor': theme.alpha((theme.vars || theme).palette[color].main, 0.4)
104
111
  }
105
112
  })), {
106
113
  props: {
@@ -108,7 +115,7 @@ const LinkRoot = (0, _zeroStyled.styled)(_Typography.default, {
108
115
  color: 'textPrimary'
109
116
  },
110
117
  style: {
111
- '--Link-underlineColor': theme.vars ? `rgba(${theme.vars.palette.text.primaryChannel} / 0.4)` : (0, _colorManipulator.alpha)(theme.palette.text.primary, 0.4)
118
+ '--Link-underlineColor': theme.alpha((theme.vars || theme).palette.text.primary, 0.4)
112
119
  }
113
120
  }, {
114
121
  props: {
@@ -116,7 +123,7 @@ const LinkRoot = (0, _zeroStyled.styled)(_Typography.default, {
116
123
  color: 'textSecondary'
117
124
  },
118
125
  style: {
119
- '--Link-underlineColor': theme.vars ? `rgba(${theme.vars.palette.text.secondaryChannel} / 0.4)` : (0, _colorManipulator.alpha)(theme.palette.text.secondary, 0.4)
126
+ '--Link-underlineColor': theme.alpha((theme.vars || theme).palette.text.secondary, 0.4)
120
127
  }
121
128
  }, {
122
129
  props: {
@@ -11,6 +11,11 @@ const getTextDecoration = ({
11
11
  ownerState
12
12
  }) => {
13
13
  const transformedColor = ownerState.color;
14
+ if ('colorSpace' in theme && theme.colorSpace) {
15
+ const color = (0, _style.getPath)(theme, `palette.${transformedColor}.main`) || (0, _style.getPath)(theme, `palette.${transformedColor}`) || ownerState.color;
16
+ return theme.alpha(color, 0.4);
17
+ }
18
+
14
19
  // check the `main` color first for a custom palette, then fallback to the color itself
15
20
  const color = (0, _style.getPath)(theme, `palette.${transformedColor}.main`, false) || (0, _style.getPath)(theme, `palette.${transformedColor}`, false) || ownerState.color;
16
21
  const channelColor = (0, _style.getPath)(theme, `palette.${transformedColor}.mainChannel`) || (0, _style.getPath)(theme, `palette.${transformedColor}Channel`);
@@ -11,7 +11,6 @@ var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _clsx = _interopRequireDefault(require("clsx"));
13
13
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
14
- var _colorManipulator = require("@mui/system/colorManipulator");
15
14
  var _zeroStyled = require("../zero-styled");
16
15
  var _memoTheme = _interopRequireDefault(require("../utils/memoTheme"));
17
16
  var _DefaultPropsProvider = require("../DefaultPropsProvider");
@@ -79,16 +78,16 @@ const ListItemButtonRoot = (0, _zeroStyled.styled)(_ButtonBase.default, {
79
78
  }
80
79
  },
81
80
  [`&.${_listItemButtonClasses.default.selected}`]: {
82
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : (0, _colorManipulator.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity),
81
+ backgroundColor: theme.alpha((theme.vars || theme).palette.primary.main, (theme.vars || theme).palette.action.selectedOpacity),
83
82
  [`&.${_listItemButtonClasses.default.focusVisible}`]: {
84
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : (0, _colorManipulator.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)
83
+ backgroundColor: theme.alpha((theme.vars || theme).palette.primary.main, `${(theme.vars || theme).palette.action.selectedOpacity} + ${(theme.vars || theme).palette.action.focusOpacity}`)
85
84
  }
86
85
  },
87
86
  [`&.${_listItemButtonClasses.default.selected}:hover`]: {
88
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : (0, _colorManipulator.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),
87
+ backgroundColor: theme.alpha((theme.vars || theme).palette.primary.main, `${(theme.vars || theme).palette.action.selectedOpacity} + ${(theme.vars || theme).palette.action.hoverOpacity}`),
89
88
  // Reset on touch devices, it doesn't add specificity
90
89
  '@media (hover: none)': {
91
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : (0, _colorManipulator.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity)
90
+ backgroundColor: theme.alpha((theme.vars || theme).palette.primary.main, (theme.vars || theme).palette.action.selectedOpacity)
92
91
  }
93
92
  },
94
93
  [`&.${_listItemButtonClasses.default.focusVisible}`]: {
@@ -11,7 +11,6 @@ var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _clsx = _interopRequireDefault(require("clsx"));
13
13
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
14
- var _colorManipulator = require("@mui/system/colorManipulator");
15
14
  var _rootShouldForwardProp = _interopRequireDefault(require("../styles/rootShouldForwardProp"));
16
15
  var _zeroStyled = require("../zero-styled");
17
16
  var _memoTheme = _interopRequireDefault(require("../utils/memoTheme"));
@@ -78,16 +77,16 @@ const MenuItemRoot = (0, _zeroStyled.styled)(_ButtonBase.default, {
78
77
  }
79
78
  },
80
79
  [`&.${_menuItemClasses.default.selected}`]: {
81
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : (0, _colorManipulator.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity),
80
+ backgroundColor: theme.alpha((theme.vars || theme).palette.primary.main, (theme.vars || theme).palette.action.selectedOpacity),
82
81
  [`&.${_menuItemClasses.default.focusVisible}`]: {
83
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : (0, _colorManipulator.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)
82
+ backgroundColor: theme.alpha((theme.vars || theme).palette.primary.main, `${(theme.vars || theme).palette.action.selectedOpacity} + ${(theme.vars || theme).palette.action.focusOpacity}`)
84
83
  }
85
84
  },
86
85
  [`&.${_menuItemClasses.default.selected}:hover`]: {
87
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : (0, _colorManipulator.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),
86
+ backgroundColor: theme.alpha((theme.vars || theme).palette.primary.main, `${(theme.vars || theme).palette.action.selectedOpacity} + ${(theme.vars || theme).palette.action.hoverOpacity}`),
88
87
  // Reset on touch devices, it doesn't add specificity
89
88
  '@media (hover: none)': {
90
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : (0, _colorManipulator.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity)
89
+ backgroundColor: theme.alpha((theme.vars || theme).palette.primary.main, (theme.vars || theme).palette.action.selectedOpacity)
91
90
  }
92
91
  },
93
92
  [`&.${_menuItemClasses.default.focusVisible}`]: {
@@ -32,7 +32,9 @@ const useUtilityClasses = ownerState => {
32
32
  };
33
33
  return (0, _composeClasses.default)(slots, _nativeSelectClasses.getNativeSelectUtilityClasses, classes);
34
34
  };
35
- const StyledSelectSelect = exports.StyledSelectSelect = (0, _zeroStyled.styled)('select')(({
35
+ const StyledSelectSelect = exports.StyledSelectSelect = (0, _zeroStyled.styled)('select', {
36
+ name: 'MuiNativeSelect'
37
+ })(({
36
38
  theme
37
39
  }) => ({
38
40
  // Reset
@@ -106,7 +108,9 @@ const NativeSelectSelect = (0, _zeroStyled.styled)(StyledSelectSelect, {
106
108
  }];
107
109
  }
108
110
  })({});
109
- const StyledSelectIcon = exports.StyledSelectIcon = (0, _zeroStyled.styled)('svg')(({
111
+ const StyledSelectIcon = exports.StyledSelectIcon = (0, _zeroStyled.styled)('svg', {
112
+ name: 'MuiNativeSelect'
113
+ })(({
110
114
  theme
111
115
  }) => ({
112
116
  // We use a position absolute over a flexbox in order to forward the pointer events
@@ -15,6 +15,7 @@ var _memoTheme = _interopRequireDefault(require("../utils/memoTheme"));
15
15
  var _jsxRuntime = require("react/jsx-runtime");
16
16
  var _span;
17
17
  const NotchedOutlineRoot = (0, _zeroStyled.styled)('fieldset', {
18
+ name: 'MuiNotchedOutlined',
18
19
  shouldForwardProp: _rootShouldForwardProp.default
19
20
  })({
20
21
  textAlign: 'left',
@@ -33,6 +34,7 @@ const NotchedOutlineRoot = (0, _zeroStyled.styled)('fieldset', {
33
34
  minWidth: '0%'
34
35
  });
35
36
  const NotchedOutlineLegend = (0, _zeroStyled.styled)('legend', {
37
+ name: 'MuiNotchedOutlined',
36
38
  shouldForwardProp: _rootShouldForwardProp.default
37
39
  })((0, _memoTheme.default)(({
38
40
  theme
@@ -57,7 +57,7 @@ const OutlinedInputRoot = (0, _zeroStyled.styled)(_InputBase.InputBaseRoot, {
57
57
  // Reset on touch devices, it doesn't add specificity
58
58
  '@media (hover: none)': {
59
59
  [`&:hover .${_outlinedInputClasses.default.notchedOutline}`]: {
60
- borderColor: theme.vars ? `rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)` : borderColor
60
+ borderColor: theme.vars ? theme.alpha(theme.vars.palette.common.onBackground, 0.23) : borderColor
61
61
  }
62
62
  },
63
63
  [`&.${_outlinedInputClasses.default.focused} .${_outlinedInputClasses.default.notchedOutline}`]: {
@@ -123,7 +123,7 @@ const NotchedOutlineRoot = (0, _zeroStyled.styled)(_NotchedOutline.default, {
123
123
  }) => {
124
124
  const borderColor = theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)';
125
125
  return {
126
- borderColor: theme.vars ? `rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)` : borderColor
126
+ borderColor: theme.vars ? theme.alpha(theme.vars.palette.common.onBackground, 0.23) : borderColor
127
127
  };
128
128
  }));
129
129
  const OutlinedInputInput = (0, _zeroStyled.styled)(_InputBase.InputBaseInput, {
@@ -21,13 +21,21 @@ export interface OutlinedInputClasses {
21
21
  notchedOutline: string;
22
22
  /** Styles applied to the input element. */
23
23
  input: string;
24
- /** Styles applied to the input element if `size="small"`. */
24
+ /** Styles applied to the input element if `size="small"`.
25
+ * @deprecated Combine the [.MuiInputBase-input](/material-ui/api/input-base/#inputbase-classes-input) and [.MuiInputBase-sizeSmall](/material-ui/api/input-base/#inputbase-classes-sizeSmall) classes instead. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
26
+ */
25
27
  inputSizeSmall: string;
26
- /** Styles applied to the input element if `multiline={true}`. */
28
+ /** Styles applied to the input element if `multiline={true}`.
29
+ * @deprecated Combine the [.MuiInputBase-input](/material-ui/api/input-base/#inputbase-classes-input) and [.MuiInputBase-multiline](/material-ui/api/input-base/#inputbase-classes-multiline) classes instead. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
30
+ */
27
31
  inputMultiline: string;
28
- /** Styles applied to the input element if `startAdornment` is provided. */
32
+ /** Styles applied to the input element if `startAdornment` is provided.
33
+ * @deprecated Combine the [.MuiInputBase-input](/material-ui/api/input-base/#inputbase-classes-input) and [.MuiInputBase-adornedStart](/material-ui/api/input-base/#inputbase-classes-adornedStart) classes instead. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
34
+ */
29
35
  inputAdornedStart: string;
30
- /** Styles applied to the input element if `endAdornment` is provided. */
36
+ /** Styles applied to the input element if `endAdornment` is provided.
37
+ * @deprecated Combine the [.MuiInputBase-input](/material-ui/api/input-base/#inputbase-classes-input) and [.MuiInputBase-adornedEnd](/material-ui/api/input-base/#inputbase-classes-adornedEnd) classes instead. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
38
+ */
31
39
  inputAdornedEnd: string;
32
40
  /** Styles applied to the input element if `type="search"`. */
33
41
  inputTypeSearch: string;
@@ -11,7 +11,6 @@ var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _clsx = _interopRequireDefault(require("clsx"));
13
13
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
14
- var _colorManipulator = require("@mui/system/colorManipulator");
15
14
  var _RtlProvider = require("@mui/system/RtlProvider");
16
15
  var _paginationItemClasses = _interopRequireWildcard(require("./paginationItemClasses"));
17
16
  var _ButtonBase = _interopRequireDefault(require("../ButtonBase"));
@@ -133,14 +132,14 @@ const PaginationItemPage = (0, _zeroStyled.styled)(_ButtonBase.default, {
133
132
  [`&.${_paginationItemClasses.default.selected}`]: {
134
133
  backgroundColor: (theme.vars || theme).palette.action.selected,
135
134
  '&:hover': {
136
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.selectedChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : (0, _colorManipulator.alpha)(theme.palette.action.selected, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),
135
+ backgroundColor: theme.alpha((theme.vars || theme).palette.action.selected, `${(theme.vars || theme).palette.action.selectedOpacity} + ${(theme.vars || theme).palette.action.hoverOpacity}`),
137
136
  // Reset on touch devices, it doesn't add specificity
138
137
  '@media (hover: none)': {
139
138
  backgroundColor: (theme.vars || theme).palette.action.selected
140
139
  }
141
140
  },
142
141
  [`&.${_paginationItemClasses.default.focusVisible}`]: {
143
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.selectedChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : (0, _colorManipulator.alpha)(theme.palette.action.selected, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)
142
+ backgroundColor: theme.alpha((theme.vars || theme).palette.action.selected, `${(theme.vars || theme).palette.action.selectedOpacity} + ${(theme.vars || theme).palette.action.focusOpacity}`)
144
143
  },
145
144
  [`&.${_paginationItemClasses.default.disabled}`]: {
146
145
  opacity: 1,
@@ -182,7 +181,7 @@ const PaginationItemPage = (0, _zeroStyled.styled)(_ButtonBase.default, {
182
181
  variant: 'outlined'
183
182
  },
184
183
  style: {
185
- border: theme.vars ? `1px solid rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)` : `1px solid ${theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)'}`,
184
+ border: theme.vars ? `1px solid ${theme.alpha(theme.vars.palette.common.onBackground, 0.23)}` : `1px solid ${theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)'}`,
186
185
  [`&.${_paginationItemClasses.default.selected}`]: {
187
186
  [`&.${_paginationItemClasses.default.disabled}`]: {
188
187
  borderColor: (theme.vars || theme).palette.action.disabledBackground,
@@ -233,17 +232,17 @@ const PaginationItemPage = (0, _zeroStyled.styled)(_ButtonBase.default, {
233
232
  style: {
234
233
  [`&.${_paginationItemClasses.default.selected}`]: {
235
234
  color: (theme.vars || theme).palette[color].main,
236
- border: `1px solid ${theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / 0.5)` : (0, _colorManipulator.alpha)(theme.palette[color].main, 0.5)}`,
237
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / ${theme.vars.palette.action.activatedOpacity})` : (0, _colorManipulator.alpha)(theme.palette[color].main, theme.palette.action.activatedOpacity),
235
+ border: `1px solid ${theme.alpha((theme.vars || theme).palette[color].main, 0.5)}`,
236
+ backgroundColor: theme.alpha((theme.vars || theme).palette[color].main, (theme.vars || theme).palette.action.activatedOpacity),
238
237
  '&:hover': {
239
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / calc(${theme.vars.palette.action.activatedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : (0, _colorManipulator.alpha)(theme.palette[color].main, theme.palette.action.activatedOpacity + theme.palette.action.focusOpacity),
238
+ backgroundColor: theme.alpha((theme.vars || theme).palette[color].main, `${(theme.vars || theme).palette.action.activatedOpacity} + ${(theme.vars || theme).palette.action.focusOpacity}`),
240
239
  // Reset on touch devices, it doesn't add specificity
241
240
  '@media (hover: none)': {
242
241
  backgroundColor: 'transparent'
243
242
  }
244
243
  },
245
244
  [`&.${_paginationItemClasses.default.focusVisible}`]: {
246
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / calc(${theme.vars.palette.action.activatedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : (0, _colorManipulator.alpha)(theme.palette[color].main, theme.palette.action.activatedOpacity + theme.palette.action.focusOpacity)
245
+ backgroundColor: theme.alpha((theme.vars || theme).palette[color].main, `${(theme.vars || theme).palette.action.activatedOpacity} + ${(theme.vars || theme).palette.action.focusOpacity}`)
247
246
  }
248
247
  }
249
248
  }
package/Radio/Radio.js CHANGED
@@ -12,7 +12,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _clsx = _interopRequireDefault(require("clsx"));
13
13
  var _refType = _interopRequireDefault(require("@mui/utils/refType"));
14
14
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
15
- var _colorManipulator = require("@mui/system/colorManipulator");
16
15
  var _SwitchBase = _interopRequireDefault(require("../internal/SwitchBase"));
17
16
  var _RadioButtonIcon = _interopRequireDefault(require("./RadioButtonIcon"));
18
17
  var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
@@ -66,7 +65,7 @@ const RadioRoot = (0, _zeroStyled.styled)(_SwitchBase.default, {
66
65
  },
67
66
  style: {
68
67
  '&:hover': {
69
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.hoverOpacity})` : (0, _colorManipulator.alpha)(theme.palette.action.active, theme.palette.action.hoverOpacity)
68
+ backgroundColor: theme.alpha((theme.vars || theme).palette.action.active, (theme.vars || theme).palette.action.hoverOpacity)
70
69
  }
71
70
  }
72
71
  }, ...Object.entries(theme.palette).filter((0, _createSimplePaletteValueFilter.default)()).map(([color]) => ({
@@ -77,7 +76,7 @@ const RadioRoot = (0, _zeroStyled.styled)(_SwitchBase.default, {
77
76
  },
78
77
  style: {
79
78
  '&:hover': {
80
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette[color].mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : (0, _colorManipulator.alpha)(theme.palette[color].main, theme.palette.action.hoverOpacity)
79
+ backgroundColor: theme.alpha((theme.vars || theme).palette[color].main, (theme.vars || theme).palette.action.hoverOpacity)
81
80
  }
82
81
  }
83
82
  })), ...Object.entries(theme.palette).filter((0, _createSimplePaletteValueFilter.default)()).map(([color]) => ({
@@ -16,16 +16,21 @@ var _zeroStyled = require("../zero-styled");
16
16
  var _memoTheme = _interopRequireDefault(require("../utils/memoTheme"));
17
17
  var _jsxRuntime = require("react/jsx-runtime");
18
18
  const RadioButtonIconRoot = (0, _zeroStyled.styled)('span', {
19
+ name: 'MuiRadioButtonIcon',
19
20
  shouldForwardProp: _rootShouldForwardProp.default
20
21
  })({
21
22
  position: 'relative',
22
23
  display: 'flex'
23
24
  });
24
- const RadioButtonIconBackground = (0, _zeroStyled.styled)(_RadioButtonUnchecked.default)({
25
+ const RadioButtonIconBackground = (0, _zeroStyled.styled)(_RadioButtonUnchecked.default, {
26
+ name: 'MuiRadioButtonIcon'
27
+ })({
25
28
  // Scale applied to prevent dot misalignment in Safari
26
29
  transform: 'scale(1)'
27
30
  });
28
- const RadioButtonIconDot = (0, _zeroStyled.styled)(_RadioButtonChecked.default)((0, _memoTheme.default)(({
31
+ const RadioButtonIconDot = (0, _zeroStyled.styled)(_RadioButtonChecked.default, {
32
+ name: 'MuiRadioButtonIcon'
33
+ })((0, _memoTheme.default)(({
29
34
  theme
30
35
  }) => ({
31
36
  left: 0,
@@ -160,12 +160,27 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
160
160
  });
161
161
  const inputRef = React.useRef(null);
162
162
  const displayRef = React.useRef(null);
163
+ const paperRef = React.useRef(null);
164
+ const didPointerDownRef = React.useRef(false);
163
165
  const [displayNode, setDisplayNode] = React.useState(null);
164
166
  const {
165
167
  current: isOpenControlled
166
168
  } = React.useRef(openProp != null);
167
169
  const [menuMinWidthState, setMenuMinWidthState] = React.useState();
170
+ const open = displayNode !== null && openState;
171
+ const ownerState = {
172
+ ...props,
173
+ variant,
174
+ value,
175
+ open,
176
+ error
177
+ };
178
+ const paperProps = {
179
+ ...MenuProps.PaperProps,
180
+ ...(typeof MenuProps.slotProps?.paper === 'function' ? MenuProps.slotProps.paper(ownerState) : MenuProps.slotProps?.paper)
181
+ };
168
182
  const handleRef = (0, _useForkRef.default)(ref, inputRefProp);
183
+ const handlePaperRef = (0, _useForkRef.default)(paperProps.ref, paperRef);
169
184
  const handleDisplayRef = React.useCallback(node => {
170
185
  displayRef.current = node;
171
186
  if (node) {
@@ -215,8 +230,8 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
215
230
  }
216
231
  return undefined;
217
232
  }, [labelId]);
218
- const update = (open, event) => {
219
- if (open) {
233
+ const update = (openParam, event) => {
234
+ if (openParam) {
220
235
  if (onOpen) {
221
236
  onOpen(event);
222
237
  }
@@ -225,7 +240,7 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
225
240
  }
226
241
  if (!isOpenControlled) {
227
242
  setMenuMinWidthState(autoWidth ? null : anchorElement.clientWidth);
228
- setOpenState(open);
243
+ setOpenState(openParam);
229
244
  }
230
245
  };
231
246
  const handleMouseDown = event => {
@@ -236,6 +251,31 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
236
251
  // Hijack the default focus behavior.
237
252
  event.preventDefault();
238
253
  displayRef.current.focus();
254
+ const doc = (0, _ownerDocument.default)(event.currentTarget);
255
+ function handleMouseUp(mouseEvent) {
256
+ if (!displayRef.current) {
257
+ return;
258
+ }
259
+
260
+ // mouse is over the options/menuitem, don't close the menu
261
+ if (paperRef.current.contains(mouseEvent.target)) {
262
+ return;
263
+ }
264
+ const triggerElement = displayRef.current.getBoundingClientRect();
265
+
266
+ // mouse is inside the trigger, don't close the menu
267
+ if (mouseEvent.clientX >= triggerElement.left && mouseEvent.clientX <= triggerElement.right && mouseEvent.clientY >= triggerElement.top && mouseEvent.clientY <= triggerElement.bottom) {
268
+ return;
269
+ }
270
+
271
+ // close the menu
272
+ update(false, mouseEvent);
273
+ }
274
+
275
+ // `{ once: true }` to automatically remove the listener, see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#once
276
+ doc.addEventListener('mouseup', handleMouseUp, {
277
+ once: true
278
+ });
239
279
  update(true, event);
240
280
  };
241
281
  const handleClose = event => {
@@ -254,7 +294,7 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
254
294
  onChange(event, child);
255
295
  }
256
296
  };
257
- const handleItemClick = child => event => {
297
+ const handleItemSelect = child => event => {
258
298
  let newValue;
259
299
 
260
300
  // We use the tabindex attribute to signal the available options.
@@ -272,9 +312,6 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
272
312
  } else {
273
313
  newValue = child.props.value;
274
314
  }
275
- if (child.props.onClick) {
276
- child.props.onClick(event);
277
- }
278
315
  if (value !== newValue) {
279
316
  setValueState(newValue);
280
317
  if (onChange) {
@@ -310,7 +347,6 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
310
347
  }
311
348
  }
312
349
  };
313
- const open = displayNode !== null && openState;
314
350
  const handleBlur = event => {
315
351
  // if open event.stopImmediatePropagation
316
352
  if (!open && onBlur) {
@@ -371,7 +407,26 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
371
407
  }
372
408
  return /*#__PURE__*/React.cloneElement(child, {
373
409
  'aria-selected': selected ? 'true' : 'false',
374
- onClick: handleItemClick(child),
410
+ onPointerDown: () => {
411
+ didPointerDownRef.current = true;
412
+ },
413
+ onClick: event => {
414
+ didPointerDownRef.current = false;
415
+ if (child.props.onClick) {
416
+ child.props.onClick(event);
417
+ }
418
+ handleItemSelect(child)(event);
419
+ },
420
+ onMouseUp: event => {
421
+ if (didPointerDownRef.current) {
422
+ didPointerDownRef.current = false;
423
+ return;
424
+ }
425
+ if (child.props.onMouseUp) {
426
+ child.props.onMouseUp(event);
427
+ }
428
+ handleItemSelect(child)(event);
429
+ },
375
430
  onKeyUp: event => {
376
431
  if (event.key === ' ') {
377
432
  // otherwise our MenuItems dispatches a click event
@@ -430,17 +485,10 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
430
485
  tabIndex = disabled ? null : 0;
431
486
  }
432
487
  const buttonId = SelectDisplayProps.id || (name ? `mui-component-select-${name}` : undefined);
433
- const ownerState = {
434
- ...props,
435
- variant,
436
- value,
437
- open,
438
- error
439
- };
440
488
  const classes = useUtilityClasses(ownerState);
441
- const paperProps = {
442
- ...MenuProps.PaperProps,
443
- ...MenuProps.slotProps?.paper
489
+ const listProps = {
490
+ ...MenuProps.MenuListProps,
491
+ ...(typeof MenuProps.slotProps?.list === 'function' ? MenuProps.slotProps.list(ownerState) : MenuProps.slotProps?.list)
444
492
  };
445
493
  const listboxId = (0, _useId.default)();
446
494
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
@@ -514,10 +562,11 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
514
562
  'aria-multiselectable': multiple ? 'true' : undefined,
515
563
  disableListWrap: true,
516
564
  id: listboxId,
517
- ...MenuProps.MenuListProps
565
+ ...listProps
518
566
  },
519
567
  paper: {
520
568
  ...paperProps,
569
+ ref: handlePaperRef,
521
570
  style: {
522
571
  minWidth: menuMinWidth,
523
572
  ...(paperProps != null ? paperProps.style : null)
@@ -87,7 +87,7 @@ const SkeletonRoot = (0, _zeroStyled.styled)('span', {
87
87
  return {
88
88
  display: 'block',
89
89
  // Create a "on paper" color with sufficient contrast retaining the color
90
- backgroundColor: theme.vars ? theme.vars.palette.Skeleton.bg : (0, _styles.alpha)(theme.palette.text.primary, theme.palette.mode === 'light' ? 0.11 : 0.13),
90
+ backgroundColor: theme.vars ? theme.vars.palette.Skeleton.bg : theme.alpha(theme.palette.text.primary, theme.palette.mode === 'light' ? 0.11 : 0.13),
91
91
  height: '1.2em',
92
92
  variants: [{
93
93
  props: {
package/Slider/Slider.js CHANGED
@@ -12,7 +12,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _clsx = _interopRequireDefault(require("clsx"));
13
13
  var _chainPropTypes = _interopRequireDefault(require("@mui/utils/chainPropTypes"));
14
14
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
15
- var _colorManipulator = require("@mui/system/colorManipulator");
16
15
  var _RtlProvider = require("@mui/system/RtlProvider");
17
16
  var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
18
17
  var _useSlider = require("./useSlider");
@@ -226,13 +225,13 @@ const SliderTrack = exports.SliderTrack = (0, _zeroStyled.styled)('span', {
226
225
  backgroundColor: theme.vars.palette.Slider[`${color}Track`],
227
226
  borderColor: theme.vars.palette.Slider[`${color}Track`]
228
227
  } : {
229
- backgroundColor: (0, _colorManipulator.lighten)(theme.palette[color].main, 0.62),
230
- borderColor: (0, _colorManipulator.lighten)(theme.palette[color].main, 0.62),
228
+ backgroundColor: theme.lighten(theme.palette[color].main, 0.62),
229
+ borderColor: theme.lighten(theme.palette[color].main, 0.62),
231
230
  ...theme.applyStyles('dark', {
232
- backgroundColor: (0, _colorManipulator.darken)(theme.palette[color].main, 0.5)
231
+ backgroundColor: theme.darken(theme.palette[color].main, 0.5)
233
232
  }),
234
233
  ...theme.applyStyles('dark', {
235
- borderColor: (0, _colorManipulator.darken)(theme.palette[color].main, 0.5)
234
+ borderColor: theme.darken(theme.palette[color].main, 0.5)
236
235
  })
237
236
  })
238
237
  }
@@ -321,21 +320,13 @@ const SliderThumb = exports.SliderThumb = (0, _zeroStyled.styled)('span', {
321
320
  },
322
321
  style: {
323
322
  [`&:hover, &.${_sliderClasses.default.focusVisible}`]: {
324
- ...(theme.vars ? {
325
- boxShadow: `0px 0px 0px 8px rgba(${theme.vars.palette[color].mainChannel} / 0.16)`
326
- } : {
327
- boxShadow: `0px 0px 0px 8px ${(0, _colorManipulator.alpha)(theme.palette[color].main, 0.16)}`
328
- }),
323
+ boxShadow: `0px 0px 0px 8px ${theme.alpha((theme.vars || theme).palette[color].main, 0.16)}`,
329
324
  '@media (hover: none)': {
330
325
  boxShadow: 'none'
331
326
  }
332
327
  },
333
328
  [`&.${_sliderClasses.default.active}`]: {
334
- ...(theme.vars ? {
335
- boxShadow: `0px 0px 0px 14px rgba(${theme.vars.palette[color].mainChannel} / 0.16)`
336
- } : {
337
- boxShadow: `0px 0px 0px 14px ${(0, _colorManipulator.alpha)(theme.palette[color].main, 0.16)}`
338
- })
329
+ boxShadow: `0px 0px 0px 14px ${theme.alpha((theme.vars || theme).palette[color].main, 0.16)}`
339
330
  }
340
331
  }
341
332
  }))]
@@ -380,14 +380,8 @@ process.env.NODE_ENV !== "production" ? Snackbar.propTypes /* remove-proptypes *
380
380
  * The props used for each slot inside.
381
381
  * @default {}
382
382
  */
383
- slotProps: _propTypes.default.shape({
384
- clickAwayListener: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.shape({
385
- children: _propTypes.default.element.isRequired,
386
- disableReactTree: _propTypes.default.bool,
387
- mouseEvent: _propTypes.default.oneOf(['onClick', 'onMouseDown', 'onMouseUp', 'onPointerDown', 'onPointerUp', false]),
388
- onClickAway: _propTypes.default.func,
389
- touchEvent: _propTypes.default.oneOf(['onTouchEnd', 'onTouchStart', false])
390
- })]),
383
+ slotProps: _propTypes.default /* @typescript-to-proptypes-ignore */.shape({
384
+ clickAwayListener: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
391
385
  content: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
392
386
  root: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
393
387
  transition: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])
@@ -227,13 +227,17 @@ const SpeedDial = /*#__PURE__*/React.forwardRef(function SpeedDial(inProps, ref)
227
227
  *
228
228
  * @param dialActionIndex {number}
229
229
  * @param origButtonRef {React.RefObject?}
230
+ * @param fabSlotOrigButtonRef {React.RefObject?}
230
231
  */
231
- const createHandleSpeedDialActionButtonRef = (dialActionIndex, origButtonRef) => {
232
+ const createHandleSpeedDialActionButtonRef = (dialActionIndex, origButtonRef, fabSlotOrigButtonRef) => {
232
233
  return buttonRef => {
233
234
  actions.current[dialActionIndex + 1] = buttonRef;
234
235
  if (origButtonRef) {
235
236
  origButtonRef(buttonRef);
236
237
  }
238
+ if (fabSlotOrigButtonRef) {
239
+ fabSlotOrigButtonRef(buttonRef);
240
+ }
237
241
  };
238
242
  };
239
243
  const handleKeyDown = event => {
@@ -349,16 +353,26 @@ const SpeedDial = /*#__PURE__*/React.forwardRef(function SpeedDial(inProps, ref)
349
353
  const children = allItems.map((child, index) => {
350
354
  const {
351
355
  FabProps: {
352
- ref: origButtonRef,
353
- ...ChildFabProps
356
+ ref: origButtonRef
354
357
  } = {},
358
+ slotProps: childSlotProps = {},
355
359
  tooltipPlacement: tooltipPlacementProp
356
360
  } = child.props;
361
+ const {
362
+ fab: {
363
+ ref: fabSlotOrigButtonRef,
364
+ ...fabSlotProps
365
+ } = {},
366
+ ...restOfSlotProps
367
+ } = childSlotProps;
357
368
  const tooltipPlacement = tooltipPlacementProp || (getOrientation(direction) === 'vertical' ? 'left' : 'top');
358
369
  return /*#__PURE__*/React.cloneElement(child, {
359
- FabProps: {
360
- ...ChildFabProps,
361
- ref: createHandleSpeedDialActionButtonRef(index, origButtonRef)
370
+ slotProps: {
371
+ fab: {
372
+ ...fabSlotProps,
373
+ ref: createHandleSpeedDialActionButtonRef(index, origButtonRef, fabSlotOrigButtonRef)
374
+ },
375
+ ...restOfSlotProps
362
376
  },
363
377
  delay: 30 * (open ? index : allItems.length - index),
364
378
  open,
@@ -17,6 +17,7 @@ var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
17
17
  var _Drawer = require("../Drawer/Drawer");
18
18
  var _jsxRuntime = require("react/jsx-runtime");
19
19
  const SwipeAreaRoot = (0, _zeroStyled.styled)('div', {
20
+ name: 'MuiSwipeArea',
20
21
  shouldForwardProp: _rootShouldForwardProp.default
21
22
  })((0, _memoTheme.default)(({
22
23
  theme