From c44cb3ffc039c92ab9e9ed38a4f96724e4fb2d09 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 9 May 2024 15:41:37 +0530 Subject: [PATCH] [material-ui][Autocomplete] Improve design when there's a start adornment for small autocomplete (@TahaRhidouani) (#42176) Co-authored-by: Taha Rhidouani <37096708+TahaRhidouani@users.noreply.github.com> Co-authored-by: ZeeshanTamboli --- .../src/Autocomplete/Autocomplete.js | 35 ++++++++++---- .../SmallAutocompleteWithStartAdornment.js | 47 +++++++++++++++++++ 2 files changed, 72 insertions(+), 10 deletions(-) create mode 100644 test/regressions/fixtures/Autocomplete/SmallAutocompleteWithStartAdornment.js diff --git a/packages/mui-material/src/Autocomplete/Autocomplete.js b/packages/mui-material/src/Autocomplete/Autocomplete.js index 2aea5bf347fb6b..a81286fc3615ea 100644 --- a/packages/mui-material/src/Autocomplete/Autocomplete.js +++ b/packages/mui-material/src/Autocomplete/Autocomplete.js @@ -87,21 +87,11 @@ const AutocompleteRoot = styled('div', { ]; }, })({ - [`&.${autocompleteClasses.focused} .${autocompleteClasses.clearIndicator}`]: { - visibility: 'visible', - }, - /* Avoid double tap issue on iOS */ - '@media (pointer: fine)': { - [`&:hover .${autocompleteClasses.clearIndicator}`]: { - visibility: 'visible', - }, - }, [`& .${autocompleteClasses.tag}`]: { margin: 3, maxWidth: 'calc(100% - 6px)', }, [`& .${autocompleteClasses.inputRoot}`]: { - flexWrap: 'wrap', [`.${autocompleteClasses.hasPopupIcon}&, .${autocompleteClasses.hasClearIcon}&`]: { paddingRight: 26 + 4, }, @@ -113,6 +103,23 @@ const AutocompleteRoot = styled('div', { minWidth: 30, }, }, + [`&.${autocompleteClasses.focused}`]: { + [`& .${autocompleteClasses.clearIndicator}`]: { + visibility: 'visible', + }, + [`& .${autocompleteClasses.input}`]: { + minWidth: 0, + }, + }, + /* Avoid double tap issue on iOS */ + '@media (pointer: fine)': { + [`&:hover .${autocompleteClasses.clearIndicator}`]: { + visibility: 'visible', + }, + [`&:hover .${autocompleteClasses.input}`]: { + minWidth: 0, + }, + }, [`& .${inputClasses.root}`]: { paddingBottom: 1, '& .MuiInput-input': { @@ -215,6 +222,14 @@ const AutocompleteRoot = styled('div', { }, }, }, + { + props: { multiple: true }, + style: { + [`& .${autocompleteClasses.inputRoot}`]: { + flexWrap: 'wrap', + }, + }, + }, ], }); diff --git a/test/regressions/fixtures/Autocomplete/SmallAutocompleteWithStartAdornment.js b/test/regressions/fixtures/Autocomplete/SmallAutocompleteWithStartAdornment.js new file mode 100644 index 00000000000000..cb24cec0e649a8 --- /dev/null +++ b/test/regressions/fixtures/Autocomplete/SmallAutocompleteWithStartAdornment.js @@ -0,0 +1,47 @@ +import * as React from 'react'; +import Autocomplete from '@mui/material/Autocomplete'; +import SvgIcon from '@mui/material/SvgIcon'; +import TextField from '@mui/material/TextField'; + +const movies = [ + { + label: 'The Lord of the Rings: The Two Towers', + year: 2002, + }, +]; + +export default function SmallAutocompleteWithStartAdornment() { + return ( + ( + + + + + + ), + }} + /> + )} + /> + ); +}