PageSourceSearch

https://smartvoiceagent.ai/assets/AdminLayout-DU7G6dAf.js

js smartvoiceagent.ai collected 2026-10-05 15:07:52 UTC 10,977 bytes, 2 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-D4-tas9S.js","assets/index-B70u2C2F.js","assets/vendor-react-DDKacIYH.js","assets/vendor-firebase-BlSo17-V.js","assets/index-TSNg_YCF.css","assets/calls-CQTc5ouF.js","assets/appointments-C5oO4ZOa.js","assets/jobs-B_YHjmOT.js","assets/billing-BcpsGE1c.js","assets/business-config-DMPTDq5p.js","assets/knowledge-base-Bmb5z79t.js","assets/ai-CE1FefG5.js","assets/routes-Ct-Tsy6M.js","assets/outbound-voice-archives-CsmtffXZ.js","assets/payments-loJUVW6J.js","assets/invoices-C58wXrIQ.js","assets/restaurant-DPNxxvQX.js","assets/hospitality-Db6MF1br.js","assets/entertainment-CqGgvY5-.js","assets/salon-CFLDKntL.js","assets/veterinary-CUl6mEyB.js","assets/church-BxuYEss3.js","assets/childcare-4ATAXqOO.js","assets/property-mgmt-D2TmRJeE.js","assets/storage-CYgS6lIi.js","assets/transportation-BJVzSehh.js","assets/vacation-rental-CtO5PMdt.js","assets/agriculture-DP0uUX5D.js","assets/real-estate-BXVf0RN8.js","assets/auto-CReSDTOL.js","assets/fitness-2HTlZcb2.js","assets/pet-care-Y8ul2ABz.js","assets/retail-lyua9K3a.js","assets/professional-Csaq6U0-.js"])))=>i.map(i=>d[i]);
2import{cq as k,cs as P,co as e,ba as _,af as F,cw as O,cr as K,v as T}from"./index-B70u2C2F.js";import{i as L,u as B,r as o,L as N,O as D}from"./vendor-react-DDKacIYH.js";import{s as R}from"./vendor-firebase-BlSo17-V.js";const W=[{to:"/admin",label:"Command Center",icon:"📊",exact:!0}],G=[{id:"monitor",label:"Monitor",icon:"📈",defaultOpen:!0,items:[{to:"/admin/tenants",label:"Tenants",icon:"👥",exact:!0},{to:"/admin/calls",label:"Calls",icon:"📞"},{to:"/admin/events",label:"Activity",icon:"📋"},{to:"/admin/usage",label:"Usage & Margins",icon:"📊"},{to:"/admin/financials",label:"Financials",icon:"💰"},{to:"/admin/systems",label:"Systems",icon:"🔧",exact:!0},{to:"/admin/alerts",label:"Alerts",icon:"🔔",badgeKey:"alerts"},{to:"/admin/api-usage",label:"API Usage",icon:"🔌"},{to:"/admin/analytics",label:"Analytics",icon:"📈"}]},{id:"configure",label:"Configure",icon:"⚙️",items:[{to:"/admin/platform/onboarding/business-types",label:"Business Types",icon:"🏪"},{to:"/admin/platform/business-types",label:"Type Registry",icon:"📑"},{to:"/admin/tools",label:"Agent Tools",icon:"🔩"},{to:"/admin/agent-templates",label:"Agent Templates",icon:"📝"},{to:"/admin/platform/feature-registry",label:"Features",icon:"🔑"},{to:"/admin/platform/plans",label:"Pricing Plans",icon:"💎"},{to:"/admin/page-config",label:"Page Config",icon:"🗂️"},{to:"/admin/platform/features",label:"Feature Flags",icon:"🚩"},{to:"/admin/taxes",label:"Taxes",icon:"🧾"},{type:"subgroup",label:"Stripe",icon:"💳",items:[{to:"/admin/systems/stripe",label:"Overview",icon:"📊",exact:!0},{to:"/admin/systems/stripe/plans",label:"Price Plans",icon:"💰"},{to:"/admin/systems/stripe/addons",label:"Add-Ons",icon:"🧩"},{to:"/admin/systems/stripe/promos",label:"Promo Codes",icon:"🎟️"},{to:"/admin/systems/stripe/config",label:"Config",icon:"⚙️"}]},{type:"subgroup",label:"Systems",icon:"🔧",items:[{to:"/admin/systems/elevenlabs",label:"ElevenLabs",icon:"🎙️"},{to:"/admin/systems/twilio",label:"Twilio",icon:"📱"},{to:"/admin/systems/sendgrid",label:"SendGrid",icon:"📧"},{to:"/admin/systems/firebase",label:"Firebase/GCP",icon:"🔥"},{to:"/admin/systems/google-maps",label:"Google Maps",icon:"🗺️"},{to:"/admin/systems/gemini",label:"Gemini",icon:"✨"},{to:"/admin/systems/domains",label:"Domains",icon:"🌐"},{to:"/admin/platform/stack",label:"Stack",icon:"🔧"}]}]},{id:"operations",label:"Operations",icon:"🛠️",items:[{to:"/admin/platform-notifications",label:"Notifications",icon:"📢"},{to:"/admin/cron",label:"Scheduled Jobs",icon:"⏰"},{to:"/admin/sponsored-codes",label:"Sponsored Codes",icon:"🎁"},{to:"/admin/users",label:"Users",icon:"🔐"},{to:"/admin/waitlist",label:"Waitlist",icon:"📋",badgeKey:"waitlist"},{to:"/admin/feedback",label:"Feedback",icon:"💬",badgeKey:"feedback"},{to:"/admin/retention",label:"Data Retention",icon:"🗑️"},{to:"/admin/data-management",label:"Backups & Archives",icon:"💾"},{type:"subgroup",label:"Email",icon:"✉️",items:[{to:"/admin/email/log",label:"Log",icon:"📋"},{to:"/admin/email/templates",label:"Templates",icon:"📄"}]}]}];function w({item:t,pathname:n,badges:a}){const r=!t.noActive&&(t.exact?n===t.to:n.startsWith(t.to)),l=t.badgeKey&&a[t.badgeKey]||0;return e.jsxs(N,{to:t.to,className:`flex items-center gap-2 px-2 py-1.5 rounded text-xs font-medium transition-colors ${r?"bg-indigo-600/20 text-indigo-300":"text-slate-400 hover:text-white hover:bg-slate-800"}`,children:[e.jsx("span",{className:"text-sm leading-none",children:t.icon}),e.jsx("span",{className:"flex-1",children:t.label}),l>0&&e.jsx("span",{className:"px-1.5 py-0.5 text-[10px] font-semibold rounded-full bg-amber-500 text-white",children:l})]})}function U({subgroup:t,pathname:n,badges:a}){return e.jsxs("div",{className:"mt-1",children:[e.jsxs("div",{className:"flex items-center gap-1.5 px-2 py-1",children:[e.jsx("span",{className:"text-[11px]",children:t.icon}),e.jsx("span",{className:"text-[10px] font-semibold text-slate-500 uppercase tracking-wider",children:t.label})]}),e.jsx("div",{className:"ml-2 pl-2 border-l border-slate-700/40 space-y-0.5",children:t.items.map((r,l)=>e.jsx(w,{item:r,pathname:n,badges:a},l))})]})}function A(t,n){return t.some(a=>a.type==="subgroup"?A(a.items,n):!a.noAutoExpand&&n.startsWith(a.to))}function $({group:t,pathname:n,badges:a}
2){const r=A(t.items,n),[l,p]=o.useState(r||t.defaultOpen),x=(t.items||[]).reduce((c,d)=>d.type==="subgroup"?c+(d.items||[]).reduce((g,b)=>g+(b.badgeKey&&a[b.badgeKey]||0),0):c+(d.badgeKey&&a[d.badgeKey]||0),0);return o.useEffect(()=>{r&&p(!0)},[r]),e.jsxs("div",{children:[e.jsxs("button",{onClick:()=>p(c=>!c),className:`w-full flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm font-medium transition-colors hover:bg-slate-800 ${r?"text-indigo-300":"text-slate-400 hover:text-white"}`,children:[e.jsx("span",{className:"text-base leading-none",children:t.icon}),e.jsx("span",{className:"flex-1 text-left",children:t.label}),x>0&&!l&&e.jsx("span",{className:"inline-flex items-center justify-center min-w-[18px] h-[18px] px-1 rounded-full text-[10px] font-bold bg-red-500 text-white",children:x}),e.jsx("span",{className:"text-[10px] text-slate-500",children:l?"▾":"›"})]}),l&&e.jsx("div",{className:"ml-3 mt-0.5 pl-3 border-l border-slate-700/40 space-y-0.5 pb-1",children:t.items.map((c,d)=>c.type==="subgroup"?e.jsx(U,{subgroup:c,pathname:n,badges:a},d):e.jsx(w,{item:c,pathname:n,badges:a},d))})]})}const u="admin_feedback_seen_at";function q(){var j;const{user:t}=k(),{tenantId:n,isImpersonating:a,clearImpersonation:r}=P(),l=L(),p=B(),[x,c]=o.useState(null),[d,g]=o.useState(0),[b,v]=o.useState(0),[S,E]=o.useState(0);o.useEffect(()=>{fetch("/health").then(i=>i.json()).then(i=>c(i.version)).catch(()=>c(null))},[]),o.useEffect(()=>{const s=async()=>{try{const m=await _("pending");g(m.count||0)}catch{}};s();const i=setInterval(s,6e4);return()=>clearInterval(i)},[]),o.useEffect(()=>{const s=async()=>{try{const h=localStorage.getItem(u)||new Date(Date.now()-10080*60*1e3).toISOString(),y=await F(h);v(y.new_count||0)}catch{}};s();const i=setInterval(s,6e4);return()=>clearInterval(i)},[]),o.useEffect(()=>{const s=async()=>{try{const{getAdminHealthAlertCounts:m}=await O(async()=>{const{getAdminHealthAlertCounts:y}=await import("./index-D4-tas9S.js");return{getAdminHealthAlertCounts:y}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33])),h=await m();E(h.total||0)}catch{}};s();const i=setInterval(s,6e4);return()=>clearInterval(i)},[]),o.useEffect(()=>{l.pathname==="/admin/feedback"&&(localStorage.setItem(u,new Date().toISOString()),v(0))},[l.pathname]);const C=async()=>{try{await R(K)}catch(i){console.warn("Error signing out:",i.message)}const s=localStorage.getItem(u);localStorage.clear(),s&&localStorage.setItem(u,s),sessionStorage.clear(),T(),p("/login")},f=l.pathname,I={waitlist:d,feedback:b,alerts:S};return e.jsxs("div",{className:"min-h-screen bg-slate-900 flex",children:[e.jsxs("aside",{className:"w-64 bg-slate-900 border-r border-slate-700/50 flex flex-col flex-shrink-0 sticky top-0 h-screen",children:[e.jsx("div",{className:"px-5 py-5 border-b border-slate-700/50",children:e.jsxs("div",{className:"flex items-center gap-2.5",children:[e.jsx("div",{className:"w-9 h-9 rounded-lg bg-indigo-600 flex items-center justify-center text-lg",children:"📞"}),e.jsxs("div",{children:[e.jsx("div",{className:"text-sm font-bold text-white tracking-tight",children:"Smart Voice Agent"}),e.jsx("div",{className:"text-[10px] font-semibold text-indigo-400 uppercase tracking-widest",children:"Admin"})]})]})}),e.jsxs("nav",{className:"flex-1 px-3 py-4 space-y-0.5 overflow-y-auto scrollbar-dark",children:[W.map(s=>{const i=s.exact?f===s.to:f.startsWith(s.to);return e.jsxs(N,{to:s.to,className:`flex items-center gap-3 px-3 py-2.5 rounded-lg text-sm font-medium transition-colors ${i?"bg-indigo-600/20 text-indigo-300":"text-slate-400 hover:text-white hover:bg-slate-800"}`,children:[e.jsx("span",{className:"text-base leading-none",children:s.icon}),e.jsx("span",{className:"flex-1",children:s.label})]},s.to)}),e.jsx("div",{className:"border-t border-slate-700/30 my-2"}),G.map(s=>e.jsx($,{group:s,pathname:f,badges:I},s.id))]}),e.jsxs("div",{className:"px-3 py-4 border-t border-slate-700/50 space-y-2",children:[a&&n&&e.jsxs("button",{onClick:r,className:"w-full flex items-center gap-3 px-3 py-2.5 rounded-lg text-sm font-medium text-amber-400 hover:text-amber-300 hover:bg-slate-800 transition-colors",children:[e.jsx("span",{className:"text-base",children:"✕"}),"Exit Impersonation"]}),e.jsxs("div",{className:"flex items-center gap-2 px-3 py-2",children:[e.jsx("div",{className:"w-7 h-7 rounded-full bg-indigo-600 flex items-center justify-center text-white text-xs font-semibold",children:((j=t==null?void 0:t.email)==null?void 0:j.charAt(0).toUpperCase())||"A"}),e.jsx("span",{className:"text-xs text-slate-400 truncate flex-1",children:t==null?void 0:t.email})]}),e.jsxs("div",{className:"px-3 py-2 space-y-0.5",children:[e.jsxs("div",{className:"text-[10px] text-slate-500 font-mono",children:["FE: ","dev"]}),e.jsxs("div",{className:"text-[10px] text-slate-500 font-mono",children:["BE: ",(x==null?void 0:x.slice(0,7))||"..."]})]}),e.jsx("button",{onClick:C,className:"w-full text-left px-3 py-2 text-sm text-slate-500 hover:text-red-400 hover:bg-slate-800 rounded-lg transition-colors",children:"Logout"})]})]}),e.jsx("main",{className:"flex-1 min-h-screen bg-slate-950 overflow-auto",children:e.jsx(o.Suspense,{fallback:e.jsx("div",{className:"flex items-center justify-center h-64",children:e.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-slate-600 border-t-indigo-500"})}),children:e.jsx(D,{})})})]})}export{q 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.