diff --git a/packages/mui-joy/src/Autocomplete/Autocomplete.spec.tsx b/packages/mui-joy/src/Autocomplete/Autocomplete.spec.tsx index 23c91f3989d647..fea3def331f419 100644 --- a/packages/mui-joy/src/Autocomplete/Autocomplete.spec.tsx +++ b/packages/mui-joy/src/Autocomplete/Autocomplete.spec.tsx @@ -16,3 +16,28 @@ const top100Films = [{ title: 'The Shawshank Redemption', year: 1994 }]; multiple sx={{ width: '500px' }} />; + + ({ + color: ownerState.inputFocused ? 'danger' : 'neutral', + variant: 'outlined', + size: 'sm', + }), + listbox: { + color: 'danger', + variant: 'outlined', + size: 'sm', + }, + option: { + color: 'danger', + variant: 'outlined', + }, + }} +/>; diff --git a/packages/mui-joy/src/Autocomplete/Autocomplete.tsx b/packages/mui-joy/src/Autocomplete/Autocomplete.tsx index 8b99c069b621e6..5290dc05503373 100644 --- a/packages/mui-joy/src/Autocomplete/Autocomplete.tsx +++ b/packages/mui-joy/src/Autocomplete/Autocomplete.tsx @@ -378,7 +378,6 @@ const Autocomplete = React.forwardRef(function Autocomplete( const hasClearIcon = !disableClearable && !disabled && dirty && !readOnly; const hasPopupIcon = (!freeSolo || forcePopupIcon === true) && forcePopupIcon !== false; - // If you modify this, make sure to keep the `AutocompleteOwnerState` type in sync. const ownerState = { ...props, value, @@ -391,7 +390,7 @@ const Autocomplete = React.forwardRef(function Autocomplete( size, color, variant, - } as OwnerState; + }; const classes = useUtilityClasses(ownerState); diff --git a/packages/mui-joy/src/Autocomplete/AutocompleteProps.ts b/packages/mui-joy/src/Autocomplete/AutocompleteProps.ts index b8f358cd23276f..ae414f4ecaad07 100644 --- a/packages/mui-joy/src/Autocomplete/AutocompleteProps.ts +++ b/packages/mui-joy/src/Autocomplete/AutocompleteProps.ts @@ -2,7 +2,6 @@ import * as React from 'react'; import { OverridableStringUnion } from '@mui/types'; import { SlotComponentProps } from '@mui/base/utils'; import { - useAutocomplete, AutocompleteValue, AutocompleteChangeDetails, AutocompleteChangeReason, @@ -12,9 +11,6 @@ import { } from '@mui/base/AutocompleteUnstyled'; import { PopperUnstyledOwnProps } from '@mui/base/PopperUnstyled'; import { ColorPaletteProp, VariantProp, SxProps } from '../styles/types'; -import { IconButtonOwnerState } from '../IconButton/IconButtonProps'; -import { AutocompleteListboxProps } from '../AutocompleteListbox/AutocompleteListboxProps'; -import { AutocompleteOptionProps } from '../AutocompleteOption/AutocompleteOptionProps'; export type AutocompleteSlot = keyof ComponentsProps; @@ -51,18 +47,6 @@ export interface AutocompleteRenderGroupParams { children?: React.ReactNode; } -export interface AutocompleteRenderInputParams { - placeholder?: string; - disabled: boolean; - size: OverridableStringUnion<'sm' | 'md' | 'lg', AutocompletePropsSizeOverrides>; - ref: React.Ref; - startDecorator: React.ReactNode; - endDecorator?: React.ReactNode; - componentsProps: { - input: ReturnType['getInputProps']>; - }; -} - interface ComponentsProps { root?: SlotComponentProps< 'div', @@ -91,27 +75,35 @@ interface ComponentsProps { >; clearIndicator?: SlotComponentProps< 'button', - { component?: React.ElementType; sx?: SxProps } & Pick< - IconButtonOwnerState, - 'color' | 'variant' | 'size' - >, - AutocompleteOwnerState & IconButtonOwnerState + { + component?: React.ElementType; + sx?: SxProps; + color?: OverridableStringUnion; + variant?: OverridableStringUnion; + size?: OverridableStringUnion<'sm' | 'md' | 'lg', AutocompletePropsSizeOverrides>; + }, + AutocompleteOwnerState >; popupIndicator?: SlotComponentProps< 'button', - { component?: React.ElementType; sx?: SxProps } & Pick< - IconButtonOwnerState, - 'color' | 'variant' | 'size' - >, - AutocompleteOwnerState & IconButtonOwnerState + { + component?: React.ElementType; + sx?: SxProps; + color?: OverridableStringUnion; + variant?: OverridableStringUnion; + size?: OverridableStringUnion<'sm' | 'md' | 'lg', AutocompletePropsSizeOverrides>; + }, + AutocompleteOwnerState >; listbox?: SlotComponentProps< 'ul', { component?: React.ElementType; sx?: SxProps; - } & Omit & - Pick, + color?: OverridableStringUnion; + variant?: OverridableStringUnion; + size?: OverridableStringUnion<'sm' | 'md' | 'lg', AutocompletePropsSizeOverrides>; + } & Omit, AutocompleteOwnerState >; option?: SlotComponentProps< @@ -119,7 +111,9 @@ interface ComponentsProps { { component?: React.ElementType; sx?: SxProps; - } & Pick, + color?: OverridableStringUnion; + variant?: OverridableStringUnion; + }, AutocompleteOwnerState >; loading?: SlotComponentProps<