import type { ThemeProps } from "../../types";
import logo from "../../assets/icon.png";
import "./geist.css";
export default function GeistTheme({ config, state }: ThemeProps) {
const { step, progress, installPath } = state;
const { texts, primaryColor } = config;
const getStatusText = () => {
for (let i = texts.progressFrames.length - 1; i >= 0; i--) {
if (progress <= texts.progressFrames[i].limit)
return texts.progressFrames[i].text;
}
return texts.progressFrames[texts.progressFrames.length - 1]?.text ?? "";
};
const cssVars: React.CSSProperties = {
// @ts-expect-error -- Custom CSS properties
"--g-accent": primaryColor,
};
return (
{/* Subtle top glow */}
{config.appDisplayName}
v{config.appVersion}
{step === 1 && (
{texts.welcomeTitle}
{texts.welcomeSubtitle}
{installPath}
)}
{step === 2 && (
{getStatusText()}
{progress}%
)}
{step === 3 && (
{texts.successTitle}
{texts.successSubtitle}
{texts.features.length > 0 && (
{texts.features.map(f => (
{f.label}
))}
)}
)}
);
}