@mintlify/common
Version:
Commonly shared code within Mintlify
78 lines (77 loc) • 2.36 kB
JavaScript
export const DEFAULT_DARK_THEME = 'dark-plus';
export const DEFAULT_LIGHT_THEME = 'github-light-default';
const getThemeModeFromTheme = (theme) => {
const lightThemes = [
'catppuccin-latte',
'everforest-light',
'github-light',
'github-light-default',
'github-light-high-contrast',
'gruvbox-light-hard',
'gruvbox-light-medium',
'gruvbox-light-soft',
'kanagawa-lotus',
'light-plus',
'material-theme-lighter',
'min-light',
'one-light',
'rose-pine-dawn',
'slack-ochin',
'snazzy-light',
'solarized-light',
'vitesse-light',
];
if (lightThemes.includes(theme)) {
return 'system';
}
return 'dark';
};
export const codeStylingToThemeOrThemes = (codeStylingFromConfig) => {
if (typeof codeStylingFromConfig === 'object' &&
'theme' in codeStylingFromConfig &&
typeof codeStylingFromConfig.theme === 'object') {
return {
themes: codeStylingFromConfig.theme,
};
}
if (typeof codeStylingFromConfig === 'object' &&
'theme' in codeStylingFromConfig &&
typeof codeStylingFromConfig.theme === 'string') {
return {
themes: {
light: codeStylingFromConfig.theme,
dark: codeStylingFromConfig.theme,
},
};
}
if (codeStylingFromConfig === 'dark') {
return {
themes: {
light: DEFAULT_DARK_THEME,
dark: DEFAULT_DARK_THEME,
},
};
}
return {
themes: {
light: DEFAULT_LIGHT_THEME,
dark: DEFAULT_DARK_THEME,
},
};
};
export const getCodeStylingEnum = (codeStylingFromConfig) => {
if (codeStylingFromConfig === 'system' || codeStylingFromConfig === 'dark') {
return codeStylingFromConfig;
}
if (typeof codeStylingFromConfig === 'object' &&
'theme' in codeStylingFromConfig &&
typeof codeStylingFromConfig.theme === 'object') {
return 'system';
}
if (typeof codeStylingFromConfig === 'object' &&
'theme' in codeStylingFromConfig &&
typeof codeStylingFromConfig.theme === 'string') {
return getThemeModeFromTheme(codeStylingFromConfig.theme);
}
return 'system';
};