/* global React, NereusIcons */ const { useState, useEffect, useRef } = React; const I = NereusIcons; /* ── Web3Forms ─────────────────────────────────────────── Beküldés a Web3Forms endpointjára. A kinézet 100% sajat; ez csak a háttér-küldés. Access key cseréje: 1 hely. */ const WEB3FORMS_KEY = 'f3b39fe4-c1eb-4315-89fa-8395c97fcf51'; async function submitToWeb3Forms(fields, subject) { const payload = { access_key: WEB3FORMS_KEY, subject: subject || 'Új kapcsolatfelvétel — nereuslab.hu', from_name: 'Nereus Lab weboldal', ...fields, }; const res = await fetch('https://api.web3forms.com/submit', { method: 'POST', headers: { 'Content-Type': 'application/json', Accept: 'application/json' }, body: JSON.stringify(payload), }); const data = await res.json(); if (!data.success) throw new Error(data.message || 'A küldés nem sikerült.'); return data; } window.submitToWeb3Forms = submitToWeb3Forms; /* Top notification strip */ function TopStrip() { return (
Új Cyber Hygiene Quiz — mérd fel a cyber tudatosságodat 3 perc alatt.
Kipróbálom
); } /* Main site header w/ Services mega menu */ function NereusHeader({ current }) { const [open, setOpen] = useState(null); // 'svc' | 'kb' | null const [menu, setMenu] = useState(false); const ref = useRef(null); useEffect(() => { const onDoc = (e) => { if (ref.current && !ref.current.contains(e.target)) setOpen(null); }; document.addEventListener('mousedown', onDoc); return () => document.removeEventListener('mousedown', onDoc); }, []); const isCurrent = (k) => current === k; return (
Nereus Lab
Ingyenes konzultáció
{menu &&
Szolgáltatások
Red Teaming Penetration Testing Phishing szimuláció Kibertudatosság tréning Nereus Learning
Egyéb
Képzési könyvtár Cyber Hygiene Quiz Kapcsolat Ingyenes konzultáció
}
); } /* Footer */ function NereusFooter() { const year = new Date().getFullYear(); return ( ); } /* Section head */ function SectionHead({ eyebrow, title, lead, center, onDark, em }) { const renderTitle = () => { if (!em) return title; const parts = title.split(em); return ( <> {parts[0]} {em} {parts[1]} ); }; return (
{eyebrow &&
{eyebrow}
}

{renderTitle()}

{lead &&

{lead}

}
); } /* Reveal-on-scroll wrapper (lightweight IntersectionObserver) */ function useReveal() { useEffect(() => { const els = document.querySelectorAll('.nl-reveal'); if (!('IntersectionObserver' in window)) { els.forEach((el) => el.classList.add('is-in')); return; } const io = new IntersectionObserver((entries) => { entries.forEach((e) => {if (e.isIntersecting) {e.target.classList.add('is-in');io.unobserve(e.target);}}); }, { threshold: 0.12, rootMargin: '0px 0px -10% 0px' }); els.forEach((el) => io.observe(el)); return () => io.disconnect(); }, []); } /* Animated water hero background — SVG wave layers + radial caustics */ function WaveHero({ variant = 'tide' }) { return (
{variant === 'tide' && <>
} {variant === 'depth' && } {variant === 'lab' && }
); } /* Hero animated shield + rings */ function HeroOrb() { return (
); } /* Cross-promo banner — links the two defenzív services together */ function CrossPromo({ eyebrow, title, copy, href, ctaText, Icon }) { return (
{Icon ? : null}
{eyebrow}

{title}

{copy}

{ctaText}
); } Object.assign(window, { TopStrip, NereusHeader, NereusFooter, SectionHead, useReveal, WaveHero, HeroOrb, CrossPromo });