238 lines
6.2 KiB
TypeScript
238 lines
6.2 KiB
TypeScript
import { Theme, alpha, Components } from '@mui/material/styles';
|
|
import { svgIconClasses } from '@mui/material/SvgIcon';
|
|
import { typographyClasses } from '@mui/material/Typography';
|
|
import { buttonBaseClasses } from '@mui/material/ButtonBase';
|
|
import { chipClasses } from '@mui/material/Chip';
|
|
import { iconButtonClasses } from '@mui/material/IconButton';
|
|
import { gray, red, green } from '../themePrimitives';
|
|
|
|
/* eslint-disable import/prefer-default-export */
|
|
export const dataDisplayCustomizations: Components<Theme> = {
|
|
MuiList: {
|
|
styleOverrides: {
|
|
root: {
|
|
|
|
display: 'flex',
|
|
flexDirection: 'column',
|
|
gap: 0,
|
|
},
|
|
},
|
|
},
|
|
MuiListItem: {
|
|
styleOverrides: {
|
|
root: ({ theme }) => ({
|
|
|
|
[`& .${svgIconClasses.root}`]: {
|
|
width: '1rem',
|
|
height: '1rem',
|
|
color: (theme.vars || theme).palette.text.secondary,
|
|
},
|
|
[`& .${typographyClasses.root}`]: {
|
|
fontWeight: 500,
|
|
|
|
},
|
|
[`& .${buttonBaseClasses.root}`]: {
|
|
display: 'flex',
|
|
gap: 8,
|
|
|
|
borderRadius: (theme.vars || theme).shape.borderRadius,
|
|
opacity: 0.7,
|
|
'&.Mui-selected': {
|
|
opacity: 1,
|
|
backgroundColor: alpha(theme.palette.action.selected, 0.3),
|
|
|
|
[`& .${svgIconClasses.root}`]: {
|
|
color: (theme.vars || theme).palette.text.primary,
|
|
},
|
|
'&:focus-visible': {
|
|
backgroundColor: alpha(theme.palette.action.selected, 0.3),
|
|
},
|
|
'&:hover': {
|
|
backgroundColor: alpha(theme.palette.action.selected, 0.5),
|
|
},
|
|
},
|
|
|
|
'&:focus-visible': {
|
|
backgroundColor: 'transparent',
|
|
},
|
|
},
|
|
}),
|
|
},
|
|
},
|
|
MuiListItemText: {
|
|
styleOverrides: {
|
|
primary: ({ theme }) => ({
|
|
fontSize: theme.typography.body2.fontSize,
|
|
fontWeight: 500,
|
|
lineHeight: theme.typography.body2.lineHeight,
|
|
}),
|
|
secondary: ({ theme }) => ({
|
|
fontSize: theme.typography.caption.fontSize,
|
|
lineHeight: theme.typography.caption.lineHeight,
|
|
}),
|
|
},
|
|
},
|
|
MuiListSubheader: {
|
|
styleOverrides: {
|
|
root: ({ theme }) => ({
|
|
backgroundColor: 'transparent',
|
|
// padding: '4px 8px',
|
|
fontSize: theme.typography.caption.fontSize,
|
|
fontWeight: 500,
|
|
lineHeight: theme.typography.caption.lineHeight,
|
|
}),
|
|
},
|
|
},
|
|
MuiListItemIcon: {
|
|
styleOverrides: {
|
|
root: {
|
|
minWidth: 0,
|
|
},
|
|
},
|
|
},
|
|
MuiChip: {
|
|
defaultProps: {
|
|
size: 'small',
|
|
},
|
|
styleOverrides: {
|
|
root: ({ theme }) => ({
|
|
border: '1px solid',
|
|
borderRadius: '999px',
|
|
[`& .${chipClasses.label}`]: {
|
|
fontWeight: 600,
|
|
},
|
|
variants: [
|
|
{
|
|
props: {
|
|
color: 'default',
|
|
},
|
|
style: {
|
|
borderColor: gray[200],
|
|
backgroundColor: gray[100],
|
|
[`& .${chipClasses.label}`]: {
|
|
color: gray[500],
|
|
},
|
|
[`& .${chipClasses.icon}`]: {
|
|
color: gray[500],
|
|
},
|
|
...theme.applyStyles('dark', {
|
|
borderColor: gray[700],
|
|
backgroundColor: gray[800],
|
|
[`& .${chipClasses.label}`]: {
|
|
color: gray[300],
|
|
},
|
|
[`& .${chipClasses.icon}`]: {
|
|
color: gray[300],
|
|
},
|
|
}),
|
|
},
|
|
},
|
|
{
|
|
props: {
|
|
color: 'success',
|
|
},
|
|
style: {
|
|
borderColor: green[200],
|
|
backgroundColor: green[50],
|
|
[`& .${chipClasses.label}`]: {
|
|
color: green[500],
|
|
},
|
|
[`& .${chipClasses.icon}`]: {
|
|
color: green[500],
|
|
},
|
|
...theme.applyStyles('dark', {
|
|
borderColor: green[800],
|
|
backgroundColor: green[900],
|
|
[`& .${chipClasses.label}`]: {
|
|
color: green[300],
|
|
},
|
|
[`& .${chipClasses.icon}`]: {
|
|
color: green[300],
|
|
},
|
|
}),
|
|
},
|
|
},
|
|
{
|
|
props: {
|
|
color: 'error',
|
|
},
|
|
style: {
|
|
borderColor: red[100],
|
|
backgroundColor: red[50],
|
|
[`& .${chipClasses.label}`]: {
|
|
color: red[500],
|
|
},
|
|
[`& .${chipClasses.icon}`]: {
|
|
color: red[500],
|
|
},
|
|
...theme.applyStyles('dark', {
|
|
borderColor: red[800],
|
|
backgroundColor: red[900],
|
|
[`& .${chipClasses.label}`]: {
|
|
color: red[200],
|
|
},
|
|
[`& .${chipClasses.icon}`]: {
|
|
color: red[300],
|
|
},
|
|
}),
|
|
},
|
|
},
|
|
{
|
|
props: { size: 'small' },
|
|
style: {
|
|
maxHeight: 20,
|
|
[`& .${chipClasses.label}`]: {
|
|
fontSize: theme.typography.caption.fontSize,
|
|
},
|
|
[`& .${svgIconClasses.root}`]: {
|
|
fontSize: theme.typography.caption.fontSize,
|
|
},
|
|
},
|
|
},
|
|
{
|
|
props: { size: 'medium' },
|
|
style: {
|
|
[`& .${chipClasses.label}`]: {
|
|
fontSize: theme.typography.caption.fontSize,
|
|
},
|
|
},
|
|
},
|
|
],
|
|
}),
|
|
},
|
|
},
|
|
MuiTablePagination: {
|
|
styleOverrides: {
|
|
actions: {
|
|
display: 'flex',
|
|
gap: 8,
|
|
marginRight: 6,
|
|
[`& .${iconButtonClasses.root}`]: {
|
|
minWidth: 0,
|
|
width: 36,
|
|
height: 36,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
MuiIcon: {
|
|
defaultProps: {
|
|
fontSize: 'small',
|
|
},
|
|
styleOverrides: {
|
|
root: {
|
|
variants: [
|
|
{
|
|
props: {
|
|
fontSize: 'small',
|
|
},
|
|
style: {
|
|
fontSize: '1rem',
|
|
},
|
|
},
|
|
],
|
|
},
|
|
},
|
|
},
|
|
};
|