@mui/material 6.0.0-alpha.6 → 6.0.0-alpha.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.
@@ -17,6 +17,7 @@ import { ChipProps, ChipTypeMap } from '@mui/material/Chip';
17
17
  import { PaperProps } from '@mui/material/Paper';
18
18
  import { PopperProps } from '@mui/material/Popper';
19
19
  import { AutocompleteClasses } from './autocompleteClasses';
20
+ import { CreateSlotsAndSlotProps, SlotProps } from '../utils/types';
20
21
 
21
22
  export {
22
23
  AutocompleteChangeDetails,
@@ -84,6 +85,75 @@ export interface AutocompleteRenderInputParams {
84
85
 
85
86
  export interface AutocompletePropsSizeOverrides {}
86
87
 
88
+ export interface AutocompleteSlots {
89
+ /**
90
+ * The component used to render the listbox.
91
+ * @default 'ul'
92
+ */
93
+ listbox?: React.JSXElementConstructor<React.HTMLAttributes<HTMLElement>>;
94
+ /**
95
+ * The component used to render the body of the popup.
96
+ * @default Paper
97
+ */
98
+ paper?: React.JSXElementConstructor<PaperProps>;
99
+ /**
100
+ * The component used to position the popup.
101
+ * @default Popper
102
+ */
103
+ popper?: React.JSXElementConstructor<PopperProps>;
104
+ }
105
+
106
+ export type AutocompleteSlotsAndSlotProps<
107
+ Value,
108
+ Multiple extends boolean | undefined,
109
+ DisableClearable extends boolean | undefined,
110
+ FreeSolo extends boolean | undefined,
111
+ ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent'],
112
+ > = CreateSlotsAndSlotProps<
113
+ AutocompleteSlots,
114
+ {
115
+ chip: SlotProps<
116
+ React.ElementType<Partial<ChipProps<ChipComponent>>>,
117
+ {},
118
+ AutocompleteOwnerState<Value, Multiple, DisableClearable, FreeSolo, ChipComponent>
119
+ >;
120
+ clearIndicator: SlotProps<
121
+ React.ElementType<Partial<IconButtonProps>>,
122
+ {},
123
+ AutocompleteOwnerState<Value, Multiple, DisableClearable, FreeSolo, ChipComponent>
124
+ >;
125
+ /**
126
+ * Props applied to the Listbox element.
127
+ */
128
+ listbox: SlotProps<
129
+ React.ElementType<
130
+ ReturnType<ReturnType<typeof useAutocomplete>['getListboxProps']> & {
131
+ sx?: SxProps<Theme>;
132
+ ref?: React.Ref<Element>;
133
+ }
134
+ >,
135
+ {},
136
+ AutocompleteOwnerState<Value, Multiple, DisableClearable, FreeSolo, ChipComponent>
137
+ >;
138
+
139
+ paper: SlotProps<
140
+ React.ElementType<Partial<PaperProps>>,
141
+ {},
142
+ AutocompleteOwnerState<Value, Multiple, DisableClearable, FreeSolo, ChipComponent>
143
+ >;
144
+ popper: SlotProps<
145
+ React.ElementType<Partial<PopperProps>>,
146
+ {},
147
+ AutocompleteOwnerState<Value, Multiple, DisableClearable, FreeSolo, ChipComponent>
148
+ >;
149
+ popupIndicator: SlotProps<
150
+ React.ElementType<Partial<IconButtonProps>>,
151
+ {},
152
+ AutocompleteOwnerState<Value, Multiple, DisableClearable, FreeSolo, ChipComponent>
153
+ >;
154
+ }
155
+ >;
156
+
87
157
  export interface AutocompleteProps<
88
158
  Value,
89
159
  Multiple extends boolean | undefined,
@@ -91,9 +161,11 @@ export interface AutocompleteProps<
91
161
  FreeSolo extends boolean | undefined,
92
162
  ChipComponent extends React.ElementType = ChipTypeMap['defaultComponent'],
93
163
  > extends UseAutocompleteProps<Value, Multiple, DisableClearable, FreeSolo>,
94
- StandardProps<React.HTMLAttributes<HTMLDivElement>, 'defaultValue' | 'onChange' | 'children'> {
164
+ StandardProps<React.HTMLAttributes<HTMLDivElement>, 'defaultValue' | 'onChange' | 'children'>,
165
+ AutocompleteSlotsAndSlotProps<Value, Multiple, DisableClearable, FreeSolo, ChipComponent> {
95
166
  /**
96
167
  * Props applied to the [`Chip`](/material-ui/api/chip/) element.
168
+ * @deprecated Use `slotProps.chip` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
97
169
  */
98
170
  ChipProps?: ChipProps<ChipComponent>;
99
171
  /**
@@ -121,7 +193,7 @@ export interface AutocompleteProps<
121
193
  closeText?: string;
122
194
  /**
123
195
  * The props used for each slot inside.
124
- * @default {}
196
+ * @deprecated Use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
125
197
  */
126
198
  componentsProps?: {
127
199
  clearIndicator?: Partial<IconButtonProps>;
@@ -160,10 +232,12 @@ export interface AutocompleteProps<
160
232
  /**
161
233
  * The component used to render the listbox.
162
234
  * @default 'ul'
235
+ * @deprecated Use `slots.listbox` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
163
236
  */
164
237
  ListboxComponent?: React.JSXElementConstructor<React.HTMLAttributes<HTMLElement>>;
165
238
  /**
166
239
  * Props applied to the Listbox element.
240
+ * @deprecated Use `slotProps.listbox` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
167
241
  */
168
242
  ListboxProps?: ReturnType<ReturnType<typeof useAutocomplete>['getListboxProps']> & {
169
243
  sx?: SxProps<Theme>;
@@ -208,11 +282,13 @@ export interface AutocompleteProps<
208
282
  /**
209
283
  * The component used to render the body of the popup.
210
284
  * @default Paper
285
+ * @deprecated Use `slots.paper` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
211
286
  */
212
287
  PaperComponent?: React.JSXElementConstructor<React.HTMLAttributes<HTMLElement>>;
213
288
  /**
214
289
  * The component used to position the popup.
215
290
  * @default Popper
291
+ * @deprecated Use `slots.popper` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
216
292
  */
217
293
  PopperComponent?: React.JSXElementConstructor<PopperProps>;
218
294
  /**
@@ -272,16 +348,6 @@ export interface AutocompleteProps<
272
348
  * @default 'medium'
273
349
  */
274
350
  size?: OverridableStringUnion<'small' | 'medium', AutocompletePropsSizeOverrides>;
275
- /**
276
- * The props used for each slot inside.
277
- * @default {}
278
- */
279
- slotProps?: {
280
- clearIndicator?: Partial<IconButtonProps>;
281
- paper?: PaperProps;
282
- popper?: Partial<PopperProps>;
283
- popupIndicator?: Partial<IconButtonProps>;
284
- };
285
351
  /**
286
352
  * The system prop that allows defining system overrides as well as additional CSS styles.
287
353
  */
@@ -3,8 +3,9 @@
3
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
4
  import _extends from "@babel/runtime/helpers/esm/extends";
5
5
  var _ClearIcon, _ArrowDropDownIcon;
6
- const _excluded = ["autoComplete", "autoHighlight", "autoSelect", "blurOnSelect", "ChipProps", "className", "clearIcon", "clearOnBlur", "clearOnEscape", "clearText", "closeText", "componentsProps", "defaultValue", "disableClearable", "disableCloseOnSelect", "disabled", "disabledItemsFocusable", "disableListWrap", "disablePortal", "filterOptions", "filterSelectedOptions", "forcePopupIcon", "freeSolo", "fullWidth", "getLimitTagsText", "getOptionDisabled", "getOptionKey", "getOptionLabel", "isOptionEqualToValue", "groupBy", "handleHomeEndKeys", "id", "includeInputInList", "inputValue", "limitTags", "ListboxComponent", "ListboxProps", "loading", "loadingText", "multiple", "noOptionsText", "onChange", "onClose", "onHighlightChange", "onInputChange", "onOpen", "open", "openOnFocus", "openText", "options", "PaperComponent", "PopperComponent", "popupIcon", "readOnly", "renderGroup", "renderInput", "renderOption", "renderTags", "selectOnFocus", "size", "slotProps", "value"],
7
- _excluded2 = ["ref"];
6
+ const _excluded = ["autoComplete", "autoHighlight", "autoSelect", "blurOnSelect", "ChipProps", "className", "clearIcon", "clearOnBlur", "clearOnEscape", "clearText", "closeText", "componentsProps", "defaultValue", "disableClearable", "disableCloseOnSelect", "disabled", "disabledItemsFocusable", "disableListWrap", "disablePortal", "filterOptions", "filterSelectedOptions", "forcePopupIcon", "freeSolo", "fullWidth", "getLimitTagsText", "getOptionDisabled", "getOptionKey", "getOptionLabel", "isOptionEqualToValue", "groupBy", "handleHomeEndKeys", "id", "includeInputInList", "inputValue", "limitTags", "ListboxComponent", "ListboxProps", "loading", "loadingText", "multiple", "noOptionsText", "onChange", "onClose", "onHighlightChange", "onInputChange", "onOpen", "open", "openOnFocus", "openText", "options", "PaperComponent", "PopperComponent", "popupIcon", "readOnly", "renderGroup", "renderInput", "renderOption", "renderTags", "selectOnFocus", "size", "slots", "slotProps", "value"],
7
+ _excluded2 = ["ref"],
8
+ _excluded3 = ["key"];
8
9
  import * as React from 'react';
9
10
  import PropTypes from 'prop-types';
10
11
  import clsx from 'clsx';
@@ -27,7 +28,7 @@ import ArrowDropDownIcon from '../internal/svg-icons/ArrowDropDown';
27
28
  import { styled, createUseThemeProps } from '../zero-styled';
28
29
  import autocompleteClasses, { getAutocompleteUtilityClass } from './autocompleteClasses';
29
30
  import capitalize from '../utils/capitalize';
30
- import useForkRef from '../utils/useForkRef';
31
+ import useSlot from '../utils/useSlot';
31
32
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
32
33
  import { createElement as _createElement } from "react";
33
34
  const useThemeProps = createUseThemeProps('MuiAutocomplete');
@@ -90,21 +91,11 @@ const AutocompleteRoot = styled('div', {
90
91
  }, styles.root, fullWidth && styles.fullWidth, hasPopupIcon && styles.hasPopupIcon, hasClearIcon && styles.hasClearIcon];
91
92
  }
92
93
  })({
93
- [`&.${autocompleteClasses.focused} .${autocompleteClasses.clearIndicator}`]: {
94
- visibility: 'visible'
95
- },
96
- /* Avoid double tap issue on iOS */
97
- '@media (pointer: fine)': {
98
- [`&:hover .${autocompleteClasses.clearIndicator}`]: {
99
- visibility: 'visible'
100
- }
101
- },
102
94
  [`& .${autocompleteClasses.tag}`]: {
103
95
  margin: 3,
104
96
  maxWidth: 'calc(100% - 6px)'
105
97
  },
106
98
  [`& .${autocompleteClasses.inputRoot}`]: {
107
- flexWrap: 'wrap',
108
99
  [`.${autocompleteClasses.hasPopupIcon}&, .${autocompleteClasses.hasClearIcon}&`]: {
109
100
  paddingRight: 26 + 4
110
101
  },
@@ -116,6 +107,23 @@ const AutocompleteRoot = styled('div', {
116
107
  minWidth: 30
117
108
  }
118
109
  },
110
+ [`&.${autocompleteClasses.focused}`]: {
111
+ [`& .${autocompleteClasses.clearIndicator}`]: {
112
+ visibility: 'visible'
113
+ },
114
+ [`& .${autocompleteClasses.input}`]: {
115
+ minWidth: 0
116
+ }
117
+ },
118
+ /* Avoid double tap issue on iOS */
119
+ '@media (pointer: fine)': {
120
+ [`&:hover .${autocompleteClasses.clearIndicator}`]: {
121
+ visibility: 'visible'
122
+ },
123
+ [`&:hover .${autocompleteClasses.input}`]: {
124
+ minWidth: 0
125
+ }
126
+ },
119
127
  [`& .${inputClasses.root}`]: {
120
128
  paddingBottom: 1,
121
129
  '& .MuiInput-input': {
@@ -222,6 +230,15 @@ const AutocompleteRoot = styled('div', {
222
230
  opacity: 1
223
231
  }
224
232
  }
233
+ }, {
234
+ props: {
235
+ multiple: true
236
+ },
237
+ style: {
238
+ [`& .${autocompleteClasses.inputRoot}`]: {
239
+ flexWrap: 'wrap'
240
+ }
241
+ }
225
242
  }]
226
243
  });
227
244
  const AutocompleteEndAdornment = styled('div', {
@@ -407,7 +424,7 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
407
424
  autoHighlight = false,
408
425
  autoSelect = false,
409
426
  blurOnSelect = false,
410
- ChipProps,
427
+ ChipProps: ChipPropsProp,
411
428
  className,
412
429
  clearIcon = _ClearIcon || (_ClearIcon = /*#__PURE__*/_jsx(ClearIcon, {
413
430
  fontSize: "small"
@@ -416,7 +433,7 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
416
433
  clearOnEscape = false,
417
434
  clearText = 'Clear',
418
435
  closeText = 'Close',
419
- componentsProps = {},
436
+ componentsProps,
420
437
  defaultValue = props.multiple ? [] : null,
421
438
  disableClearable = false,
422
439
  disableCloseOnSelect = false,
@@ -434,16 +451,16 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
434
451
  handleHomeEndKeys = !props.freeSolo,
435
452
  includeInputInList = false,
436
453
  limitTags = -1,
437
- ListboxComponent = 'ul',
438
- ListboxProps,
454
+ ListboxComponent: ListboxComponentProp,
455
+ ListboxProps: ListboxPropsProp,
439
456
  loading = false,
440
457
  loadingText = 'Loading…',
441
458
  multiple = false,
442
459
  noOptionsText = 'No options',
443
460
  openOnFocus = false,
444
461
  openText = 'Open',
445
- PaperComponent = Paper,
446
- PopperComponent = Popper,
462
+ PaperComponent: PaperComponentProp,
463
+ PopperComponent: PopperComponentProp,
447
464
  popupIcon = _ArrowDropDownIcon || (_ArrowDropDownIcon = /*#__PURE__*/_jsx(ArrowDropDownIcon, {})),
448
465
  readOnly = false,
449
466
  renderGroup: renderGroupProp,
@@ -452,6 +469,7 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
452
469
  renderTags,
453
470
  selectOnFocus = !props.freeSolo,
454
471
  size = 'medium',
472
+ slots = {},
455
473
  slotProps = {}
456
474
  } = props,
457
475
  other = _objectWithoutPropertiesLoose(props, _excluded);
@@ -485,15 +503,11 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
485
503
  const {
486
504
  onMouseDown: handleInputMouseDown
487
505
  } = getInputProps();
488
- const {
489
- ref: externalListboxRef
490
- } = ListboxProps ?? {};
491
506
  const _getListboxProps = getListboxProps(),
492
507
  {
493
508
  ref: listboxRef
494
509
  } = _getListboxProps,
495
510
  otherListboxProps = _objectWithoutPropertiesLoose(_getListboxProps, _excluded2);
496
- const combinedListboxRef = useForkRef(listboxRef, externalListboxRef);
497
511
  const defaultGetOptionLabel = option => option.label ?? option;
498
512
  const getOptionLabel = getOptionLabelProp || defaultGetOptionLabel;
499
513
 
@@ -511,6 +525,46 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
511
525
  size
512
526
  });
513
527
  const classes = useUtilityClasses(ownerState);
528
+ const externalForwardedProps = {
529
+ slots: _extends({
530
+ listbox: ListboxComponentProp,
531
+ paper: PaperComponentProp,
532
+ popper: PopperComponentProp
533
+ }, slots),
534
+ slotProps: _extends({
535
+ chip: ChipPropsProp,
536
+ listbox: ListboxPropsProp
537
+ }, componentsProps, slotProps)
538
+ };
539
+ const [ListboxSlot, listboxProps] = useSlot('listbox', {
540
+ elementType: 'ul',
541
+ externalForwardedProps,
542
+ ownerState,
543
+ className: classes.listbox,
544
+ additionalProps: otherListboxProps,
545
+ ref: listboxRef
546
+ });
547
+ const [PaperSlot, paperProps] = useSlot('paper', {
548
+ elementType: Paper,
549
+ externalForwardedProps,
550
+ ownerState,
551
+ className: classes.paper
552
+ });
553
+ const [PopperSlot, popperProps] = useSlot('popper', {
554
+ elementType: Popper,
555
+ externalForwardedProps,
556
+ ownerState,
557
+ className: classes.popper,
558
+ additionalProps: {
559
+ disablePortal,
560
+ style: {
561
+ width: anchorEl ? anchorEl.clientWidth : null
562
+ },
563
+ role: 'presentation',
564
+ anchorEl,
565
+ open: popupOpen
566
+ }
567
+ });
514
568
  let startAdornment;
515
569
  if (multiple && value.length > 0) {
516
570
  const getCustomizedTagProps = params => _extends({
@@ -520,12 +574,19 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
520
574
  if (renderTags) {
521
575
  startAdornment = renderTags(value, getCustomizedTagProps, ownerState);
522
576
  } else {
523
- startAdornment = value.map((option, index) => /*#__PURE__*/_jsx(Chip, _extends({
524
- label: getOptionLabel(option),
525
- size: size
526
- }, getCustomizedTagProps({
527
- index
528
- }), ChipProps)));
577
+ startAdornment = value.map((option, index) => {
578
+ const _getCustomizedTagProp = getCustomizedTagProps({
579
+ index
580
+ }),
581
+ {
582
+ key
583
+ } = _getCustomizedTagProp,
584
+ customTagProps = _objectWithoutPropertiesLoose(_getCustomizedTagProp, _excluded3);
585
+ return /*#__PURE__*/_jsx(Chip, _extends({
586
+ label: getOptionLabel(option),
587
+ size: size
588
+ }, customTagProps, externalForwardedProps.slotProps.chip), key);
589
+ });
529
590
  }
530
591
  }
531
592
  if (limitTags > -1 && Array.isArray(startAdornment)) {
@@ -571,38 +632,22 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
571
632
  inputValue
572
633
  }, ownerState);
573
634
  };
574
- const clearIndicatorSlotProps = slotProps.clearIndicator ?? componentsProps.clearIndicator;
575
- const paperSlotProps = slotProps.paper ?? componentsProps.paper;
576
- const popperSlotProps = slotProps.popper ?? componentsProps.popper;
577
- const popupIndicatorSlotProps = slotProps.popupIndicator ?? componentsProps.popupIndicator;
635
+ const clearIndicatorSlotProps = externalForwardedProps.slotProps.clearIndicator;
636
+ const popupIndicatorSlotProps = externalForwardedProps.slotProps.popupIndicator;
578
637
  const renderAutocompletePopperChildren = children => /*#__PURE__*/_jsx(AutocompletePopper, _extends({
579
- as: PopperComponent,
580
- disablePortal: disablePortal,
581
- style: {
582
- width: anchorEl ? anchorEl.clientWidth : null
583
- },
584
- ownerState: ownerState,
585
- role: "presentation",
586
- anchorEl: anchorEl,
587
- open: popupOpen
588
- }, popperSlotProps, {
589
- className: clsx(classes.popper, popperSlotProps?.className),
638
+ as: PopperSlot
639
+ }, popperProps, {
590
640
  children: /*#__PURE__*/_jsx(AutocompletePaper, _extends({
591
- ownerState: ownerState,
592
- as: PaperComponent
593
- }, paperSlotProps, {
594
- className: clsx(classes.paper, paperSlotProps?.className),
641
+ as: PaperSlot
642
+ }, paperProps, {
595
643
  children: children
596
644
  }))
597
645
  }));
598
646
  let autocompletePopper = null;
599
647
  if (groupedOptions.length > 0) {
600
648
  autocompletePopper = renderAutocompletePopperChildren( /*#__PURE__*/_jsx(AutocompleteListbox, _extends({
601
- as: ListboxComponent,
602
- className: classes.listbox,
603
- ownerState: ownerState
604
- }, otherListboxProps, ListboxProps, {
605
- ref: combinedListboxRef,
649
+ as: ListboxSlot
650
+ }, listboxProps, {
606
651
  children: groupedOptions.map((option, index) => {
607
652
  if (groupBy) {
608
653
  return renderGroup({
@@ -723,6 +768,7 @@ process.env.NODE_ENV !== "production" ? Autocomplete.propTypes /* remove-proptyp
723
768
  blurOnSelect: PropTypes.oneOfType([PropTypes.oneOf(['mouse', 'touch']), PropTypes.bool]),
724
769
  /**
725
770
  * Props applied to the [`Chip`](/material-ui/api/chip/) element.
771
+ * @deprecated Use `slotProps.chip` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
726
772
  */
727
773
  ChipProps: PropTypes.object,
728
774
  /**
@@ -767,7 +813,7 @@ process.env.NODE_ENV !== "production" ? Autocomplete.propTypes /* remove-proptyp
767
813
  closeText: PropTypes.string,
768
814
  /**
769
815
  * The props used for each slot inside.
770
- * @default {}
816
+ * @deprecated Use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
771
817
  */
772
818
  componentsProps: PropTypes.shape({
773
819
  clearIndicator: PropTypes.object,
@@ -925,10 +971,12 @@ process.env.NODE_ENV !== "production" ? Autocomplete.propTypes /* remove-proptyp
925
971
  /**
926
972
  * The component used to render the listbox.
927
973
  * @default 'ul'
974
+ * @deprecated Use `slots.listbox` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
928
975
  */
929
976
  ListboxComponent: PropTypes.elementType,
930
977
  /**
931
978
  * Props applied to the Listbox element.
979
+ * @deprecated Use `slotProps.listbox` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
932
980
  */
933
981
  ListboxProps: PropTypes.object,
934
982
  /**
@@ -1023,11 +1071,13 @@ process.env.NODE_ENV !== "production" ? Autocomplete.propTypes /* remove-proptyp
1023
1071
  /**
1024
1072
  * The component used to render the body of the popup.
1025
1073
  * @default Paper
1074
+ * @deprecated Use `slots.paper` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
1026
1075
  */
1027
1076
  PaperComponent: PropTypes.elementType,
1028
1077
  /**
1029
1078
  * The component used to position the popup.
1030
1079
  * @default Popper
1080
+ * @deprecated Use `slots.popper` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
1031
1081
  */
1032
1082
  PopperComponent: PropTypes.elementType,
1033
1083
  /**
@@ -1088,11 +1138,22 @@ process.env.NODE_ENV !== "production" ? Autocomplete.propTypes /* remove-proptyp
1088
1138
  * The props used for each slot inside.
1089
1139
  * @default {}
1090
1140
  */
1091
- slotProps: PropTypes.shape({
1092
- clearIndicator: PropTypes.object,
1093
- paper: PropTypes.object,
1094
- popper: PropTypes.object,
1095
- popupIndicator: PropTypes.object
1141
+ slotProps: PropTypes /* @typescript-to-proptypes-ignore */.shape({
1142
+ chip: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
1143
+ clearIndicator: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
1144
+ listbox: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
1145
+ paper: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
1146
+ popper: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
1147
+ popupIndicator: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
1148
+ }),
1149
+ /**
1150
+ * The components used for each slot inside.
1151
+ * @default {}
1152
+ */
1153
+ slots: PropTypes.shape({
1154
+ listbox: PropTypes.elementType,
1155
+ paper: PropTypes.elementType,
1156
+ popper: PropTypes.elementType
1096
1157
  }),
1097
1158
  /**
1098
1159
  * The system prop that allows defining system overrides as well as additional CSS styles.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,52 @@
1
1
  # [Versions](https://mui.com/versions/)
2
2
 
3
+ ## v6.0.0-alpha.7
4
+
5
+ <!-- generated comparing v6.0.0-alpha.6..next -->
6
+
7
+ _May 16, 2024_
8
+
9
+ A big thanks to the 14 contributors who made this release possible.
10
+
11
+ ### `@mui/material@6.0.0-alpha.7`
12
+
13
+ - &#8203;<!-- 23 -->[Autocomplete] Deprecate `componentsProps` props (#42179) @lhilgert9
14
+ - &#8203;<!-- 22 -->[Autocomplete] Improve design when there's a start adornment for small autocomplete (#41781) @TahaRhidouani
15
+ - &#8203;<!-- 21 -->[Autocomplete] deprecate `*Component` and `*Props` for v6 (#41875) @lhilgert9
16
+ - &#8203;<!-- 19 -->[CircularProgress] Deprecate composed classes (#42076) @sai6855
17
+ - &#8203;<!-- 05 -->[ToggleButtonGroup] Add missing `selected` class in ToggleButtonGroupClasses type (#42243) @tarunrajput
18
+
19
+ ### `@mui/codemod@6.0.0-alpha.6`
20
+
21
+ - &#8203;<!-- 18 -->[Divider] Only apply codemod if light prop is present (#42098) @DiegoAndai
22
+
23
+ ### Docs
24
+
25
+ - &#8203;<!-- 13 -->Fix 301 to Figma @oliviertassinari
26
+ - &#8203;<!-- 12 -->Fix use of deprecated React API (#42118) @oliviertassinari
27
+ - &#8203;<!-- 11 -->Remove the Base notification (#42191) @danilo-leal
28
+ - &#8203;<!-- 07 -->[material-ui] Improve descriptions for deprecated props (#42221) @aarongarciah
29
+ - &#8203;<!-- 06 -->[material-ui] Fix typo in composition docs (#42195) @aarongarciah
30
+
31
+ ### Core
32
+
33
+ - &#8203;<!-- 20 -->[blog] Introducing Pigment CSS blog post (#42198) @samuelsycamore
34
+ - &#8203;<!-- 17 -->[core] Remove confusing comment @oliviertassinari
35
+ - &#8203;<!-- 16 -->[core] Match other repositories and convention @oliviertassinari
36
+ - &#8203;<!-- 15 -->[core] Fix React 18.3 warnings about spreading keys in the Material UI `Autocomplete` component (#42099) @heath-freenome
37
+ - &#8203;<!-- 14 -->[core] Remove unecessary quotes @oliviertassinari
38
+ - &#8203;<!-- 10 -->[docs-infra] Share code for section title (#42236) @alexfauquette
39
+ - &#8203;<!-- 09 -->[docs-infra] Limit the copy button to the visible code block (#42115) @danilo-leal
40
+ - &#8203;<!-- 08 -->[docs-infra] Make select components with two capital letters (#42004) @alexfauquette
41
+ - &#8203;<!-- 08 -->[docs-infra][toolpad] Fix Page title and SERP title mismatch (#41919) @bharatkashyap
42
+ - &#8203;<!-- 05 -->[website] Add redirection for talk @oliviertassinari
43
+ - &#8203;<!-- 04 -->[website] Adds Arthur Balduini team info (#42193) @arthurbalduini
44
+ - &#8203;<!-- 03 -->[website] Update the role template file (#42192) @danilo-leal
45
+ - &#8203;<!-- 02 -->[website] Update MUI X deps and migrate TreeView demos to v7 API (#42149) @noraleonte
46
+ - &#8203;<!-- 01 -->[website] Fix pricing casing (#42178) @aarongarciah
47
+
48
+ All contributors of this release in alphabetical order: @aarongarciah, @alexfauquette, @arthurbalduini, @bharatkashyap, @danilo-leal, @DiegoAndai, @heath-freenome, @lhilgert9, @noraleonte, @oliviertassinari, @sai6855, @samuelsycamore, @TahaRhidouani, @tarunrajput
49
+
3
50
  ## v6.0.0-alpha.6
4
51
 
5
52
  <!-- generated comparing v6.0.0-alpha.5..next -->
@@ -13,9 +13,13 @@ export interface CircularProgressClasses {
13
13
  svg: string;
14
14
  /** Styles applied to the `circle` svg path. */
15
15
  circle: string;
16
- /** Styles applied to the `circle` svg path if `variant="determinate"`. */
16
+ /** Styles applied to the `circle` svg path if `variant="determinate"`.
17
+ * @deprecated Combine the [.MuiCircularProgress-circle](/material-ui/api/circular-progress/#circular-progress-classes-circle) and [.MuiCircularProgress-determinate](/material-ui/api/circular-progress/#circular-progress-classes-determinate) classes instead. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
18
+ */
17
19
  circleDeterminate: string;
18
- /** Styles applied to the `circle` svg path if `variant="indeterminate"`. */
20
+ /** Styles applied to the `circle` svg path if `variant="indeterminate"`.
21
+ * @deprecated Combine the [.MuiCircularProgress-circle](/material-ui/api/circular-progress/#circular-progress-classes-circle) and [.MuiCircularProgress-indeterminate](/material-ui/api/circular-progress/#circular-progress-classes-indeterminate) classes instead. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
22
+ */
19
23
  circleIndeterminate: string;
20
24
  /** Styles applied to the `circle` svg path if `disableShrink={true}`. */
21
25
  circleDisableShrink: string;
@@ -1,6 +1,8 @@
1
1
  export interface ToggleButtonGroupClasses {
2
2
  /** Styles applied to the root element. */
3
3
  root: string;
4
+ /** State class applied to the root element if `selected={true}`. */
5
+ selected: string;
4
6
  /** Styles applied to the root element if `orientation="horizontal"`. */
5
7
  horizontal: string;
6
8
  /** Styles applied to the root element if `orientation="vertical"`. */
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/material v6.0.0-alpha.6
2
+ * @mui/material v6.0.0-alpha.7
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the