/* Home page sections — hero, ticker, mission, services preview, how-to, news preview, CTA */
function PPHero({ t, setRoute }) {
return (
{t.hero.eyebrow}
{t.hero.titleA} {t.hero.titleEm}
{t.hero.titleB}
{t.hero.lede}
{[t.hero.metaA, t.hero.metaB, t.hero.metaC].map((m, i) => (
- {m.num}
- {m.label}
))}
);
}
function PPTicker({ t }) {
const items = [...t.ticker, ...t.ticker];
return (
{items.map((s, i) => {s})}
);
}
function PPMission({ t }) {
return (
{t.mission.eyebrow}
{t.mission.title}
{t.mission.body1}
{t.mission.body2}
{t.mission.points.map((p, i) => (
{String(i + 1).padStart(2, "0")} / {p.k}
{p.v}
))}
);
}
function PPServicesGrid({ t, setRoute, limit }) {
const items = limit ? t.services.items.slice(0, limit) : t.services.items;
return (
{t.services.eyebrow}
{t.services.title}
{t.services.lede}
{limit && (
)}
{items.map((s, i) => (
{s.title}
{s.desc}
{s.tags.map((tag, j) => {tag})}
))}
);
}
function PPHowTo({ t }) {
return (
{t.howTo.eyebrow}
{t.howTo.title}
{t.howTo.lede}
{t.howTo.steps.map((step, i) => (
{step.n}
{step.t}
{step.d}
))}
);
}
function PPNewsPreview({ t, setRoute, limit = 3 }) {
return (
{t.news.eyebrow}
{t.news.title}
);
}
function PPCrisisCTA({ t }) {
return (
{t.contact.crisis.title}
{t.contact.crisis.title}
{t.contact.crisis.body}
);
}
Object.assign(window, { PPHero, PPTicker, PPMission, PPServicesGrid, PPHowTo, PPNewsPreview, PPCrisisCTA });