1import{j as e}from"./app-Con2Uz40.js";import{r as i,H as f}from"./vendor-inertia-BMF_YWrS.js";import{A as g}from"./AdminLayout-B09P9NBj.js";import{P as j,g as d,E as N,v,C as m,n as y,R as C,o as w,f as b,p as B}from"./ui-DlMH4Qp3.js";import{ag as x,H as E,I as S}from"./vendor-icons-CKF1xuco.js";import"./FlashMessages-Bc9lB5dL.js";import"./campaigns-BMBq-BQU.js";import"./useFocusTrap-Cq0uZysT.js";function u(a){return(a.letter||a.term.charAt(0)||"#").toUpperCase()}function G({items:a}){const[p,n]=i.useState(null),[o,h]=i.useState(""),l=i.useMemo(()=>{const t=o.trim().toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"");return t?a.filter(r=>`${r.term} ${r.definition}`.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").includes(t)):a},[a,o]),c=i.useMemo(()=>{const t={};for(const r of l){const s=u(r);t[s]||(t[s]=[]),t[s].push(r)}return Object.entries(t).sort(([r],[s])=>r.localeCompare(s,"pt-BR"))},[l]);return e.jsxs(g,{title:"Glossário",children:[e.jsx(f,{title:"Glossário - Painel"}),e.jsxs("div",{className:"space-y-6",children:[e.jsx(j,{publicHref:"/glossario",eyebrow:"Conteúdo",icon:x,title:"Glossário Legislativo",description:`${a.length} termo(s) em ${new Set(a.map(u)).size} letra(s)`,variant:"hero",actions:e.jsx(d,{href:"/painel/glossario/criar",children:"Novo Termo"})}),a.length===0?e.jsx(N,{icon:x,title:"Nenhum termo cadastrado",description:"Cadastre o primeiro termo do glossário legislativo para exibir no site.",action:e.jsx(d,{href:"/painel/glossario/criar",children:"Novo Termo"})}):e.jsxs(e.Fragment,{children:[e.jsx(v,{value:o,onChange:h,placeholder:"Buscar termo ou definição...",className:"max-w-md"}),c.length===0?e.jsx(m,{children:e.jsxs("p",{className:"text-sm text-muted-foreground text-center py-8",children:["Nenhum termo encontrado para â",o,"â."]})}):e.jsx("div",{className:"space-y-6",children:c.map(([t,r])=>e.jsxs("div",{children:[e.jsxs("h3",{className:"text-xs font-bold text-muted-foreground uppercase tracking-wider mb-3 px-1",children:[t," (",r.length,")"]}),e.jsx(m,{padding:!1,className:"divide-y divide-border/70",children:r.map(s=>e.jsxs("div",{className:"flex items-center justify-between px-5 py-3.5 hover:bg-muted/40 transition-colors",children:[e.jsxs("div",{className:"flex-1 min-w-0 mr-4",children:[e.jsx("p",{className:"text-sm font-medium text-foreground truncate",children:s.term}),e.jsx("p",{className:"text-xs text-muted-foreground truncate mt-0.5",children:s.definition})]}),e.jsxs("div",{className:"flex items-center gap-2 shrink-0",children:[!s.is_active&&e.jsx(y,{status:"inactive"}),e.jsxs(C,{children:[e.jsx(w,{tone:"edit",href:`/painel/glossario/${s.id}/editar`,title:"Editar",children:e.jsx(E,{className:"w-4 h-4"})}),e.jsx(b,{tone:"delete",title:"Excluir",onClick:()=>n({id:s.id,label:s.term}),children:e.jsx(S,{className:"w-4 h-4"})})]})]})]},s.id))})]},t))})]})]}),e.jsx(B,{target:p,onClose:()=>n(null),deleteUrl:t=>`/painel/glossario/${t}`,entity:"termo"})]})}export{G 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.