// PSM Expert — Glossário de Segurança de Processos const _GIMG = window.PSM_IMG || "img/"; const _GCATS = window.GLOSS_CATS || []; const _GTERMS = window.GLOSS_TERMS || []; function GlossCard({ t, open, onToggle }) { return (
{open && (

{t.def}

Por que importa.  {t.pq}

Referência:  {t.norma}

{t.img && ( {"Diagrama: )}
)}
); } function GlossarioPage() { const [q, setQ] = React.useState(""); const [openMap, setOpenMap] = React.useState({}); const qLow = q.trim().toLowerCase(); const searching = qLow.length >= 2; const visible = searching ? _GTERMS.filter(t => t.term.toLowerCase().includes(qLow) || t.en.toLowerCase().includes(qLow) || t.def.toLowerCase().includes(qLow) || t.norma.toLowerCase().includes(qLow) ) : _GTERMS; const isOpen = id => searching ? visible.some(t => t.id === id) : !!openMap[id]; const toggle = id => setOpenMap(s => ({ ...s, [id]: !s[id] })); const byCat = {}; visible.forEach(t => { (byCat[t.cat] = byCat[t.cat] || []).push(t); }); const count = visible.length; return ( <>
{/* ── Hero ── */}

Referência técnica gratuita · 42 verbetes

Glossário de Segurança de Processos

Termos essenciais de HAZOP, QRA, LOPA, SIL, Bow-Tie e PSM — definições claras com referências normativas.

setQ(e.target.value)} style={glossSt.searchIn} autoComplete="off" aria-label="Buscar no glossário" />
{searching && (

{count > 0 ? `${count} verbete${count > 1 ? "s" : ""} encontrado${count > 1 ? "s" : ""}` : "Nenhum verbete encontrado"}

)}
{/* ── Category nav ── */} {/* ── Terms ── */}
{_GCATS.map(cat => { const terms = byCat[cat.id]; if (!terms || !terms.length) return null; return (

{cat.label}

{terms.map(t => ( toggle(t.id)} /> ))}
); })} {!visible.length && (

Nenhum verbete encontrado para "{q}". Tente outro termo ou sigla.

)}