@mui/material 6.4.5 → 6.4.7
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 +14 -12
- package/Alert/Alert.d.ts +3 -15
- package/Backdrop/Backdrop.d.ts +14 -12
- package/CHANGELOG.md +58 -0
- package/CardHeader/CardHeader.d.ts +4 -20
- package/Checkbox/Checkbox.d.ts +45 -9
- package/Checkbox/Checkbox.js +51 -21
- package/Dialog/Dialog.d.ts +4 -4
- package/Drawer/Drawer.d.ts +92 -1
- package/Drawer/Drawer.js +108 -36
- package/InputBase/inputBaseClasses.d.ts +15 -6
- package/Menu/Menu.d.ts +88 -1
- package/Menu/Menu.js +58 -19
- package/Modal/Modal.js +9 -10
- package/Popover/Popover.d.ts +60 -6
- package/Popover/Popover.js +78 -51
- package/Radio/Radio.d.ts +45 -1
- package/Radio/Radio.js +61 -16
- package/Rating/Rating.d.ts +59 -1
- package/Rating/Rating.js +131 -45
- package/Select/SelectInput.js +8 -8
- package/Snackbar/Snackbar.d.ts +79 -2
- package/Snackbar/Snackbar.js +110 -32
- package/SpeedDial/SpeedDial.d.ts +8 -6
- package/SpeedDialAction/SpeedDialAction.d.ts +82 -1
- package/SpeedDialAction/SpeedDialAction.js +108 -30
- package/StepContent/StepContent.d.ts +2 -2
- package/SwipeableDrawer/SwipeableDrawer.d.ts +28 -2
- package/SwipeableDrawer/SwipeableDrawer.js +60 -13
- package/Switch/Switch.js +2 -0
- package/Tabs/Tabs.d.ts +129 -29
- package/Tabs/Tabs.js +120 -52
- package/Tabs/tabsClasses.d.ts +4 -0
- package/Tabs/tabsClasses.js +1 -1
- package/Tooltip/Tooltip.d.ts +20 -12
- package/index.js +1 -1
- package/internal/SwitchBase.d.ts +35 -1
- package/internal/SwitchBase.js +84 -30
- package/modern/Checkbox/Checkbox.js +51 -21
- package/modern/Drawer/Drawer.js +108 -36
- package/modern/Menu/Menu.js +58 -19
- package/modern/Modal/Modal.js +9 -10
- package/modern/Popover/Popover.js +78 -51
- package/modern/Radio/Radio.js +61 -16
- package/modern/Rating/Rating.js +131 -45
- package/modern/Select/SelectInput.js +8 -8
- package/modern/Snackbar/Snackbar.js +110 -32
- package/modern/SpeedDialAction/SpeedDialAction.js +108 -30
- package/modern/SwipeableDrawer/SwipeableDrawer.js +60 -13
- package/modern/Switch/Switch.js +2 -0
- package/modern/Tabs/Tabs.js +120 -52
- package/modern/Tabs/tabsClasses.js +1 -1
- package/modern/index.js +1 -1
- package/modern/internal/SwitchBase.js +84 -30
- package/modern/styles/createThemeNoVars.js +7 -2
- package/modern/version/index.js +2 -2
- package/node/Checkbox/Checkbox.js +51 -21
- package/node/Drawer/Drawer.js +108 -36
- package/node/Menu/Menu.js +58 -19
- package/node/Modal/Modal.js +9 -10
- package/node/Popover/Popover.js +78 -51
- package/node/Radio/Radio.js +61 -16
- package/node/Rating/Rating.js +132 -46
- package/node/Select/SelectInput.js +8 -8
- package/node/Snackbar/Snackbar.js +110 -32
- package/node/SpeedDialAction/SpeedDialAction.js +108 -30
- package/node/SwipeableDrawer/SwipeableDrawer.js +60 -13
- package/node/Switch/Switch.js +2 -0
- package/node/Tabs/Tabs.js +120 -52
- package/node/Tabs/tabsClasses.js +1 -1
- package/node/index.js +1 -1
- package/node/internal/SwitchBase.js +84 -30
- package/node/styles/createThemeNoVars.js +7 -2
- package/node/version/index.js +2 -2
- package/package.json +5 -5
- package/styles/ThemeProvider.d.ts +6 -0
- package/styles/ThemeProviderWithVars.d.ts +1 -0
- package/styles/createThemeNoVars.js +7 -2
- package/styles/index.d.ts +1 -0
- package/version/index.js +2 -2
|
@@ -20,6 +20,8 @@ var _Fab = _interopRequireDefault(require("../Fab"));
|
|
|
20
20
|
var _Tooltip = _interopRequireDefault(require("../Tooltip"));
|
|
21
21
|
var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
|
|
22
22
|
var _speedDialActionClasses = _interopRequireWildcard(require("./speedDialActionClasses"));
|
|
23
|
+
var _useSlot = _interopRequireDefault(require("../utils/useSlot"));
|
|
24
|
+
var _utils = require("../utils");
|
|
23
25
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
24
26
|
const useUtilityClasses = ownerState => {
|
|
25
27
|
const {
|
|
@@ -154,6 +156,8 @@ const SpeedDialAction = /*#__PURE__*/React.forwardRef(function SpeedDialAction(i
|
|
|
154
156
|
tooltipOpen: tooltipOpenProp = false,
|
|
155
157
|
tooltipPlacement = 'left',
|
|
156
158
|
tooltipTitle,
|
|
159
|
+
slots = {},
|
|
160
|
+
slotProps = {},
|
|
157
161
|
...other
|
|
158
162
|
} = props;
|
|
159
163
|
const ownerState = {
|
|
@@ -161,7 +165,20 @@ const SpeedDialAction = /*#__PURE__*/React.forwardRef(function SpeedDialAction(i
|
|
|
161
165
|
tooltipPlacement
|
|
162
166
|
};
|
|
163
167
|
const classes = useUtilityClasses(ownerState);
|
|
164
|
-
const
|
|
168
|
+
const externalForwardedProps = {
|
|
169
|
+
slots,
|
|
170
|
+
slotProps: {
|
|
171
|
+
fab: FabProps,
|
|
172
|
+
...slotProps,
|
|
173
|
+
tooltip: (0, _utils.mergeSlotProps)(typeof slotProps.tooltip === 'function' ? slotProps.tooltip(ownerState) : slotProps.tooltip, {
|
|
174
|
+
title: tooltipTitle,
|
|
175
|
+
open: tooltipOpenProp,
|
|
176
|
+
placement: tooltipPlacement,
|
|
177
|
+
classes: TooltipClasses
|
|
178
|
+
})
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
const [tooltipOpen, setTooltipOpen] = React.useState(externalForwardedProps.slotProps.tooltip?.open);
|
|
165
182
|
const handleTooltipClose = () => {
|
|
166
183
|
setTooltipOpen(false);
|
|
167
184
|
};
|
|
@@ -171,32 +188,71 @@ const SpeedDialAction = /*#__PURE__*/React.forwardRef(function SpeedDialAction(i
|
|
|
171
188
|
const transitionStyle = {
|
|
172
189
|
transitionDelay: `${delay}ms`
|
|
173
190
|
};
|
|
174
|
-
const
|
|
175
|
-
|
|
191
|
+
const [FabSlot, fabSlotProps] = (0, _useSlot.default)('fab', {
|
|
192
|
+
elementType: SpeedDialActionFab,
|
|
193
|
+
externalForwardedProps,
|
|
194
|
+
ownerState,
|
|
195
|
+
shouldForwardComponentProp: true,
|
|
176
196
|
className: (0, _clsx.default)(classes.fab, className),
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
197
|
+
additionalProps: {
|
|
198
|
+
style: transitionStyle,
|
|
199
|
+
tabIndex: -1,
|
|
200
|
+
role: 'menuitem',
|
|
201
|
+
size: 'small'
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
const [TooltipSlot, tooltipSlotProps] = (0, _useSlot.default)('tooltip', {
|
|
205
|
+
elementType: _Tooltip.default,
|
|
206
|
+
externalForwardedProps,
|
|
207
|
+
shouldForwardComponentProp: true,
|
|
208
|
+
ref,
|
|
209
|
+
additionalProps: {
|
|
210
|
+
id
|
|
184
211
|
},
|
|
212
|
+
ownerState,
|
|
213
|
+
getSlotProps: handlers => ({
|
|
214
|
+
...handlers,
|
|
215
|
+
onClose: event => {
|
|
216
|
+
handlers.onClose?.(event);
|
|
217
|
+
handleTooltipClose();
|
|
218
|
+
},
|
|
219
|
+
onOpen: event => {
|
|
220
|
+
handlers.onOpen?.(event);
|
|
221
|
+
handleTooltipOpen();
|
|
222
|
+
}
|
|
223
|
+
})
|
|
224
|
+
});
|
|
225
|
+
const [StaticTooltipSlot, staticTooltipSlotProps] = (0, _useSlot.default)('staticTooltip', {
|
|
226
|
+
elementType: SpeedDialActionStaticTooltip,
|
|
227
|
+
externalForwardedProps,
|
|
228
|
+
ownerState,
|
|
229
|
+
ref,
|
|
230
|
+
className: classes.staticTooltip,
|
|
231
|
+
additionalProps: {
|
|
232
|
+
id
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
const [StaticTooltipLabelSlot, staticTooltipLabelSlotProps] = (0, _useSlot.default)('staticTooltipLabel', {
|
|
236
|
+
elementType: SpeedDialActionStaticTooltipLabel,
|
|
237
|
+
externalForwardedProps,
|
|
238
|
+
ownerState,
|
|
239
|
+
className: classes.staticTooltipLabel,
|
|
240
|
+
additionalProps: {
|
|
241
|
+
style: transitionStyle,
|
|
242
|
+
id: `${id}-label`
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
const fab = /*#__PURE__*/(0, _jsxRuntime.jsx)(FabSlot, {
|
|
246
|
+
...fabSlotProps,
|
|
185
247
|
children: icon
|
|
186
248
|
});
|
|
187
|
-
if (
|
|
188
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
189
|
-
|
|
190
|
-
ref: ref,
|
|
191
|
-
className: classes.staticTooltip,
|
|
192
|
-
ownerState: ownerState,
|
|
249
|
+
if (tooltipSlotProps.open) {
|
|
250
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(StaticTooltipSlot, {
|
|
251
|
+
...staticTooltipSlotProps,
|
|
193
252
|
...other,
|
|
194
|
-
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
className: classes.staticTooltipLabel,
|
|
198
|
-
ownerState: ownerState,
|
|
199
|
-
children: tooltipTitle
|
|
253
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(StaticTooltipLabelSlot, {
|
|
254
|
+
...staticTooltipLabelSlotProps,
|
|
255
|
+
children: tooltipSlotProps.title
|
|
200
256
|
}), /*#__PURE__*/React.cloneElement(fab, {
|
|
201
257
|
'aria-labelledby': `${id}-label`
|
|
202
258
|
})]
|
|
@@ -205,15 +261,12 @@ const SpeedDialAction = /*#__PURE__*/React.forwardRef(function SpeedDialAction(i
|
|
|
205
261
|
if (!open && tooltipOpen) {
|
|
206
262
|
setTooltipOpen(false);
|
|
207
263
|
}
|
|
208
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
title: tooltipTitle,
|
|
212
|
-
placement: tooltipPlacement,
|
|
213
|
-
onClose: handleTooltipClose,
|
|
214
|
-
onOpen: handleTooltipOpen,
|
|
264
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(TooltipSlot, {
|
|
265
|
+
...tooltipSlotProps,
|
|
266
|
+
title: tooltipSlotProps.title,
|
|
215
267
|
open: open && tooltipOpen,
|
|
216
|
-
|
|
268
|
+
placement: tooltipSlotProps.placement,
|
|
269
|
+
classes: tooltipSlotProps.classes,
|
|
217
270
|
...other,
|
|
218
271
|
children: fab
|
|
219
272
|
});
|
|
@@ -239,6 +292,7 @@ process.env.NODE_ENV !== "production" ? SpeedDialAction.propTypes /* remove-prop
|
|
|
239
292
|
/**
|
|
240
293
|
* Props applied to the [`Fab`](https://mui.com/material-ui/api/fab/) component.
|
|
241
294
|
* @default {}
|
|
295
|
+
* @deprecated Use `slotProps.fab` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
|
|
242
296
|
*/
|
|
243
297
|
FabProps: _propTypes.default.object,
|
|
244
298
|
/**
|
|
@@ -254,26 +308,50 @@ process.env.NODE_ENV !== "production" ? SpeedDialAction.propTypes /* remove-prop
|
|
|
254
308
|
* If `true`, the component is shown.
|
|
255
309
|
*/
|
|
256
310
|
open: _propTypes.default.bool,
|
|
311
|
+
/**
|
|
312
|
+
* The props used for each slot inside.
|
|
313
|
+
* @default {}
|
|
314
|
+
*/
|
|
315
|
+
slotProps: _propTypes.default.shape({
|
|
316
|
+
fab: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
317
|
+
staticTooltip: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
318
|
+
staticTooltipLabel: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
319
|
+
tooltip: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])
|
|
320
|
+
}),
|
|
321
|
+
/**
|
|
322
|
+
* The components used for each slot inside.
|
|
323
|
+
* @default {}
|
|
324
|
+
*/
|
|
325
|
+
slots: _propTypes.default.shape({
|
|
326
|
+
fab: _propTypes.default.elementType,
|
|
327
|
+
staticTooltip: _propTypes.default.elementType,
|
|
328
|
+
staticTooltipLabel: _propTypes.default.elementType,
|
|
329
|
+
tooltip: _propTypes.default.elementType
|
|
330
|
+
}),
|
|
257
331
|
/**
|
|
258
332
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
259
333
|
*/
|
|
260
334
|
sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
|
|
261
335
|
/**
|
|
262
336
|
* `classes` prop applied to the [`Tooltip`](https://mui.com/material-ui/api/tooltip/) element.
|
|
337
|
+
* @deprecated Use `slotProps.tooltip.classes` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
|
|
263
338
|
*/
|
|
264
339
|
TooltipClasses: _propTypes.default.object,
|
|
265
340
|
/**
|
|
266
341
|
* Make the tooltip always visible when the SpeedDial is open.
|
|
267
342
|
* @default false
|
|
343
|
+
* @deprecated Use `slotProps.tooltip.open` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
|
|
268
344
|
*/
|
|
269
345
|
tooltipOpen: _propTypes.default.bool,
|
|
270
346
|
/**
|
|
271
347
|
* Placement of the tooltip.
|
|
272
348
|
* @default 'left'
|
|
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.
|
|
273
350
|
*/
|
|
274
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']),
|
|
275
352
|
/**
|
|
276
353
|
* Label to display in the tooltip.
|
|
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.
|
|
277
355
|
*/
|
|
278
356
|
tooltipTitle: _propTypes.default.node
|
|
279
357
|
} : void 0;
|
|
@@ -22,6 +22,8 @@ var _useEnhancedEffect = _interopRequireDefault(require("../utils/useEnhancedEff
|
|
|
22
22
|
var _zeroStyled = require("../zero-styled");
|
|
23
23
|
var _DefaultPropsProvider = require("../DefaultPropsProvider");
|
|
24
24
|
var _utils = require("../transitions/utils");
|
|
25
|
+
var _utils2 = require("../utils");
|
|
26
|
+
var _useSlot = _interopRequireDefault(require("../utils/useSlot"));
|
|
25
27
|
var _SwipeArea = _interopRequireDefault(require("./SwipeArea"));
|
|
26
28
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
27
29
|
// This value is closed to what browsers are using internally to
|
|
@@ -152,6 +154,8 @@ const SwipeableDrawer = /*#__PURE__*/React.forwardRef(function SwipeableDrawer(i
|
|
|
152
154
|
transitionDuration = transitionDurationDefault,
|
|
153
155
|
variant = 'temporary',
|
|
154
156
|
// Mobile first.
|
|
157
|
+
slots = {},
|
|
158
|
+
slotProps = {},
|
|
155
159
|
...other
|
|
156
160
|
} = props;
|
|
157
161
|
const [maybeSwiping, setMaybeSwiping] = React.useState(false);
|
|
@@ -457,6 +461,22 @@ const SwipeableDrawer = /*#__PURE__*/React.forwardRef(function SwipeableDrawer(i
|
|
|
457
461
|
setMaybeSwiping(false);
|
|
458
462
|
}
|
|
459
463
|
}, [open]);
|
|
464
|
+
const [SwipeAreaSlot, swipeAreaSlotProps] = (0, _useSlot.default)('swipeArea', {
|
|
465
|
+
ref: swipeAreaRef,
|
|
466
|
+
elementType: _SwipeArea.default,
|
|
467
|
+
ownerState: props,
|
|
468
|
+
externalForwardedProps: {
|
|
469
|
+
slots,
|
|
470
|
+
slotProps: {
|
|
471
|
+
swipeArea: SwipeAreaProps,
|
|
472
|
+
...slotProps
|
|
473
|
+
}
|
|
474
|
+
},
|
|
475
|
+
additionalProps: {
|
|
476
|
+
width: swipeAreaWidth,
|
|
477
|
+
anchor
|
|
478
|
+
}
|
|
479
|
+
});
|
|
460
480
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
|
|
461
481
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Drawer.default, {
|
|
462
482
|
open: variant === 'temporary' && maybeSwiping ? true : open,
|
|
@@ -474,25 +494,27 @@ const SwipeableDrawer = /*#__PURE__*/React.forwardRef(function SwipeableDrawer(i
|
|
|
474
494
|
...ModalPropsProp
|
|
475
495
|
},
|
|
476
496
|
hideBackdrop: hideBackdrop,
|
|
477
|
-
PaperProps: {
|
|
478
|
-
...PaperProps,
|
|
479
|
-
style: {
|
|
480
|
-
pointerEvents: variant === 'temporary' && !open && !allowSwipeInChildren ? 'none' : '',
|
|
481
|
-
...PaperProps.style
|
|
482
|
-
},
|
|
483
|
-
ref: handleRef
|
|
484
|
-
},
|
|
485
497
|
anchor: anchor,
|
|
486
498
|
transitionDuration: calculatedDurationRef.current || transitionDuration,
|
|
487
499
|
onClose: onClose,
|
|
488
500
|
ref: ref,
|
|
501
|
+
slots: slots,
|
|
502
|
+
slotProps: {
|
|
503
|
+
...slotProps,
|
|
504
|
+
backdrop: (0, _utils2.mergeSlotProps)(slotProps.backdrop ?? BackdropProps, {
|
|
505
|
+
ref: backdropRef
|
|
506
|
+
}),
|
|
507
|
+
paper: (0, _utils2.mergeSlotProps)(slotProps.paper ?? PaperProps, {
|
|
508
|
+
style: {
|
|
509
|
+
pointerEvents: variant === 'temporary' && !open && !allowSwipeInChildren ? 'none' : ''
|
|
510
|
+
},
|
|
511
|
+
ref: handleRef
|
|
512
|
+
})
|
|
513
|
+
},
|
|
489
514
|
...other
|
|
490
515
|
}), !disableSwipeToOpen && variant === 'temporary' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_NoSsr.default, {
|
|
491
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
492
|
-
|
|
493
|
-
ref: swipeAreaRef,
|
|
494
|
-
width: swipeAreaWidth,
|
|
495
|
-
...SwipeAreaProps
|
|
516
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(SwipeAreaSlot, {
|
|
517
|
+
...swipeAreaSlotProps
|
|
496
518
|
})
|
|
497
519
|
})]
|
|
498
520
|
});
|
|
@@ -590,8 +612,33 @@ process.env.NODE_ENV !== "production" ? SwipeableDrawer.propTypes /* remove-prop
|
|
|
590
612
|
component: _elementTypeAcceptingRef.default,
|
|
591
613
|
style: _propTypes.default.object
|
|
592
614
|
}),
|
|
615
|
+
/**
|
|
616
|
+
* The props used for each slot inside.
|
|
617
|
+
* @default {}
|
|
618
|
+
*/
|
|
619
|
+
slotProps: _propTypes.default.shape({
|
|
620
|
+
backdrop: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
621
|
+
docked: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
622
|
+
paper: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
623
|
+
root: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
624
|
+
swipeArea: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
625
|
+
transition: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])
|
|
626
|
+
}),
|
|
627
|
+
/**
|
|
628
|
+
* The components used for each slot inside.
|
|
629
|
+
* @default {}
|
|
630
|
+
*/
|
|
631
|
+
slots: _propTypes.default.shape({
|
|
632
|
+
backdrop: _propTypes.default.elementType,
|
|
633
|
+
docked: _propTypes.default.elementType,
|
|
634
|
+
paper: _propTypes.default.elementType,
|
|
635
|
+
root: _propTypes.default.elementType,
|
|
636
|
+
swipeArea: _propTypes.default.elementType,
|
|
637
|
+
transition: _propTypes.default.elementType
|
|
638
|
+
}),
|
|
593
639
|
/**
|
|
594
640
|
* The element is used to intercept the touch events on the edge.
|
|
641
|
+
* @deprecated use the `slotProps.swipeArea` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.
|
|
595
642
|
*/
|
|
596
643
|
SwipeAreaProps: _propTypes.default.object,
|
|
597
644
|
/**
|
package/node/Switch/Switch.js
CHANGED
|
@@ -312,10 +312,12 @@ process.env.NODE_ENV !== "production" ? Switch.propTypes /* remove-proptypes */
|
|
|
312
312
|
id: _propTypes.default.string,
|
|
313
313
|
/**
|
|
314
314
|
* [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.
|
|
315
|
+
* @deprecated Use `slotProps.input` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
|
|
315
316
|
*/
|
|
316
317
|
inputProps: _propTypes.default.object,
|
|
317
318
|
/**
|
|
318
319
|
* Pass a ref to the `input` element.
|
|
320
|
+
* @deprecated Use `slotProps.input.ref` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
|
|
319
321
|
*/
|
|
320
322
|
inputRef: _refType.default,
|
|
321
323
|
/**
|
package/node/Tabs/Tabs.js
CHANGED
|
@@ -26,6 +26,7 @@ var _useEventCallback = _interopRequireDefault(require("../utils/useEventCallbac
|
|
|
26
26
|
var _tabsClasses = _interopRequireWildcard(require("./tabsClasses"));
|
|
27
27
|
var _ownerDocument = _interopRequireDefault(require("../utils/ownerDocument"));
|
|
28
28
|
var _ownerWindow = _interopRequireDefault(require("../utils/ownerWindow"));
|
|
29
|
+
var _useSlot = _interopRequireDefault(require("../utils/useSlot"));
|
|
29
30
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
30
31
|
const nextItem = (list, item) => {
|
|
31
32
|
if (list === item) {
|
|
@@ -82,7 +83,7 @@ const useUtilityClasses = ownerState => {
|
|
|
82
83
|
const slots = {
|
|
83
84
|
root: ['root', vertical && 'vertical'],
|
|
84
85
|
scroller: ['scroller', fixed && 'fixed', hideScrollbar && 'hideScrollbar', scrollableX && 'scrollableX', scrollableY && 'scrollableY'],
|
|
85
|
-
|
|
86
|
+
list: ['list', 'flexContainer', vertical && 'flexContainerVertical', vertical && 'vertical', centered && 'centered'],
|
|
86
87
|
indicator: ['indicator'],
|
|
87
88
|
scrollButtons: ['scrollButtons', scrollButtonsHideMobile && 'scrollButtonsHideMobile'],
|
|
88
89
|
scrollableX: [scrollableX && 'scrollableX'],
|
|
@@ -183,14 +184,14 @@ const TabsScroller = (0, _zeroStyled.styled)('div', {
|
|
|
183
184
|
}
|
|
184
185
|
}]
|
|
185
186
|
});
|
|
186
|
-
const
|
|
187
|
+
const List = (0, _zeroStyled.styled)('div', {
|
|
187
188
|
name: 'MuiTabs',
|
|
188
|
-
slot: '
|
|
189
|
+
slot: 'List',
|
|
189
190
|
overridesResolver: (props, styles) => {
|
|
190
191
|
const {
|
|
191
192
|
ownerState
|
|
192
193
|
} = props;
|
|
193
|
-
return [styles.flexContainer, ownerState.vertical && styles.flexContainerVertical, ownerState.centered && styles.centered];
|
|
194
|
+
return [styles.list, styles.flexContainer, ownerState.vertical && styles.flexContainerVertical, ownerState.centered && styles.centered];
|
|
194
195
|
}
|
|
195
196
|
})({
|
|
196
197
|
display: 'flex',
|
|
@@ -278,13 +279,16 @@ const Tabs = /*#__PURE__*/React.forwardRef(function Tabs(inProps, ref) {
|
|
|
278
279
|
indicatorColor = 'primary',
|
|
279
280
|
onChange,
|
|
280
281
|
orientation = 'horizontal',
|
|
281
|
-
ScrollButtonComponent
|
|
282
|
+
ScrollButtonComponent,
|
|
283
|
+
// TODO: remove in v7 (deprecated in v6)
|
|
282
284
|
scrollButtons = 'auto',
|
|
283
285
|
selectionFollowsFocus,
|
|
284
286
|
slots = {},
|
|
285
287
|
slotProps = {},
|
|
286
288
|
TabIndicatorProps = {},
|
|
289
|
+
// TODO: remove in v7 (deprecated in v6)
|
|
287
290
|
TabScrollButtonProps = {},
|
|
291
|
+
// TODO: remove in v7 (deprecated in v6)
|
|
288
292
|
textColor = 'primary',
|
|
289
293
|
value,
|
|
290
294
|
variant = 'standard',
|
|
@@ -344,6 +348,14 @@ const Tabs = /*#__PURE__*/React.forwardRef(function Tabs(inProps, ref) {
|
|
|
344
348
|
const valueToIndex = new Map();
|
|
345
349
|
const tabsRef = React.useRef(null);
|
|
346
350
|
const tabListRef = React.useRef(null);
|
|
351
|
+
const externalForwardedProps = {
|
|
352
|
+
slots,
|
|
353
|
+
slotProps: {
|
|
354
|
+
indicator: TabIndicatorProps,
|
|
355
|
+
scrollButton: TabScrollButtonProps,
|
|
356
|
+
...slotProps
|
|
357
|
+
}
|
|
358
|
+
};
|
|
347
359
|
const getTabsMeta = () => {
|
|
348
360
|
const tabsNode = tabsRef.current;
|
|
349
361
|
let tabsMeta;
|
|
@@ -465,50 +477,62 @@ const Tabs = /*#__PURE__*/React.forwardRef(function Tabs(inProps, ref) {
|
|
|
465
477
|
const handleEndScrollClick = () => {
|
|
466
478
|
moveTabsScroll(getScrollSize());
|
|
467
479
|
};
|
|
480
|
+
const [ScrollbarSlot, {
|
|
481
|
+
onChange: scrollbarOnChange,
|
|
482
|
+
...scrollbarSlotProps
|
|
483
|
+
}] = (0, _useSlot.default)('scrollbar', {
|
|
484
|
+
className: (0, _clsx.default)(classes.scrollableX, classes.hideScrollbar),
|
|
485
|
+
elementType: TabsScrollbarSize,
|
|
486
|
+
shouldForwardComponentProp: true,
|
|
487
|
+
externalForwardedProps,
|
|
488
|
+
ownerState
|
|
489
|
+
});
|
|
468
490
|
|
|
469
491
|
// TODO Remove <ScrollbarSize /> as browser support for hiding the scrollbar
|
|
470
492
|
// with CSS improves.
|
|
471
493
|
const handleScrollbarSizeChange = React.useCallback(scrollbarWidth => {
|
|
494
|
+
scrollbarOnChange?.(scrollbarWidth);
|
|
472
495
|
setScrollerStyle({
|
|
473
496
|
overflow: null,
|
|
474
497
|
scrollbarWidth
|
|
475
498
|
});
|
|
476
|
-
}, []);
|
|
499
|
+
}, [scrollbarOnChange]);
|
|
500
|
+
const [ScrollButtonsSlot, scrollButtonSlotProps] = (0, _useSlot.default)('scrollButtons', {
|
|
501
|
+
className: (0, _clsx.default)(classes.scrollButtons, TabScrollButtonProps.className),
|
|
502
|
+
elementType: _TabScrollButton.default,
|
|
503
|
+
externalForwardedProps,
|
|
504
|
+
ownerState,
|
|
505
|
+
additionalProps: {
|
|
506
|
+
orientation,
|
|
507
|
+
slots: {
|
|
508
|
+
StartScrollButtonIcon: slots.startScrollButtonIcon || slots.StartScrollButtonIcon,
|
|
509
|
+
EndScrollButtonIcon: slots.endScrollButtonIcon || slots.EndScrollButtonIcon
|
|
510
|
+
},
|
|
511
|
+
slotProps: {
|
|
512
|
+
startScrollButtonIcon: startScrollButtonIconProps,
|
|
513
|
+
endScrollButtonIcon: endScrollButtonIconProps
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
});
|
|
477
517
|
const getConditionalElements = () => {
|
|
478
518
|
const conditionalElements = {};
|
|
479
|
-
conditionalElements.scrollbarSizeListener = scrollable ? /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
480
|
-
|
|
481
|
-
|
|
519
|
+
conditionalElements.scrollbarSizeListener = scrollable ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ScrollbarSlot, {
|
|
520
|
+
...scrollbarSlotProps,
|
|
521
|
+
onChange: handleScrollbarSizeChange
|
|
482
522
|
}) : null;
|
|
483
523
|
const scrollButtonsActive = displayStartScroll || displayEndScroll;
|
|
484
524
|
const showScrollButtons = scrollable && (scrollButtons === 'auto' && scrollButtonsActive || scrollButtons === true);
|
|
485
|
-
conditionalElements.scrollButtonStart = showScrollButtons ? /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
486
|
-
slots: {
|
|
487
|
-
StartScrollButtonIcon: slots.StartScrollButtonIcon
|
|
488
|
-
},
|
|
489
|
-
slotProps: {
|
|
490
|
-
startScrollButtonIcon: startScrollButtonIconProps
|
|
491
|
-
},
|
|
492
|
-
orientation: orientation,
|
|
525
|
+
conditionalElements.scrollButtonStart = showScrollButtons ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ScrollButtonsSlot, {
|
|
493
526
|
direction: isRtl ? 'right' : 'left',
|
|
494
527
|
onClick: handleStartScrollClick,
|
|
495
528
|
disabled: !displayStartScroll,
|
|
496
|
-
...
|
|
497
|
-
className: (0, _clsx.default)(classes.scrollButtons, TabScrollButtonProps.className)
|
|
529
|
+
...scrollButtonSlotProps
|
|
498
530
|
}) : null;
|
|
499
|
-
conditionalElements.scrollButtonEnd = showScrollButtons ? /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
500
|
-
slots: {
|
|
501
|
-
EndScrollButtonIcon: slots.EndScrollButtonIcon
|
|
502
|
-
},
|
|
503
|
-
slotProps: {
|
|
504
|
-
endScrollButtonIcon: endScrollButtonIconProps
|
|
505
|
-
},
|
|
506
|
-
orientation: orientation,
|
|
531
|
+
conditionalElements.scrollButtonEnd = showScrollButtons ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ScrollButtonsSlot, {
|
|
507
532
|
direction: isRtl ? 'left' : 'right',
|
|
508
533
|
onClick: handleEndScrollClick,
|
|
509
534
|
disabled: !displayEndScroll,
|
|
510
|
-
...
|
|
511
|
-
className: (0, _clsx.default)(classes.scrollButtons, TabScrollButtonProps.className)
|
|
535
|
+
...scrollButtonSlotProps
|
|
512
536
|
}) : null;
|
|
513
537
|
return conditionalElements;
|
|
514
538
|
};
|
|
@@ -636,15 +660,18 @@ const Tabs = /*#__PURE__*/React.forwardRef(function Tabs(inProps, ref) {
|
|
|
636
660
|
updateIndicator: updateIndicatorState,
|
|
637
661
|
updateScrollButtons: updateScrollButtonState
|
|
638
662
|
}), [updateIndicatorState, updateScrollButtonState]);
|
|
639
|
-
const
|
|
640
|
-
...TabIndicatorProps,
|
|
663
|
+
const [IndicatorSlot, indicatorSlotProps] = (0, _useSlot.default)('indicator', {
|
|
641
664
|
className: (0, _clsx.default)(classes.indicator, TabIndicatorProps.className),
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
665
|
+
elementType: TabsIndicator,
|
|
666
|
+
externalForwardedProps,
|
|
667
|
+
ownerState,
|
|
668
|
+
additionalProps: {
|
|
669
|
+
style: indicatorStyle
|
|
646
670
|
}
|
|
647
671
|
});
|
|
672
|
+
const indicator = /*#__PURE__*/(0, _jsxRuntime.jsx)(IndicatorSlot, {
|
|
673
|
+
...indicatorSlotProps
|
|
674
|
+
});
|
|
648
675
|
let childIndex = 0;
|
|
649
676
|
const children = React.Children.map(childrenProp, child => {
|
|
650
677
|
if (! /*#__PURE__*/React.isValidElement(child)) {
|
|
@@ -711,29 +738,54 @@ const Tabs = /*#__PURE__*/React.forwardRef(function Tabs(inProps, ref) {
|
|
|
711
738
|
}
|
|
712
739
|
};
|
|
713
740
|
const conditionalElements = getConditionalElements();
|
|
714
|
-
|
|
741
|
+
const [RootSlot, rootSlotProps] = (0, _useSlot.default)('root', {
|
|
742
|
+
ref,
|
|
715
743
|
className: (0, _clsx.default)(classes.root, className),
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
744
|
+
elementType: TabsRoot,
|
|
745
|
+
externalForwardedProps: {
|
|
746
|
+
...externalForwardedProps,
|
|
747
|
+
...other,
|
|
748
|
+
component
|
|
749
|
+
},
|
|
750
|
+
ownerState
|
|
751
|
+
});
|
|
752
|
+
const [ScrollerSlot, scrollerSlotProps] = (0, _useSlot.default)('scroller', {
|
|
753
|
+
ref: tabsRef,
|
|
754
|
+
className: classes.scroller,
|
|
755
|
+
elementType: TabsScroller,
|
|
756
|
+
externalForwardedProps,
|
|
757
|
+
ownerState,
|
|
758
|
+
additionalProps: {
|
|
723
759
|
style: {
|
|
724
760
|
overflow: scrollerStyle.overflow,
|
|
725
761
|
[vertical ? `margin${isRtl ? 'Left' : 'Right'}` : 'marginBottom']: visibleScrollbar ? undefined : -scrollerStyle.scrollbarWidth
|
|
726
|
-
}
|
|
727
|
-
|
|
728
|
-
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
});
|
|
765
|
+
const [ListSlot, listSlotProps] = (0, _useSlot.default)('list', {
|
|
766
|
+
ref: tabListRef,
|
|
767
|
+
className: (0, _clsx.default)(classes.list, classes.flexContainer),
|
|
768
|
+
elementType: List,
|
|
769
|
+
externalForwardedProps,
|
|
770
|
+
ownerState,
|
|
771
|
+
getSlotProps: handlers => ({
|
|
772
|
+
...handlers,
|
|
773
|
+
onKeyDown: event => {
|
|
774
|
+
handleKeyDown(event);
|
|
775
|
+
handlers.onKeyDown?.(event);
|
|
776
|
+
}
|
|
777
|
+
})
|
|
778
|
+
});
|
|
779
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(RootSlot, {
|
|
780
|
+
...rootSlotProps,
|
|
781
|
+
children: [conditionalElements.scrollButtonStart, conditionalElements.scrollbarSizeListener, /*#__PURE__*/(0, _jsxRuntime.jsxs)(ScrollerSlot, {
|
|
782
|
+
...scrollerSlotProps,
|
|
783
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(ListSlot, {
|
|
729
784
|
"aria-label": ariaLabel,
|
|
730
785
|
"aria-labelledby": ariaLabelledBy,
|
|
731
786
|
"aria-orientation": orientation === 'vertical' ? 'vertical' : null,
|
|
732
|
-
className: classes.flexContainer,
|
|
733
|
-
ownerState: ownerState,
|
|
734
|
-
onKeyDown: handleKeyDown,
|
|
735
|
-
ref: tabListRef,
|
|
736
787
|
role: "tablist",
|
|
788
|
+
...listSlotProps,
|
|
737
789
|
children: children
|
|
738
790
|
}), mounted && indicator]
|
|
739
791
|
}), conditionalElements.scrollButtonEnd]
|
|
@@ -809,6 +861,7 @@ process.env.NODE_ENV !== "production" ? Tabs.propTypes /* remove-proptypes */ =
|
|
|
809
861
|
orientation: _propTypes.default.oneOf(['horizontal', 'vertical']),
|
|
810
862
|
/**
|
|
811
863
|
* The component used to render the scroll buttons.
|
|
864
|
+
* @deprecated use the `slots.scrollButtons` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.
|
|
812
865
|
* @default TabScrollButton
|
|
813
866
|
*/
|
|
814
867
|
ScrollButtonComponent: _propTypes.default.elementType,
|
|
@@ -830,12 +883,17 @@ process.env.NODE_ENV !== "production" ? Tabs.propTypes /* remove-proptypes */ =
|
|
|
830
883
|
*/
|
|
831
884
|
selectionFollowsFocus: _propTypes.default.bool,
|
|
832
885
|
/**
|
|
833
|
-
* The
|
|
834
|
-
* You can override the existing props or add new ones.
|
|
886
|
+
* The props used for each slot inside.
|
|
835
887
|
* @default {}
|
|
836
888
|
*/
|
|
837
889
|
slotProps: _propTypes.default.shape({
|
|
838
890
|
endScrollButtonIcon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
891
|
+
indicator: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
892
|
+
list: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
893
|
+
root: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
894
|
+
scrollbar: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
895
|
+
scrollButtons: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
896
|
+
scroller: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
839
897
|
startScrollButtonIcon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])
|
|
840
898
|
}),
|
|
841
899
|
/**
|
|
@@ -843,7 +901,15 @@ process.env.NODE_ENV !== "production" ? Tabs.propTypes /* remove-proptypes */ =
|
|
|
843
901
|
* @default {}
|
|
844
902
|
*/
|
|
845
903
|
slots: _propTypes.default.shape({
|
|
904
|
+
endScrollButtonIcon: _propTypes.default.elementType,
|
|
846
905
|
EndScrollButtonIcon: _propTypes.default.elementType,
|
|
906
|
+
indicator: _propTypes.default.elementType,
|
|
907
|
+
list: _propTypes.default.elementType,
|
|
908
|
+
root: _propTypes.default.elementType,
|
|
909
|
+
scrollbar: _propTypes.default.elementType,
|
|
910
|
+
scrollButtons: _propTypes.default.elementType,
|
|
911
|
+
scroller: _propTypes.default.elementType,
|
|
912
|
+
startScrollButtonIcon: _propTypes.default.elementType,
|
|
847
913
|
StartScrollButtonIcon: _propTypes.default.elementType
|
|
848
914
|
}),
|
|
849
915
|
/**
|
|
@@ -852,11 +918,13 @@ process.env.NODE_ENV !== "production" ? Tabs.propTypes /* remove-proptypes */ =
|
|
|
852
918
|
sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
|
|
853
919
|
/**
|
|
854
920
|
* Props applied to the tab indicator element.
|
|
921
|
+
* @deprecated use the `slotProps.indicator` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.
|
|
855
922
|
* @default {}
|
|
856
923
|
*/
|
|
857
924
|
TabIndicatorProps: _propTypes.default.object,
|
|
858
925
|
/**
|
|
859
926
|
* Props applied to the [`TabScrollButton`](https://mui.com/material-ui/api/tab-scroll-button/) element.
|
|
927
|
+
* @deprecated use the `slotProps.scrollButtons` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.
|
|
860
928
|
* @default {}
|
|
861
929
|
*/
|
|
862
930
|
TabScrollButtonProps: _propTypes.default.object,
|
package/node/Tabs/tabsClasses.js
CHANGED
|
@@ -11,5 +11,5 @@ var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateU
|
|
|
11
11
|
function getTabsUtilityClass(slot) {
|
|
12
12
|
return (0, _generateUtilityClass.default)('MuiTabs', slot);
|
|
13
13
|
}
|
|
14
|
-
const tabsClasses = (0, _generateUtilityClasses.default)('MuiTabs', ['root', 'vertical', 'flexContainer', 'flexContainerVertical', 'centered', 'scroller', 'fixed', 'scrollableX', 'scrollableY', 'hideScrollbar', 'scrollButtons', 'scrollButtonsHideMobile', 'indicator']);
|
|
14
|
+
const tabsClasses = (0, _generateUtilityClasses.default)('MuiTabs', ['root', 'vertical', 'list', 'flexContainer', 'flexContainerVertical', 'centered', 'scroller', 'fixed', 'scrollableX', 'scrollableY', 'hideScrollbar', 'scrollButtons', 'scrollButtonsHideMobile', 'indicator']);
|
|
15
15
|
var _default = exports.default = tabsClasses;
|
package/node/index.js
CHANGED