@m4l/components 9.2.51 → 9.2.53

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.
Files changed (58) hide show
  1. package/.storybook/test-utils/index.d.ts +1 -0
  2. package/.storybook/test-utils/waitForHelpers.d.ts +4 -0
  3. package/.storybook/utils/getStylesColorsByMode.d.ts +98 -70
  4. package/components/Chip/Chip.js +3 -1
  5. package/components/Chip/types.d.ts +4 -0
  6. package/components/DataGrid/constants.d.ts +21 -0
  7. package/components/DataGrid/constants.js +24 -1
  8. package/components/DataGrid/index.d.ts +1 -0
  9. package/components/DataGrid/subcomponents/Table/subcomponents/ActionsColumn.js +2 -2
  10. package/components/DynamicFilter/subcomponents/FieldTypes/DateTimeFilter/helpers.js +3 -2
  11. package/components/DynamicFilter/types.d.ts +2 -2
  12. package/components/ObjectLogs/subcomponents/ObjectLogsByOthers/ObjectLogsByOthers.js +1 -1
  13. package/components/hook-form/RHFAutocomplete/RHFAutocomplete.js +30 -19
  14. package/components/hook-form/RHFAutocomplete/tests/common.d.ts +37 -0
  15. package/components/hook-form/RHFAutocomplete/types.d.ts +3 -8
  16. package/components/hook-form/RHFAutocompleteAsync/RHFAutocompleteAsync.d.ts +32 -5
  17. package/components/hook-form/RHFAutocompleteAsync/RHFAutocompleteAsync.js +49 -84
  18. package/components/hook-form/RHFAutocompleteAsync/RHFAutocompleteAsyncStyles.d.ts +2 -2
  19. package/components/hook-form/RHFAutocompleteAsync/hooks/useFetchOptions.d.ts +5 -0
  20. package/components/hook-form/RHFAutocompleteAsync/hooks/useFetchOptions.js +64 -0
  21. package/components/hook-form/RHFAutocompleteAsync/reducer/RHFAutocompleteReducer.d.ts +14 -0
  22. package/components/hook-form/RHFAutocompleteAsync/reducer/RHFAutocompleteReducer.js +79 -0
  23. package/components/hook-form/RHFAutocompleteAsync/slots/RHFAutocompleteSlotsAsync.d.ts +1 -1
  24. package/components/hook-form/RHFAutocompleteAsync/tests/OnChangFilterParmsDefined.test.d.ts +1 -0
  25. package/components/hook-form/RHFAutocompleteAsync/tests/OnChangFilterParmsUndefined.test.d.ts +1 -0
  26. package/components/hook-form/RHFAutocompleteAsync/tests/RHFAutocompleteReducer.test.d.ts +1 -0
  27. package/components/hook-form/RHFAutocompleteAsync/tests/common.d.ts +41 -0
  28. package/components/hook-form/RHFAutocompleteAsync/types.d.ts +120 -4
  29. package/components/hook-form/RHFAutocompleteAsync/types.js +38 -0
  30. package/components/hook-form/RHFTextField/RHFTextField.js +3 -2
  31. package/components/mui_extended/Autocomplete/Autocomplete.d.ts +7 -0
  32. package/components/mui_extended/Autocomplete/Autocomplete.js +59 -196
  33. package/components/mui_extended/Autocomplete/Autocomplete.styles.js +27 -16
  34. package/components/mui_extended/Autocomplete/hooks/useEndAdornments.d.ts +14 -0
  35. package/components/mui_extended/Autocomplete/hooks/useEndAdornments.js +47 -0
  36. package/components/mui_extended/Autocomplete/hooks/useStartAdornments.d.ts +21 -0
  37. package/components/mui_extended/Autocomplete/hooks/useStartAdornments.js +31 -0
  38. package/components/mui_extended/Autocomplete/hooks/useValuesAndHandlers.d.ts +23 -0
  39. package/components/mui_extended/Autocomplete/hooks/useValuesAndHandlers.js +135 -0
  40. package/components/mui_extended/Autocomplete/icons.d.ts +4 -0
  41. package/components/mui_extended/Autocomplete/icons.js +7 -0
  42. package/components/mui_extended/Autocomplete/renderOptions/index.d.ts +7 -2
  43. package/components/mui_extended/Autocomplete/renderOptions/index.js +7 -6
  44. package/components/mui_extended/Autocomplete/slots/AutocompleteSlots.js +7 -8
  45. package/components/mui_extended/Autocomplete/types.d.ts +2 -0
  46. package/hooks/useDynamicFilterAndSort/useDynamicFilterAndSort.js +13 -10
  47. package/index.js +2 -0
  48. package/mockServiceWorker.js +1 -1
  49. package/package.json +1 -1
  50. package/storybook/components/SideBar/SideBar.stories.d.ts +17 -5
  51. package/storybook/components/extended/mui/Autocomplete/AutoComple.stories.d.ts +1 -0
  52. package/storybook/hook-form/RHFAutocomplete/RHFAutocomplete.stories.d.ts +8 -6
  53. package/storybook/hook-form/RHFAutocomplete/constants.d.ts +23 -0
  54. package/storybook/hook-form/RHFAutocompleteAsync/RHFAutocompleteAsync.stories.d.ts +11 -4
  55. package/storybook/hook-form/RHFAutocompleteAsync/constants.d.ts +10 -1
  56. package/storybook/hook-form/RHFAutocompleteAsync/handlers.d.ts +1 -0
  57. package/components/hook-form/RHFAutocomplete/oldTypes.d.ts +0 -43
  58. /package/components/hook-form/RHFAutocomplete/{RHFAutocomplete.test.d.ts → tests/RHFAutocomplete.test.d.ts} +0 -0
@@ -1,14 +1,15 @@
1
- import { createElement } from "react";
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { memo } from "react";
2
3
  import { M as MenuItem } from "../../MenuItem/MenuItem.js";
3
- function renderOption(optionProps, option) {
4
+ const MemoizedMenuItem = memo(MenuItem);
5
+ const renderOption = (optionProps, option) => {
4
6
  const { className, ...otherOptionProps } = optionProps;
5
- return /* @__PURE__ */ createElement(
6
- MenuItem,
7
+ return /* @__PURE__ */ jsx(
8
+ MemoizedMenuItem,
7
9
  {
8
10
  ...otherOptionProps,
9
11
  selected: option.selected,
10
12
  color: "default",
11
- key: option.id || option.label,
12
13
  label: option.label,
13
14
  disabled: option.disabled,
14
15
  startIcon: option.startAdornment,
@@ -16,7 +17,7 @@ function renderOption(optionProps, option) {
16
17
  size: option.size
17
18
  }
18
19
  );
19
- }
20
+ };
20
21
  export {
21
22
  renderOption as r
22
23
  };
@@ -5,10 +5,10 @@ import { I as Image } from "../../../Image/Image.js";
5
5
  import { a as autocompleteSyles } from "../Autocomplete.styles.js";
6
6
  import { A as AUTOCOMPLETE_KEY_COMPONENT } from "../constants.js";
7
7
  import { A as AutocompleteSlots } from "./AutocompleteEnum.js";
8
- import { I as IconButton } from "../../IconButton/IconButton.js";
9
8
  import { S as Skeleton } from "../../Skeleton/Skeleton.js";
10
9
  import { T as TextField } from "../../TextField/TextField.js";
11
10
  import { P as Popper } from "../../Popper/Popper.js";
11
+ import { I as IconButton } from "../../IconButton/IconButton.js";
12
12
  import { T as Typography } from "../../Typography/Typography.js";
13
13
  import { C as CircularProgress } from "../../CircularProgress/CircularProgress.js";
14
14
  import { M as MenuItem } from "../../MenuItem/MenuItem.js";
@@ -44,7 +44,7 @@ styled(Typography, {
44
44
  name: AUTOCOMPLETE_KEY_COMPONENT,
45
45
  slot: AutocompleteSlots.typography
46
46
  })(autocompleteSyles?.typography);
47
- const ImageStyled = styled(Image, {
47
+ styled(Image, {
48
48
  name: AUTOCOMPLETE_KEY_COMPONENT,
49
49
  slot: AutocompleteSlots.image
50
50
  })(autocompleteSyles?.image);
@@ -65,13 +65,12 @@ const AdormentsStyled = styled("div", {
65
65
  slot: AutocompleteSlots.adorments
66
66
  })(autocompleteSyles?.adorments);
67
67
  export {
68
- AdormentsStyled as A,
69
- ChipStyled as C,
70
- ImageStyled as I,
68
+ AutocompleteRootStyled as A,
69
+ CircularProgressStyled as C,
70
+ IconButtonStyled as I,
71
71
  PopperComponentStyled as P,
72
72
  RenderInputStyled as R,
73
73
  SkeletonAutocompleteStyled as S,
74
- CircularProgressStyled as a,
75
- IconButtonStyled as b,
76
- AutocompleteRootStyled as c
74
+ AdormentsStyled as a,
75
+ ChipStyled as b
77
76
  };
@@ -32,11 +32,13 @@ export interface AutocompleteProps<T, Multiple extends boolean | undefined> exte
32
32
  onChangeFilterParmsLocal?: (newValue: string, reason: AutocompleteInputChangeReason) => void;
33
33
  getOptionUrlImage?: (option: T) => string;
34
34
  onChange: (event: ChangeEvent<{}> | undefined, value: T | T[] | null, reason: AutocompleteChangeReason) => void;
35
+ htmlFor?: string;
35
36
  }
36
37
  /**
37
38
  * Represents the owner state of the Autocomplete component for styling purposes.
38
39
  */
39
40
  export interface AutocompleteOwnerState extends Pick<BaseAutocompleteProps, 'size' | 'variant'> {
41
+ error?: boolean;
40
42
  disabled?: boolean;
41
43
  multiple?: boolean;
42
44
  }
@@ -27,7 +27,7 @@ const useDynamicFilterAndSort = (props) => {
27
27
  setCookie,
28
28
  getCookie,
29
29
  filterSortAutomatic = true,
30
- visibleRefresh,
30
+ visibleRefresh = false,
31
31
  withExternalRefresh
32
32
  } = props;
33
33
  const { host_static_assets, environment_assets } = useEnvironment();
@@ -91,16 +91,19 @@ const useDynamicFilterAndSort = (props) => {
91
91
  }
92
92
  }, [onChangeFilterSort, prefixCookie, setCookie, setInvisibleBadge, isValidFilters]);
93
93
  const onRefresh = useCallback(() => {
94
- if (fireOnChangeFilterRef.current) {
95
- fireOnChangeFilterRef.current.fireOnChangeFilter();
96
- }
97
- if (fireOnChangeSortRef.current) {
98
- fireOnChangeSortRef.current.fireOnChangeSort();
99
- }
100
- if (isValidFilters()) {
101
- onChangeFilterSort(eventRefs.current);
94
+ if (!filterSortAutomatic) {
95
+ if (fireOnChangeFilterRef.current) {
96
+ fireOnChangeFilterRef.current.fireOnChangeFilter();
97
+ }
98
+ if (fireOnChangeSortRef.current) {
99
+ fireOnChangeSortRef.current.fireOnChangeSort();
100
+ }
101
+ } else {
102
+ if (isValidFilters()) {
103
+ onChangeFilterSort(eventRefs.current);
104
+ }
102
105
  }
103
- }, [onChangeFilterSort, fireOnChangeFilterRef, isValidFilters]);
106
+ }, [filterSortAutomatic, isValidFilters, onChangeFilterSort]);
104
107
  const leftActions = useMemo(() => /* @__PURE__ */ jsxs(StackLeftActionsStyled, { direction: "row", ownerState: {}, ...getPropDataTestId(M4LDYNAMIC_KEY_FILTER_AND_SORT, DynamicFilterAndSortSlots.stackLeftActions, dataTestId), children: [
105
108
  /* @__PURE__ */ jsx(Badge, { badgeContent: "", size: "small", color: "primary", invisible: invisibleBadge.filter, children: /* @__PURE__ */ jsx(ToggleIconButton, { icon: `${host_static_assets}/${environment_assets}/${ICON_PATH_FILTER}`, isToggled: togglesLeftActions.filter, onToggle: () => handleToggles("filter") }) }),
106
109
  /* @__PURE__ */ jsx(Badge, { badgeContent: "", size: "small", color: "primary", invisible: invisibleBadge.sort, children: /* @__PURE__ */ jsx(ToggleIconButton, { icon: `${host_static_assets}/${environment_assets}/${ICON_PATH_SORT}`, isToggled: togglesLeftActions.sort, onToggle: () => handleToggles("sort") }) })
package/index.js CHANGED
@@ -34,6 +34,7 @@ import { D as D2 } from "./components/DataGrid/DataGrid.js";
34
34
  import { g as g5 } from "./components/DataGrid/dictionary.js";
35
35
  import { N, T as T2 } from "./components/DataGrid/subcomponents/editors/TextEditor/index.js";
36
36
  import { g as g6 } from "./components/DataGrid/utils/getDataGridRowsFromSet.js";
37
+ import { b as b3 } from "./components/DataGrid/constants.js";
37
38
  import { C as C2 } from "./components/DataGrid/formatters/ColumnBooleanFormatter/formatter.js";
38
39
  import { u as u3 } from "./components/DataGrid/formatters/ColumnBooleanFormatter/useColumnBoolean.js";
39
40
  import { C as C3 } from "./components/DataGrid/formatters/ColumnConcatenatedValuesFormatter/formatter.js";
@@ -256,6 +257,7 @@ export {
256
257
  C10 as ColumnSetCheckFormatter,
257
258
  C11 as ColumnUncertaintyFormatter,
258
259
  C15 as ConcatenatedFormatter,
260
+ b3 as DATAGRID_SEMANTIC_WIDTHS,
259
261
  D as DICTIONARY,
260
262
  D2 as DataGrid,
261
263
  D7 as DateFormatter,
@@ -8,7 +8,7 @@
8
8
  * - Please do NOT serve this file on production.
9
9
  */
10
10
 
11
- const PACKAGE_VERSION = '2.7.5'
11
+ const PACKAGE_VERSION = '2.8.2'
12
12
  const INTEGRITY_CHECKSUM = '00729d72e3b82faf54ca8b9621dbb96f'
13
13
  const IS_MOCKED_RESPONSE = Symbol('isMockedResponse')
14
14
  const activeClientIds = new Set()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@m4l/components",
3
- "version": "9.2.51",
3
+ "version": "9.2.53",
4
4
  "license": "UNLICENSED",
5
5
  "description": "M4L Components",
6
6
  "lint-staged": {
@@ -3,16 +3,28 @@ import { SideBar } from '../../../src/components/SideBar';
3
3
  declare const meta: Meta<typeof SideBar>;
4
4
  type Story = StoryObj<typeof SideBar>;
5
5
  /**
6
- * Componente SideBar por defecto sin ningún item seleccionado
6
+ * SideBar por defecto sin ningún item seleccionado
7
7
  */
8
8
  export declare const Default: Story;
9
9
  /**
10
- * Componente SideBar con items en el menu, con un item seleccionado y 5 anidaciones incluyendo la sección padre de los menu items
10
+ * SideBar colapsado por medio del botón de anclaje
11
11
  */
12
- export declare const SidebarWithItemSelected: Story;
13
- export declare const SidebarWithoutData: Story;
12
+ export declare const CollapsedWithAnchorButton: Story;
13
+ /**
14
+ * SideBar colapsado con hover sobre el menú
15
+ */
16
+ export declare const CollapsedWithHoverOnMenu: Story;
17
+ /**
18
+ * SideBar colapsado retirando hover sobre el menú
19
+ */
20
+ export declare const CollapsedWithHoverRemoved: Story;
21
+ /**
22
+ * SideBar con items en el menu, con un item seleccionado y 5 anidaciones incluyendo la sección padre de los menu items
23
+ */
24
+ export declare const WithItemSelected: Story;
25
+ export declare const WithoutData: Story;
14
26
  /**
15
27
  * SideBar con componentes en skeleton
16
28
  */
17
- export declare const SidebarWithSkeleton: Story;
29
+ export declare const WithSkeleton: Story;
18
30
  export default meta;
@@ -18,3 +18,4 @@ export declare const ImageMultiple: Story;
18
18
  export declare const Loading: Story;
19
19
  export declare const Refresh: Story;
20
20
  export declare const Skeleton: Story;
21
+ export declare const WithError: Story;
@@ -1,15 +1,17 @@
1
1
  import { Meta, StoryObj } from '@storybook/react';
2
2
  import { RHFAutocompleteProps } from '../../../src/components/hook-form/RHFAutocomplete/types';
3
- type OptionType = {
4
- id: number;
5
- label: string;
6
- imageUrl?: string;
7
- };
3
+ import { OptionType } from './constants';
8
4
  declare const meta: Meta<RHFAutocompleteProps<OptionType>>;
9
5
  export default meta;
10
6
  type Story = StoryObj<RHFAutocompleteProps<OptionType>>;
11
7
  export declare const Default: Story;
12
- export declare const MultipleSelection: Story;
8
+ export declare const InitialNull: Story;
9
+ /**
10
+ * Preselected Option With not Options
11
+ */
12
+ export declare const PreselectedOptionNotOptions: Story;
13
+ export declare const Multiple: Story;
14
+ export declare const MultiplePreselected: Story;
13
15
  export declare const WithImages: Story;
14
16
  export declare const LoadingState: Story;
15
17
  export declare const Disabled: Story;
@@ -0,0 +1,23 @@
1
+ export declare const FIELD_NAME_INITIAL_NULL = "rhf-autocomplete-initial-null";
2
+ export declare const FIELD_NAME_REQUIRED = "rhf-autocomplete";
3
+ export declare const FIELD_NAME_PRESELECTED = "rhf-autocomplete-preselected";
4
+ export declare const FIELD_NAME_PRESELECTED_NOT_IN_OPTIONS = "rhf-autocomplete-preselected-not-in-options";
5
+ export declare const FIELD_NAME_PRESELECTED_MULTIPLE = "rhf-autocomplete-preselected-multiple";
6
+ export declare const FIELD_NAME_PRESELECTED_MULTIPLE_NOT_IN_OPTIONS = "rhf-autocomplete-preselected-multiple-not-in-options";
7
+ export type OptionType = {
8
+ id: number;
9
+ label: string;
10
+ imageUrl?: string;
11
+ };
12
+ export declare const RHFAUTOCOMPLETE_OPTIONS_MOCK: OptionType[];
13
+ export declare const RHFAUTOCOMPLETE_OPTIONS_WITH_IMAGES_MOCK: OptionType[];
14
+ export declare const VALIDATION_SCHEMA: import('yup/lib/object').OptionalObjectSchema<{
15
+ "rhf-autocomplete": import('yup/lib/string').RequiredStringSchema<string | undefined, import('yup/lib/types').AnyObject>;
16
+ }, import('yup/lib/object').AnyObject, import('yup/lib/object').TypeOfShape<{
17
+ "rhf-autocomplete": import('yup/lib/string').RequiredStringSchema<string | undefined, import('yup/lib/types').AnyObject>;
18
+ }>>;
19
+ export declare const INITIAL_VALUES: {
20
+ "rhf-autocomplete-initial-null": null;
21
+ "rhf-autocomplete-preselected": OptionType;
22
+ "rhf-autocomplete-preselected-multiple": OptionType[];
23
+ };
@@ -1,14 +1,21 @@
1
1
  import { Meta, StoryObj } from '@storybook/react';
2
- import { RHFAutocompleteAsyncBaseProps } from '../../../src/components/hook-form/RHFAutocompleteAsync/types';
2
+ import { RHFAutocompleteAsyncProps } from '../../../src/components/hook-form/RHFAutocompleteAsync/types';
3
3
  type OptionType = {
4
4
  id: number;
5
5
  name: string;
6
6
  };
7
- declare const meta: Meta<RHFAutocompleteAsyncBaseProps<OptionType>>;
7
+ declare const meta: Meta<RHFAutocompleteAsyncProps<OptionType>>;
8
8
  export default meta;
9
- type Story = StoryObj<RHFAutocompleteAsyncBaseProps<OptionType>>;
9
+ type Story = StoryObj<RHFAutocompleteAsyncProps<OptionType>>;
10
10
  export declare const Default: Story;
11
- export declare const MultipleSelection: Story;
11
+ export declare const PreselectedOption: Story;
12
+ /**
13
+ * Preselected Option Not Loaded In Options when combo open
14
+ */
15
+ export declare const PreselectedOptionNotLoadedInOptions: Story;
16
+ export declare const Multiple: Story;
17
+ export declare const MultiplePreselected: Story;
18
+ export declare const MultiplePreselectedNotLoadedInOptions: Story;
12
19
  export declare const WithCustomFiltering: Story;
13
20
  export declare const LoadingState: Story;
14
21
  export declare const Disabled: Story;
@@ -1,5 +1,14 @@
1
+ export declare const FIELD_NAME_REQUIRED = "rhf-autocomplete-async";
2
+ export declare const FIELD_NAME_PRESELECTED = "rhf-autocomplete-async-preselected";
3
+ export declare const FIELD_NAME_PRESELECTED_NOT_IN_OPTIONS = "rhf-autocomplete-async-preselected-not-in-options";
4
+ export declare const FIELD_NAME_PRESELECTED_MULTIPLE = "rhf-autocomplete-async-preselected-multiple";
5
+ export declare const FIELD_NAME_PRESELECTED_MULTIPLE_NOT_IN_OPTIONS = "rhf-autocomplete-async-preselected-multiple-not-in-options";
1
6
  export declare const RHFAUTOCOMPLETEASYNC_MSW_MOCK: {
2
7
  id: number;
3
8
  name: string;
4
9
  }[];
5
- export declare const MSW_HANDLERS: import('msw').HttpHandler[];
10
+ export declare const VALIDATION_SCHEMA: import('yup/lib/object').OptionalObjectSchema<{
11
+ "rhf-autocomplete-async": import('yup/lib/string').RequiredStringSchema<string | undefined, import('yup/lib/types').AnyObject>;
12
+ }, import('yup/lib/object').AnyObject, import('yup/lib/object').TypeOfShape<{
13
+ "rhf-autocomplete-async": import('yup/lib/string').RequiredStringSchema<string | undefined, import('yup/lib/types').AnyObject>;
14
+ }>>;
@@ -0,0 +1 @@
1
+ export declare const MSW_HANDLERS: import('msw').HttpHandler[];
@@ -1,43 +0,0 @@
1
- import { AutocompleteCloseReason, AutocompleteInputChangeReason, TextFieldProps } from '@mui/material';
2
- import { LabelProps } from '../../Label/types';
3
- export type GetOptionString<T> = (option: T | null) => string;
4
- export type RHFAutocompleteVariants = 'info' | 'success' | 'warning';
5
- export type ImageProps<T> = (RHFAutocompleteTypeImageProps<T> & {
6
- imageScale?: boolean;
7
- imageRepeat?: never;
8
- }) | (RHFAutocompleteTypeImageProps<T> & {
9
- imageRepeat: boolean;
10
- imageScale?: never;
11
- });
12
- export interface RHFAutocompleteBaseProps<T> extends Omit<TextFieldProps, 'label' | 'variant' | 'helperText'>, Omit<LabelProps, 'label'> {
13
- name: string;
14
- options: Array<T>;
15
- getOptionLabel: (option: T) => string;
16
- isOptionEqualToValue: (option: T, value: T) => boolean;
17
- skeletonWidth?: string | number;
18
- skeletonHeight?: string | number;
19
- loading?: boolean;
20
- refresh?: () => void;
21
- label?: string;
22
- variant?: RHFAutocompleteVariants;
23
- helperMessage?: string;
24
- onOpen?: (event: React.SyntheticEvent) => void;
25
- onClose?: (event: React.SyntheticEvent, reason: AutocompleteCloseReason) => void;
26
- onChangeFilterParmsLocal?: (newValue: string, reason: AutocompleteInputChangeReason) => void;
27
- multiple?: boolean;
28
- }
29
- export interface RHFAutocompleteTypeTextProps {
30
- type: 'text';
31
- }
32
- export interface RHFAutocompleteTypeImageProps<T> {
33
- type: 'image';
34
- getOptionUrlImage: (option: T) => string;
35
- }
36
- export type RHFAutocompleteProps<T> = (RHFAutocompleteBaseProps<T> & ImageProps<T>) | (RHFAutocompleteBaseProps<T> & RHFAutocompleteTypeTextProps);
37
- export interface OwnerState extends Pick<RHFAutocompleteProps<any>, 'size' | 'disabled'>, Pick<ImageProps<any>, 'imageScale' | 'imageRepeat'> {
38
- isFocus: boolean;
39
- isTabSelected: boolean;
40
- semantics: RHFAutocompleteVariants | 'error' | null;
41
- variant?: 'withImage';
42
- multiple: boolean;
43
- }