import { existsSync, readFileSync } from "fs"; interface ThemeVars { fgColor: string; bgColor: string; accentColor: string; borderColor: string; errorColor: string; borderRadius: string; fontFamily: string; darkBgColor: string; darkFgColor: string; darkBorderColor: string; darkErrorColor: string; } function getThemeVars(): ThemeVars { return { fgColor: process.env.THEME_FG_COLOR || "#2C2C2C", bgColor: process.env.THEME_BG_COLOR || "#F5F3EF", accentColor: process.env.THEME_ACCENT_COLOR || "#3A5A40", borderColor: process.env.THEME_BORDER_COLOR || "#D5D1C8", errorColor: process.env.THEME_ERROR_COLOR || "#8B3A3A", borderRadius: process.env.THEME_BORDER_RADIUS || "6px", fontFamily: process.env.THEME_FONT_FAMILY || "system-ui, sans-serif", darkBgColor: process.env.THEME_DARK_BG_COLOR || "#1A1A1A", darkFgColor: process.env.THEME_DARK_FG_COLOR || "#E5E5E5", darkBorderColor: process.env.THEME_DARK_BORDER_COLOR || "#3A3A3A", darkErrorColor: process.env.THEME_DARK_ERROR_COLOR || "#E57373", }; } function getCustomCss(): string { const cssPath = process.env.THEME_CSS_PATH; if (!cssPath) return ""; try { if (existsSync(cssPath)) { return readFileSync(cssPath, "utf-8"); } } catch { console.warn(`Failed to read custom CSS file: ${cssPath}`); } return ""; } export function generateStyleBlock(): string { const t = getThemeVars(); const customCss = getCustomCss(); return ``; } export function page(body: string, headExtra = ""): string { return `