astro-terminal-themes
Version:
Astro integration to convert terminal themes (Ghostty, Warp, etc.) to Tailwind CSS themes
67 lines (66 loc) • 1.91 kB
TypeScript
import type { AstroIntegration } from "astro";
export interface TerminalThemeIntegrationOptions {
themesDir?: string;
outputFile?: string;
defaultTheme?: string;
semanticMapping?: boolean;
}
export interface ThemeAdapter {
name: string;
extensions: string[];
parse(content: string): ThemeColors;
}
export interface ThemeColors {
background: string;
foreground: string;
cursor?: string;
selection?: {
background: string;
foreground?: string;
};
colors: {
black: string;
red: string;
green: string;
yellow: string;
blue: string;
magenta: string;
cyan: string;
white: string;
brightBlack: string;
brightRed: string;
brightGreen: string;
brightYellow: string;
brightBlue: string;
brightMagenta: string;
brightCyan: string;
brightWhite: string;
};
}
export declare class GhosttyAdapter implements ThemeAdapter {
name: string;
extensions: string[];
parse(content: string): ThemeColors;
private normalizeColor;
}
export declare class WarpAdapter implements ThemeAdapter {
name: string;
extensions: string[];
parse(content: string): ThemeColors;
private normalizeColor;
}
export declare class ThemeProcessor {
private adapters;
constructor();
registerAdapter(adapter: ThemeAdapter): void;
discoverThemes(themesDir: string): Promise<Array<{
name: string;
path: string;
adapter: ThemeAdapter;
}>>;
loadTheme(themePath: string, adapter: ThemeAdapter): Promise<ThemeColors>;
generateTailwindTheme(colors: ThemeColors, semanticMapping?: boolean): string;
private generateSemanticTheme;
private generateDirectTheme;
}
export default function terminalThemeIntegration(options?: TerminalThemeIntegrationOptions): AstroIntegration;