1import{r as o,j as e,H as C,L}from"./react-vendor-DopNtYkS.js";import{c as S,u as A,H as G,A as F,F as E}from"./index-Cym1ZK7U.js";import{G as y,B as j,a as N,g as M}from"./index-BhIJEm41.js";import{S as R}from"./search-DOGVU6sG.js";import"./tanstack-DAvA-Djb.js";import"./motion-BEau8QNT.js";/** 2 * @license lucide-react v0.462.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const T=S("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]),B="ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),i=t=>t.normalize("NFD").replace(/[Ì-ͯ]/g,"").toLowerCase(),I=()=>{const{language:t}=A(),s=t==="es",v=s?"":"/en",[d,w]=o.useState(""),[l,u]=o.useState("all"),[n,c]=o.useState("all"),x=o.useMemo(()=>[...y].sort((r,a)=>r[t].term.localeCompare(a[t].term,t)),[t]),m=o.useMemo(()=>l==="all"?x:x.filter(r=>r.category===l),[x,l]),k=o.useMemo(()=>new Set(m.map(r=>i(r[t].term).charAt(0).toUpperCase())),[m,t]),g=o.useMemo(()=>{let r=m;if(n!=="all"&&(r=r.filter(a=>i(a[t].term).charAt(0).toUpperCase()===n)),d.trim()){const a=i(d);r=r.filter(b=>i(b[t].term).includes(a)||i(b[t].short).includes(a))}return r},[m,n,d,t]),p=s?"https://fensivo.co/glosario/":"https://fensivo.co/en/glosario/",h=s?"Glosario de ciberseguridad y riesgo humano | Fensivo":"Cybersecurity and human risk glossary | Fensivo",f=s?"45 términos de ciberseguridad y gestión de riesgo humano explicados en español claro: phishing, retest, credenciales filtradas, ingenierÃa social y más.":"45 cybersecurity and human risk management terms explained in plain language: phishing, retest, leaked credentials, social engineering and more.";return e.jsxs("div",{className:"min-h-screen bg-background text-foreground",children:[e.jsxs(C,{children:[e.jsx("html",{lang:t}),e.jsx("title",{children:h}),e.jsx("meta",{name:"description",content:f}),e.jsx("link",{rel:"canonical",href:p}),e.jsx("meta",{property:"og:title",content:h}),e.jsx("meta",{property:"og:description",content:f}),e.jsx("meta",{property:"og:type",content:"website"}),e.jsx("meta",{property:"og:url",content:p}),e.jsx("meta",{property:"og:image",content:"https://fensivo.co/og/glosario.png"})]}),e.jsx(G,{}),e.jsxs("section",{className:"relative pt-32 pb-10 md:pt-40 md:pb-14 overflow-hidden",children:[e.jsx("div",{className:"absolute top-20 left-1/4 w-72 h-72 rounded-full bg-primary/10 blur-3xl pointer-events-none"}),e.jsx("div",{className:"absolute top-40 right-1/4 w-56 h-56 rounded-full bg-primary/10 blur-3xl pointer-events-none"}),e.jsx("div",{className:"content-container relative z-10",children:e.jsxs("div",{className:"max-w-3xl mx-auto text-center",children:[e.jsxs("span",{className:"inline-flex items-center gap-2 glass border-gradient rounded-full px-4 py-1.5 text-xs font-semibold uppercase tracking-wider text-muted-foreground mb-6",children:[e.jsx(j,{className:"w-3.5 h-3.5 text-primary"}),s?"Glosario de ciberseguridad":"Cybersecurity glossary"]}),e.jsx("h1",{className:"font-display text-4xl md:text-5xl lg:text-6xl font-bold leading-tight mb-5",children:s?e.jsxs(e.Fragment,{children:["Glosario de ciberseguridad y ",e.jsx("span",{className:"gradient-text",children:"riesgo humano"})]}):e.jsxs(e.Fragment,{children:["Cybersecurity and ",e.jsx("span",{className:"gradient-text",children:"human risk"})," glossary"]})}),e.jsx("p",{className:"text-muted-foreground text-base md:text-lg leading-relaxed mb-8",children:s?"Definiciones claras y autocontenidas de los términos que importan: de la ingenierÃa social y el phishing a la gestión de riesgo humano, el retest y las credenciales filtradas.":"Clear, self-contained definitions of the terms that matter: from social engineering and phishing to human risk management, retesting and leaked credentials."}),e.jsxs("div",{className:"flex items-center justify-center gap-6 text-sm text-muted-foreground mb-8",children:[e.jsxs("span",{className:"inline-flex items-center gap-2",children:[e.jsx(j,{className:"w-4 h-4 text-primary"}),e.jsx("b",{className:"text-foreground",children:y.length}),s?"términos definidos":"terms defined"]}),e.jsxs("span",{className:"inline-flex items-center gap-2",children:[e.jsx(T,{className:"w-4 h-4 text-primary"}),e.jsx("b",{className:"text-foreground",children:N.length}),s?"categorÃas":"categories"]})]}),e.jsxs("div",{className:"relative max-w-xl mx-auto",children:[e.jsx(R,{className:"absolute left-4 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground"}),e.jsx("input",{type:"search",value:d,onChange:r=>w(r.target.value),placeholder:s?"Busca un término, p. ej. phishing, retest, infostealer":"Search a term, e.g. phishing, retest, infostealer","aria-label":s?"Buscar en el glosario":"Search the glossary",className:"w-full rounded-full border border-border bg-card pl-11 pr-5 py-3 text-sm text-foreground placeholder:text-muted-foreground
6/70 focus:outline-none focus:ring-2 focus:ring-primary/40 focus:border-primary/50 transition-shadow"})]})]})})]}),e.jsx("section",{className:"pb-20 md:pb-28",children:e.jsxs("div",{className:"content-container",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2 mb-4",children:[e.jsx("button",{onClick:()=>{u("all"),c("all")},className:`rounded-full px-4 py-1.5 text-xs font-medium transition-colors ${l==="all"?"bg-foreground text-background":"bg-card border border-border text-muted-foreground hover:text-foreground hover:border-primary/40"}`,children:s?"Todas":"All"}),N.map(r=>e.jsx("button",{onClick:()=>{u(r.id),c("all")},className:`rounded-full px-4 py-1.5 text-xs font-medium transition-colors ${l===r.id?"bg-foreground text-background":"bg-card border border-border text-muted-foreground hover:text-foreground hover:border-primary/40"}`,children:r[t]},r.id))]}),e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-1 mb-8",children:[e.jsx("button",{onClick:()=>c("all"),className:`w-8 h-8 rounded-lg text-xs font-semibold transition-colors ${n==="all"?"bg-primary text-primary-foreground":"text-muted-foreground hover:text-foreground"}`,children:s?"Todo":"All"}),B.map(r=>{const a=k.has(r);return e.jsx("button",{disabled:!a,onClick:()=>c(n===r?"all":r),className:`w-8 h-8 rounded-lg text-xs font-semibold transition-colors ${n===r?"bg-primary text-primary-foreground":a?"text-foreground/70 hover:text-foreground hover:bg-card":"text-muted-foreground/30 cursor-default"}`,children:r},r)})]}),e.jsxs("p",{className:"text-center text-sm text-muted-foreground mb-8",children:[s?"Mostrando ":"Showing ",e.jsx("b",{className:"text-foreground",children:g.length}),s?" términos":" terms"]}),g.length===0?e.jsxs("div",{className:"max-w-md mx-auto text-center rounded-2xl border border-border/60 bg-card p-10",children:[e.jsx("p",{className:"text-foreground font-medium mb-2",children:s?"Sin resultados para esa búsqueda":"No results for that search"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:s?"Prueba con otro término o limpia los filtros.":"Try another term or clear the filters."})]}):e.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-5",children:g.map(r=>e.jsxs(L,{to:`${v}/glosario/${r.slug}`,className:"group flex flex-col rounded-2xl border border-border/60 bg-card p-6 hover:border-primary/50 hover:-translate-y-1 transition-all duration-300",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3 mb-3",children:[e.jsx("h2",{className:"font-display text-lg font-semibold leading-snug group-hover:text-primary transition-colors",children:r[t].term}),e.jsx(F,{className:"w-4 h-4 flex-none mt-1 text-muted-foreground group-hover:text-primary group-hover:translate-x-0.5 transition-all"})]}),e.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed mb-4 flex-1",children:r[t].short}),e.jsx("span",{className:"self-start rounded-full bg-primary/10 px-2.5 py-1 text-[10px] font-semibold uppercase tracking-wider text-foreground/70",children:M(r.category,t)})]},r.slug))})]})}),e.jsx(E,{})]})};export{I as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.