/* global React, Icon, BrandMark */
const { useState: useStateS } = React;
// ---------- Product screenshots ----------
function ShotFrame({ src, alt, aspect = "3420 / 1970" }) {
return (
);
}
function ShotMobile({ src, alt }) {
return (
);
}
function MockTime() {
return ;
}
function MockShift() {
return ;
}
function MockAbsence() {
return ;
}
function MockReport() {
return ;
}
// ---------- Sections ----------
function VerticalFit({ t }) {
return (
{t.fit.eyebrow}
{t.fit.h2}
{t.fit.sub}
{t.fit.cards.map((c,i)=>(
))}
);
}
function FeatureTour({ t }) {
const [active, setActive] = useStateS("time");
const map = { time: , shift: , 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 Tierärzten und TFAs" },
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=>(
))}
);
}
function InsightsTeaser({ t }) {
return (
{t.insights.tag}
{t.insights.h2}
{t.insights.sub}
{t.insights.note}
);
}
function Pricing({ t }) {
return (
{t.pricing.eyebrow}
{t.pricing.h2}
{t.pricing.sub}
{t.pricing.tiers.map((tier,i)=>(
{tier.name}
{tier.featured && Beliebt}
€{tier.price}{tier.suffix}
{tier.target}
{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 (
);
}
function Footer({ t }) {
return (
);
}
Object.assign(window, { VerticalFit, FeatureTour, SetupSteps, Persona, InsightsTeaser, Pricing, FAQ, CTABanner, Footer, MockTime, MockShift, MockAbsence, MockReport });