@veritone-ce/design-system 1.12.46 → 1.12.48

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 (36) hide show
  1. package/dist/cjs/assets/theme.js +7 -5
  2. package/dist/cjs/components/Button/index.js +17 -15
  3. package/dist/cjs/components/FileUploader/index.js +166 -156
  4. package/dist/cjs/components/IconButton/index.js +27 -0
  5. package/dist/cjs/components/MenuFlyout/index.js +2 -0
  6. package/dist/cjs/components/Table/AutoTable/common.js +143 -0
  7. package/dist/cjs/components/Table/AutoTable/controlled.js +120 -0
  8. package/dist/cjs/components/Table/AutoTable/index.js +118 -0
  9. package/dist/cjs/components/Table/AutoTable/types.js +5 -0
  10. package/dist/cjs/components/Table/AutoTable/virtual.js +154 -0
  11. package/dist/cjs/components/Table/index.js +83 -35
  12. package/dist/cjs/index.js +117 -68
  13. package/dist/esm/assets/theme.js +7 -5
  14. package/dist/esm/components/Button/index.js +17 -15
  15. package/dist/esm/components/FileUploader/index.js +163 -153
  16. package/dist/esm/components/IconButton/index.js +17 -0
  17. package/dist/esm/components/MenuFlyout/index.js +2 -0
  18. package/dist/esm/components/Table/AutoTable/common.js +133 -0
  19. package/dist/esm/components/Table/AutoTable/controlled.js +115 -0
  20. package/dist/esm/components/Table/AutoTable/index.js +107 -0
  21. package/dist/esm/components/Table/AutoTable/types.js +1 -0
  22. package/dist/esm/components/Table/AutoTable/virtual.js +149 -0
  23. package/dist/esm/components/Table/index.js +80 -33
  24. package/dist/esm/index.js +6 -2
  25. package/dist/types/components/Button/index.d.ts +2 -0
  26. package/dist/types/components/FileUploader/index.d.ts +18 -14
  27. package/dist/types/components/IconButton/index.d.ts +16 -0
  28. package/dist/types/components/MenuFlyout/index.d.ts +4 -4
  29. package/dist/types/components/Table/AutoTable/common.d.ts +25 -0
  30. package/dist/types/components/Table/AutoTable/controlled.d.ts +13 -0
  31. package/dist/types/components/Table/AutoTable/index.d.ts +44 -0
  32. package/dist/types/components/Table/AutoTable/types.d.ts +106 -0
  33. package/dist/types/components/Table/AutoTable/virtual.d.ts +19 -0
  34. package/dist/types/components/Table/index.d.ts +45 -8
  35. package/dist/types/index.d.ts +13 -4
  36. package/package.json +4 -1
@@ -1,18 +1,18 @@
1
+ import { PopoverProps } from '@mui/material';
1
2
  import React from 'react';
2
3
  import { SxProps, Theme } from '@mui/material/styles';
3
4
  export type MenuOption = {
4
- label: string;
5
+ label: React.ReactNode;
5
6
  icon?: React.ReactElement;
7
+ onSelect(): void;
6
8
  };
7
9
  export type MenuFlyoutProps = {
8
10
  'data-testid'?: string;
9
11
  open: boolean;
12
+ anchorEl?: PopoverProps['anchorEl'];
10
13
  onClose?: {
11
14
  bivarianceHack(event: Event, reason: 'backdropClick' | 'escapeKeyDown'): void;
12
15
  }['bivarianceHack'];
13
- /**
14
- An array of objects of type `MenuOption[]`. Each object in this array **requires** a label property of type `string` and an **optional** icon property of type `React.ReactElement`. Each object represents a list item on the menu flyout component.
15
- **/
16
16
  menuOptions: MenuOption[];
17
17
  sx?: SxProps<Theme>;
18
18
  className?: string;
@@ -0,0 +1,25 @@
1
+ import { ColumnDef as RTColumnDef, PaginationState, Row, RowSelectionState, SortingState, RowData } from '@tanstack/react-table';
2
+ import type { ColumnDef, ColumnHelper } from './types.js';
3
+ export declare function createColumnHelper<TData extends RowData, TMeta = unknown>(): ColumnHelper<TData, TMeta>;
4
+ export type AutoTableHookOptions<TData, TMeta = unknown> = {
5
+ data: TData[];
6
+ columns: ColumnDef<TData, TMeta>[];
7
+ meta?: TMeta;
8
+ getRowId?: (originalRow: TData, index: number, parent?: Row<TData>) => string;
9
+ sorting: SortingState;
10
+ enableSorting: boolean;
11
+ onSortingChange(newSorting: SortingState): void;
12
+ manualSorting?: boolean;
13
+ rowSelection: RowSelectionState;
14
+ enableRowSelection: boolean;
15
+ onRowSelectionChange(newRowSelection: RowSelectionState): void;
16
+ pagination: PaginationState;
17
+ enablePagination: boolean;
18
+ onPageChange(newPage: number): void;
19
+ onRowsPerPageChange(newRowsPerPage: number): void;
20
+ manualPagination?: boolean;
21
+ manualRowCount?: number;
22
+ };
23
+ export declare function useAutoTable<TData, TMeta = unknown>(options: AutoTableHookOptions<TData, TMeta>): import("@tanstack/react-table").Table<TData>;
24
+ export declare function mapColumnDefs<TData, TMeta>(columnDefs: ColumnDef<TData, TMeta>[]): RTColumnDef<TData>[];
25
+ export declare function mapColumnDef<TData, TMeta, VData = unknown>(columnDef: ColumnDef<TData, TMeta, VData>): RTColumnDef<TData, VData>;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import type { SxProps, Theme } from '@mui/material/styles';
3
+ import { AutoTableHookOptions } from './common.js';
4
+ export type ControlledAutoTableProps<TData, TMeta = unknown> = AutoTableHookOptions<TData, TMeta> & {
5
+ stickyHeader?: boolean | {
6
+ offset: number;
7
+ };
8
+ loading?: boolean;
9
+ zeroStateMessage?: React.ReactNode;
10
+ sx?: SxProps<Theme>;
11
+ className?: string;
12
+ };
13
+ export default function ControlledAutoTable<TData, TMeta = unknown>({ stickyHeader, loading, zeroStateMessage, sx, className, ...options }: ControlledAutoTableProps<TData, TMeta>): React.JSX.Element;
@@ -0,0 +1,44 @@
1
+ import { SortingState, RowSelectionState, Row } from '@tanstack/react-table';
2
+ import React from 'react';
3
+ import type { SxProps, Theme } from '@mui/material/styles';
4
+ import type { ColumnDef } from './types.js';
5
+ export { createColumnHelper } from './common.js';
6
+ export type AutoTableProps<TData, TMeta = unknown> = {
7
+ data: TData[];
8
+ columns: ColumnDef<TData, TMeta>[];
9
+ meta?: TMeta;
10
+ getRowId?: (originalRow: TData, index: number, parent?: Row<TData>) => string;
11
+ /** controlled sorting */
12
+ sorting?: SortingState;
13
+ /** uncontrolled sorting */
14
+ defaultSorting?: SortingState;
15
+ enableSorting?: boolean;
16
+ onSortingChange?(newSorting: SortingState): void;
17
+ manualSorting?: boolean;
18
+ rowSelection?: RowSelectionState;
19
+ enableRowSelection?: boolean;
20
+ onRowSelectionChange?(newRowSelection: RowSelectionState): void;
21
+ page?: number;
22
+ rowsPerPage?: number;
23
+ enablePagination?: boolean;
24
+ onPageChange?(newPage: number): void;
25
+ onRowsPerPageChange?(newRowsPerPage: number): void;
26
+ manualRowCount?: number;
27
+ virtualizer?: {
28
+ scrollOffset?: number;
29
+ getScrollElement: () => Element | null;
30
+ renderWhenNotVisible?: boolean;
31
+ rowSize: number;
32
+ headerSize?: number;
33
+ overscan?: number;
34
+ };
35
+ stickyHeader?: boolean | {
36
+ offset: number;
37
+ };
38
+ loading?: boolean;
39
+ zeroStateMessage?: React.ReactNode;
40
+ sx?: SxProps<Theme>;
41
+ className?: string;
42
+ };
43
+ declare function AutoTable<TData, TMeta = unknown>(props: AutoTableProps<TData, TMeta>): React.JSX.Element;
44
+ export default AutoTable;
@@ -0,0 +1,106 @@
1
+ export { type SortingState } from '@tanstack/react-table';
2
+ import { AccessorFn, Cell, Column, ColumnDefTemplate, ColumnMeta, DeepKeys, DeepValue, Getter, Header, Row, RowData, SortingFnOption, Table } from '@tanstack/react-table';
3
+ export type InternalColumnMeta = {
4
+ noVerticalPadding?: boolean;
5
+ };
6
+ export type ColumnHelper<TData extends RowData, TMeta> = {
7
+ accessor: <TAccessor extends AccessorFn<TData> | DeepKeys<TData>, TValue extends TAccessor extends AccessorFn<TData, infer TReturn> ? TReturn : TAccessor extends DeepKeys<TData> ? DeepValue<TData, TAccessor> : never>(accessor: TAccessor, column: TAccessor extends AccessorFn<TData> ? DisplayColumnDef<TData, TMeta, TValue> : IdentifiedColumnDef<TData, TMeta, TValue>) => AccessorColumnDef<TData, TMeta, TValue>;
8
+ display: (column: DisplayColumnDef<TData, TMeta>) => ColumnDef<TData, TMeta, unknown>;
9
+ };
10
+ export interface HeaderContext<TData, TMeta, TValue> {
11
+ /**
12
+ * An instance of a column.
13
+ */
14
+ column: Column<TData, TValue>;
15
+ /**
16
+ * An instance of a header.
17
+ */
18
+ header: Header<TData, TValue>;
19
+ /**
20
+ * The table instance.
21
+ */
22
+ table: Table<TData>;
23
+ meta: TMeta;
24
+ }
25
+ export type StringOrTemplateHeader<TData, TMeta, TValue> = string | ColumnDefTemplate<HeaderContext<TData, TMeta, TValue>>;
26
+ interface StringHeaderIdentifier {
27
+ header: string;
28
+ id?: string;
29
+ }
30
+ interface IdIdentifier<TData extends RowData, TMeta, TValue> {
31
+ id: string;
32
+ header?: StringOrTemplateHeader<TData, TMeta, TValue>;
33
+ }
34
+ type ColumnIdentifiers<TData extends RowData, TMeta, TValue> = IdIdentifier<TData, TMeta, TValue> | StringHeaderIdentifier;
35
+ export interface IdentifiedColumnDef<TData extends RowData, TMeta = unknown, TValue = unknown> extends ColumnDefBase<TData, TMeta, TValue> {
36
+ id?: string;
37
+ header?: StringOrTemplateHeader<TData, TMeta, TValue>;
38
+ }
39
+ export interface CellContext<TData extends RowData, TMeta, TValue> {
40
+ cell: Cell<TData, TValue>;
41
+ column: Column<TData, TValue>;
42
+ getValue: Getter<TValue>;
43
+ renderValue: Getter<TValue | null>;
44
+ row: Row<TData>;
45
+ table: Table<TData>;
46
+ meta: TMeta;
47
+ }
48
+ export interface ColumnDefBase<TData extends RowData, TMeta = unknown, TValue = unknown> {
49
+ getUniqueValues?: AccessorFn<TData, unknown[]>;
50
+ meta?: ColumnMeta<TData, TValue>;
51
+ cell?: ColumnDefTemplate<CellContext<TData, TMeta, TValue>>;
52
+ noVerticalPadding?: boolean;
53
+ /**
54
+ * Enables/Disables multi-sorting for this column.
55
+ * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/sorting#enablemultisort)
56
+ * @link [Guide](https://tanstack.com/table/v8/docs/guide/sorting)
57
+ */
58
+ enableMultiSort?: boolean;
59
+ /**
60
+ * Enables/Disables sorting for this column.
61
+ * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/sorting#enablesorting)
62
+ * @link [Guide](https://tanstack.com/table/v8/docs/guide/sorting)
63
+ */
64
+ enableSorting?: boolean;
65
+ /**
66
+ * Inverts the order of the sorting for this column. This is useful for values that have an inverted best/worst scale where lower numbers are better, eg. a ranking (1st, 2nd, 3rd) or golf-like scoring
67
+ * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/sorting#invertsorting)
68
+ * @link [Guide](https://tanstack.com/table/v8/docs/guide/sorting)
69
+ */
70
+ invertSorting?: boolean;
71
+ /**
72
+ * Set to `true` for sorting toggles on this column to start in the descending direction.
73
+ * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/sorting#sortdescfirst)
74
+ * @link [Guide](https://tanstack.com/table/v8/docs/guide/sorting)
75
+ */
76
+ sortDescFirst?: boolean;
77
+ /**
78
+ * The sorting function to use with this column.
79
+ * - A `string` referencing a built-in sorting function
80
+ * - A custom sorting function
81
+ * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/sorting#sortingfn)
82
+ * @link [Guide](https://tanstack.com/table/v8/docs/guide/sorting)
83
+ */
84
+ sortingFn?: SortingFnOption<TData>;
85
+ /**
86
+ * - `false`
87
+ * - Undefined values will be considered tied and need to be sorted by the next column filter or original index (whichever applies)
88
+ * - `-1`
89
+ * - Undefined values will be sorted with higher priority (ascending) (if ascending, undefined will appear on the beginning of the list)
90
+ * - `1`
91
+ * - Undefined values will be sorted with lower priority (descending) (if ascending, undefined will appear on the end of the list)
92
+ */
93
+ sortUndefined?: false | -1 | 1;
94
+ }
95
+ export type DisplayColumnDef<TData extends RowData, TMeta = unknown, TValue = unknown> = ColumnDefBase<TData, TMeta, TValue> & ColumnIdentifiers<TData, TMeta, TValue>;
96
+ interface AccessorFnColumnDefBase<TData extends RowData, TMeta, TValue = unknown> extends ColumnDefBase<TData, TMeta, TValue> {
97
+ accessorFn: AccessorFn<TData, TValue>;
98
+ }
99
+ export type AccessorFnColumnDef<TData extends RowData, TMeta = unknown, TValue = unknown> = AccessorFnColumnDefBase<TData, TMeta, TValue> & ColumnIdentifiers<TData, TMeta, TValue>;
100
+ interface AccessorKeyColumnDefBase<TData extends RowData, TMeta, TValue = unknown> extends ColumnDefBase<TData, TMeta, TValue> {
101
+ id?: string;
102
+ accessorKey: (string & {}) | keyof TData;
103
+ }
104
+ export type AccessorKeyColumnDef<TData extends RowData, TMeta = unknown, TValue = unknown> = AccessorKeyColumnDefBase<TData, TMeta, TValue> & Partial<ColumnIdentifiers<TData, TMeta, TValue>>;
105
+ export type AccessorColumnDef<TData extends RowData, TMeta, TValue = unknown> = AccessorKeyColumnDef<TData, TMeta, TValue> | AccessorFnColumnDef<TData, TMeta, TValue>;
106
+ export type ColumnDef<TData extends RowData, TMeta = unknown, TValue = unknown> = DisplayColumnDef<TData, TMeta, TValue> | AccessorColumnDef<TData, TMeta, TValue>;
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import type { SxProps, Theme } from '@mui/material/styles';
3
+ import { AutoTableHookOptions } from './common.js';
4
+ export type VirtualControlledAutoTableProps<TData, TMeta = unknown> = AutoTableHookOptions<TData, TMeta> & {
5
+ stickyHeader?: boolean | {
6
+ offset: number;
7
+ };
8
+ loading?: boolean;
9
+ zeroStateMessage?: React.ReactNode;
10
+ scrollOffset?: number;
11
+ getScrollElement: () => Element | null;
12
+ renderWhenNotVisible?: boolean;
13
+ rowSize: number;
14
+ headerSize?: number;
15
+ overscan?: number;
16
+ sx?: SxProps<Theme>;
17
+ className?: string;
18
+ };
19
+ export default function VirtualControlledAutoTable<TData, TMeta = unknown>({ stickyHeader, loading, zeroStateMessage, scrollOffset, getScrollElement, renderWhenNotVisible, rowSize, headerSize, overscan, sx, className, ...options }: VirtualControlledAutoTableProps<TData, TMeta>): React.JSX.Element;
@@ -1,5 +1,4 @@
1
- import { TableSortLabelProps as MuiTableSortLabelProps } from '@mui/material';
2
- import React from 'react';
1
+ import React, { ChangeEvent, MouseEventHandler } from 'react';
3
2
  import { SxProps, Theme } from '@mui/material/styles';
4
3
  export type TableProps = {
5
4
  'data-testid'?: string;
@@ -22,8 +21,7 @@ export type TableBodyProps = {
22
21
  className?: string;
23
22
  };
24
23
  export declare const TableBody: (props: TableBodyProps) => React.JSX.Element;
25
- export type TableCellProps = {
26
- 'data-testid'?: string;
24
+ type CommonTableCellProps = {
27
25
  variant?: 'header' | 'data';
28
26
  align?: 'left' | 'center' | 'right' | 'justify' | 'inherit';
29
27
  colSpan?: number;
@@ -32,18 +30,27 @@ export type TableCellProps = {
32
30
  scope?: string;
33
31
  abbr?: string;
34
32
  sortDirection?: 'asc' | 'desc' | false;
33
+ };
34
+ export type TableCellProps = CommonTableCellProps & {
35
+ 'data-testid'?: string;
35
36
  children?: React.ReactNode;
37
+ noVerticalPadding?: boolean;
36
38
  sx?: SxProps<Theme>;
37
39
  className?: string;
38
40
  };
39
41
  export declare const TableCell: ({ variant, ...props }: TableCellProps) => React.JSX.Element;
40
- export type TableContainerProps = {
42
+ export type SelectionTableCellProps = CommonTableCellProps & {
41
43
  'data-testid'?: string;
42
- children?: React.ReactNode;
44
+ checked?: boolean;
45
+ indeterminate?: boolean;
46
+ disabled?: boolean;
47
+ onChange?(event: ChangeEvent<HTMLInputElement>, checked: boolean): void;
43
48
  sx?: SxProps<Theme>;
44
49
  className?: string;
50
+ checkboxSx?: SxProps<Theme>;
51
+ checkboxClassName?: string;
45
52
  };
46
- export declare const TableContainer: (props: TableContainerProps) => React.JSX.Element;
53
+ export declare const SelectionTableCell: ({ checked, indeterminate, disabled, onChange, sx, className, checkboxSx, checkboxClassName, ...cellProps }: SelectionTableCellProps) => React.JSX.Element;
47
54
  export type TableFooterProps = {
48
55
  'data-testid'?: string;
49
56
  children?: React.ReactNode;
@@ -109,5 +116,35 @@ export type TableRowProps = {
109
116
  export declare const TableRow: (props: TableRowProps) => React.JSX.Element;
110
117
  export type TableSortLabelProps = {
111
118
  'data-testid'?: string;
112
- } & MuiTableSortLabelProps;
119
+ /**
120
+ * If `true`, the label will have the active styling (should be true for the sorted column).
121
+ * @default false
122
+ */
123
+ active?: boolean;
124
+ /**
125
+ * Label contents, the arrow will be appended automatically.
126
+ */
127
+ children?: React.ReactNode;
128
+ /**
129
+ * The current sort direction.
130
+ * @default 'asc'
131
+ */
132
+ direction?: 'asc' | 'desc';
133
+ /**
134
+ * Hide sort icon when active is false.
135
+ * @default false
136
+ */
137
+ hideSortIcon?: boolean;
138
+ disabled?: boolean;
139
+ onClick?: MouseEventHandler<HTMLSpanElement>;
140
+ sx?: SxProps<Theme>;
141
+ className?: string;
142
+ };
113
143
  export declare const TableSortLabel: (props: TableSortLabelProps) => React.JSX.Element;
144
+ export type TableZeroStateProps = {
145
+ children: React.ReactNode;
146
+ sx?: SxProps<Theme>;
147
+ className?: string;
148
+ };
149
+ export declare const TableZeroState: (props: TableZeroStateProps) => React.JSX.Element;
150
+ export {};
@@ -12,10 +12,12 @@ export { default as Checkbox } from './components/Checkbox/index.js';
12
12
  export type { CheckboxProps } from './components/Checkbox/index.js';
13
13
  export { default as Drawer } from './components/Drawer/index.js';
14
14
  export type { DrawerProps } from './components/Drawer/index.js';
15
- export { default as FileUploader } from './components/FileUploader/index.js';
16
- export type { FileUploaderProps } from './components/FileUploader/index.js';
15
+ export { default as FileUploader, useFileUploader } from './components/FileUploader/index.js';
16
+ export type { FileUploaderProps, UseFileUploaderOptions } from './components/FileUploader/index.js';
17
17
  export { default as FormControlLabel } from './components/FormControlLabel/index.js';
18
18
  export type { FormControlLabelProps } from './components/FormControlLabel/index.js';
19
+ export { default as IconButton } from './components/IconButton/index.js';
20
+ export type { IconButtonProps } from './components/IconButton/index.js';
19
21
  export { default as Input } from './components/Input/index.js';
20
22
  export type { InputProps } from './components/Input/index.js';
21
23
  export { default as LinearProgress } from './components/LinearProgress/index.js';
@@ -52,8 +54,15 @@ export { default as StepLabel } from './components/StepLabel/index.js';
52
54
  export type { StepLabelProps } from './components/StepLabel/index.js';
53
55
  export { default as Stepper } from './components/Stepper/index.js';
54
56
  export type { StepperProps } from './components/Stepper/index.js';
55
- export { Table, TableBody, TableCell, TableContainer, TableFooter, TableHead, TablePagination, TableRow, TableSortLabel } from './components/Table/index.js';
56
- export type { TableProps, TableBodyProps, TableCellProps, TableContainerProps, TableFooterProps, TableHeadProps, TablePaginationProps, TableRowProps, TableSortLabelProps } from './components/Table/index.js';
57
+ export { Table, TableBody, TableCell, SelectionTableCell, TableFooter, TableHead, TablePagination, TableRow, TableSortLabel, TableZeroState } from './components/Table/index.js';
58
+ export type { TableProps, TableBodyProps, TableCellProps, SelectionTableCellProps, TableFooterProps, TableHeadProps, TablePaginationProps, TableRowProps, TableSortLabelProps, TableZeroStateProps } from './components/Table/index.js';
59
+ export { default as AutoTable, createColumnHelper } from './components/Table/AutoTable/index.js';
60
+ export type { AutoTableProps } from './components/Table/AutoTable/index.js';
61
+ export { default as ControlledAutoTable } from './components/Table/AutoTable/controlled.js';
62
+ export type { ControlledAutoTableProps } from './components/Table/AutoTable/controlled.js';
63
+ export { default as VirtualControlledAutoTable } from './components/Table/AutoTable/virtual.js';
64
+ export type { VirtualControlledAutoTableProps } from './components/Table/AutoTable/virtual.js';
65
+ export type * from './components/Table/AutoTable/types.js';
57
66
  export { default as Tabs } from './components/Tabs/index.js';
58
67
  export type { BasicTabsProps, Tab } from './components/Tabs/index.js';
59
68
  export { default as ThemeProvider } from './components/ThemeProvider/index.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veritone-ce/design-system",
3
- "version": "1.12.46",
3
+ "version": "1.12.48",
4
4
  "private": false,
5
5
  "description": "Design System for Veritone CE",
6
6
  "keywords": [
@@ -60,6 +60,8 @@
60
60
  }
61
61
  },
62
62
  "dependencies": {
63
+ "@tanstack/react-table": "^8.10.7",
64
+ "@tanstack/react-virtual": "^v3.0.0-beta.68",
63
65
  "deepmerge": "^4.3.1",
64
66
  "react-dropzone": "^14.2.3"
65
67
  },
@@ -75,6 +77,7 @@
75
77
  "@emotion/jest": "^11.11.0",
76
78
  "@emotion/react": "^11.10.4",
77
79
  "@emotion/styled": "^11.10.4",
80
+ "@faker-js/faker": "^8.2.0",
78
81
  "@fontsource/dosis": "^5.0.5",
79
82
  "@fontsource/nunito-sans": "^5.0.5",
80
83
  "@mui/icons-material": "^5.10.6",