import {
Box,
Divider,
Grid,
Stack,
type Theme,
Typography,
useTheme
} from '@mui/material';
import type { ThemeMode } from '@centreon/ui-context';
import { includes, toPairs } from 'ramda';
import { makeStyles } from 'tss-react/mui';
const useStyles = makeStyles()((theme) => ({
divider: {
margin: theme.spacing(2)
},
headerContainer: {
display: 'flex',
justifyContent: 'space-between'
},
itemContainer: {
borderRadius: 1,
margin: theme.spacing(2),
padding: theme.spacing(1),
textAlign: 'center'
},
itemContainerText: {
border: 'none',
borderRadius: 1,
margin: theme.spacing(2),
padding: theme.spacing(1),
textAlign: 'center'
}
}));
interface ContainerDescriptionProps {
containerTitle: string;
keyTheme: string;
}
const ContainerDescription = ({
keyTheme,
containerTitle
}: ContainerDescriptionProps): JSX.Element => {
const { classes } = useStyles();
const { palette } = useTheme();
const keysToRemove = [
'contrastText',
'activatedOpacity',
'focusOpacity',
'hoverOpacity',
'selectedOpacity',
'disabledOpacity'
];
return (
{containerTitle}
{toPairs(
palette[keyTheme as keyof Theme['palette']] as Record
).map(
([key, value]) =>
!includes(key, keysToRemove) && (
{key}
{value}
)
)}
);
};
const GroupedColorStatus = (): JSX.Element => {
const { classes } = useStyles();
const listStatusPalette = ['info', 'success', 'error', 'warning', 'pending'];
return (
<>
{listStatusPalette.map((status) => (
<>
>
))}
>
);
};
interface TextColorContainerProps {
containerTitle: string;
}
const TextColorContainer = ({
containerTitle
}: TextColorContainerProps): JSX.Element => {
const { classes } = useStyles();
const { palette } = useTheme();
return (
{containerTitle}
{toPairs(palette.text).map(([key, value]) => (
{key}
{value}
Hello world
))}
);
};
interface ColorStoryProps {
isGrouped?: boolean;
isText?: boolean;
paletteKey?: string;
themeMode?: ThemeMode;
title?: string;
}
export const ColorStory = ({
paletteKey = 'primary',
title = '',
isGrouped = false,
isText = false
}: ColorStoryProps): JSX.Element => {
const displayByType = (): JSX.Element => {
if (isText) {
return ;
}
return isGrouped ? (
) : (
);
};
return displayByType();
};