PageSourceSearch

https://saneamentoambiental.com.br/_next/static/chunks/app/login/page-ad2a13da660964bc.js

js saneamentoambiental.com.br collected 2026-10-10 00:37:28 UTC 21,837 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[19865,42246,74520],{6695:(e,t,a)=>{"use strict";a.d(t,{dj:()=>u});var r=a(12115);let i=0,s=new Map,n=e=>{if(s.has(e))return;let t=setTimeout(()=>{s.delete(e),c({type:"REMOVE_TOAST",toastId:e})},1e6);s.set(e,t)},o=[],l={toasts:[]};function c(e){l=((e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:a}=t;return a?n(a):e.toasts.forEach(e=>{n(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===a||void 0===a?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}})(l,e),o.forEach(e=>{e(l)})}function d({...e}){let t=(i=(i+1)%Number.MAX_SAFE_INTEGER).toString(),a=()=>c({type:"DISMISS_TOAST",toastId:t});return c({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:e=>{e||a()}}}),{id:t,dismiss:a,update:e=>c({type:"UPDATE_TOAST",toast:{...e,id:t}})}}function u(){let[e,t]=r.useState(l);return r.useEffect(()=>(o.push(t),()=>{let e=o.indexOf(t);e>-1&&o.splice(e,1)}),[e]),{...e,toast:d,dismiss:e=>c({type:"DISMISS_TOAST",toastId:e})}}},13504:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>E});var r=a(95155),i=a(12115),s=a(73321),n=a(98500),o=a.n(n),l=a(5772),c=a(95145),d=a(19865),u=a(89239),f=a(60529),p=a(33807),h=a(81477),m=a(97916),g=a(6695),A=a(80723),b=a(12651),x=a(6296),v=a(15411),w=a(7915),y=a(73309);function j({className:e}){return(0,r.jsxs)("svg",{className:e,viewBox:"0 0 24 24",fill:"currentColor",children:[(0,r.jsx)("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z",fill:"#4285F4"}),(0,r.jsx)("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z",fill:"#34A853"}),(0,r.jsx)("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z",fill:"#FBBC05"}),(0,r.jsx)("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z",fill:"#EA4335"})]})}function N(){let e=(0,s.useRouter)(),t=(0,s.useSearchParams)().get("redirect")||"/",a=t.startsWith("/")&&!t.startsWith("//")?t:"/",{toast:n}=(0,g.dj)(),N=(0,y.W0)(),[E,C]=(0,i.useState)("login"),[S,I]=(0,i.useState)(!1),[D,F]=(0,i.useState)(!1),T=(0,i.useRef)(null),[k,R]=(0,i.useState)(""),[B,W]=(0,i.useState)(""),[z,U]=(0,i.useState)(""),[_,O]=(0,i.useState)(!1);(0,i.useEffect)(()=>{let e=!0;return(0,d.getAuthInstance)().then(t=>{e&&(T.current=t)}).catch(e=>{console.error("[Login] Falha ao pr\xe9-inicializar Firebase Auth:",e)}),()=>{e=!1}},[]);let M=async t=>{t.preventDefault(),I(!0);try{let t=await (0,d.getAuthInstance)(),r=await (0,c.signInWithEmailAndPassword)(t,k,B),i=await r.user.getIdToken(),s=await fetch("/api/auth/create-profile",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${i}`},body:JSON.stringify({uid:r.user.uid,email:r.user.email,nome:r.user.displayName||"Usu\xe1rio",accountType:"free",atuaSetorMineral:!1,profileCompleted:!1})}),o=(await s.json().catch(()=>({}))).profileIncomplete||!1;n({title:"Login realizado!",description:"Bem-vindo de volta!"}),o?e.push("/onboarding"):e.push(a)}catch(r){let e=r?.message||"",t=/Cannot read properties of null \(reading 'app'\)/.test(e),a=/Firebase não configurado|configured: false/i.test(e);n({title:"Erro no login",description:"Firebase: Error (auth/invalid-credential)."===e?"Email ou senha incorretos":t||a?"Firebase n\xe3o configurado no servidor. Configure as vari\xe1veis _SA no painel de deploy.":e,variant:"destructive"})}finally{I(!1)}},L=async()=>{I(!0);try{let t=T.current??await (0,d.getAuthInstance)();T.current=t;let r=new c.GoogleAuthProvider,i=await (0,c.signInWithPopup)(t,r),s=await i.user.getIdToken(),o=await fetch("/api/auth/create-profile",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${s}`},body:JSON.stringify({uid:i.user.uid,email:i.user.email,nome:i.user.displayName||"Usu\xe1rio",accountType:"free",atuaSetorMineral:!1,profileCompleted:!1})});if(!o.ok){let e=await o.json().catch(()=>({}));throw Error(e.error||"Falha ao criar/verificar perfil do usu\xe1rio.")}let l=await o.json(),u=l.isNewUser||!1,f=l.profileIncomplete||!1;u||f?a&&a.startsWith("/fornecedores/reivindicar")?(e.push(a),n({title:"Login realizado!",description:"Continue a reivindica\xe7\xe3o do perfil."})):(e.push("/onboarding"),n({title:u?"Conta criada!":"Complete seu perfil",description:"Vamos conhecer voc\xea melhor"})):(n({title:"Login realizado!",description:"Bem-vindo de volta!"}),e.push(a))}catch(a){let e=a?.code||"",t=T.current??await (0,d.getAuthInstance)().catch(()=>null);if(t&&("auth/popup-blocked"===e||"auth/cancelled-popup-request"===e||"auth/operation-not-supported-in-this-environment"===e))return void await (0,c.signInWithRedirect)(t,new c.GoogleAuthProvider);if("auth/popup-closed-by-user"!==e){let e=a?.message||"";n({title:"Erro no login",description:/Cannot read properties of null \(reading 'app'\)/.test(e)?"Firebase n\xe3o configurado no servidor. Configure as vari\xe1veis _SA no painel de deploy.":e||"N\xe3o foi poss\xedvel iniciar login com Google.",variant:"destructive"})}}finally{I(!1)}}
1,P=async e=>{e.preventDefault(),I(!0);try{let e=await (0,d.getAuthInstance)();await (0,c.sendPasswordResetEmail)(e,z),O(!0),n({title:"Email enviado!",description:"Verifique sua caixa de entrada para redefinir sua senha."})}catch(e){n({title:"Erro",description:e.message,variant:"destructive"})}finally{I(!1)}};return(0,r.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4 animate-in fade-in duration-300",style:{background:"rgba(0, 0, 0, 0.7)",backdropFilter:"blur(8px)",WebkitBackdropFilter:"blur(8px)"},children:[(0,r.jsxs)(u.$,{variant:"ghost",size:"icon",onClick:()=>{e.back()},className:"absolute top-4 right-4 text-white hover:bg-white/10 z-10",children:[(0,r.jsx)(A.A,{className:"h-6 w-6"}),(0,r.jsx)("span",{className:"sr-only",children:"Voltar"})]}),(0,r.jsx)("div",{className:"w-full max-w-md animate-in zoom-in-95 duration-300",children:(0,r.jsx)(h.Zp,{className:"shadow-xl border-gray-200",children:"reset"===E?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(h.aR,{children:[(0,r.jsxs)(u.$,{variant:"ghost",onClick:()=>C("login"),className:"mb-4 -ml-2",children:[(0,r.jsx)(A.A,{className:"mr-2 h-4 w-4"}),"Voltar"]}),(0,r.jsx)(h.ZB,{children:"Esqueceu sua senha?"}),(0,r.jsx)(h.BT,{children:"Clique aqui para recuper\xe1-la"})]}),(0,r.jsx)(h.Wu,{children:_?(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center py-8 space-y-4",children:[(0,r.jsx)(b.A,{className:"h-12 w-12 text-green-500"}),(0,r.jsx)("p",{className:"text-center text-sm text-muted-foreground",children:"Email enviado! Verifique sua caixa de entrada."})]}):(0,r.jsxs)("form",{onSubmit:P,className:"space-y-4",children:[(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(p.J,{htmlFor:"reset-email",children:"E-mail"}),(0,r.jsx)(f.p,{id:"reset-email",type:"email",placeholder:"ex. [email protected]",value:z,onChange:e=>U(e.target.value),required:!0,disabled:S})]}),(0,r.jsx)(u.$,{type:"submit",className:"w-full",disabled:S,children:S?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(x.A,{className:"mr-2 h-4 w-4 animate-spin"}),"Enviando..."]}):"Enviar link de recupera\xe7\xe3o"})]})})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(h.aR,{className:"text-center space-y-4",children:[(0,r.jsx)("div",{className:"flex justify-center",children:N.logoUrl?(0,r.jsx)(l.default,{src:N.logoUrl,alt:N.logoAlt||N.siteName||"Logo",width:N.logoWidth||200,height:N.logoHeight||40,priority:!0,unoptimized:!0,style:{maxWidth:"180px",height:"auto"}}):(0,r.jsx)("div",{className:"text-2xl font-bold text-primary",children:N.siteName||"Site"})}),(0,r.jsxs)("div",{children:[(0,r.jsx)(h.ZB,{className:"text-2xl font-bold",children:"Entre na sua conta"}),(0,r.jsxs)(h.BT,{className:"text-base mt-2",children:["Ainda n\xe3o tem uma conta em ",N.siteName||"nosso site","?"," ",(0,r.jsx)(o(),{href:"/cadastro",className:"text-primary font-semibold hover:underline",children:"Crie uma agora"})]})]})]}),(0,r.jsxs)(h.Wu,{className:"space-y-4",children:[(0,r.jsxs)("form",{onSubmit:M,className:"space-y-4",children:[(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(p.J,{htmlFor:"email",children:"E-mail"}),(0,r.jsx)(f.p,{id:"email",type:"email",placeholder:"ex. [email protected]",value:k,onChange:e=>R(e.target.value),required:!0,disabled:S})]}),(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(p.J,{htmlFor:"password",children:"Senha"}),(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)(f.p,{id:"password",type:D?"text":"password",value:B,onChange:e=>W(e.target.value),required:!0,disabled:S,className:"pr-10"}),(0,r.jsx)(u.$,{type:"button",variant:"ghost",size:"sm",className:"absolute right-0 top-0 h-full px-3 hover:bg-transparent",onClick:()=>F(!D),children:D?(0,r.jsx)(v.A,{className:"h-4 w-4 text-muted-foreground"}):(0,r.jsx)(w.A,{className:"h-4 w-4 text-muted-foreground"})})]})]}),(0,r.jsx)("div",{className:"flex justify-end",children:(0,r.jsx)(u.$,{type:"button",variant:"link",onClick:()=>C("reset"),className:"px-0 text-sm text-primary hover:underline",children:"Esqueceu sua senha?"})}),(0,r.jsx)(u.$,{type:"submit",className:"w-full",disabled:S,children:S?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(x.A,{className:"mr-2 h-4 w-4 animate-spin"}),"Entrando..."]}):"Entrar"})]}),(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)("div",{className:"absolute inset-0 flex items-center",children:(0,r.jsx)(m.w,{})}),(0,r.jsx)("div",{className:"relative flex justify-center text-xs uppercase",children:(0,r.jsx)("span",{className:"bg-background px-2 text-muted-foreground",children:"ou acesse"})})]}),(0,r.jsxs)(u.$,{type:"button",variant:"outline",onClick:L,disabled:S,className:"w-full",children:[(0,r.jsx)(j,{className:"mr-2 h-5 w-5"}),"Fazer Login com o Google"]})]})]})})})]})}function E(){return(0,r.jsx)(i.Suspense,{fallback:null,children:(0,r.jsx)(N,{})})}},19865:(e,t,a)=>{"use strict";a.d(t,{IG:()=>g,db:()=>A,getAuthInstance:()=>f,j2:()=>m,rf:()=>u,xL:()=>p,yA:()=>h});var r=a(64542);let i=null,s=null,n=null,o=null,l=null,c=!1;async function d(){if(!c||!i||!s||!n||!o)return l||(l=(async()=>{try{i=await (0,r.NR)(),s=await (0,r.MY)(),n=await (0,r.d8)(),o=await (0,r.DN)(),c=!0,console.log("[Firebase Config] ✅ Inst\xe2ncias inicializadas")}catch(e){throw console.error("[Firebase Config] ❌ Erro ao inicializar:",e),l=null,e}})())}async function u(){if(await d(),!i)throw Error("Firebase app n\xe3o inicializado");return i}async function f(){if(await d(),!s)throw Error("Auth n\xe3o inicializado");return s}async function p(){if(await d(),!o)throw Error("Firestore n\xe3o inicializado");return o}d().catch(console.error);let h=null,m=null,g=null,A=null},26271:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>r});let r={src:"/_next/static/media/fallback-sa.c80a26b9.png",height:500,width:500,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAMAAADz0U65AAAAG1BMVEXr6+uwxqC316G27o2i5HXA4qmeyYabtInn6uXCEBIMAAAACXBIWXMAAAPoAAAD6AG1e1JrAAAAI0lEQVR4nGNgQAIcMAYLK4RmZmRiBkuwMzEyQoTYmNAVgwEACOMAPkpMzE4AAAAASUVORK5CYII=",blurWidth:8,blurHeight:8}},33807:(e,t,a)=>{"use strict";a.d(t,{J:()=>c});var r=a(95155),i=a(12115),s=a(91760),n=a(18460),o=a(40980);let l=(0,n.F)("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),c=i.forwardRef(({className:e,...t},a)=>(0,r.jsx)(s.b,{ref:a,className:(0,o.cn)(l(),e),...t}));c.displayName=s.b.displayName},40980:(e,t,a)=>{"use strict";a.d(t,{Y:()=>n,cn:()=>s});var r=a(29722),i=a(622);function s(...e){return(0,i.QP)((0,r.$)(e))}function n(e){return e?e.toString().toLowerCase().trim().normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/[\s_]+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""):`artigo-sem-titulo-${Date.now()}`}},46513:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>r});let r={src:"/_next/static/media/logo-sa.094c7418.webp",height:175,width:500,blurDataURL:"data:image/webp;base64,UklGRngAAABXRUJQVlA4WAoAAAAQAAAABwAAAgAAQUxQSBkAAAAAb3p+eHmKjVppdF1gcXl
1nW5mWoLqbpXFLAFZQOCA4AAAAsAEAnQEqCAADAAJAOCWoAnQBFOTt8AD+437Rmv6Gji8Dk6Ea17PjGM8CE5Pi/mVEgRX37W5v3AA=",blurWidth:8,blurHeight:3}},51092:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>r});let r={src:"/_next/static/media/favicon-sa.7f00f372.webp",height:91,width:87,blurDataURL:"data:image/webp;base64,UklGRsoAAABXRUJQVlA4WAoAAAAQAAAABwAABwAAQUxQSEEAAAAABAIFdT8IAQAAADv84A0AAAA5Id2yJVgAVf3fIif1/k5Y88Y7QsrhMwdAIuHXICcBBQAe5+ggAAAAAAFCSQEAAABWUDggYgAAADACAJ0BKggACAACQDglmAJ0BpVbn+m8Jy/gAP7xp7hq+Wcqc5IuLsm3CO4ojoL2xDSHvha+xer4RAAHYjKIPhDoU+TrlmUkDhr+z5iMz/6Pzs+zMXk7upf+b/Y2rfNAAAAA",blurWidth:8,blurHeight:8}},59682:(e,t,a)=>{"use strict";a.d(t,{El:()=>o,Qm:()=>l,pT:()=>n});var r=a(46513),i=a(51092),s=a(26271);let n=r.default.src,o=i.default.src,l=s.default.src},60529:(e,t,a)=>{"use strict";a.d(t,{p:()=>n});var r=a(95155),i=a(12115),s=a(40980);let n=i.forwardRef(({className:e,type:t,...a},i)=>(0,r.jsx)("input",{type:t,className:(0,s.cn)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:i,...a}));n.displayName="Input"},64542:(e,t,a)=>{"use strict";a.d(t,{DN:()=>m,MY:()=>h,NR:()=>p,d8:()=>g});var r=a(97873),i=a(95145),s=a(4927),n=a(30928);let o=null,l=null,c=null;async function d(){return l?.firebase?.apiKey?l:c||(c=(async()=>{try{let e=await fetch("/api/get-firebase-config",{cache:"no-store"}),t=await e.json().catch(()=>({}));if(!e.ok)throw Error(t&&t.message||`Erro ${e.status}: ${e.statusText}`);if(!1===t.configured||!t.firebase?.apiKey||!t.firebase?.projectId){let e=t.message||"Firebase n\xe3o configurado. Defina NEXT_PUBLIC_FIREBASE_API_KEY_SA e FIREBASE_PROJECT_ID_SA no .env (e no painel de deploy).";throw console.warn("[Firebase Client] ⚠️",e),Error(e)}return l=t,console.log(`[Firebase Client] ✅ Config carregada para site: ${t.id}`),t}catch(e){throw console.error("[Firebase Client] ❌ Erro ao buscar config:",e),e}finally{c=null}})())}function u(e,t){return e.options.projectId===t.projectId&&e.options.authDomain===t.authDomain}async function f(){if(o){try{await (0,r.NM)(o)}catch(e){console.warn("[Firebase Client] Aviso ao deletar app cacheado:",e)}o=null}let e=(0,r.Dk)().find(e=>"[DEFAULT]"===e.name);if(e)try{await (0,r.NM)(e)}catch(e){console.warn("[Firebase Client] Aviso ao deletar app [DEFAULT]:",e)}}async function p(){let e=await d(),t=e.firebase;if(o&&!u(o,t)&&(console.log(`[Firebase Client] 🔄 Config mudou (authDomain ${o.options.authDomain} → ${t.authDomain}). Reinicializando...`),await f()),o&&u(o,t))return o;let a=(0,r.Dk)().find(e=>"[DEFAULT]"===e.name);if(a){if(u(a,t))return o=a,a;console.log("[Firebase Client] \uD83D\uDD04 App [DEFAULT] com authDomain antigo; recriando...");try{await (0,r.NM)(a)}catch(e){console.warn("[Firebase Client] Aviso ao deletar app anterior:",e)}}if(!t?.apiKey||!t?.projectId||!t?.authDomain)throw Error(`Configura\xe7\xe3o do Firebase incompleta para o site ${e.id}`);return o=(0,r.Wp)(t),console.log(`[Firebase Client] ✅ App inicializado: ${e.id} (project=${t.projectId}, authDomain=${t.authDomain})`),o}async function h(){let e=await p();return(0,i.getAuth)(e)}async function m(){let e=await p();return(0,s.aU)(e)}async function g(){let e=await p();return(0,n.c7)(e)}},71996:(e,t,a)=>{"use strict";a.d(t,{B6:()=>c,Qp:()=>o,lg:()=>i});var r=a(59682);let i=r.pT;function s(e){let t=e.trim();return"logo-sa.png"===t||"/logo-sa.png"===t||t.endsWith("/logo-sa.png")||"/images/logo-sa.png"===t||t.endsWith("/images/logo-sa.png")||"/icons/logo-sa.png"===t||t.endsWith("/icons/logo-sa.png")}function n(e){let t=e.trim();return"favicon-sa.png"===t||"/favicon-sa.png"===t||t.endsWith("/favicon-sa.png")||"/favicon.ico"===t||t.endsWith("/favicon.ico")}function o(e){let t=(e??"").trim();if(!t||s(t))return r.pT;if(t.includes("/_next/static/media/")&&t.includes("logo-sa"))return t;try{if(t.startsWith("http://")||t.startsWith("https://")){let e=new URL(t);if(s(e.pathname)||(e.hostname.includes("firebasestorage")||e.hostname.endsWith(".firebasestorage.app"))&&/logo[-_]?sa|saneamento.*logo|logo.*saneamento/i.test(e.pathname+e.search))return r.pT}}catch{return r.pT}return t}function l(e){let t=e.toLowerCase();return t.includes("brasilmineral")||t.includes("brasil-mineral")||t.includes("brasil_mineral")||t.includes("favicon-bm-legacy")||/favicon.*bm|bm.*favicon|mapa.*brasil|brazil.*map/i.test(t)}function c(e){let t=(e??"").trim();if(!t||n(t)||l(t))return r.El;if(t.includes("/_next/static/media/")&&t.includes("favicon-sa"))return t;try{if(t.startsWith("http://")||t.startsWith("https://")){let e=new URL(t);if(n(e.pathname)||l(e.href))return r.El}}catch{return r.El}return t}},73309:(e,t,a)=>{"use strict";a.d(t,{Hg:()=>c,W0:()=>u});var r=a(95155),i=a(12115),s=a(59682);new Date().toISOString();let n={logoUrl:s.pT,logoAlt:"Saneamento Ambiental Logo",logoWidth:300,logoHeight:100,faviconUrl:s.El,headerBackgroun
1dColor:"#2a2a2a",headerTextColor:"#ffffff",primaryColor:"#1976D2",accentColor:"#42A5F5",headerNavItems:[{id:"noticias",label:"Not\xedcias",href:"/",visible:!0,order:0},{id:"revistas",label:"Revistas",href:"/revistas",visible:!0,order:1},{id:"licitacoes",label:"Licita\xe7\xf5es",href:"/licitacoes",visible:!0,order:2},{id:"contato",label:"Contato",href:"/contato",visible:!0,order:3},{id:"assinar",label:"Assinar",href:"/newsletter",visible:!0,order:4}],siteName:"Saneamento Ambiental",siteDescription:"Informa\xe7\xe3o e an\xe1lise para o setor de saneamento e meio ambiente.",updatedAt:new Date().toISOString()};var o=a(71996);let l=(0,i.createContext)(void 0);function c({children:e,initialBranding:t=null}){let[a,s]=(0,i.useState)(t),[n,o]=(0,i.useState)(!t),d=async()=>{try{let e=await fetch("/api/branding");if(e.ok){let t=await e.json();s(t)}}catch(e){console.error("[BrandingContext] Error fetching branding:",e)}finally{o(!1)}};(0,i.useEffect)(()=>{t||d()},[t]);let u=async()=>{o(!0),await d()};return(0,r.jsx)(l.Provider,{value:{branding:a,isLoading:n,refreshBranding:u},children:e})}let d=new Set(["headerNavItems"]);function u(){let{branding:e}=function(){let e=(0,i.useContext)(l);if(void 0===e)throw Error("useBranding must be used within a BrandingProvider");return e}();if(!e)return n;let t={...n,...Object.fromEntries(Object.entries(e).filter(([e,t])=>null!=t&&""!==t&&!d.has(e)))};return t.logoUrl=(0,o.Qp)(t.logoUrl),t.faviconUrl=(0,o.B6)(null),t}},81477:(e,t,a)=>{"use strict";a.d(t,{BT:()=>c,Wu:()=>d,ZB:()=>l,Zp:()=>n,aR:()=>o});var r=a(95155),i=a(12115),s=a(40980);let n=i.forwardRef(({className:e,...t},a)=>(0,r.jsx)("div",{ref:a,className:(0,s.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",e),...t}));n.displayName="Card";let o=i.forwardRef(({className:e,...t},a)=>(0,r.jsx)("div",{ref:a,className:(0,s.cn)("flex flex-col space-y-1.5 p-6",e),...t}));o.displayName="CardHeader";let l=i.forwardRef(({className:e,...t},a)=>(0,r.jsx)("div",{ref:a,className:(0,s.cn)("text-2xl font-semibold leading-none tracking-tight",e),...t}));l.displayName="CardTitle";let c=i.forwardRef(({className:e,...t},a)=>(0,r.jsx)("div",{ref:a,className:(0,s.cn)("text-sm text-muted-foreground",e),...t}));c.displayName="CardDescription";let d=i.forwardRef(({className:e,...t},a)=>(0,r.jsx)("div",{ref:a,className:(0,s.cn)("p-6 pt-0",e),...t}));d.displayName="CardContent",i.forwardRef(({className:e,...t},a)=>(0,r.jsx)("div",{ref:a,className:(0,s.cn)("flex items-center p-6 pt-0",e),...t})).displayName="CardFooter"},86762:(e,t,a)=>{Promise.resolve().then(a.bind(a,13504))},89239:(e,t,a)=>{"use strict";a.d(t,{$:()=>c,r:()=>l});var r=a(95155),i=a(12115),s=a(42442),n=a(18460),o=a(40980);let l=(0,n.F)("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),c=i.forwardRef(({className:e,variant:t,size:a,asChild:i=!1,...n},c)=>{let d=i?s.DX:"button";return(0,r.jsx)(d,{className:(0,o.cn)(l({variant:t,size:a,className:e})),ref:c,...n})});c.displayName="Button"},97916:(e,t,a)=>{"use strict";a.d(t,{w:()=>o});var r=a(95155),i=a(12115),s=a(89803),n=a(40980);let o=i.forwardRef(({className:e,orientation:t="horizontal",decorative:a=!0,...i},o)=>(0,r.jsx)(s.b,{ref:o,decorative:a,orientation:t,className:(0,n.cn)("shrink-0 bg-border","horizontal"===t?"h-[1px] w-full":"h-full w-[1px]",e),...i}));o.displayName=s.b.displayName}},e=>{e.O(0,[91794,62992,18409,29567,68613,98500,38437,83437,28441,93794,77358],()=>e(e.s=86762)),_N_E=e.O()}]);

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.