import { memo } from 'react'; import type { FC } from 'react'; import { CssBaseline, ThemeProvider, responsiveFontSizes, tooltipClasses } from '@mui/material'; import { createTheme } from '@mui/material/styles'; import type { RequiredChildrenProps } from 'utils'; // Memoize dialog style to prevent recreation export const dialogStyle = { '& .MuiDialog-paper': { borderRadius: '8px', borderColor: '#565656', borderStyle: 'solid', borderWidth: '1px' } } as const; // Memoize theme creation to prevent recreation const theme = responsiveFontSizes( createTheme({ typography: { fontSize: 13 }, palette: { mode: 'dark', secondary: { main: '#2196f3' // blue[500] }, info: { main: '#607d8b' // blueGrey[500] }, text: { disabled: '#eee' // white } }, components: { MuiListItemText: { styleOverrides: { primary: { fontSize: 14 }, secondary: { color: '#9e9e9e' // grey[500] } } }, MuiTooltip: { defaultProps: { placement: 'top', arrow: true }, styleOverrides: { tooltip: { padding: '4px 8px', fontSize: 10, color: 'rgba(0, 0, 0, 0.87)', backgroundColor: '#4caf50', // MUI success.main default color boxShadow: '0px 2px 8px rgba(0, 0, 0, 0.15)', [`& .${tooltipClasses.arrow}`]: { color: '#4caf50' } } } } } }) ); const CustomTheme: FC = memo(({ children }) => ( {children} )); export default CustomTheme;