1import{r as i,j as a}from"./react-daO8XSXc.js";import{C as O}from"./CabecalhoPagina-a9wl2lov.js";import{A as B,a as J}from"./Abas-D4RI4lFL.js";import{l as K,s as k,e as M}from"./classificacaoService-DY2NuT7F.js";import{B as d}from"./Button-8-UveMcL.js";import{I as A}from"./Input-BWXNKslz.js";import{E as P}from"./EmptyState-DyDBtv_o.js";import{E as U}from"./ErrorState-Tx5UOScO.js";import{L as G}from"./Lista-Cxzg40st.js";import{u as H}from"./Avisos-DoJY8zcA.js";import{F as Q}from"./PlusIcon-zJtdUFLc.js";import{F as V}from"./PencilSquareIcon-jb5Kgmig.js";import{F as W}from"./TrashIcon-CSgk2SLQ.js";import{F as X}from"./TagIcon-DHnosFdM.js";import"./basicos-CJBwiWJx.js";import"./index-B58ZFblL.js";import"./supabase-CWGMQrOR.js";import"./framer-CJI0BPWU.js";import"./lucide-DgiROqw5.js";import"./index-BHRwxiTO.js";import"./index-Bx8Owg57.js";import"./index-Be0SzB96.js";import"./ChevronDownIcon-C1xiHESR.js";import"./ExclamationTriangleIcon-CYNpIWW5.js";import"./Avatar-MiXW_CSz.js";import"./iniciais-brqoj07o.js";import"./Skeleton-DB-ilhXe.js";import"./Escolhas-BH21sbXZ.js";import"./index-BSdpKbQ6.js";import"./ChevronRightIcon-CD0fb681.js";import"./Dialog-pcGZL7JV.js";import"./index-BkA-a7YQ.js";import"./XMarkIcon-BbNpXEGa.js";import"./InformationCircleIcon-BuxHKy4m.js";const D=[{tabela:"trilhas",rotulo:"Trilhas",singular:"trilha",ajuda:"As sete trilhas do evento. São as mesmas que a landing já mostra."},{tabela:"topicos",rotulo:"Tópicos",singular:"tópico",ajuda:"O assunto do conteúdo. Um conteúdo pode ter mais de um."},{tabela:"niveis",rotulo:"NÃveis",singular:"nÃvel",ajuda:"A profundidade do conteúdo. Cadastre os que fizerem sentido para você."}],R=(o,n,f)=>{const l=o.trim();return l?l.length>120?"O nome ficou longo demais.":n.some(t=>t.id!==f&&t.nome.trim().toLowerCase()===l.toLowerCase())?"Já existe uma com esse nome.":"":"Dê um nome."};function Y({tabela:o,singular:n,ajuda:f}){const{avisar:l,confirmar:v}=H(),[t,z]=i.useState([]),[h,j]=i.useState(!0),[g,C]=i.useState(!1),[x,N]=i.useState(""),[u,E]=i.useState(""),[T,b]=i.useState(!1),[r,c]=i.useState(null),S=i.useRef(null),w=i.useRef(null),y=r==null?void 0:r.id;i.useEffect(()=>{var e;y&&((e=w.current)==null||e.focus())},[y]);const m=i.useCallback(async()=>{j(!0),C(!1);try{z(await K(o))}catch(e){console.error("Falha ao carregar",o,e),C(!0)}finally{j(!1)}},[o]);i.useEffect(()=>{m()},[m]);const L=async e=>{var p;e.preventDefault();const s=R(x,t);
1if(E(s),s)return;b(!0);const $=await k(o,{id:"",nome:x,ordem:t.length?Math.max(...t.map(q=>q.ordem))+1:0});if(b(!1),!$){l("Não conseguimos salvar. Tente de novo.","erro");return}N(""),await m(),(p=S.current)==null||p.focus()},F=async()=>{if(!r)return;const e=R(r.nome,t,r.id);if(e){l(e,"erro");return}const s=t.find(p=>p.id===r.id);if(s&&s.nome.trim()===r.nome.trim()){c(null);return}if(!await k(o,{id:r.id,nome:r.nome,ordem:(s==null?void 0:s.ordem)??0})){l("Não conseguimos salvar. Tente de novo.","erro");return}c(null),await m()},I=async e=>{if(await v({titulo:`Excluir "${e.nome}"?`,descricao:"Some da lista e de onde estiver escolhida. Não dá para desfazer.",confirmar:"Excluir",perigo:!0})){if(!await M(o,e.id)){l("Não conseguimos excluir. Tente de novo.","erro");return}await m()}};return a.jsxs("div",{className:"max-w-2xl space-y-4",children:[a.jsx("p",{className:"text-[13px] leading-relaxed text-painel-texto-3",children:f}),a.jsxs("form",{onSubmit:L,className:"flex items-start gap-2",children:[a.jsxs("div",{className:"flex-1",children:[a.jsx(A,{ref:S,value:x,"aria-label":`Nova ${n}`,"aria-invalid":u?!0:void 0,placeholder:`Nova ${n}â¦`,onChange:e=>{N(e.target.value),u&&E("")}}),u&&a.jsx("p",{className:"mt-1 text-[11px] text-painel-perigo",children:u})]}),a.jsxs(d,{type:"submit",loading:T,children:[a.jsx(Q,{"aria-hidden":!0}),"Adicionar"]})]}),g&&a.jsx(U,{aoTentarDeNovo:()=>void m()}),h&&t.length===0&&a.jsx(G,{}),!h&&!g&&t.length===0&&a.jsx(P,{titulo:`Nenhum${n==="trilha"?"a":""} ${n} ainda`,descricao:"Cadastre no campo acima. Elas aparecem na ficha do conteúdo e do material."}),t.length>0&&a.jsx("ul",{className:"divide-y divide-painel-linha rounded-cartao border border-painel-linha",children:t.map(e=>a.jsx("li",{className:"flex items-center gap-2 px-3 py-2",children:(r==null?void 0:r.id)===e.id?a.jsxs(a.Fragment,{children:[a.jsx(A,{ref:w,value:r.nome,"aria-label":`Nome d${n==="nÃvel"?"o":"a"} ${n}`,onChange:s=>c({...r,nome:s.target.value}),onKeyDown:s=>{s.key==="Enter"&&(s.preventDefault(),F()),s.key==="Escape"&&c(null)},className:"flex-1"}),a.jsx(d,{size:"sm",onClick:()=>void F(),children:"Salvar"}),a.jsx(d,{size:"sm",variant:"secondary",onClick:()=>c(null),children:"Cancelar"})]}):a.jsxs(a.Fragment,{children:[a.jsx("span",{className:"flex-1 truncate text-sm text-painel-texto",children:e.nome}),a.jsx(d,{size:"sm",variant:"ghost","aria-label":`Renomear ${e.nome}`,onClick:()=>c({id:e.id,nome:e.nome}),children:a.jsx(V,{"aria-hidden":!0})}),a.jsx(d,{size:"sm",variant:"ghost","aria-label":`Excluir ${e.nome}`,onClick:()=>void I(e),children:a.jsx(W,{"aria-hidden":!0})})]})},e.id))})]})}function Ra(){return a.jsxs("div",{className:"space-y-5",children:[a.jsx(O,{icone:X,titulo:"Classificações",subtitulo:"As etiquetas que organizam o acervo"}),a.jsx(B,{abas:D.map(o=>({valor:o.tabela,rotulo:o.rotulo})),children:D.map(o=>a.jsx(J,{value:o.tabela,className:"pt-5",children:a.jsx(Y,{tabela:o.tabela,singular:o.singular,ajuda:o.ajuda})},o.tabela))})]})}export{Ra 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.