Files

49 lines
1.5 KiB
TypeScript
Raw Permalink Normal View History

import type { TerminalTheme } from '../../domain/models';
import { classicTerminalThemes } from './terminalThemes/classic';
import { systemPresetTerminalThemes } from './terminalThemes/systemPresets';
import { coreTerminalThemes } from './terminalThemes/core';
import { extraTerminalThemes } from './terminalThemes/extra';
import { modernTerminalThemes } from './terminalThemes/modern';
import { uiMatchTerminalThemes } from './terminalThemes/uiMatch';
// Re-export for convenience
export type TerminalThemeConfig = TerminalTheme;
const UI_MATCH_TERMINAL_THEME_IDS = new Set([
'ui-snow',
'ui-pure-white',
'ui-ivory',
'ui-mist',
'ui-mint',
'ui-sand',
'ui-lavender',
'ui-pure-black',
'ui-midnight',
'ui-deep-blue',
'ui-vscode',
'ui-graphite',
'ui-obsidian',
'ui-forest',
]);
export const TERMINAL_THEMES: TerminalTheme[] = [
...coreTerminalThemes,
...uiMatchTerminalThemes,
...modernTerminalThemes,
...classicTerminalThemes,
...systemPresetTerminalThemes,
...extraTerminalThemes,
];
const TERMINAL_THEME_BY_ID = new Map(TERMINAL_THEMES.map((theme) => [theme.id, theme]));
export const getBuiltinTerminalThemeById = (themeId: string): TerminalTheme | undefined =>
TERMINAL_THEME_BY_ID.get(themeId);
export const isUiMatchTerminalThemeId = (themeId: string): boolean =>
UI_MATCH_TERMINAL_THEME_IDS.has(themeId);
export const USER_VISIBLE_TERMINAL_THEMES: TerminalTheme[] = TERMINAL_THEMES.filter(
(theme) => !isUiMatchTerminalThemeId(theme.id),
);