// Sections: Logos strip, Stats, Solutions grid, Why
function LogosStrip({ t }) {
return (
{t.logos_label}
{t.logos.map((l, i) => (
{l.name}
))}
);
}
function Stats({ t }) {
return (
{t.stats.map((s, i) => (
{s.value}
{s.label}
{s.sub}
))}
);
}
function SectionHeader({ eyebrow, title, subtitle, align = 'left' }) {
return (
{eyebrow}
{title}
{subtitle &&
{subtitle}
}
);
}
function Solutions({ t, density }) {
return (
{t.solutions.map((s, i) => (
))}
);
}
function SolutionCard({ tag, title, desc, span, large, density, icon }) {
const [hov, setHov] = useState(false);
return (
setHov(true)}
onMouseLeave={() => setHov(false)}
style={{
gridColumn: `span ${span}`,
background: 'var(--bg-elev)',
border: '1px solid var(--border)',
borderRadius: 'var(--radius-lg)',
padding: density === 'dense' ? 22 : 28,
minHeight: large ? 340 : 240,
display: 'flex', flexDirection: 'column',
transition: 'all 200ms ease',
borderColor: hov ? 'var(--border-strong)' : 'var(--border)',
position: 'relative', overflow: 'hidden',
boxShadow: hov ? '0 20px 40px -20px color-mix(in oklch, var(--brand) 30%, transparent)' : 'none',
transform: hov ? 'translateY(-2px)' : 'none',
}}>
{/* corner glow */}
{title}
{desc}
);
}
function IconGlyph({ name }) {
const s = { width: 18, height: 18, stroke: 'var(--brand)', strokeWidth: 1.5, fill: 'none', strokeLinecap: 'round', strokeLinejoin: 'round' };
if (name === 'agent') return ;
if (name === 'shield') return ;
if (name === 'flow') return ;
if (name === 'chart') return ;
return null;
}
function Why({ t }) {
return (
{t.why.map((w, i) => (
))}
);
}
Object.assign(window, { LogosStrip, Stats, Solutions, SectionHeader, Why, IconGlyph });