import { TERMINAL_THEMES, TERMINAL_FONTS, } from "@/constants/terminal-themes.ts"; import { useTheme } from "@/components/theme-provider.tsx"; interface TerminalPreviewProps { theme: string; fontSize?: number; fontFamily?: string; cursorStyle?: "block" | "underline" | "bar"; cursorBlink?: boolean; letterSpacing?: number; lineHeight?: number; } export function TerminalPreview({ theme = "termix", fontSize = 14, fontFamily = "Caskaydia Cove Nerd Font Mono", cursorStyle = "bar", cursorBlink = true, letterSpacing = 0, lineHeight = 1.2, }: TerminalPreviewProps) { const { theme: appTheme } = useTheme(); const resolvedTheme = theme === "termix" ? appTheme === "dark" || (appTheme === "system" && window.matchMedia("(prefers-color-scheme: dark)").matches) ? "termixDark" : "termixLight" : theme; return (
f.value === fontFamily)?.fallback || TERMINAL_FONTS[0].fallback, letterSpacing: `${letterSpacing}px`, lineHeight, background: TERMINAL_THEMES[resolvedTheme]?.colors.background || "var(--bg-base)", color: TERMINAL_THEMES[resolvedTheme]?.colors.foreground || "var(--foreground)", }} >
user@termix : ~ $ ls -la
drwxr-xr-x 5 user docs
-rwxr-xr-x 1 user script.sh
-rw-r--r-- 1 user README.md
user@termix : ~ $
); }