Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
28ea5aa
Bump vite to 3.2.10 [SECURITY] (#41761)
renovate[bot] Apr 4, 2024
6d0f4f2
[blog] Fix typo in MUI X v7 announcement post (#41773)
levigunz Apr 4, 2024
4d99e04
[core] Remove Base UI mentions from issues templates (#41733)
danilo-leal Apr 4, 2024
d6b1f64
[pigment-css][docs] Fix git diff formatting
oliviertassinari Apr 4, 2024
fc623b4
[base-ui][website] Page <title> should have no dots
oliviertassinari Apr 4, 2024
f5a40ab
[docs] Drop IE 11 official support (#41611)
iammminzzy Apr 5, 2024
9cc4984
6.0.0-alpha.1 (#41749)
siriwatknp Apr 5, 2024
dd0b68f
[material-ui][Autocomplete] Prevent start adornment from causing inpu…
TahaRhidouani Apr 5, 2024
2ed5db5
[material-ui][Autocomplete] Prevent start adornment from causing inpu…
TahaRhidouani Apr 5, 2024
d7f518b
[material-ui][Autocomplete] Fix build
TahaRhidouani Apr 5, 2024
6265175
[material-ui][Autocomplete] Fix build
TahaRhidouani Apr 5, 2024
95ddaf8
[material-ui][Autocomplete] Fix use case for multiple
TahaRhidouani Apr 5, 2024
59c9214
Merge branch 'autocomplete-startadornment-patch' of github.com:TahaRh…
TahaRhidouani Apr 5, 2024
958eab1
[material-ui][Autocomplete] Fix flicker due to hover state
TahaRhidouani Apr 5, 2024
2c4402f
[material-ui][Autocomplete] Fix focused logic & add tests
TahaRhidouani Apr 5, 2024
fbfff90
[material-ui][Autocomplete] Prettify code
TahaRhidouani Apr 6, 2024
09d1210
Merge branch 'next' into autocomplete-startadornment-patch
ZeeshanTamboli Apr 26, 2024
4ac0187
[material-ui][Autocomplete] address PR comments
TahaRhidouani Apr 26, 2024
4df7fb5
[material-ui][Autocomplete] forgot to regenerate docs
TahaRhidouani Apr 26, 2024
468ddb8
[material-ui][Autocomplete] undo vs code import reorg & remove unnece…
TahaRhidouani Apr 29, 2024
39e6635
Merge branch 'next' of github.com:TahaRhidouani/material-ui into auto…
TahaRhidouani Apr 29, 2024
1bc732e
[material-ui][Autocomplete] address PR comments & add test
TahaRhidouani May 1, 2024
b886b6a
[material-ui][Autocomplete] tweaks to the test
TahaRhidouani May 3, 2024
db62d3b
Merge branch 'next' into autocomplete-startadornment-patch
ZeeshanTamboli May 3, 2024
6c105d3
Merge branch 'autocomplete-startadornment-patch' of https://github.co…
ZeeshanTamboli May 3, 2024
9ff8ee0
prettier
ZeeshanTamboli May 3, 2024
20c213b
tweak test
ZeeshanTamboli May 4, 2024
b7dbce0
Merge branch 'next' into autocomplete-startadornment-patch
ZeeshanTamboli May 4, 2024
71c4d33
Merge branch 'next' into autocomplete-startadornment-patch
ZeeshanTamboli May 8, 2024
ea24fe2
remove multiple
ZeeshanTamboli May 8, 2024
dc9a257
add visual regression test
ZeeshanTamboli May 8, 2024
c8fb9dc
remove diff
ZeeshanTamboli May 8, 2024
1eb8a3d
prettier
ZeeshanTamboli May 8, 2024
881ce56
Merge branch 'next' into autocomplete-startadornment-patch
ZeeshanTamboli May 9, 2024
b958bea
remove unnecessary props from Autocomplete in the visual regression test
ZeeshanTamboli May 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
[material-ui][Autocomplete] address PR comments
  • Loading branch information
TahaRhidouani committed Apr 26, 2024
commit 4ac0187a08b9d4c99f84e2502b5d521e6a986c57
14 changes: 7 additions & 7 deletions packages/mui-material/src/Autocomplete/Autocomplete.d.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
import * as React from 'react';
import { SxProps } from '@mui/system';
import { OverridableStringUnion } from '@mui/types';
import {
useAutocomplete,
AutocompleteChangeDetails,
AutocompleteChangeReason,
AutocompleteCloseReason,
AutocompleteFreeSoloValueMapping,
AutocompleteInputChangeReason,
AutocompleteValue,
createFilterOptions,
UseAutocompleteProps,
AutocompleteFreeSoloValueMapping,
createFilterOptions,
useAutocomplete,
} from '@mui/base';
import { IconButtonProps, InternalStandardProps as StandardProps, Theme } from '@mui/material';
import { ChipProps, ChipTypeMap } from '@mui/material/Chip';
import { PaperProps } from '@mui/material/Paper';
import { PopperProps } from '@mui/material/Popper';
import { SxProps } from '@mui/system';
import { OverridableStringUnion } from '@mui/types';
import * as React from 'react';
import { AutocompleteClasses } from './autocompleteClasses';

export {
Expand All @@ -39,7 +39,7 @@ export type AutocompleteOwnerState<
focused: boolean;
fullWidth: boolean;
getOptionLabel: (option: Value | AutocompleteFreeSoloValueMapping<FreeSolo>) => string;
hasMultiple: boolean;
multiple: boolean;
hasClearIcon: boolean;
hasPopupIcon: boolean;
inputFocused: boolean;
Expand Down
53 changes: 23 additions & 30 deletions packages/mui-material/src/Autocomplete/Autocomplete.js
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
'use client';
import * as React from 'react';
import PropTypes from 'prop-types';
import clsx from 'clsx';
import integerPropType from '@mui/utils/integerPropType';
import { createFilterOptions, useAutocomplete } from '@mui/base';
import { alpha } from '@mui/system/colorManipulator';
import chainPropTypes from '@mui/utils/chainPropTypes';
import { useAutocomplete, createFilterOptions } from '@mui/base';
import composeClasses from '@mui/utils/composeClasses';
import { alpha } from '@mui/system/colorManipulator';
import Popper from '../Popper';
import ListSubheader from '../ListSubheader';
import Paper from '../Paper';
import IconButton from '../IconButton';
import integerPropType from '@mui/utils/integerPropType';
import clsx from 'clsx';
import PropTypes from 'prop-types';
import * as React from 'react';
import Chip from '../Chip';
import filledInputClasses from '../FilledInput/filledInputClasses';
import IconButton from '../IconButton';
import inputClasses from '../Input/inputClasses';
import inputBaseClasses from '../InputBase/inputBaseClasses';
import ListSubheader from '../ListSubheader';
import outlinedInputClasses from '../OutlinedInput/outlinedInputClasses';
import filledInputClasses from '../FilledInput/filledInputClasses';
import ClearIcon from '../internal/svg-icons/Close';
import Paper from '../Paper';
import Popper from '../Popper';
import ArrowDropDownIcon from '../internal/svg-icons/ArrowDropDown';
import { styled, createUseThemeProps } from '../zero-styled';
import autocompleteClasses, { getAutocompleteUtilityClass } from './autocompleteClasses';
import ClearIcon from '../internal/svg-icons/Close';
import capitalize from '../utils/capitalize';
import useForkRef from '../utils/useForkRef';
import { createUseThemeProps, styled } from '../zero-styled';
import autocompleteClasses, { getAutocompleteUtilityClass } from './autocompleteClasses';

const useThemeProps = createUseThemeProps('MuiAutocomplete');

Expand All @@ -32,7 +32,7 @@ const useUtilityClasses = (ownerState) => {
expanded,
focused,
fullWidth,
hasMultiple,
multiple,
hasClearIcon,
hasPopupIcon,
inputFocused,
Expand All @@ -46,12 +46,12 @@ const useUtilityClasses = (ownerState) => {
expanded && 'expanded',
focused && 'focused',
fullWidth && 'fullWidth',
hasMultiple && 'hasMultiple',
multiple && 'multiple',
hasClearIcon && 'hasClearIcon',
hasPopupIcon && 'hasPopupIcon',
],
inputRoot: ['inputRoot', hasMultiple && 'hasMultiple'],
input: ['input', inputFocused && 'inputFocused', hasMultiple && 'hasMultiple'],
inputRoot: ['inputRoot', multiple && 'multiple'],
input: ['input', inputFocused && 'inputFocused', multiple && 'multiple'],
tag: ['tag', `tagSize${capitalize(size)}`],
endAdornment: ['endAdornment'],
clearIndicator: ['clearIndicator'],
Expand All @@ -74,7 +74,7 @@ const AutocompleteRoot = styled('div', {
slot: 'Root',
overridesResolver: (props, styles) => {
const { ownerState } = props;
const { fullWidth, hasMultiple, hasClearIcon, hasPopupIcon, inputFocused, size } = ownerState;
const { fullWidth, multiple, hasClearIcon, hasPopupIcon, inputFocused, size } = ownerState;

return [
{ [`& .${autocompleteClasses.tag}`]: styles.tag },
Expand All @@ -84,7 +84,7 @@ const AutocompleteRoot = styled('div', {
{ [`& .${autocompleteClasses.input}`]: inputFocused && styles.inputFocused },
styles.root,
fullWidth && styles.fullWidth,
hasMultiple && styles.hasMultiple,
multiple && styles.multiple,
hasPopupIcon && styles.hasPopupIcon,
hasClearIcon && styles.hasClearIcon,
];
Expand All @@ -95,7 +95,7 @@ const AutocompleteRoot = styled('div', {
maxWidth: 'calc(100% - 6px)',
},
[`& .${autocompleteClasses.inputRoot}`]: {
[`&.${autocompleteClasses.hasMultiple}`]: {
[`&.${autocompleteClasses.multiple}`]: {
flexWrap: 'wrap',
},
[`.${autocompleteClasses.hasPopupIcon}&, .${autocompleteClasses.hasClearIcon}&`]: {
Expand All @@ -114,10 +114,7 @@ const AutocompleteRoot = styled('div', {
visibility: 'visible',
},
[`& .${autocompleteClasses.input}`]: {
minWidth: 4,
},
[`& .${autocompleteClasses.input}.${autocompleteClasses.hasMultiple}`]: {
minWidth: 30,
minWidth: 0,
},
},
/* Avoid double tap issue on iOS */
Expand All @@ -126,10 +123,7 @@ const AutocompleteRoot = styled('div', {
visibility: 'visible',
},
[`&:hover .${autocompleteClasses.input}`]: {
minWidth: 4,
},
[`&:hover .${autocompleteClasses.input}.${autocompleteClasses.hasMultiple}`]: {
minWidth: 30,
minWidth: 0,
},
},
[`& .${inputClasses.root}`]: {
Expand Down Expand Up @@ -535,7 +529,6 @@ const Autocomplete = React.forwardRef(function Autocomplete(inProps, ref) {
focused,
fullWidth,
getOptionLabel,
hasMultiple: multiple,
hasClearIcon,
hasPopupIcon,
inputFocused: focusedTag === -1,
Expand Down
24 changes: 12 additions & 12 deletions packages/mui-material/src/Autocomplete/Autocomplete.test.js
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
import * as React from 'react';
import PropTypes from 'prop-types';
import { expect } from 'chai';
import {
act,
createRenderer,
fireEvent,
screen,
strictModeDoubleLoggingSuppressed,
} from '@mui-internal/test-utils';
import { spy } from 'sinon';
import userEvent from '@testing-library/user-event';
import Box from '@mui/system/Box';
import { ThemeProvider, createTheme } from '@mui/material/styles';
import TextField from '@mui/material/TextField';
import Chip, { chipClasses } from '@mui/material/Chip';
import Autocomplete, {
autocompleteClasses as classes,
createFilterOptions,
} from '@mui/material/Autocomplete';
import { paperClasses } from '@mui/material/Paper';
import Chip, { chipClasses } from '@mui/material/Chip';
import { iconButtonClasses } from '@mui/material/IconButton';
import InputAdornment from '@mui/material/InputAdornment';
import { paperClasses } from '@mui/material/Paper';
import TextField from '@mui/material/TextField';
import Tooltip from '@mui/material/Tooltip';
import { ThemeProvider, createTheme } from '@mui/material/styles';
import Box from '@mui/system/Box';
import userEvent from '@testing-library/user-event';
import { expect } from 'chai';
import PropTypes from 'prop-types';
import * as React from 'react';
import { spy } from 'sinon';
import describeConformance from '../../test/describeConformance';

function checkHighlightIs(listbox, expected) {
Expand Down Expand Up @@ -503,7 +503,7 @@ describe('<Autocomplete />', () => {
});
});

it('should apply the hasMultiple class', () => {
it('should apply the multiple class', () => {
const { container } = render(
<Autocomplete
openOnFocus
Expand All @@ -512,7 +512,7 @@ describe('<Autocomplete />', () => {
multiple
/>,
);
expect(container.querySelector(`.${classes.root}`)).to.have.class(classes.hasMultiple);
expect(container.querySelector(`.${classes.root}`)).to.have.class(classes.multiple);
});

it('should remove the last option', () => {
Expand Down
6 changes: 3 additions & 3 deletions packages/mui-material/src/Autocomplete/autocompleteClasses.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
import generateUtilityClass from '@mui/utils/generateUtilityClass';
import generateUtilityClasses from '@mui/utils/generateUtilityClasses';

export interface AutocompleteClasses {
/** Styles applied to the root element. */
Expand All @@ -19,7 +19,7 @@ export interface AutocompleteClasses {
/** Styles applied to the tag elements, for example the chips if `size="medium"`. */
tagSizeMedium: string;
/** Styles applied when the autocomplete supports multiple selections. */
hasMultiple: string;
multiple: string;
/** Styles applied when the popup icon is rendered. */
hasPopupIcon: string;
/** Styles applied when the clear icon is rendered. */
Expand Down Expand Up @@ -73,7 +73,7 @@ const autocompleteClasses: AutocompleteClasses = generateUtilityClasses('MuiAuto
'tag',
'tagSizeSmall',
'tagSizeMedium',
'hasMultiple',
'multiple',
'hasPopupIcon',
'hasClearIcon',
'inputRoot',
Expand Down