// import { ThemeOptions } from '@mui/material/styles';
/**
 * @deprecated Please use the new {@link ThemeOptions} type.
 */
interface ThemeOptionsLegacy {
    palette: Palette;
    typography: Typography;
    shadows?: Shadows;
    border?: StringWithNone;
    spacing?: Spacing;
    shape?: Shape;
}

interface Shape {
    xsBorderRadius?: string;
    borderRadius?: string;
    smBorderRadius?: string;
    lgBorderRadius?: string;
}
interface Spacing {
    xsSpacing: string;
    smSpacing?: string;
    main?: string;
    lgSpacing?: string;
}
interface Palette {
    primary?: Action;
    success?: Action;
    info?: Action;
    error?: Action;
    warning?: Action;
    text?: Action;
}
interface Action {
    main: string;
    active?: string;
    hover?: string;
    hoverOpacity?: number;
    selected?: string;
    selectedOpacity?: number;
    disabled?: string;
    disabledOpacity?: number;
    disabledBackground?: string;
    focus?: string;
    focusOpacity?: number;
    activatedOpacity?: number;
}
interface Typography {
    fontSize?: string;
    fontFamily?: string;
    xsFontSize?: string;
    lgFontSize?: string;
    fontWeight?: number;
    xsFontWeight?: number;
    lineHeight?: string;
    lgFontWeight?: number;
    button?: Font;
    body1?: Font;
    body2?: Font;
    h1?: Font;
    h2?: Font;
    h3?: Font;
    h4?: Font;
    h5?: Font;
    page?: Font;
    quote?: Font;
    callout?: Font;
}

interface Shadows {
    none: 'none';
    shadow1: string;
}

type StringWithNone = [
    'none',
    string?,
    string?,
    string?,
    string?,
    string?,
    string?,
    string?,
    string?,
    string?,
    string?,
    string?,
    string?,
    string?,
    string?,
    string?,
    string?,
    string?,
    string?,
    string?,
    string?,
    string?,
    string?,
    string?,
    string?
];
interface Font {
    fontSize?: string;
    lineHeight?: string;
    fontFamily?: string;
    fontWeight?: number;
}

export const Theme = {
    palette: {
        /**
         * figma: white
         */
        white: '#ffffff',
        /**
         * figma: icons
         */
        icons: '#98ACBD',
        /**
         * figma: T-menu
         */
        menu: '#4C6275',
        /** separator line color for menus and icons */
        menuSeparator: '#E0E6EB',
        /**
         * figma: hover
         */
        hover: '#F5F7F8',
        /**
         * figma: tag hover
         */
        tagHover: '#E0E6EB',
        borderColor: '#E0E6EB',
        placeholderColor: '#E0E6EB',
        /**
         * figma: brand color
         */
        primary: '#3E6FDB',
        /**
         * figma: operation failed
         */
        error: '#F1675E',
        /**
         * figma: warning color
         */
        warning: '#F1BE5E',
        /**
         * figma: operation succeeded
         */
        success: '#40DF9B',
        /**
         * figma: text
         */
        primaryText: '#3A4C5C',
        /**
         * figma: subtext color
         */
        secondaryText: '#4C6275',
        /**
         * selected
         */
        textSelected: 'rgba(152, 172, 189, 0.1)',
        /**
         * text hover
         */
        textHover: '#ECF1FB',
    },
    typography: {
        button: {
            fontSize: '16px',
        },
        body1: {
            fontSize: '16px',
            lineHeight: '22px',
            fontWeight: 400,
            fontFamily: 'PingFang SC',
            color: '#3A4C5C',
        },
        h1: {
            fontSize: '28px',
            lineHeight: '40px',
            fontWeight: 600,
        },
        h2: {
            fontSize: '24px',
            lineHeight: '34px',
            fontWeight: 600,
        },
        h3: {
            fontSize: '20px',
            lineHeight: '28px',
            fontWeight: 600,
        },
        h4: {
            fontSize: '16px',
            lineHeight: '22px',
            fontWeight: 600,
        },
        page: {
            fontSize: '36px',
            lineHeight: '44px',
            fontWeight: 600,
        },
        callout: {
            fontSize: '36px',
            lineHeight: '54px',
        },
        quote: {
            fontSize: '36px',
            lineHeight: '54px',
        },
        tooltip: {
            fontSize: '12px',
            lineHeight: '18px',
        },
        sm: {
            fontSize: '14px',
            lineHeight: '20px',
        },
        xs: {
            fontSize: '12px',
            lineHeight: '18px',
        },
        base: {
            fontSize: '16px',
            lineHeight: '22px',
        },
        articleTitle: {
            fontSize: '36px',
            lineHeight: '54px',
            fontWeight: 600,
        },
    },
    shadows: {
        none: 'none',
        shadow1:
            '0px 1px 10px -6px rgba(24, 39, 75, 0.08), 0px 3px 16px -6px rgba(24, 39, 75, 0.04)',
        shadow2:
            '0px 6px 16px -8px rgba(0,0,0,0.08), 0px 9px 14px 0px rgba(0,0,0,0.05), 0px 12px 24px 16px rgba(0,0,0,0.03)',
    },
    border: ['none'],
    spacing: {
        xsSpacing: '4px',
        smSpacing: '12px',
        main: '16px',
        lgSpacing: '20px',
        iconPadding: '6px',
    },
    shape: {
        borderRadius: '10px',
        xsBorderRadius: '4px',
        smBorderRadius: '8px',
        lgBorderRadius: '20px',
    },
    zIndex: {
        header: 100,
        popover: 200,
        tooltip: 300,
        modal: 400,
        message: 500,
    },
} as const;

export type ThemeOptions = typeof Theme;
