const RDS = window.IseeITDesignSystem_37fb1f; const W = '../index.html'; // Deutsche Rückfalltexte: entwurf.html lädt keine Sprachpakete. const NAV_DE = { menue: 'Menü', schliessen: 'Schließen', wahl: 'Ihre Wahl', prozess: 'Ihr Weg', ankommen: 'Ankommen', wir: 'Wir', fragen: 'Fragen', vergleich: 'Vergleichstool', kontakt: 'Kontakt' }; const FOOT_DE = { karteUnternehmen: { kicker: 'EIGENE SEITE', titel: 'Für Unternehmen und Partner', unter: 'Konditionen Deutschland · Partnerschaft Schweiz' }, karteNischen: { kicker: 'FACHGEBIETE IM DETAIL', titel: 'Vier Nischen. Und die Unterschiede darin.', unter: 'Cybersecurity, Cloud, DevOps, Platform Engineering: welche Rollen dazugehören und wo die Grenzen verlaufen.' }, claim: [{ x: 'RATIONAL', f: 'rot' }, { x: ' GERECHNET. ' }, { x: 'MENSCHLICH', f: 'gold' }, { x: ' BEGLEITET.' }], colWeg: 'IHR WEG', colIseeit: 'ISEEIT', colFirma: 'ISEEIT UG (HAFTUNGSBESCHRÄNKT)', vergleichstool: 'Vergleichstool', fachgebiete: 'Fachgebiete im Detail', impressum: 'Impressum', datenschutz: 'Datenschutz' }; // Hell/Dunkel auch im Werkzeug-Rahmen: derselbe Schalter wie auf der Website; der Rechner im Frame schaltet direkt mit. function ToolThemaKnopf({ nav }) { const [dunkel, setDunkel] = React.useState(() => document.documentElement.getAttribute('data-thema') === 'dunkel'); const [hov, setHov] = React.useState(false); const wechsle = () => setDunkel(d => { const n = !d; if (n) document.documentElement.setAttribute('data-thema', 'dunkel'); else document.documentElement.removeAttribute('data-thema'); try { localStorage.setItem('iseeit-thema', n ? 'dunkel' : 'hell'); } catch (e) {} try { document.querySelectorAll('iframe').forEach(f => { if (f.contentDocument) f.contentDocument.documentElement.setAttribute('data-theme', n ? 'dark' : 'light'); }); } catch (e) {} return n; }); const label = dunkel ? (nav.themaHell || 'Helles Design einschalten') : (nav.themaDunkel || 'Dunkles Design einschalten'); return ; } function ToolHeader({ t, sprachen = true }) { const nav = (t && t.nav) || NAV_DE; const schmal = window.useSchmal(); const [offen, setOffen] = React.useState(false); const [lang, setLang] = React.useState('DE'); const [prog, setProg] = React.useState(0); const [kopfH, setKopfH] = React.useState(58); const kopfRef = React.useRef(null); React.useEffect(() => { const f = () => { const m = document.documentElement.scrollHeight - window.innerHeight; setProg(m > 0 ? Math.min(1, window.pageYOffset / m) : 0); }; window.addEventListener('scroll', f, { passive: true }); f(); return () => window.removeEventListener('scroll', f); }, []); React.useEffect(() => { if (!schmal) setOffen(false); }, [schmal]); React.useEffect(() => { document.body.style.overflow = offen ? 'hidden' : ''; return () => { document.body.style.overflow = ''; }; }, [offen]); React.useLayoutEffect(() => { if (offen && kopfRef.current) setKopfH(kopfRef.current.offsetHeight); }, [offen, schmal]); const A = (href, txt) => e.target.style.color = 'var(--gold-hell)'} onMouseLeave={e => e.target.style.color = 'var(--sektion-text)'}>{txt}; const S = (k) => setLang(k)} style={{ cursor: 'pointer', color: lang === k ? 'var(--sektion-text)' : 'var(--sektion-tertiaer)', borderBottom: lang === k ? '2px solid var(--gold)' : '2px solid transparent', paddingBottom: '2px', transition: 'color .25s ease' }}>{k}; const eintraege = [[W + '#wahl', nav.wahl], [W + '#prozess', nav.prozess], [W + '#ankommen', nav.ankommen], [W + '#ueber-uns', nav.wir], [W + '#faq', nav.fragen]]; const mLnk = { color: 'var(--sektion-text)', textDecoration: 'none', font: "500 19px/1.25 var(--font-grotesk)", padding: '16px 0', borderBottom: '1px solid rgba(251,248,243,.12)', display: 'flex', alignItems: 'center', justifyContent: 'space-between', gap: '14px' }; return
{!schmal && } {!schmal &&
{sprachen &&
{['DE', 'EN', 'EL', 'ES'].map(S)}
} e.currentTarget.style.background = '#7F2A12'} onMouseLeave={e => e.currentTarget.style.background = '#A63A1E'} style={{ background: '#A63A1E', color: '#FFFFFF', border: '1px solid rgba(251,247,242,.85)', textDecoration: 'none', padding: '9px 10px', minWidth: '122px', textAlign: 'center', boxSizing: 'border-box', fontSize: '13.5px', fontWeight: 500, whiteSpace: 'nowrap', transition: 'background var(--dauer-hover) var(--ease)' }}>{nav.kontakt}
} {schmal &&
}
{schmal && offen &&
}
; } function FKarte({ href, k }) { const [hov, setHov] = React.useState(false); return setHov(true)} onMouseLeave={() => setHov(false)} style={{ display: 'flex', alignItems: 'center', gap: '18px', border: hov ? '1px solid var(--gold-hell)' : '1px solid var(--sektion-linie)', background: hov ? 'rgba(251,248,243,.09)' : 'rgba(251,248,243,.04)', padding: '22px 24px', color: 'var(--sektion-text)', textDecoration: 'none', transition: 'background .3s ease,border-color .3s ease' }}> {k.kicker} {k.titel} {k.unter} ; } function ToolFooter({ t }) { const nav = (t && t.nav) || NAV_DE; const ft = (t && t.footer) || FOOT_DE; const col = { margin: 0, font: "400 11.5px/1 var(--font-mono)", letterSpacing: '.1em', color: 'var(--sektion-tertiaer)' }; const lnk = { color: 'var(--sektion-text)' }; const claimFarbe = { rot: 'color-mix(in oklab, var(--backstein-hell) 55%, var(--sektion-tertiaer))', gold: 'color-mix(in oklab, var(--gold-hell) 55%, var(--sektion-tertiaer))' }; const liste = (items) => ; return ; } Object.assign(window, { ToolHeader, ToolFooter });