-
-
{de ? 'Die Schleife' : 'The Loop'}
+ {/* Closing loop: violet-tinted hero panel with the diagram on the right */}
+
+
+
+
+
+
+
{de ? 'Die Schleife · Always in Sync' : 'The Loop · Always in Sync'}
+
+
{d.hub.title}
+
{d.hub.body}
+
+
+
-
{d.hub.title}
-
{d.hub.body}
-
)
@@ -252,7 +262,7 @@ export function PrintProductPage({ products, lang, pageNum, totalPages, versionN
{de
- ? 'Starter <10 MA: 3.600 €/J · Professional 10–250: 15–40k €/J · Enterprise 250+: ab 50k €/J. Mitarbeiterbasiert. Standard: BSI-Cloud DE. Optional: Mac Mini/Studio für absolute Privacy bei Kleinstunternehmen.'
+ ? 'Starter <10 MA: 3.600 €/J · Professional 10–250: 15–40k €/J · Enterprise 250+: ab 50k €/J. Mitarbeiterbasiert. Standard: BSI-Cloud DE. Optional: Mac Mini/Studio für absolute Privacy bei Kleinunternehmen.'
: 'Starter <10 emp: €3,600/yr · Professional 10–250: €15–40k/yr · Enterprise 250+: from €50k/yr. Employee-based. Standard: BSI cloud DE. Optional: Mac Mini/Studio for absolute privacy for micro businesses.'}
@@ -275,22 +285,62 @@ const STEPS_EN = [
{ n: '04', t: 'Prepare for audit', d: 'All evidence, documents and risk assessments at the push of a button. Post-audit deviations automatically tracked, deadlines, tickets, escalation.' },
]
+const TIMELINE_DAYS_DE = ['Tag 0', 'Tag 3', 'Tag 7', 'Tag 14', 'Tag 30']
+const TIMELINE_DAYS_EN = ['Day 0', 'Day 3', 'Day 7', 'Day 14', 'Day 30']
+const TIMELINE_LABELS_DE = ['Vertrag', 'Onboarding-Call', 'Repos angebunden', 'VVT/TOMs auto', 'audit-ready']
+const TIMELINE_LABELS_EN = ['Contract', 'Onboarding call', 'Repos connected', 'RoPA/TOMs auto', 'audit-ready']
+
export function PrintHowItWorksPage({ lang, pageNum, totalPages, versionName }: SlideBase) {
const de = lang === 'de'
const steps = de ? STEPS_DE : STEPS_EN
+ const days = de ? TIMELINE_DAYS_DE : TIMELINE_DAYS_EN
+ const labels = de ? TIMELINE_LABELS_DE : TIMELINE_LABELS_EN
+ const MONO = "'JetBrains Mono', ui-monospace, monospace"
+
return (
-
-
+ {/* 4-step rail: numbered violet circles on a horizontal connector line,
+ title + body underneath each. Replaces the floating-arrow StepStrip. */}
+
+ {/* connector line (behind the circles) */}
+
+
+ {steps.map((s, i) => (
+
+ {/* number circle on the rail */}
+
{s.n}
+
{s.t}
+
{s.d}
+
+ ))}
+
-
-
- {de
- ? 'Tag 0: Vertrag · Tag 3: Onboarding-Call · Tag 7: erste Repos angebunden · Tag 14: erste automatische VVT/TOMs · Tag 30: audit-ready Status erreicht.'
- : 'Day 0: contract · Day 3: onboarding call · Day 7: first repos connected · Day 14: first automated RoPA/TOMs · Day 30: audit-ready status achieved.'}
-
+ {/* Fill space between steps and footer with a visual timeline */}
+
+
+
+
+ {de ? 'Time-to-Value · Median 14 Tage · Worst Case 28 Tage' : 'Time-to-Value · Median 14 days · Worst case 28 days'}
+
+ {/* dotted timeline with 5 day markers */}
+
+ {/* the rail */}
+
+
+ {days.map((d, i) => (
+
+ {/* day marker pill */}
+
{d}
+ {/* dot on rail */}
+
+ {/* label below */}
+
{labels[i]}
+
+ ))}
+
+
)