// Marketing sections: trust marquee, services, portfolio, process, why, quote, CTA.
const { Icon: DSIcon, Badge } = window.ArmaekDesignSystem_06a5c5;
function useI18n() {
const { lang } = window.ArmaekI18n.useLang();
return { lang, t: window.ArmaekI18n.STR[lang], data: window.ArmaekData.getData(lang) };
}
/* ---- Trust marquee band ---- */
function TrustBand() {
const { t } = useI18n();
const row = [...t.trust.items, ...t.trust.items];
return (
{t.trust.label}
{row.map((x, i) => (
{x}
))}
);
}
/* ---- Portfolio with filter chips ---- */
function Portfolio() {
const { useReveal, ImagePanel } = window.ArmaekLib;
const { t, data } = useI18n();
const ref = useReveal();
return (
{t.portfolio.kicker}
{t.portfolio.title}
{data.portfolio.map(([ic, title, photo, iconImg]) => (
{iconImg
?
})
:
}
{title}
))}
);
}
/* ---- Process ---- */
function Process() {
const { useReveal } = window.ArmaekLib;
const { t, data } = useI18n();
const ref = useReveal();
return (
{t.process.title}
{data.process.map(([n, title, d], i) => (
))}
);
}
/* ---- Why Armaek (split with feature list) ---- */
function Why() {
const { useReveal, ImagePanel } = window.ArmaekLib;
const { t, data } = useI18n();
const ref = useReveal();
return (
{t.why.kicker}
{t.why.title}
{data.values.map(([ic, title, d], i) => (
))}
);
}
/* ---- Quote / statement band ---- */
function QuoteBand() {
const { useReveal } = window.ArmaekLib;
const { t } = useI18n();
const q = t.quoteBand;
const ref = useReveal();
return (
{q.pre}{q.gold}{q.post}
Marek Hupcej ยท {q.role}
);
}
/* ---- CTA band ---- */
function CtaBand({ onQuote }) {
const { useReveal } = window.ArmaekLib;
const { t } = useI18n();
const ref = useReveal();
return (
{t.cta.title}
{t.cta.sub}
);
}
/* ---- Interactive service showcase (tabs, landing) ---- */
const SVC_DEFAULT_PHOTOS = {
'defense-material': 'assets/photos/svc-defense-material.jpg',
'obchodne-zastupenie': 'assets/photos/svc-obchodne-zastupenie.jpg',
'konzultacie': 'assets/photos/svc-konzultacie.jpg',
'logisticka-podpora': 'assets/photos/svc-logisticka-podpora.jpg',
};
const ARMAEK_OV = window.ARMAEK_OVERRIDES || {};
const SVC_PHOTOS = {};
['defense-material', 'obchodne-zastupenie', 'konzultacie', 'logisticka-podpora'].forEach((slug, i) => {
SVC_PHOTOS[slug] = (ARMAEK_OV.images && ARMAEK_OV.images.svc && ARMAEK_OV.images.svc[i]) || SVC_DEFAULT_PHOTOS[slug];
});
const WHY_PHOTO = (ARMAEK_OV.images && ARMAEK_OV.images.why) || 'assets/photos/why-armaek.jpg';
const ARMAEK_EMAIL = ARMAEK_OV.email || 'office@armaek.com';
function ServiceShowcase() {
const { useReveal, ImagePanel } = window.ArmaekLib;
const { t, data } = useI18n();
const ref = useReveal();
const [idx, setIdx] = React.useState(0);
const s = data.services[idx];
// Warm the cache for all tab photos so switching tabs never shows a half-loaded image.
React.useEffect(() => {
Object.values(SVC_PHOTOS).forEach((src) => { const im = new Image(); im.src = window.AURL(src); });
}, []);
return (
{t.stacked.title}
{/* Mobile: all services stacked 01 text photo, 02 text photo... */}
{data.services.map((s, i) => (
{String(i + 1).padStart(2, '0')}
{s.title}
{s.lead}
))}
{data.services.map((x, i) => (
))}
{s.title}
{s.lead}
{s.capabilities.map(([ic, cap]) => (
{cap}
))}
{s.stat[0]}
{s.stat[1]}
);
}
window.Sections = { TrustBand, ServiceShowcase, Portfolio, Process, Why, QuoteBand, CtaBand };