// Layout compartilhado das páginas de Segurança & Compliance. // Cada página define window.LEGAL_PAGE = { slug, title, intro:[..], sections:[{ title, blocks:[..] }], updated } // Blocos: 'texto' → parágrafo · ['a','b'] → lista · { h: 'Subtítulo' } → subtítulo · { note: 'texto' } → destaque const LEGAL_PAGES = [ { slug: 'trust-center', label: 'Trust Center' }, { slug: 'seguranca-da-informacao', label: 'Segurança da Informação' }, { slug: 'politica-de-privacidade', label: 'Política de Privacidade' }, { slug: 'lgpd', label: 'LGPD' }, { slug: 'compliance-etica', label: 'Compliance & Ética' } ]; function legalSlugify(s) { return s.toLowerCase().normalize('NFD').replace(/[\u0300-\u036f]/g, '').replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, ''); } function LegalText({ text }) { const m = text.match(/^([^:]{2,48}):\s(.+)$/); if (m) return <>{m[1]}: {m[2]}; return text; } function LegalBlock({ b }) { if (typeof b === 'string') return

; if (Array.isArray(b)) return ( ); if (b && b.cards) return
{b.cards.map((c) =>
{c.t}
{c.d}
Acessar →
)}
; if (b && b.link) return

{b.link} →

; if (b && b.pills) return
{b.pills.map((p) => {p})}
; if (b && b.h) return

{b.h}

; if (b && b.note) return
; return

; } function LegalPage() { const page = window.LEGAL_PAGE; const sections = page.sections.map((s) => ({ ...s, id: legalSlugify(s.title) })); const [active, setActive] = React.useState(sections[0] && sections[0].id); React.useEffect(() => { const onScroll = () => { let cur = sections[0] && sections[0].id; for (const s of sections) { const el = document.getElementById(s.id); if (el && el.getBoundingClientRect().top < 160) cur = s.id; } setActive(cur); }; window.addEventListener('scroll', onScroll, { passive: true }); return () => window.removeEventListener('scroll', onScroll); }, []); const jump = (e, id) => { e.preventDefault(); const el = document.getElementById(id); if (el) window.scrollTo({ top: el.getBoundingClientRect().top + window.scrollY - 110, behavior: 'smooth' }); }; return (
SEGURANÇA & COMPLIANCE · TS CORP

{page.title}

{(page.intro || []).map((p, i) =>

{p}

)}
{sections.map((s, i) =>

{s.title}

{s.blocks.map((b, j) => )}
)} {page.updated &&

{page.updated}

}
); } function LegalApp() { return (<>); } Object.assign(window, { LegalApp, LEGAL_PAGES });