import { createCypherTheme, } from './lang-cypher/createCypherTheme';
import { tokens } from './ndlTokensCopy';
const lightDiffColors = {
    insertedLine: tokens.colors.forest['10'],
    insertedText: tokens.colors.forest['15'],
    deletedLine: tokens.colors.hibiscus['10'],
    deletedText: tokens.colors.hibiscus['15'],
};
const darkDiffColors = {
    insertedLine: tokens.colors.forest['65'],
    insertedText: tokens.colors.forest['55'],
    deletedLine: tokens.colors.hibiscus['65'],
    deletedText: tokens.colors.hibiscus['55'],
};
export const lightThemeConstants = {
    dark: false,
    diffColors: lightDiffColors,
    editorSettings: {
        background: '#FEFEFE',
        foreground: '#545454',
        gutterForeground: '#a3a7ae',
        selection: tokens.colors.neutral['20'],
        textMatchingSelection: tokens.colors.lavender['15'],
        cursor: '#000000',
        autoCompletionPanel: {
            selectedColor: '#cce2ff',
            matchingTextColor: '#0066bf',
            backgroundColor: '#F3F4F5',
        },
        searchPanel: {
            background: '#FEFEFE',
            text: '#545454',
            buttonHoverBackground: tokens.theme.light.palette.neutral.bg.strong,
        },
    },
    highlightStyles: {
        comment: tokens.palette.code.light.comment,
        keyword: tokens.palette.code.light.keyword,
        keywordLiteral: tokens.palette.code.light.keywordLiteral,
        label: tokens.palette.code.light.label,
        predicateFunction: tokens.palette.code.light.predicateFunction,
        function: tokens.palette.code.light.function,
        procedure: tokens.palette.code.light.procedure,
        stringLiteral: tokens.palette.code.light.stringLiteral,
        numberLiteral: tokens.palette.code.light.numberLiteral,
        booleanLiteral: tokens.palette.code.light.booleanLiteral,
        operator: tokens.palette.code.light.operator,
        property: tokens.palette.code.light.property,
        paramValue: tokens.palette.code.light.paramValue,
    },
};
export const darkThemeConstants = {
    dark: true,
    diffColors: darkDiffColors,
    editorSettings: {
        background: '#242936',
        foreground: '#cccac2',
        gutterForeground: '#8a919966',
        selection: '#409fff40',
        textMatchingSelection: '#695380',
        cursor: tokens.colors.neutral['10'],
        autoCompletionPanel: {
            selectedColor: '#062f4a',
            matchingTextColor: '#0097fb',
            backgroundColor: '#1C212B',
        },
        searchPanel: {
            background: tokens.theme.dark.palette.neutral.bg.default,
            text: tokens.theme.dark.palette.neutral.text.default,
            buttonHoverBackground: tokens.theme.dark.palette.neutral.bg.strong,
        },
    },
    highlightStyles: {
        comment: tokens.palette.code.dark.comment,
        keyword: tokens.palette.code.dark.keyword,
        keywordLiteral: tokens.palette.code.dark.keywordLiteral,
        label: tokens.palette.code.dark.label,
        predicateFunction: tokens.palette.code.dark.predicateFunction,
        function: tokens.palette.code.dark.function,
        procedure: tokens.palette.code.dark.procedure,
        stringLiteral: tokens.palette.code.dark.stringLiteral,
        numberLiteral: tokens.palette.code.dark.numberLiteral,
        booleanLiteral: tokens.palette.code.dark.booleanLiteral,
        operator: tokens.palette.code.dark.operator,
        property: tokens.palette.code.dark.property,
        paramValue: tokens.palette.code.dark.paramValue,
    },
};
export const ayuLightTheme = ({ inheritBgColor }) => {
    return createCypherTheme({ ...lightThemeConstants, inheritBgColor });
};
export const ayuDarkTheme = ({ inheritBgColor }) => {
    return createCypherTheme({ ...darkThemeConstants, inheritBgColor });
};
export function getThemeExtension(theme, inheritBgColor) {
    switch (theme) {
        case 'light':
            return ayuLightTheme({ inheritBgColor });
        case 'dark':
            return ayuDarkTheme({ inheritBgColor });
        case 'none':
            return [];
        default:
            return theme;
    }
}
//# sourceMappingURL=themes.js.map