// Hero visual — stylized automation workflow mockup. // Three variants selectable via prop. All use accent color via CSS var. function HeroVisual({ variant = "workflow" }) { if (variant === "workflow") return ; if (variant === "metrics") return ; return ; } /* ---------- VARIANT 1: stylized n8n-like workflow ---------- */ function WorkflowMockup() { const nodeStyle = { position: "absolute", background: "var(--bg-card)", border: "1px solid var(--border-strong)", borderRadius: 14, padding: "12px 14px", fontSize: 12.5, fontWeight: 500, letterSpacing: "-0.01em", boxShadow: "0 6px 24px -8px rgba(0,0,0,0.4)", backdropFilter: "blur(12px)", display: "flex", alignItems: "center", gap: 10, minWidth: 168, }; const dot = (color) => ({ width: 8, height: 8, borderRadius: "50%", background: color, boxShadow: `0 0 10px ${color}`, }); return (
{/* Radial bg glow */}
{/* SVG connectors */} {/* Trigger -> AI */} {/* AI -> Email */} {/* AI -> CRM */} {/* Trigger2 -> AI */} {/* Nodes */}
Trigger
Nouveau lead
Trigger
Email entrant
{/* Center AI node — featured */}
Agent IA
Qualification
Action
Envoi email
Action
MAJ CRM
{/* Bottom status pill */}
workflow.run · 1 247 exécutions / mois
); } /* ---------- VARIANT 2: live metrics dashboard ---------- */ function MetricsMockup() { return (
{/* Header */}
Activité 30j
2 184 tâches automatisées
{[0,1,2].map(i => )}
{/* Big number */}
+312%
↗ vs. T-1
{/* Bar chart */}
{[28, 42, 38, 56, 48, 64, 58, 72, 68, 82, 76, 92].map((h, i) => (
= 8 ? "var(--accent)" : "var(--border-strong)", borderRadius: "3px 3px 0 0", opacity: i >= 8 ? 1 : 0.7, }}/> ))}
{/* Stats grid */}
{[ { label: "Heures gagnées", value: "184h" }, { label: "Tâches/jour", value: "73" }, { label: "Erreurs", value: "0,2%" }, ].map(s => (
{s.value}
{s.label}
))}
); } /* ---------- VARIANT 3: geometric / abstract ---------- */ function GeometricMockup() { return (
{/* Concentric arcs */} {[180, 140, 100, 60].map((r, i) => ( ))} {/* Accent arc */} {/* Grid */} {Array.from({ length: 9 }).map((_, i) => ( ))} {Array.from({ length: 9 }).map((_, i) => ( ))} {/* Floating dots */} {[ [120, 120], [280, 130], [200, 200], [310, 270], [110, 290], [240, 320] ].map(([x,y], i) => ( ))} {/* Connecting lines */} {/* Floating label */}
node.lymorya / 12 actifs
); } Object.assign(window, { HeroVisual, WorkflowMockup, MetricsMockup, GeometricMockup });