@mui/material 6.4.6 → 6.4.8
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.
- package/Accordion/Accordion.d.ts +17 -2
- package/Accordion/Accordion.js +18 -6
- package/AccordionSummary/AccordionSummary.d.ts +59 -4
- package/AccordionSummary/AccordionSummary.js +67 -16
- package/CHANGELOG.md +67 -4
- package/ListItemText/ListItemText.d.ts +10 -0
- package/ListItemText/ListItemText.js +14 -5
- package/Radio/Radio.js +3 -1
- package/Rating/Rating.d.ts +59 -1
- package/Rating/Rating.js +131 -45
- package/Snackbar/Snackbar.js +7 -1
- package/SpeedDial/SpeedDial.d.ts +10 -0
- package/SpeedDial/SpeedDial.js +40 -11
- package/SpeedDialAction/SpeedDialAction.js +1 -1
- package/TextareaAutosize/TextareaAutosize.js +26 -15
- package/Tooltip/Tooltip.d.ts +1 -13
- package/Tooltip/Tooltip.js +1 -1
- package/index.js +1 -1
- package/modern/Accordion/Accordion.js +18 -6
- package/modern/AccordionSummary/AccordionSummary.js +67 -16
- package/modern/ListItemText/ListItemText.js +14 -5
- package/modern/Radio/Radio.js +3 -1
- package/modern/Rating/Rating.js +131 -45
- package/modern/Snackbar/Snackbar.js +7 -1
- package/modern/SpeedDial/SpeedDial.js +40 -11
- package/modern/SpeedDialAction/SpeedDialAction.js +1 -1
- package/modern/TextareaAutosize/TextareaAutosize.js +26 -15
- package/modern/Tooltip/Tooltip.js +1 -1
- package/modern/index.js +1 -1
- package/modern/styles/ThemeProvider.js +11 -0
- package/modern/useScrollTrigger/useScrollTrigger.js +3 -0
- package/modern/version/index.js +2 -2
- package/node/Accordion/Accordion.js +18 -6
- package/node/AccordionSummary/AccordionSummary.js +67 -16
- package/node/ListItemText/ListItemText.js +14 -5
- package/node/Radio/Radio.js +3 -1
- package/node/Rating/Rating.js +132 -46
- package/node/Snackbar/Snackbar.js +7 -1
- package/node/SpeedDial/SpeedDial.js +40 -11
- package/node/SpeedDialAction/SpeedDialAction.js +1 -1
- package/node/TextareaAutosize/TextareaAutosize.js +25 -14
- package/node/Tooltip/Tooltip.js +1 -1
- package/node/index.js +1 -1
- package/node/styles/ThemeProvider.js +11 -0
- package/node/useScrollTrigger/useScrollTrigger.js +3 -0
- package/node/version/index.js +2 -2
- package/package.json +6 -6
- package/styles/ThemeProvider.d.ts +6 -0
- package/styles/ThemeProvider.js +11 -0
- package/styles/ThemeProviderWithVars.d.ts +1 -0
- package/styles/index.d.ts +1 -0
- package/useScrollTrigger/useScrollTrigger.d.ts +1 -1
- package/useScrollTrigger/useScrollTrigger.js +3 -0
- package/version/index.js +2 -2
|
@@ -29,6 +29,9 @@ export default function useScrollTrigger(options = {}) {
|
|
|
29
29
|
const store = React.useRef();
|
|
30
30
|
const [trigger, setTrigger] = React.useState(() => getTrigger(store, other));
|
|
31
31
|
React.useEffect(() => {
|
|
32
|
+
if (target === null) {
|
|
33
|
+
return setTrigger(false);
|
|
34
|
+
}
|
|
32
35
|
const handleScroll = () => {
|
|
33
36
|
setTrigger(getTrigger(store, {
|
|
34
37
|
target,
|
package/modern/version/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export const version = "6.4.
|
|
1
|
+
export const version = "6.4.8";
|
|
2
2
|
export const major = Number("6");
|
|
3
3
|
export const minor = Number("4");
|
|
4
|
-
export const patch = Number("
|
|
4
|
+
export const patch = Number("8");
|
|
5
5
|
export const prerelease = undefined;
|
|
6
6
|
export default version;
|
|
@@ -192,6 +192,20 @@ const Accordion = /*#__PURE__*/React.forwardRef(function Accordion(inProps, ref)
|
|
|
192
192
|
slots: backwardCompatibleSlots,
|
|
193
193
|
slotProps: backwardCompatibleSlotProps
|
|
194
194
|
};
|
|
195
|
+
const [RootSlot, rootProps] = (0, _useSlot.default)('root', {
|
|
196
|
+
elementType: AccordionRoot,
|
|
197
|
+
externalForwardedProps: {
|
|
198
|
+
...externalForwardedProps,
|
|
199
|
+
...other
|
|
200
|
+
},
|
|
201
|
+
className: (0, _clsx.default)(classes.root, className),
|
|
202
|
+
shouldForwardComponentProp: true,
|
|
203
|
+
ownerState,
|
|
204
|
+
ref,
|
|
205
|
+
additionalProps: {
|
|
206
|
+
square
|
|
207
|
+
}
|
|
208
|
+
});
|
|
195
209
|
const [AccordionHeadingSlot, accordionProps] = (0, _useSlot.default)('heading', {
|
|
196
210
|
elementType: AccordionHeading,
|
|
197
211
|
externalForwardedProps,
|
|
@@ -203,12 +217,8 @@ const Accordion = /*#__PURE__*/React.forwardRef(function Accordion(inProps, ref)
|
|
|
203
217
|
externalForwardedProps,
|
|
204
218
|
ownerState
|
|
205
219
|
});
|
|
206
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
207
|
-
|
|
208
|
-
ref: ref,
|
|
209
|
-
ownerState: ownerState,
|
|
210
|
-
square: square,
|
|
211
|
-
...other,
|
|
220
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(RootSlot, {
|
|
221
|
+
...rootProps,
|
|
212
222
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(AccordionHeadingSlot, {
|
|
213
223
|
...accordionProps,
|
|
214
224
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_AccordionContext.default.Provider, {
|
|
@@ -288,6 +298,7 @@ process.env.NODE_ENV !== "production" ? Accordion.propTypes /* remove-proptypes
|
|
|
288
298
|
*/
|
|
289
299
|
slotProps: _propTypes.default.shape({
|
|
290
300
|
heading: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
301
|
+
root: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
291
302
|
transition: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])
|
|
292
303
|
}),
|
|
293
304
|
/**
|
|
@@ -296,6 +307,7 @@ process.env.NODE_ENV !== "production" ? Accordion.propTypes /* remove-proptypes
|
|
|
296
307
|
*/
|
|
297
308
|
slots: _propTypes.default.shape({
|
|
298
309
|
heading: _propTypes.default.elementType,
|
|
310
|
+
root: _propTypes.default.elementType,
|
|
299
311
|
transition: _propTypes.default.elementType
|
|
300
312
|
}),
|
|
301
313
|
/**
|
|
@@ -17,6 +17,7 @@ var _DefaultPropsProvider = require("../DefaultPropsProvider");
|
|
|
17
17
|
var _ButtonBase = _interopRequireDefault(require("../ButtonBase"));
|
|
18
18
|
var _AccordionContext = _interopRequireDefault(require("../Accordion/AccordionContext"));
|
|
19
19
|
var _accordionSummaryClasses = _interopRequireWildcard(require("./accordionSummaryClasses"));
|
|
20
|
+
var _useSlot = _interopRequireDefault(require("../utils/useSlot"));
|
|
20
21
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
22
|
const useUtilityClasses = ownerState => {
|
|
22
23
|
const {
|
|
@@ -119,6 +120,8 @@ const AccordionSummary = /*#__PURE__*/React.forwardRef(function AccordionSummary
|
|
|
119
120
|
expandIcon,
|
|
120
121
|
focusVisibleClassName,
|
|
121
122
|
onClick,
|
|
123
|
+
slots,
|
|
124
|
+
slotProps,
|
|
122
125
|
...other
|
|
123
126
|
} = props;
|
|
124
127
|
const {
|
|
@@ -142,24 +145,54 @@ const AccordionSummary = /*#__PURE__*/React.forwardRef(function AccordionSummary
|
|
|
142
145
|
disableGutters
|
|
143
146
|
};
|
|
144
147
|
const classes = useUtilityClasses(ownerState);
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
148
|
+
const externalForwardedProps = {
|
|
149
|
+
slots,
|
|
150
|
+
slotProps
|
|
151
|
+
};
|
|
152
|
+
const [RootSlot, rootSlotProps] = (0, _useSlot.default)('root', {
|
|
153
|
+
ref,
|
|
154
|
+
shouldForwardComponentProp: true,
|
|
150
155
|
className: (0, _clsx.default)(classes.root, className),
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
156
|
+
elementType: AccordionSummaryRoot,
|
|
157
|
+
externalForwardedProps: {
|
|
158
|
+
...externalForwardedProps,
|
|
159
|
+
...other
|
|
160
|
+
},
|
|
161
|
+
ownerState,
|
|
162
|
+
additionalProps: {
|
|
163
|
+
focusRipple: false,
|
|
164
|
+
disableRipple: true,
|
|
165
|
+
disabled,
|
|
166
|
+
'aria-expanded': expanded,
|
|
167
|
+
focusVisibleClassName: (0, _clsx.default)(classes.focusVisible, focusVisibleClassName)
|
|
168
|
+
},
|
|
169
|
+
getSlotProps: handlers => ({
|
|
170
|
+
...handlers,
|
|
171
|
+
onClick: event => {
|
|
172
|
+
handlers.onClick?.(event);
|
|
173
|
+
handleChange(event);
|
|
174
|
+
}
|
|
175
|
+
})
|
|
176
|
+
});
|
|
177
|
+
const [ContentSlot, contentSlotProps] = (0, _useSlot.default)('content', {
|
|
178
|
+
className: classes.content,
|
|
179
|
+
elementType: AccordionSummaryContent,
|
|
180
|
+
externalForwardedProps,
|
|
181
|
+
ownerState
|
|
182
|
+
});
|
|
183
|
+
const [ExpandIconWrapperSlot, expandIconWrapperSlotProps] = (0, _useSlot.default)('expandIconWrapper', {
|
|
184
|
+
className: classes.expandIconWrapper,
|
|
185
|
+
elementType: AccordionSummaryExpandIconWrapper,
|
|
186
|
+
externalForwardedProps,
|
|
187
|
+
ownerState
|
|
188
|
+
});
|
|
189
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(RootSlot, {
|
|
190
|
+
...rootSlotProps,
|
|
191
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(ContentSlot, {
|
|
192
|
+
...contentSlotProps,
|
|
159
193
|
children: children
|
|
160
|
-
}), expandIcon && /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
161
|
-
|
|
162
|
-
ownerState: ownerState,
|
|
194
|
+
}), expandIcon && /*#__PURE__*/(0, _jsxRuntime.jsx)(ExpandIconWrapperSlot, {
|
|
195
|
+
...expandIconWrapperSlotProps,
|
|
163
196
|
children: expandIcon
|
|
164
197
|
})]
|
|
165
198
|
});
|
|
@@ -198,6 +231,24 @@ process.env.NODE_ENV !== "production" ? AccordionSummary.propTypes /* remove-pro
|
|
|
198
231
|
* @ignore
|
|
199
232
|
*/
|
|
200
233
|
onClick: _propTypes.default.func,
|
|
234
|
+
/**
|
|
235
|
+
* The props used for each slot inside.
|
|
236
|
+
* @default {}
|
|
237
|
+
*/
|
|
238
|
+
slotProps: _propTypes.default.shape({
|
|
239
|
+
content: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
240
|
+
expandIconWrapper: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
241
|
+
root: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])
|
|
242
|
+
}),
|
|
243
|
+
/**
|
|
244
|
+
* The components used for each slot inside.
|
|
245
|
+
* @default {}
|
|
246
|
+
*/
|
|
247
|
+
slots: _propTypes.default.shape({
|
|
248
|
+
content: _propTypes.default.elementType,
|
|
249
|
+
expandIconWrapper: _propTypes.default.elementType,
|
|
250
|
+
root: _propTypes.default.elementType
|
|
251
|
+
}),
|
|
201
252
|
/**
|
|
202
253
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
203
254
|
*/
|
|
@@ -114,6 +114,16 @@ const ListItemText = /*#__PURE__*/React.forwardRef(function ListItemText(inProps
|
|
|
114
114
|
...slotProps
|
|
115
115
|
}
|
|
116
116
|
};
|
|
117
|
+
const [RootSlot, rootSlotProps] = (0, _useSlot.default)('root', {
|
|
118
|
+
className: (0, _clsx.default)(classes.root, className),
|
|
119
|
+
elementType: ListItemTextRoot,
|
|
120
|
+
externalForwardedProps: {
|
|
121
|
+
...externalForwardedProps,
|
|
122
|
+
...other
|
|
123
|
+
},
|
|
124
|
+
ownerState,
|
|
125
|
+
ref
|
|
126
|
+
});
|
|
117
127
|
const [PrimarySlot, primarySlotProps] = (0, _useSlot.default)('primary', {
|
|
118
128
|
className: classes.primary,
|
|
119
129
|
elementType: _Typography.default,
|
|
@@ -142,11 +152,8 @@ const ListItemText = /*#__PURE__*/React.forwardRef(function ListItemText(inProps
|
|
|
142
152
|
children: secondary
|
|
143
153
|
});
|
|
144
154
|
}
|
|
145
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
146
|
-
|
|
147
|
-
ownerState: ownerState,
|
|
148
|
-
ref: ref,
|
|
149
|
-
...other,
|
|
155
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(RootSlot, {
|
|
156
|
+
...rootSlotProps,
|
|
150
157
|
children: [primary, secondary]
|
|
151
158
|
});
|
|
152
159
|
});
|
|
@@ -207,6 +214,7 @@ process.env.NODE_ENV !== "production" ? ListItemText.propTypes /* remove-proptyp
|
|
|
207
214
|
*/
|
|
208
215
|
slotProps: _propTypes.default.shape({
|
|
209
216
|
primary: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
217
|
+
root: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
210
218
|
secondary: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])
|
|
211
219
|
}),
|
|
212
220
|
/**
|
|
@@ -215,6 +223,7 @@ process.env.NODE_ENV !== "production" ? ListItemText.propTypes /* remove-proptyp
|
|
|
215
223
|
*/
|
|
216
224
|
slots: _propTypes.default.shape({
|
|
217
225
|
primary: _propTypes.default.elementType,
|
|
226
|
+
root: _propTypes.default.elementType,
|
|
218
227
|
secondary: _propTypes.default.elementType
|
|
219
228
|
}),
|
|
220
229
|
/**
|
package/node/Radio/Radio.js
CHANGED
|
@@ -135,6 +135,7 @@ const Radio = /*#__PURE__*/React.forwardRef(function Radio(inProps, ref) {
|
|
|
135
135
|
disableRipple = false,
|
|
136
136
|
slots = {},
|
|
137
137
|
slotProps = {},
|
|
138
|
+
inputProps,
|
|
138
139
|
...other
|
|
139
140
|
} = props;
|
|
140
141
|
const muiFormControl = (0, _useFormControl.default)();
|
|
@@ -165,6 +166,7 @@ const Radio = /*#__PURE__*/React.forwardRef(function Radio(inProps, ref) {
|
|
|
165
166
|
name = radioGroup.name;
|
|
166
167
|
}
|
|
167
168
|
}
|
|
169
|
+
const externalInputProps = slotProps.input ?? inputProps;
|
|
168
170
|
const [RootSlot, rootSlotProps] = (0, _useSlot.default)('root', {
|
|
169
171
|
ref,
|
|
170
172
|
elementType: RadioRoot,
|
|
@@ -197,7 +199,7 @@ const Radio = /*#__PURE__*/React.forwardRef(function Radio(inProps, ref) {
|
|
|
197
199
|
slots,
|
|
198
200
|
slotProps: {
|
|
199
201
|
// Do not forward `slotProps.root` again because it's already handled by the `RootSlot` in this file.
|
|
200
|
-
input: typeof
|
|
202
|
+
input: typeof externalInputProps === 'function' ? externalInputProps(ownerState) : externalInputProps
|
|
201
203
|
}
|
|
202
204
|
}
|
|
203
205
|
});
|
package/node/Rating/Rating.js
CHANGED
|
@@ -7,7 +7,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
value: true
|
|
8
8
|
});
|
|
9
9
|
exports.default = void 0;
|
|
10
|
-
var
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var React = _react;
|
|
11
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
13
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
13
14
|
var _clamp = _interopRequireDefault(require("@mui/utils/clamp"));
|
|
@@ -24,6 +25,7 @@ var _memoTheme = _interopRequireDefault(require("../utils/memoTheme"));
|
|
|
24
25
|
var _DefaultPropsProvider = require("../DefaultPropsProvider");
|
|
25
26
|
var _slotShouldForwardProp = _interopRequireDefault(require("../styles/slotShouldForwardProp"));
|
|
26
27
|
var _ratingClasses = _interopRequireWildcard(require("./ratingClasses"));
|
|
28
|
+
var _useSlot = _interopRequireDefault(require("../utils/useSlot"));
|
|
27
29
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
28
30
|
function getDecimalPrecision(num) {
|
|
29
31
|
const decimalPart = num.toString().split('.')[1];
|
|
@@ -227,7 +229,9 @@ function RatingItem(props) {
|
|
|
227
229
|
readOnly,
|
|
228
230
|
ownerState,
|
|
229
231
|
ratingValue,
|
|
230
|
-
ratingValueRounded
|
|
232
|
+
ratingValueRounded,
|
|
233
|
+
slots = {},
|
|
234
|
+
slotProps = {}
|
|
231
235
|
} = props;
|
|
232
236
|
const isFilled = highlightSelectedOnly ? itemValue === ratingValue : itemValue <= ratingValue;
|
|
233
237
|
const isHovered = itemValue <= hover;
|
|
@@ -239,10 +243,14 @@ function RatingItem(props) {
|
|
|
239
243
|
// Update to const id = useId(); when React 17 support is dropped.
|
|
240
244
|
// More details: https://github.com/mui/material-ui/issues/40997
|
|
241
245
|
const id = `${name}-${(0, _utils.unstable_useId)()}`;
|
|
242
|
-
const
|
|
243
|
-
|
|
244
|
-
|
|
246
|
+
const externalForwardedProps = {
|
|
247
|
+
slots,
|
|
248
|
+
slotProps
|
|
249
|
+
};
|
|
250
|
+
const [IconSlot, iconSlotProps] = (0, _useSlot.default)('icon', {
|
|
251
|
+
elementType: RatingIcon,
|
|
245
252
|
className: (0, _clsx.default)(classes.icon, isFilled ? classes.iconFilled : classes.iconEmpty, isHovered && classes.iconHover, isFocused && classes.iconFocus, isActive && classes.iconActive),
|
|
253
|
+
externalForwardedProps,
|
|
246
254
|
ownerState: {
|
|
247
255
|
...ownerState,
|
|
248
256
|
iconEmpty: !isFilled,
|
|
@@ -251,6 +259,29 @@ function RatingItem(props) {
|
|
|
251
259
|
iconFocus: isFocused,
|
|
252
260
|
iconActive: isActive
|
|
253
261
|
},
|
|
262
|
+
additionalProps: {
|
|
263
|
+
value: itemValue
|
|
264
|
+
},
|
|
265
|
+
internalForwardedProps: {
|
|
266
|
+
// TODO: remove this in v7 because `IconContainerComponent` is deprecated
|
|
267
|
+
// only forward if `slots.icon` is NOT provided
|
|
268
|
+
as: IconContainerComponent
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
const [LabelSlot, labelSlotProps] = (0, _useSlot.default)('label', {
|
|
272
|
+
elementType: RatingLabel,
|
|
273
|
+
externalForwardedProps,
|
|
274
|
+
ownerState: {
|
|
275
|
+
...ownerState,
|
|
276
|
+
emptyValueFocused: undefined
|
|
277
|
+
},
|
|
278
|
+
additionalProps: {
|
|
279
|
+
style: labelProps?.style,
|
|
280
|
+
htmlFor: id
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
const container = /*#__PURE__*/(0, _jsxRuntime.jsx)(IconSlot, {
|
|
284
|
+
...iconSlotProps,
|
|
254
285
|
children: emptyIcon && !isFilled ? emptyIcon : icon
|
|
255
286
|
});
|
|
256
287
|
if (readOnly) {
|
|
@@ -260,13 +291,8 @@ function RatingItem(props) {
|
|
|
260
291
|
});
|
|
261
292
|
}
|
|
262
293
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
|
|
263
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
264
|
-
|
|
265
|
-
...ownerState,
|
|
266
|
-
emptyValueFocused: undefined
|
|
267
|
-
},
|
|
268
|
-
htmlFor: id,
|
|
269
|
-
...labelProps,
|
|
294
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(LabelSlot, {
|
|
295
|
+
...labelSlotProps,
|
|
270
296
|
children: [container, /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
271
297
|
className: classes.visuallyHidden,
|
|
272
298
|
children: getLabelText(itemValue)
|
|
@@ -307,7 +333,9 @@ process.env.NODE_ENV !== "production" ? RatingItem.propTypes = {
|
|
|
307
333
|
ownerState: _propTypes.default.object.isRequired,
|
|
308
334
|
ratingValue: _propTypes.default.number,
|
|
309
335
|
ratingValueRounded: _propTypes.default.number,
|
|
310
|
-
readOnly: _propTypes.default.bool.isRequired
|
|
336
|
+
readOnly: _propTypes.default.bool.isRequired,
|
|
337
|
+
slotProps: _propTypes.default.object,
|
|
338
|
+
slots: _propTypes.default.object
|
|
311
339
|
} : void 0;
|
|
312
340
|
const defaultIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Star.default, {
|
|
313
341
|
fontSize: "inherit"
|
|
@@ -344,6 +372,8 @@ const Rating = /*#__PURE__*/React.forwardRef(function Rating(inProps, ref) {
|
|
|
344
372
|
readOnly = false,
|
|
345
373
|
size = 'medium',
|
|
346
374
|
value: valueProp,
|
|
375
|
+
slots = {},
|
|
376
|
+
slotProps = {},
|
|
347
377
|
...other
|
|
348
378
|
} = props;
|
|
349
379
|
const name = (0, _utils.unstable_useId)(nameProp);
|
|
@@ -481,16 +511,50 @@ const Rating = /*#__PURE__*/React.forwardRef(function Rating(inProps, ref) {
|
|
|
481
511
|
size
|
|
482
512
|
};
|
|
483
513
|
const classes = useUtilityClasses(ownerState);
|
|
484
|
-
|
|
485
|
-
|
|
514
|
+
const externalForwardedProps = {
|
|
515
|
+
slots,
|
|
516
|
+
slotProps
|
|
517
|
+
};
|
|
518
|
+
const [RootSlot, rootSlotProps] = (0, _useSlot.default)('root', {
|
|
486
519
|
ref: handleRef,
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
520
|
+
className: (0, _clsx.default)(classes.root, className),
|
|
521
|
+
elementType: RatingRoot,
|
|
522
|
+
externalForwardedProps: {
|
|
523
|
+
...externalForwardedProps,
|
|
524
|
+
...other,
|
|
525
|
+
component
|
|
526
|
+
},
|
|
527
|
+
getSlotProps: handlers => ({
|
|
528
|
+
...handlers,
|
|
529
|
+
onMouseMove: event => {
|
|
530
|
+
handleMouseMove(event);
|
|
531
|
+
handlers.onMouseMove?.(event);
|
|
532
|
+
},
|
|
533
|
+
onMouseLeave: event => {
|
|
534
|
+
handleMouseLeave(event);
|
|
535
|
+
handlers.onMouseLeave?.(event);
|
|
536
|
+
}
|
|
537
|
+
}),
|
|
538
|
+
ownerState,
|
|
539
|
+
additionalProps: {
|
|
540
|
+
role: readOnly ? 'img' : null,
|
|
541
|
+
'aria-label': readOnly ? getLabelText(value) : null
|
|
542
|
+
}
|
|
543
|
+
});
|
|
544
|
+
const [LabelSlot, labelSlotProps] = (0, _useSlot.default)('label', {
|
|
545
|
+
className: (0, _clsx.default)(classes.label, classes.labelEmptyValue),
|
|
546
|
+
elementType: RatingLabel,
|
|
547
|
+
externalForwardedProps,
|
|
548
|
+
ownerState
|
|
549
|
+
});
|
|
550
|
+
const [DecimalSlot, decimalSlotProps] = (0, _useSlot.default)('decimal', {
|
|
551
|
+
className: classes.decimal,
|
|
552
|
+
elementType: RatingDecimal,
|
|
553
|
+
externalForwardedProps,
|
|
554
|
+
ownerState
|
|
555
|
+
});
|
|
556
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(RootSlot, {
|
|
557
|
+
...rootSlotProps,
|
|
494
558
|
children: [Array.from(new Array(max)).map((_, index) => {
|
|
495
559
|
const itemValue = index + 1;
|
|
496
560
|
const ratingItemProps = {
|
|
@@ -511,41 +575,42 @@ const Rating = /*#__PURE__*/React.forwardRef(function Rating(inProps, ref) {
|
|
|
511
575
|
ratingValue: value,
|
|
512
576
|
ratingValueRounded: valueRounded,
|
|
513
577
|
readOnly,
|
|
514
|
-
ownerState
|
|
578
|
+
ownerState,
|
|
579
|
+
slots,
|
|
580
|
+
slotProps
|
|
515
581
|
};
|
|
516
582
|
const isActive = itemValue === Math.ceil(value) && (hover !== -1 || focus !== -1);
|
|
517
583
|
if (precision < 1) {
|
|
518
584
|
const items = Array.from(new Array(1 / precision));
|
|
519
|
-
return /*#__PURE__*/(0,
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
585
|
+
return /*#__PURE__*/(0, _react.createElement)(DecimalSlot, {
|
|
586
|
+
...decimalSlotProps,
|
|
587
|
+
key: itemValue,
|
|
588
|
+
className: (0, _clsx.default)(decimalSlotProps.className, isActive && classes.iconActive),
|
|
589
|
+
iconActive: isActive
|
|
590
|
+
}, items.map(($, indexDecimal) => {
|
|
591
|
+
const itemDecimalValue = roundValueToPrecision(itemValue - 1 + (indexDecimal + 1) * precision, precision);
|
|
592
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(RatingItem, {
|
|
593
|
+
...ratingItemProps,
|
|
594
|
+
// The icon is already displayed as active
|
|
595
|
+
isActive: false,
|
|
596
|
+
itemValue: itemDecimalValue,
|
|
597
|
+
labelProps: {
|
|
598
|
+
style: items.length - 1 === indexDecimal ? {} : {
|
|
599
|
+
width: itemDecimalValue === value ? `${(indexDecimal + 1) * precision * 100}%` : '0%',
|
|
600
|
+
overflow: 'hidden',
|
|
601
|
+
position: 'absolute'
|
|
536
602
|
}
|
|
537
|
-
}
|
|
538
|
-
})
|
|
539
|
-
}
|
|
603
|
+
}
|
|
604
|
+
}, itemDecimalValue);
|
|
605
|
+
}));
|
|
540
606
|
}
|
|
541
607
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(RatingItem, {
|
|
542
608
|
...ratingItemProps,
|
|
543
609
|
isActive: isActive,
|
|
544
610
|
itemValue: itemValue
|
|
545
611
|
}, itemValue);
|
|
546
|
-
}), !readOnly && !disabled && /*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
547
|
-
|
|
548
|
-
ownerState: ownerState,
|
|
612
|
+
}), !readOnly && !disabled && /*#__PURE__*/(0, _jsxRuntime.jsxs)(LabelSlot, {
|
|
613
|
+
...labelSlotProps,
|
|
549
614
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("input", {
|
|
550
615
|
className: classes.visuallyHidden,
|
|
551
616
|
value: "",
|
|
@@ -629,6 +694,7 @@ process.env.NODE_ENV !== "production" ? Rating.propTypes /* remove-proptypes */
|
|
|
629
694
|
icon: _propTypes.default.node,
|
|
630
695
|
/**
|
|
631
696
|
* The component containing the icon.
|
|
697
|
+
* @deprecated Use `slotProps.icon.component` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
|
|
632
698
|
* @default function IconContainer(props) {
|
|
633
699
|
* const { value, ...other } = props;
|
|
634
700
|
* return <span {...other} />;
|
|
@@ -686,6 +752,26 @@ process.env.NODE_ENV !== "production" ? Rating.propTypes /* remove-proptypes */
|
|
|
686
752
|
* @default 'medium'
|
|
687
753
|
*/
|
|
688
754
|
size: _propTypes.default /* @typescript-to-proptypes-ignore */.oneOfType([_propTypes.default.oneOf(['small', 'medium', 'large']), _propTypes.default.string]),
|
|
755
|
+
/**
|
|
756
|
+
* The props used for each slot inside.
|
|
757
|
+
* @default {}
|
|
758
|
+
*/
|
|
759
|
+
slotProps: _propTypes.default.shape({
|
|
760
|
+
decimal: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
761
|
+
icon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
762
|
+
label: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
763
|
+
root: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])
|
|
764
|
+
}),
|
|
765
|
+
/**
|
|
766
|
+
* The components used for each slot inside.
|
|
767
|
+
* @default {}
|
|
768
|
+
*/
|
|
769
|
+
slots: _propTypes.default.shape({
|
|
770
|
+
decimal: _propTypes.default.elementType,
|
|
771
|
+
icon: _propTypes.default.elementType,
|
|
772
|
+
label: _propTypes.default.elementType,
|
|
773
|
+
root: _propTypes.default.elementType
|
|
774
|
+
}),
|
|
689
775
|
/**
|
|
690
776
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
691
777
|
*/
|
|
@@ -203,7 +203,10 @@ const Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {
|
|
|
203
203
|
},
|
|
204
204
|
ownerState
|
|
205
205
|
});
|
|
206
|
-
const [ClickAwaySlot,
|
|
206
|
+
const [ClickAwaySlot, {
|
|
207
|
+
ownerState: clickAwayOwnerStateProp,
|
|
208
|
+
...clickAwayListenerProps
|
|
209
|
+
}] = (0, _useSlot.default)('clickAwayListener', {
|
|
207
210
|
elementType: _ClickAwayListener.default,
|
|
208
211
|
externalForwardedProps,
|
|
209
212
|
getSlotProps: handlers => ({
|
|
@@ -252,6 +255,9 @@ const Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {
|
|
|
252
255
|
}
|
|
253
256
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(ClickAwaySlot, {
|
|
254
257
|
...clickAwayListenerProps,
|
|
258
|
+
...(slots.clickAwayListener && {
|
|
259
|
+
ownerState: clickAwayOwnerStateProp
|
|
260
|
+
}),
|
|
255
261
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Root, {
|
|
256
262
|
...rootProps,
|
|
257
263
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(TransitionSlot, {
|
|
@@ -379,22 +379,49 @@ const SpeedDial = /*#__PURE__*/React.forwardRef(function SpeedDial(inProps, ref)
|
|
|
379
379
|
slots: backwardCompatibleSlots,
|
|
380
380
|
slotProps: backwardCompatibleSlotProps
|
|
381
381
|
};
|
|
382
|
+
const [RootSlot, rootSlotProps] = (0, _useSlot.default)('root', {
|
|
383
|
+
elementType: SpeedDialRoot,
|
|
384
|
+
externalForwardedProps: {
|
|
385
|
+
...externalForwardedProps,
|
|
386
|
+
...other
|
|
387
|
+
},
|
|
388
|
+
ownerState,
|
|
389
|
+
ref,
|
|
390
|
+
className: (0, _clsx.default)(classes.root, className),
|
|
391
|
+
additionalProps: {
|
|
392
|
+
role: 'presentation'
|
|
393
|
+
},
|
|
394
|
+
getSlotProps: handlers => ({
|
|
395
|
+
...handlers,
|
|
396
|
+
onKeyDown: event => {
|
|
397
|
+
handlers.onKeyDown?.(event);
|
|
398
|
+
handleKeyDown(event);
|
|
399
|
+
},
|
|
400
|
+
onBlur: event => {
|
|
401
|
+
handlers.onBlur?.(event);
|
|
402
|
+
handleClose(event);
|
|
403
|
+
},
|
|
404
|
+
onFocus: event => {
|
|
405
|
+
handlers.onFocus?.(event);
|
|
406
|
+
handleOpen(event);
|
|
407
|
+
},
|
|
408
|
+
onMouseEnter: event => {
|
|
409
|
+
handlers.onMouseEnter?.(event);
|
|
410
|
+
handleOpen(event);
|
|
411
|
+
},
|
|
412
|
+
onMouseLeave: event => {
|
|
413
|
+
handlers.onMouseLeave?.(event);
|
|
414
|
+
handleClose(event);
|
|
415
|
+
}
|
|
416
|
+
})
|
|
417
|
+
});
|
|
382
418
|
const [TransitionSlot, transitionProps] = (0, _useSlot.default)('transition', {
|
|
383
419
|
elementType: _Zoom.default,
|
|
384
420
|
externalForwardedProps,
|
|
385
421
|
ownerState
|
|
386
422
|
});
|
|
387
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
388
|
-
|
|
389
|
-
ref: ref,
|
|
390
|
-
role: "presentation",
|
|
391
|
-
onKeyDown: handleKeyDown,
|
|
392
|
-
onBlur: handleClose,
|
|
393
|
-
onFocus: handleOpen,
|
|
394
|
-
onMouseEnter: handleOpen,
|
|
395
|
-
onMouseLeave: handleClose,
|
|
396
|
-
ownerState: ownerState,
|
|
397
|
-
...other,
|
|
423
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(RootSlot, {
|
|
424
|
+
...rootSlotProps,
|
|
398
425
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(TransitionSlot, {
|
|
399
426
|
in: !hidden,
|
|
400
427
|
timeout: transitionDuration,
|
|
@@ -514,6 +541,7 @@ process.env.NODE_ENV !== "production" ? SpeedDial.propTypes /* remove-proptypes
|
|
|
514
541
|
* @default {}
|
|
515
542
|
*/
|
|
516
543
|
slotProps: _propTypes.default.shape({
|
|
544
|
+
root: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
517
545
|
transition: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])
|
|
518
546
|
}),
|
|
519
547
|
/**
|
|
@@ -521,6 +549,7 @@ process.env.NODE_ENV !== "production" ? SpeedDial.propTypes /* remove-proptypes
|
|
|
521
549
|
* @default {}
|
|
522
550
|
*/
|
|
523
551
|
slots: _propTypes.default.shape({
|
|
552
|
+
root: _propTypes.default.elementType,
|
|
524
553
|
transition: _propTypes.default.elementType
|
|
525
554
|
}),
|
|
526
555
|
/**
|
|
@@ -348,7 +348,7 @@ process.env.NODE_ENV !== "production" ? SpeedDialAction.propTypes /* remove-prop
|
|
|
348
348
|
* @default 'left'
|
|
349
349
|
* @deprecated Use `slotProps.tooltip.placement` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
|
|
350
350
|
*/
|
|
351
|
-
tooltipPlacement: _propTypes.default.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),
|
|
351
|
+
tooltipPlacement: _propTypes.default.oneOf(['auto-end', 'auto-start', 'auto', 'bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),
|
|
352
352
|
/**
|
|
353
353
|
* Label to display in the tooltip.
|
|
354
354
|
* @deprecated Use `slotProps.tooltip.title` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
|