2025-08-14 21:48:38 +01:00
|
|
|
export const LightThemes = ['light'] as const
|
2024-07-31 21:42:55 +02:00
|
|
|
|
2025-08-14 21:48:38 +01:00
|
|
|
export type LightTheme = (typeof LightThemes)[number]
|
2024-07-31 21:42:55 +02:00
|
|
|
|
2025-08-14 21:48:38 +01:00
|
|
|
export const DarkThemes = ['dark', 'oled', 'retro'] as const
|
2024-07-31 21:42:55 +02:00
|
|
|
|
2025-08-14 21:48:38 +01:00
|
|
|
export type DarkTheme = (typeof DarkThemes)[number]
|
2024-07-31 21:42:55 +02:00
|
|
|
|
2025-08-14 21:48:38 +01:00
|
|
|
export type Theme = LightTheme | DarkTheme
|
2024-07-31 21:42:55 +02:00
|
|
|
|
|
|
|
|
export function isLightTheme(theme: Theme | (string & Record<never, never>)): theme is LightTheme {
|
2025-08-14 21:48:38 +01:00
|
|
|
return LightThemes.includes(theme as any)
|
2024-07-31 21:42:55 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export function isDarkTheme(theme: Theme | (string & Record<never, never>)): theme is DarkTheme {
|
2025-08-14 21:48:38 +01:00
|
|
|
return DarkThemes.includes(theme as any)
|
2024-07-31 21:42:55 +02:00
|
|
|
}
|
|
|
|
|
|
2025-08-14 21:48:38 +01:00
|
|
|
export type ThemeType = 'light' | 'dark'
|
2024-07-31 21:42:55 +02:00
|
|
|
|
|
|
|
|
export function getThemeType(
|
2025-08-14 21:48:38 +01:00
|
|
|
theme: Theme | (string & Record<never, never>),
|
|
|
|
|
): ThemeType | 'unknown' {
|
|
|
|
|
if (isLightTheme(theme)) return 'light'
|
|
|
|
|
if (isDarkTheme(theme)) return 'dark'
|
|
|
|
|
return 'unknown'
|
2024-07-31 21:42:55 +02:00
|
|
|
}
|