import type { editor } from 'monaco-editor';

// Vesper's VS Code UI palette. Syntax rules below use Monaco's Monarch tokens.
export const vesperTheme: editor.IStandaloneThemeData = {
	base: 'vs-dark',
	inherit: true,
	rules: [
		{ token: '', foreground: 'FFFFFF', background: '101010' },
		{ token: 'comment', foreground: '8B8B8B', fontStyle: 'italic' },
		{ token: 'keyword', foreground: 'A0A0A0' },
		{ token: 'number', foreground: 'FFC799' },
		{ token: 'string', foreground: '99FFE4' },
		{ token: 'type', foreground: 'FFC799' },
		{ token: 'class', foreground: 'FFC799' },
		{ token: 'interface', foreground: 'FFC799' },
		{ token: 'function', foreground: 'FFC799' },
		{ token: 'member', foreground: 'FFFFFF' },
		{ token: 'variable', foreground: 'FFFFFF' },
		{ token: 'constant', foreground: 'FFC799' },
		{ token: 'operator', foreground: 'A0A0A0' },
		{ token: 'namespace', foreground: 'FFC799' },
		{ token: 'predefined', foreground: 'A0A0A0' },
		{ token: 'invalid', foreground: 'FF8080' },
		{ token: 'tag', foreground: 'FFC799' },
		{ token: 'tag.html', foreground: 'FFC799' },
		{ token: 'delimiter.html', foreground: 'A0A0A0' },
		{ token: 'attribute.name', foreground: 'FFC799' },
		{ token: 'attribute.value', foreground: '99FFE4' },
		{ token: 'attribute.value.number', foreground: 'FFC799' },
		{ token: 'attribute.value.unit', foreground: 'FFC799' },
		{ token: 'attribute.value.hex', foreground: 'FFC799' },
		{ token: 'metatag.html', foreground: 'A0A0A0' },
		{ token: 'string.key.json', foreground: 'FFC799' },
		{ token: 'string.value.json', foreground: '99FFE4' },
		{ token: 'keyword.json', foreground: 'FFC799' },
		{ token: 'number.json', foreground: 'FFC799' },
		{ token: 'delimiter.json', foreground: 'A0A0A0' },
		{ token: 'delimiter.bracket.json', foreground: 'A0A0A0' },
		{ token: 'tag.css', foreground: 'FFFFFF' },
		{ token: 'attribute.name.css', foreground: 'FFFFFF' },
		{ token: 'attribute.value.css', foreground: 'FFFFFF' },
		{ token: 'attribute.value.number.css', foreground: 'FFC799' },
		{ token: 'attribute.value.unit.css', foreground: 'FFC799' },
		{ token: 'attribute.value.hex.css', foreground: 'FFC799' },
		{ token: 'string.css', foreground: '99FFE4' },
		{ token: 'delimiter.css', foreground: 'A0A0A0' },
		{ token: 'delimiter.bracket.css', foreground: 'A0A0A0' },
		{ token: 'delimiter.parenthesis.css', foreground: 'A0A0A0' },
		{ token: 'delimiter', foreground: 'A0A0A0' },
		{ token: 'delimiter.bracket', foreground: 'A0A0A0' },
		{ token: 'delimiter.parenthesis', foreground: 'A0A0A0' },
	],
	colors: {
		'editor.background': '#101010',
		'editor.foreground': '#FFF',
		'editor.selectionBackground': '#FFFFFF25',
		'editor.selectionHighlightBackground': '#FFFFFF25',
		'editorLineNumber.foreground': '#505050',
		'editorGroupHeader.tabsBackground': '#101010',
		'editorWidget.background': '#101010',
		'editorWarning.foreground': '#FFC799',
		'editorError.foreground': '#FF8080',
		'editorOverviewRuler.border': '#101010',
		'editorGutter.addedBackground': '#99FFE4',
		'editorGutter.deletedBackground': '#FF8080',
		'editorGutter.modifiedBackground': '#FFC799',
		'diffEditor.insertedTextBackground': '#99FFE415',
		'diffEditor.insertedLineBackground': '#99FFE415',
		'diffEditor.removedTextBackground': '#FF808015',
		'diffEditor.removedLineBackground': '#FF808015',
		'editorInlayHint.foreground': '#A0A0A0',
		'editorInlayHint.background': '#1C1C1C',
		'sideBar.background': '#101010',
		'sideBarTitle.foreground': '#A0A0A0',
		'sideBarSectionHeader.foreground': '#A0A0A0',
		'sideBarSectionHeader.background': '#101010',
		'activityBar.background': '#101010',
		'activityBar.foreground': '#A0A0A0',
		'activityBarBadge.background': '#FFC799',
		'activityBarBadge.foreground': '#000',
		'titleBar.activeBackground': '#101010',
		'titleBar.inactiveBackground': '#101010',
		'titleBar.activeForeground': '#7E7E7E',
		'titleBar.inactiveForeground': '#707070',
		'tab.border': '#101010',
		'tab.activeBackground': '#161616',
		'tab.activeBorder': '#FFC799',
		'tab.inactiveBackground': '#101010',
		'statusBar.debuggingForeground': '#FFF',
		'statusBar.debuggingBackground': '#FF7300',
		'statusBar.background': '#101010',
		'statusBar.noFolderBackground': '#101010',
		'statusBar.foreground': '#A0A0A0',
		'statusBarItem.remoteBackground': '#FFC799',
		'statusBarItem.remoteForeground': '#000',
		'list.activeSelectionForeground': '#FFC799',
		'list.inactiveSelectionBackground': '#232323',
		'badge.background': '#FFC799',
		'badge.foreground': '#000',
		'button.background': '#FFC799',
		'button.hoverBackground': '#FFCFA8',
		'button.foreground': '#000',
		'focusBorder': '#FFC799',
		'icon.foreground': '#A0A0A0',
		'input.background': '#1C1C1C',
		'list.activeSelectionBackground': '#232323',
		'list.hoverBackground': '#282828',
		'list.errorForeground': '#FF8080',
		'list.highlightForeground': '#FFC799',
		'selection.background': '#666',
		'editorBracketHighlight.foreground1': '#A0A0A0',
		'editorBracketHighlight.foreground2': '#A0A0A0',
		'editorBracketHighlight.foreground3': '#A0A0A0',
		'editorBracketHighlight.foreground4': '#A0A0A0',
		'editorBracketHighlight.foreground5': '#A0A0A0',
		'editorBracketHighlight.foreground6': '#A0A0A0',
		'editorBracketHighlight.unexpectedBracket.foreground': '#FF8080',
		'textLink.foreground': '#FFC799',
		'textLink.activeForeground': '#FFCFA8',
		'editorHoverWidget.background': '#161616',
		'editorHoverWidget.border': '#282828',
		'scrollbarSlider.background': '#34343480',
		'scrollbarSlider.hoverBackground': '#343434',
		'settings.modifiedItemIndicator': '#FFC799',
		'editorCursor.foreground': '#FFC799',
		'editorIndentGuide.background': '#1C1C1C',
		'editorIndentGuide.activeBackground': '#343434',
		'editorLineNumber.activeForeground': '#A0A0A0',
		'editor.inactiveSelectionBackground': '#FFFFFF25',
		'editor.lineHighlightBackground': '#161616',
		'editor.wordHighlightBackground': '#FFFFFF25',
		'editor.wordHighlightStrongBackground': '#FFFFFF25',
		'editor.findMatchBackground': '#FFC79944',
		'editor.findMatchHighlightBackground': '#FFC79922',
	},
};
