/* global React, Icon, BrandMark */ const { useState: useStateS } = React; // ---------- Product screenshots ---------- function ShotFrame({ src, alt, aspect = "3420 / 1970" }) { return (
{alt}
); } function ShotMobile({ src, alt }) { return (
{alt}
); } function MockTime() { return ; } function MockShift() { return ; } function MockRufbereitschaft() { // Portrait screenshot — render in a constrained portrait frame so full content is visible. return (
Rufbereitschaft konfigurieren — Vergütungsregeln, Pauschalen, Zuschläge
); } function MockAbsence() { return ; } function MockReport() { return ; } // Real screenshots for the Geräteplanung carousel + KI-Vorschlag still shot. const PLAN_MOCK_STYLES = [ '.plan-carousel { position: relative; width: 100%; display: flex; flex-direction: column; gap: 14px; }', '.plan-carousel-frame { position: relative; width: 100%; aspect-ratio: 3420 / 1970; border: 1px solid var(--bd); border-radius: 12px; overflow: hidden; background: white; box-shadow: 0 28px 60px -32px rgba(20,14,4,0.22), 0 2px 6px rgba(20,14,4,0.04); }', '.plan-carousel-frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: top center; opacity: 0; transition: opacity 280ms ease; }', '.plan-carousel-frame img.is-active { opacity: 1; }', '.plan-carousel-caption { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 13px; color: var(--mut-fg); line-height: 1.4; }', '.plan-carousel-caption .step { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--pri); background: hsl(239 84% 67% / 0.1); padding: 4px 10px; border-radius: 99px; border: 1px solid hsl(239 84% 67% / 0.25); }', '.plan-carousel-caption .label { font-weight: 600; color: hsl(20 14% 22%); font-size: 13.5px; }', '.plan-carousel-nav { display: flex; align-items: center; gap: 12px; margin-left: auto; }', '.plan-carousel-arrow { width: 32px; height: 32px; border-radius: 50%; background: white; border: 1px solid var(--bd); display: inline-flex; align-items: center; justify-content: center; color: hsl(20 14% 32%); cursor: pointer; transition: background 120ms ease, border-color 120ms ease, color 120ms ease; }', '.plan-carousel-arrow:hover { background: hsl(60 5% 96%); border-color: hsl(20 6% 70%); color: var(--fg); }', '.plan-carousel-arrow svg { width: 16px; height: 16px; stroke: currentColor; stroke-width: 2; fill: none; stroke-linecap: round; stroke-linejoin: round; }', '.plan-carousel-dots { display: inline-flex; gap: 6px; }', '.plan-carousel-dot { width: 6px; height: 6px; border-radius: 50%; background: hsl(20 6% 80%); border: 0; padding: 0; cursor: pointer; transition: background 120ms ease, transform 120ms ease; }', '.plan-carousel-dot.is-active { background: var(--pri); transform: scale(1.4); }', '.plan-carousel-dot:hover { background: hsl(20 6% 60%); }', '.plan-carousel-dot.is-active:hover { background: var(--pri); }', '.plan-single { width: 100%; display: flex; justify-content: center; padding: 4px 0; }', '.plan-single-frame { max-width: 420px; width: 100%; border: 1px solid var(--bd); border-radius: 14px; overflow: hidden; background: white; box-shadow: 0 28px 60px -32px rgba(20,14,4,0.22), 0 2px 6px rgba(20,14,4,0.04); }', '.plan-single-frame img { width: 100%; height: auto; display: block; }', ].join('\n'); function MockDevices() { const slides = [ { src: 'src/assets/einsatzplanung.png', step: 'Wochenplan', label: 'Einsatzplanung — Wochenansicht mit Belegung pro Gerät' }, { src: 'src/assets/einsatzplanung-einstellungen-1.png', step: 'Einstellung 1/3', label: 'Eigene Gerätekategorien und Geräte je Standort' }, { src: 'src/assets/einsatzplanung-einstellungen-2.png', step: 'Einstellung 2/3', label: 'Bearbeitungszeiten je Standort und Geräteart' }, { src: 'src/assets/einsatzplanung-einstellungen-3.png', step: 'Einstellung 3/3', label: 'Mitarbeiter-Qualifikationen pro Gerätetyp' }, ]; const [i, setI] = useStateS(0); const n = slides.length; const go = (delta) => setI((p) => (p + delta + n) % n); return (
{slides.map((s, idx) => ( {s.label} ))}
{slides[i].step} {slides[i].label}
{slides.map((_, idx) => (
); } function MockAI() { return (
KI-Vorschlag — Standort, Basis, Hinweise und automatisch berücksichtigte Kriterien
); } // ---------- Sections ---------- function VerticalFit({ t }) { return (
{t.fit.eyebrow}

{t.fit.h2}

{t.fit.sub}

{t.fit.cards.map((c,i)=>(

{c.title}

{c.body}

))}
); } function FeatureTour({ t }) { const [active, setActive] = useStateS("time"); const map = { time: , shift: , devices: , ai: , oncall: , absence: , report: }; return (
{t.tour.eyebrow}

{t.tour.h2}

{t.tour.tabs.map(tab=>( ))}
{map[active]}
); } function SetupSteps({ t }) { return (
{t.setup.eyebrow}

{t.setup.h2}

{t.setup.sub}

{t.setup.steps.map((s,i)=>(
{s.n} / {String(t.setup.steps.length).padStart(2,"0")}

{s.title}

{s.body}

))}
); } function Persona({ t }) { const [tab, setTab] = useStateS("manager"); const cur = t.persona.tabs.find(x=>x.id===tab); // Pick a contextual screenshot per persona const shotFor = { manager: { src: "src/assets/dienstplan.png", alt: "Dienstplan-Wochenansicht mit Ärzt:innen und MFAs" }, owner: { src: "src/assets/monatsbericht.png", alt: "Monatsbericht mit Iststunden, Sollstunden und Monatssaldo" }, team: { src: "src/assets/abwesenheiten.png", alt: "Abwesenheiten-Jahresheatmap" }, inhaber: { src: "src/assets/monatsbericht.png", alt: "Monatsbericht mit Iststunden, Sollstunden und Monatssaldo" }, }; const shot = shotFor[tab] || shotFor.manager; return (
{t.persona.eyebrow}

{t.persona.h2}

{t.persona.tabs.map(x=>( ))}
{cur.bullets.map((b,i)=>(
{b}
))} {cur.cta}
); } function InsightsTeaser({ t }) { return (
{t.insights.tag}

{t.insights.h2}

{t.insights.sub}

{t.insights.note}

); } function Pricing({ t }) { const [yearly, setYearly] = useStateS(false); return (
{t.pricing.eyebrow}

{t.pricing.h2}

{t.pricing.sub}

{t.pricing.tiers.map((tier,i)=>{ const price = yearly ? (tier.priceYearly ?? tier.price) : (tier.priceMonthly ?? tier.price); return (
{tier.name} {tier.featured && Beliebt}
{tier.custom ? (
{tier.priceLabel}
) : (
{price}{tier.suffix}
)}
{tier.target}{yearly && !tier.custom && · jährlich abgerechnet}
    {tier.features.map((f,j)=>(
  • {f}
  • ))}
{tier.cta}
); })}
{t.pricing.footnote}
); } function FAQ({ t }) { const [open, setOpen] = useStateS(0); return (
{t.faq.eyebrow}

{t.faq.h2}

{t.faq.items.map((it,i)=>(
{it.a}
))}
); } function CTABanner({ t }) { return (

{t.cta.h2}

{t.cta.sub}
); } function Footer({ t }) { return ( ); } Object.assign(window, { ShotFrame, VerticalFit, FeatureTour, SetupSteps, Persona, InsightsTeaser, Pricing, FAQ, CTABanner, Footer, MockTime, MockShift, MockDevices, MockAI, MockAbsence, MockReport, MockRufbereitschaft });