PageSourceSearch

https://app.knockknockapp.ai/assets/Index-DrQyUQiK.js

js knockknockapp.ai collected 2026-09-24 13:19:42 UTC 45,083 bytes, 1 lines download raw bytes

1import{w as O,G as gt,l as r,m as l,q as e,y as h,H as ce,u as i,K as n,B as c,z as S,D as p,F as w,v as C,p as g,W as $,J as b,az as ze,Y as E,aa as K,ac as ge,ad as Te,X as yt,r as m,ak as $e}from"./vue-vendor-B52ivs5F.js";import{a as U,u as ut,c as pt,b as mt}from"./query-vendor-Ab0nfCYP.js";import{t as xt,o as bt,e as je,c as vt,b as kt,s as ye,F as _t}from"./form-vendor-C1mcXLoR.js";import{_ as ht}from"./Pagination-BR1DzaAC.js";import{_ as ft}from"./FormInput-D_5KVMuV.js";import{_ as wt}from"./FormRichText-CNuj3kL1.js";import{_ as St}from"./FormSelect-6HD9lt1G.js";import{_ as Ct}from"./FormSwitch-C1D9T4OV.js";import{_ as Le}from"./FormTextarea-DyKq4Pyg.js";import{t as ue}from"./index-NM9cAr_v.js";import{aa as zt,au as Y,ag as Q,w as Z,ce as Ee,b as pe,R as ee,bQ as Tt,a7 as $t,a$ as jt,cI as Ue,ba as Pe,bc as Lt,c as Et,c8 as Ut,ae as Pt,X as Me,i as Ne,bP as Mt,bd as Nt,bO as At,s as Ht,E as Rt}from"./ui-vendor-D-1UBobO.js";import"./TextEditor-BcFi4QYx.js";import"./tiptap-WUIbgnAh.js";import"./date-vendor-HBGOQ70J.js";import"./twilio-DAuME2Y9.js";import"./charts-D4hDxUnJ.js";import"./socket-CzTGKfeH.js";const Bt=async y=>(await U.post("/admin/notifications/send",y)).data,Dt=async y=>(await U.post("/admin/notifications/preview",y)).data,Ft=async y=>(await U.get(`/admin/notifications/${y}/emails`)).data,Wt=async y=>(await U.get(`/admin/notifications/emails/${y}`)).data.html,qt=async(y={})=>{const x=new URLSearchParams;if(y.page&&y.pageSize){const G=(y.page-1)*y.pageSize;x.append("skip",G),x.append("limit",y.pageSize)}return y.search&&x.append("search",y.search),y.sort&&x.append("sort",y.sort),y.order&&x.append("order",y.order),y.channel&&x.append("channel",y.channel),(await U.get(`/admin/notifications?${x.toString()}`)).data},Ot=async(y="",x="")=>{const d=new URLSearchParams;return y&&d.append("search",y),x&&x!=="all"&&d.append("company_filter",x),(await U.get(`/admin/notifications/search-companies?${d.toString()}`)).data},Kt=async(y="")=>{const x=new URLSearchParams;return y&&x.append("search",y),(await U.get(`/admin/notifications/search-users?${x.toString()}`)).data},Qt={class:"mx-auto max-w-5xl"},Gt={class:"mb-10"},It={class:"flex items-center gap-4"},Xt={class:"flex h-12 w-12 items-center justify-center rounded-2xl bg-linear-to-br from-teal-500 to-teal-600 text-white shadow-lg shadow-teal-500/25"},Jt={class:"text-2xl font-bold tracking-tight text-gray-900 dark:text-white"},Vt={class:"mt-0.5 text-sm text-gray-500 dark:text-gray-400"},Yt={class:"relative mb-12"},Zt={class:"relative mb-10 pl-12"},ea={class:"mb-4 text-xs text-gray-500 dark:text-gray-400"},ta={class:"rounded-xl border border-gray-200 bg-white p-4 dark:border-gray-700 dark:bg-gray-800"},aa={class:"mb-3 flex items-center gap-2"},sa={class:"grid grid-cols-2 gap-2"},ra=["onClick"],la={key:0,class:"absolute top-2 right-2 h-1.5 w-1.5 rounded-full bg-teal-500"},oa={class:"rounded-xl border border-gray-200 bg-white p-4 dark:border-gray-700 dark:bg-gray-800"},ia={class:"mb-3 flex items-center gap-2"},na={class:"grid grid-cols-2 gap-2"},da=["onClick"],ca={key:0,class:"absolute top-2 right-2 h-1.5 w-1.5 rounded-full bg-teal-500"},ga={key:0,class:"rounded-xl border border-gray-200 bg-white p-4 dark:border-gray-700 dark:bg-gray-800"},ya={class:"mb-3 flex items-center gap-2"},ua=["onClick"],pa={key:0,class:"absolute top-2 right-2 h-1.5 w-1.5 rounded-full bg-teal-500"},ma={key:0,class:"mb-4 flex items-center gap-3"},xa={class:"flex gap-1.5"},ba=["onClick"],va={key:0},ka={class:"mb-2 flex items-center gap-2 text-sm font-medium text-gray-700 dark:text-gray-200"},_a={key:0,class:"inline-flex h-5 min-w-5 items-center justify-center rounded-full bg-teal-500 px-1.5 text-[10px] font-bold text-white"},ha={key:0,class:"mb-2.5 flex flex-wrap gap-1.5"},fa=["onClick"],wa={key:0,class:"flex items-center justify-center gap-2 px-3 py-5 text-sm text-gray-400"},Sa=["onClick"],Ca={key:2,class:"flex flex-col items-center gap-1 px-3 py-6 text-center"},za={key:0},Ta={class:"mb-2 flex items-center gap-2 text-sm font-medium text-gray-700 dark:text-gray-200"},$a={key:0,class:"inline-flex h-5 min-w-5 items-center justify-center rounded-full bg-teal-500 px-1.5 text-[10px] font-bold text-white"},ja={key:0,class:"mb-2.5 flex flex-wrap gap-1.5"},La=["onClick"],Ea={key:0,class:"flex items-center justify-center gap-2 px-3 py-5 text-sm text-gray-400"},Ua=["onClick"],Pa={class:"min-w-0"},Ma={class:"ml-1.5 text-xs text-gray-400 dark:text-gray-500"},Na={key:2,class:"flex flex-col items-center gap-1 px-3 py-6 text-center"},Aa={class:"relative mb-10 pl-12"},Ha={class:"mb-1 text-sm font-bold tracking-wide text-gray-900 uppercase dark:text-white"},Ra={class:"mb-4 text-xs text-gray-500 dark:text-gray-400"},Ba={class:"rounded-xl border border-gray-200 bg-white p-5 dark:border-gray-700 dark:bg-gray-800"},Da={class:"mb-1 flex items-center justify-between"},Fa={class:"text-sm font-medium text-gray-700 dark:text-gray-200"},Wa={key:0,class:"flex rounded-lg bg-gray-100 p-0.5 dark:bg-gray-700"},qa={class:"[&_textarea]:font-mono [&_textarea]:text-xs"},Oa={key:0},Ka={class:"mb-2 flex items-center justify-end gap-2"},Qa={class:"flex rounded-lg bg-gray-100 p-0.5 dark:bg-gray-700"},Ga=["onClick"],Ia=["srcdoc"],Xa={key:0,class:"mt-2 text-[11px] text-gray-400 dark:text-gray-500"},Ja={key:1,class:"min-h-30 rounded-lg border border-gray-200 bg-white p-4 dark:border-gray-600 dark:bg-gray-700"},Va=["innerHTML"],Ya={key:2,class:"flex min-h-30 items-center justify-center rounded-lg border border-dashed border-gray-300 bg-gray-50 dark:border-gray-600 dark:bg-gray-700/50"},Za={class:"relative pl-12"},es={key:0,class:"mb-5 flex items-center justify-between rounded-xl border border-gray-200 bg-white px-4 py-3 dark:border-gray-700 dark:bg-gray-800"},ts={class:"flex items-center gap-3"},as={class:"flex h-8 w-8 items-center justify-center rounded-lg bg-amber-100 text-amber-600 dar
1k:bg-amber-500/20 dark:text-amber-400"},ss={key:0,class:"mb-5 overflow-hidden rounded-xl border border-gray-200 bg-gray-50 dark:border-gray-700 dark:bg-gray-800/50"},rs={class:"border-b border-gray-200 bg-white px-4 py-2.5 dark:border-gray-700 dark:bg-gray-800"},ls={class:"flex items-center justify-between"},os={class:"text-[11px] font-semibold tracking-wider text-gray-400 uppercase dark:text-gray-500"},is={class:"text-[11px] text-gray-400 dark:text-gray-500"},ns={key:0,class:"grid grid-cols-3 gap-4 px-4 py-3 text-xs"},ds={class:"mt-0.5 truncate font-medium text-gray-900 dark:text-white"},cs={class:"mt-0.5 font-medium text-gray-900 dark:text-white"},gs={key:1,class:"flex gap-3 px-4 py-3"},ys={class:"mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-teal-100 text-teal-600 dark:bg-teal-500/20 dark:text-teal-400"},us={class:"min-w-0"},ps={class:"text-sm font-semibold text-gray-900 dark:text-white"},ms={class:"mt-0.5 line-clamp-2 text-xs text-gray-500 dark:text-gray-400"},xs={class:"mt-2 flex items-center gap-3"},bs={key:0,class:"inline-flex items-center gap-1 text-[10px] font-medium text-teal-600 dark:text-teal-400"},vs={key:1,class:"inline-flex items-center gap-1 text-[10px] font-medium text-emerald-600 dark:text-emerald-400"},ks=["disabled"],_s={key:0,class:"w-full max-w-sm rounded-2xl border border-gray-200 bg-white p-6 shadow-xl dark:border-gray-700 dark:bg-gray-800"},hs={class:"mb-4 flex items-center justify-center"},fs={class:"flex h-12 w-12 items-center justify-center rounded-full bg-teal-50 dark:bg-teal-500/15"},ws={class:"mb-1 text-center text-lg font-semibold text-gray-900 dark:text-white"},Ss={class:"mb-6 text-center text-sm text-gray-500 dark:text-gray-400"},Cs={class:"font-semibold text-gray-700 dark:text-gray-300"},zs={class:"mb-5 flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between"},Ts={class:"flex items-center gap-3"},$s={key:0,class:"inline-flex h-5 min-w-5 items-center justify-center rounded-full bg-gray-200 px-1.5 text-[10px] font-bold text-gray-600 dark:bg-gray-700 dark:text-gray-400"},js={class:"relative w-full sm:w-72"},Ls=["placeholder"],Es={key:0,class:"flex items-center justify-center rounded-xl border border-gray-200 bg-white py-16 dark:border-gray-700 dark:bg-gray-800"},Us={class:"text-center"},Ps={key:1,class:"rounded-xl border border-red-200 bg-red-50 p-5 dark:border-red-900/50 dark:bg-red-900/20"},Ms={class:"flex items-start gap-3"},Ns={class:"mt-1 text-sm text-red-700 dark:text-red-300"},As={key:2,class:"overflow-hidden rounded-xl border border-gray-200 dark:border-gray-700"},Hs={class:"overflow-x-auto"},Rs={class:"min-w-full divide-y divide-gray-200 dark:divide-gray-700"},Bs={class:"bg-gray-50 dark:bg-gray-800/80"},Ds=["onClick"],Fs={class:"flex items-center gap-1.5"},Ws={class:"divide-y divide-gray-100 bg-white dark:divide-gray-700/50 dark:bg-gray-800"},qs={key:0},Os=["colspan"],Ks={class:"flex flex-col items-center"},Qs={class:"mb-3 flex h-12 w-12 items-center justify-center rounded-full bg-gray-100 dark:bg-gray-700"},Gs={class:"text-sm font-medium text-gray-500 dark:text-gray-400"},Is={class:"mt-0.5 text-xs text-gray-400 dark:text-gray-500"},Xs=["onClick"],Js={class:"px-4 py-3"},Vs={class:"flex items-center gap-2.5"},Ys={class:"text-sm font-medium text-gray-900 dark:text-white"},Zs={class:"max-w-xs px-4 py-3 text-sm text-gray-500 dark:text-gray-400"},er={class:"truncate"},tr={class:"px-4 py-3 text-sm"},ar={class:"px-4 py-3 text-sm"},sr={class:"font-medium text-gray-700 tabular-nums dark:text-gray-300"},rr={class:"px-4 py-3 text-sm text-gray-500 dark:text-gray-400"},lr={class:"px-4 py-3 text-sm text-gray-500 tabular-nums dark:text-gray-400"},or={class:"px-2 py-3 text-center"},ir={key:0},nr=["colspan"],dr={class:"py-4"},cr={key:0},gr={class:"mb-1.5 text-[11px] font-semibold tracking-wider text-gray-400 uppercase dark:text-gray-500"},yr={key:0,class:"tracking-normal text-gray-500 normal-case"},ur=["srcdoc"],pr={key:1,class:"text-xs text-gray-400"},mr={key:1},xr=["innerHTML"],br={key:2},vr={class:"mb-1.5 text-[11px] font-semibold tracking-wider text-gray-400 uppercase dark:text-gray-500"},kr={key:0,class:"max-h-120 divide-y divide-gray-200 overflow-y-auto rounded-lg border border-gray-200 bg-white text-xs dar
1k:divide-gray-600 dark:border-gray-600 dark:bg-gray-700"},_r=["onClick"],hr={class:"min-w-0"},fr={class:"truncate font-medium text-gray-800 dark:text-gray-200"},wr={class:"truncate text-gray-500 dark:text-gray-400"},Sr={key:0},Cr=["title"],zr={key:1,class:"text-xs text-gray-400 dark:text-gray-500"},Tr={key:3},$r={class:"flex flex-wrap gap-1"},Gr={__name:"Index",props:{channel:{type:String,default:"in_app"}},setup(y){const x=y,d=x.channel==="email",G=xt(bt({target_type:je(["all_companies","companies","all_users","users","all_agencies"]),title:ye().min(1,"Title is required"),message:ye().refine(a=>a.replace(/<[^>]*>/g,"").trim().length>0,"Message is required"),target_ids:kt(ye()).optional(),send_push_notification:vt().optional(),template:je(["branded","raw"]).optional()})),Ae={target_type:"all_companies",title:"",message:"",target_ids:[],send_push_notification:!0,template:"branded"},He=[{value:"branded",label:"Branded shell"},{value:"raw",label:"Raw HTML"}],f=m("write"),te=m(""),ae=m(null),A=m(!1),Re=[{value:!1,label:"Knock Knock"},{value:!0,label:"White-labeled"}];O([f,A,()=>ae.value?.values?.template],async()=>{const a=ae.value?.values;if(!(!d||f.value!=="preview"||!a?.message))try{const t=await Dt({title:a.title,message:a.message,template:a.template||"branded",white_label:A.value});te.value=t.html}catch{te.value='<p style="padding:16px;font-family:sans-serif">Preview failed</p>'}});const Be=[{value:"all_companies",label:"All",description:"Every company"},{value:"companies",label:"Specific",description:"Pick & choose"}],De=[{value:"all_users",label:"All",description:"Every user"},{value:"users",label:"Specific",description:"Pick & choose"}],z=m("all"),Fe=[{value:"all",label:"All Companies",icon:Q},{value:"white_labeled",label:"White Labeled",icon:Ut},{value:"non_white_labeled",label:"Non White Labeled",icon:Pt}],We=(a,t)=>{z.value=a,v.value=[],t("target_ids",[]),H.value=[],re(P.value)},P=m(""),H=m([]),v=m([]),I=m(!1),se=m(!1);let me=null;const re=async(a="")=>{se.value=!0;try{H.value=await Ot(a,z.value)}finally{se.value=!1}},qe=()=>{I.value=!0,H.value.length||re(P.value)};O(P,a=>{clearTimeout(me),me=setTimeout(()=>{re(a)},300)});const R=a=>v.value.some(t=>t._id===a),Oe=(a,t)=>{R(a._id)?v.value=v.value.filter(s=>s._id!==a._id):v.value.push(a),t("target_ids",v.value.map(s=>s._id))},Ke=(a,t)=>{v.value=v.value.filter(s=>s._id!==a),t("target_ids",v.value.map(s=>s._id))},B=m(""),X=m([]),k=m([]),J=m(!1),le=m(!1);let xe=null;const be=async(a="")=>{le.value=!0;try{X.value=await Kt(a)}finally{le.value=!1}},Qe=()=>{J.value=!0,X.value.length||be(B.value)};O(B,a=>{clearTimeout(xe),xe=setTimeout(()=>{be(a)},300)});const D=a=>k.value.some(t=>t._id===a),Ge=(a,t)=>{D(a._id)?k.value=k.value.filter(s=>s._id!==a._id):k.value.push(a),t("target_ids",k.value.map(s=>s._id))},Ie=(a,t)=>{k.value=k.value.filter(s=>s._id!==a),t("target_ids",k.value.map(s=>s._id))},ve=()=>{I.value=!1,J.value=!1},ke=a=>{a.key==="Escape"&&(I.value=!1,J.value=!1)};typeof document<"u"&&(document.addEventListener("click",ve),document.addEventListener("keydown",ke)),gt(()=>{document.removeEventListener("click",ve),document.removeEventListener("keydown",ke)});const F=m(!1),_e=m("");let W=null;const he=()=>{F.value=!1,W=null},Xe=()=>{if(F.value=!1,W){const{payload:a,resetForm:t}=W;Ve(a,{onSuccess:()=>{t(),f.value="write"}}),W=null}},Je=ut(),{mutate:Ve,isPending:oe}=pt({mutationFn:Bt,onSuccess:a=>{ue.success(`${d?"Email":"Notification"} sent to ${a.data?.recipients_count||0} recipients`),Je.invalidateQueries({queryKey:["admin","notifications"]}),v.value=[],k.value=[],P.value="",B.value=""},onError:a=>{ue.error(a.response?.data?.message||`Failed to send ${d?"email":"notification"}`)}}),Ye=a=>{const t=z.value==="white_labeled"?" (white labeled)":z.value==="non_white_labeled"?" (non white labeled)":"";return a.target_type==="all_companies"?`All companies${t}`:a.target_type==="all_users"?"All users":a.target_type==="all_agencies"?"All agencies":a.target_type==="companies"?v.value.length?`${v.value.length} companies${t}`:`Specific companies${t}`:k.value.length?`${k.value.length} users`:"Specific users"},Ze=(a,{resetForm:t})=>{const s={title:a.title,message:a.message,target_type:a.target_type,send_push_notification:a.send_push_notification??!0,send_in_app:!d,send_email:d};if(d&&(s.template=a.template||"branded"),(a.target_type==="all_companies"||a.target_type==="companies")&&z.value!=="all"&&(s.company_filter=z.value),a.target_type==="companies"||a.target_type==="users"){if(!a.target_ids?.length){ue.error(a.target_type==="companies"?"Please select at least one company":"Please select at least one user");return}s.target_ids=a.target_ids}const u=z.value==="white_labeled"?" (white labeled)":z.value==="non_white_labeled"?" (non white labeled)":"",o=a.target_type==="all_companies"?`all companies${u}`:a.target_type==="all_users"?"all users":a.target_type==="all_agencies"?"all agencies":a.target_type==="companies"?`${v.value.length} companies${u}`:`${k.value.length} users`;_e.value=o,W={payload:s,resetForm:t},F.value=!0},ie=m(""),T=m(1),q=m(20);O(q,()=>{T.value=1});const M=m("created_at"),j=m(-1),V=m(new Set),ne=m("");let fe=null;O(ie,a=>{clearTimeout(fe),fe=setTimeout(()=>{ne.value=a,T.value=1},300)});const{isPending:et,isError:tt,error:at,data:N}=mt({queryKey:["admin","notifications","history",x.channel,ne,T,q,M,j],queryFn:()=>qt({page:T.value,pageSize:q.value,search:ne.value,sort:M.value,order:j.value,channel:x.channel})}),de=[{key:"title",label:d?"Subject":"Title",sortable:!0},{key:"message",label:d?"Body":"Message",sortable:!1},{key:"target_type",label:"Target",sortable:!0},{key:"recipients_count",label:"Recipients",sortable:!0},{key:"sent_by",label:"Sent By",sortable:!1},{key:"created_at",label:"Date",sortable:!0}],st=a=>{M.value===a?j.value=j.value===1?-1:1:(M.value=a,j.value=1)},_=m({}),we=async(a,t)=>{const s=_.value[a];s.selected=t,s.html="",s.html=await Wt(t._id).catch(()=>'<p style="padding:16px;font-family:sans-serif">Could not load this email</p>')},rt=async a=>{const t=await Ft(a).catch(()=>[]);_.value[a]={logs:t,selected:null,html:""},t.length&&we(a,t[0])},lt=a=>{const t=new Set(V.value);t.has(a)?t.delete(a):t.add(a),V.value=t,d&&t.has(a)&&!_.value[a]&&rt(a)},Se={all_companies:"All Companies",companies:"Companies",all_users:"All Users",users:"Users",all_agencies:"All Agencies"},ot=a=>a.target_type.startsWith("all_")?Se[a.target_type]:a.target_names?.length?a.target_names.length<=2?a.target_names.join(", "):`${a.target_names.slice(0,2).join(", ")} +${a.target_names.length-2}
1`:Se[a.target_type],it=a=>a==="all_companies"||a==="companies"?"bg-sky-50 text-sky-700 ring-sky-600/20 dark:bg-sky-500/10 dark:text-sky-400 dark:ring-sky-500/30":a==="all_agencies"?"bg-amber-50 text-amber-700 ring-amber-600/20 dark:bg-amber-500/10 dark:text-amber-400 dark:ring-amber-500/30":"bg-violet-50 text-violet-700 ring-violet-600/20 dark:bg-violet-500/10 dark:text-violet-400 dark:ring-violet-500/30",nt=a=>a==="all_companies"||a==="companies"?Q:a==="all_agencies"?Ee:Z,dt=a=>a?typeof a=="string"?a:`${a.first_name||""} ${a.last_name||""}`.trim()||"-":"-",ct=a=>a?new Date(a).toLocaleString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):"-",Ce=a=>a?a.replace(/<[^>]*>/g,""):"";return(a,t)=>(r(),l("div",Qt,[e("div",Gt,[e("div",It,[e("div",Xt,[(r(),h(ce(d?i(zt):i(Y)),{size:22}))]),e("div",null,[e("h1",Jt,n(d?"Emails":"Notifications"),1),e("p",Vt,n(d?"Send product updates by email. White-labeled clients receive it from their agency, everyone else from us.":"Broadcast in-app notifications to companies or users"),1)])])]),c(i(_t),{ref_key:"previewForm",ref:ae,"validation-schema":i(G),"initial-values":Ae,onSubmit:Ze},{default:S(({values:s,setFieldValue:u})=>[e("div",Yt,[t[45]||(t[45]=e("div",{class:"absolute top-0 bottom-0 left-4.5 w-px bg-linear-to-b from-teal-400 via-teal-300 to-teal-200 dark:from-teal-500 dark:via-teal-600 dark:to-teal-700"},null,-1)),e("div",Zt,[t[28]||(t[28]=e("div",{class:"absolute left-0 flex h-9 w-9 items-center justify-center rounded-xl bg-teal-500 text-xs font-bold text-white shadow-md shadow-teal-500/30"}," 1 ",-1)),e("div",null,[t[27]||(t[27]=e("h2",{class:"mb-1 text-sm font-bold tracking-wide text-gray-900 uppercase dark:text-white"}," Recipients ",-1)),e("p",ea," Who should receive this "+n(d?"email":"notification")+"? ",1),e("div",{class:p(["mb-4 grid grid-cols-1 gap-4",d?"sm:grid-cols-3":"sm:grid-cols-2"])},[e("div",ta,[e("div",aa,[c(i(Q),{size:14,class:"text-sky-500"}),t[15]||(t[15]=e("span",{class:"text-xs font-semibold tracking-wider text-gray-500 uppercase dark:text-gray-400"},"Companies",-1))]),e("div",sa,[(r(),l(w,null,C(Be,o=>e("button",{key:o.value,type:"button",onClick:L=>u("target_type",o.value),class:p(["relative rounded-lg border-2 px-3 py-3 text-left transition-all duration-200",s.target_type===o.value?"border-teal-500 bg-teal-50 shadow-sm dark:border-teal-400 dark:bg-teal-500/10":"border-transparent bg-gray-50 hover:bg-gray-100 dark:bg-gray-700/50 dark:hover:bg-gray-700"])},[e("div",{class:p(["text-sm font-semibold transition-colors",s.target_type===o.value?"text-teal-700 dark:text-teal-300":"text-gray-700 dark:text-gray-300"])},n(o.label),3),e("div",{class:p(["mt-0.5 text-[11px] transition-colors",s.target_type===o.value?"text-teal-600/70 dark:text-teal-400/60":"text-gray-400 dark:text-gray-500"])},n(o.description),3),s.target_type===o.value?(r(),l("div",la)):g("",!0)],10,ra)),64))])]),e("div",oa,[e("div",ia,[c(i(Z),{size:14,class:"text-violet-500"}),t[16]||(t[16]=e("span",{class:"text-xs font-semibold tracking-wider text-gray-500 uppercase dark:text-gray-400"},"Users",-1))]),e("div",na,[(r(),l(w,null,C(De,o=>e("button",{key:o.value,type:"button",onClick:L=>u("target_type",o.value),class:p(["relative rounded-lg border-2 px-3 py-3 text-left transition-all duration-200",s.target_type===o.value?"border-teal-500 bg-teal-50 shadow-sm dark:border-teal-400 dark:bg-teal-500/10":"border-transparent bg-gray-50 hover:bg-gray-100 dark:bg-gray-700/50 dark:hover:bg-gray-700"])},[e("div",{class:p(["text-sm font-semibold transition-colors",s.target_type===o.value?"text-teal-700 dark:text-teal-300":"text-gray-700 dark:text-gray-300"])},n(o.label),3),e("div",{class:p(["mt-0.5 text-[11px] transition-colors",s.target_type===o.value?"text-teal-600/70 dark:text-teal-400/60":"text-gray-400 dark:text-gray-500"])},n(o.description),3),s.target_type===o.value?(r(),l("div",ca)):g("",!0)],10,da)),64))])]),d?(r(),l("div",ga,[e("div",ya,[c(i(Ee),{size:14,class:"text-amber-500"}),t[17]||(t[17]=e("span",{class:"text-xs font-semibold tracking-wider text-gray-500 uppercase dark:text-gray-400"},"Agencies",-1))]),e("button",{type:"button",onClick:o=>u("target_type","all_agencies"),class:p(["relative w-full rounded-lg border-2 px-3 py-3 text-left transition-all duration-200",s.target_type==="all_agencies"?"border-teal-500 bg-teal-50 shadow-sm dark:border-teal-400 dark:bg-teal-500/10":"border-transparent bg-gray-50 hover:bg-gray-100 dark:bg-gray-700/50 dark:hover:bg-gray-700"])},[e("div",{class:p(["text-sm font-semibold transition-colors",s.target_type==="all_agencies"?"text-teal-700 dark:text-teal-300":"text-gray-700 dark:text-gray-300"])}," All ",2),e("div",{class:p(["mt-0.5 text-[11px] transition-colors",s.target_type==="all_agencies"?"text-teal-600/70 dark:text-teal-400/60":"text-gray-400 dark:text-gray-500"])}," Every agency owner, email only ",2),s.target_type==="all_agencies"?(r(),l("div",pa)):g("",!0)],10,ua)])):g("",!0)],2),c($,{"enter-active-class":"transition-all duration-300 ease-out","enter-from-class":"opacity-0 -translate-y-2","enter-to-class":"opacity-100 translate-y-0","leave-active-class":"transition-all duration-200 ease-in","leave-from-class":"opacity-100 translate-y-0","leave-to-class":"opacity-0 -translate-y-2"},{default:S(()=>[s.target_type==="all_companies"||s.target_type==="companies"?(r(),l("div",ma,[t[18]||(t[18]=e("span",{class:"text-xs font-medium text-gray-400 dark:text-gray-500"},"Filter:",-1)),e("div",xa,[(r(),l(w,null,C(Fe,o=>e("button",{key:o.value,type:"button",onClick:L=>We(o.value,u),class:p(["inline-flex items-center gap-1.5 rounded-full border px-3 py-1 text-[11px] font-medium transition-all duration-200",z.value===o.value?"border-teal-500/50 bg-teal-50 text-teal-700 dark:border-teal-400/50 dark:bg-teal-500/10 dark:text-teal-300":"border-gray-200 text-gray-500 hover:border-gray-300 hover:text-gray-700 dark:border-gray-600 dark:text-gray-400 dark:hover:border-gray-500"])},[(r(),h(ce(o.icon),{size:11})),b(" "+n(o.label),1)],10,ba)),64))])])):g("",!0)]),_:2},1024),c($,{"enter-active-class":"transition-all duration-300 ease-out","enter-from-class":"opacity-0 -translate-y-2","enter-to-class":"opacity-100 translate-y-0","leave-active-class":"transition-all duration-200 ease-in","leave-from-class":"opacity-100 translate-y-0","leave-to-class":"opacity-0 -translate-y-2"},{default:S(()=>[s.target_type==="companies"?(r(),l("div",va,[e("label",ka,[t[19]||(t[19]=b(" Select Companies ",-1)),t[20]||(t[20]=e("span",{class:"text-red-500"},"*",-1)),v.value.length?(r(),l("span",_a,n(v.value.length),1)):g("",!0)]),v.value.length?(r(),l("div",ha,[c(ze,{"enter-active-class":"transition-all duration-200","enter-from-class":"opacity-0 scale-90","enter-to-class":"opacity-100 scale-100","leave-active-class":"transition-all duration-150","leave-from-class":"opacity-100 scale-100","leave-to-class":"opacity-0 scale-90"},{default:S(()=>[(r(!0),l(w,null,C(v.value,o=>(r(),l("span",{key:o._id,class:"inline-flex items-center gap-1 rounded-lg bg-sky-50 px-2.5 py-1 text-xs font-medium text-sky-700 ring-1 ring-sky-200 dark:bg-sky-500/15 dark:text-sky-300 dark:ring-sky-500/30"},[c(i(Q),{size:12}),b(" "+n(o.company_name)+" ",1),e("button",{type:"button",onClick:L=>Ke(o._id,u),class:"-mr-0.5 ml-0.5 rounded p-0.5 text-sky-500 transition-colors hover:bg-sky-100 hover:text-sky-700 dark:text-sky-400 dark:hover:bg-sky-500/20"},[c(i(Me),{size:12})],8,fa)]))),128))]),_:2},1024)])):g("",!0),e("div",{class:"relative",onClick:t[1]||(t[1]=E(()=>{},["stop"]))},[c(i(pe),{size:16,class:"absolute top-1/2 left-3 -translate-y-1/2 text-gray-400 dark:text-gray-500"}),K(e("input",{"onUpdate:modelValue":t[0]||(t[0]=o=>P.value=o),type:"text",placeholder:"Search companies...",onFocus:qe,class:"w-full rounded-lg border border-gray-300 bg-white py-2.5 pr-4 pl-10 text-sm text-gray-900 placeholder-gray-400 transition-shadow focus:border-teal-400 focus:ring-2 focus:ring-teal-500/20 focus:outline-none dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-500 dark:focus:border-teal-500"},null,544),[[ge,P.value]])]),c($,{"enter-active-class":"transition-all duration-200 ease-out","enter-from-class":"opacity-0 -translate-y-1","enter-to-class":"opacity-100 translate-y-0","leave-active-class":"transition-all duration-150 ease-in","leave-from-class":"opacity-100 translate-y-0","leave-to-class":"opacity-0 -translate-y-1"},{default:S(()=>[I.value?(r(),l("div",{key:0,class:"mt-1.5 max-h-60 overflow-y-auto rounded-xl border border-gray-200 bg-white shadow-lg dark:border-gray-600 dark:bg-gray-700",onClick:t[2]||(t[2]=E(()=>{},["stop"]))},[se.value?(r(),l("div",wa,[c(i(ee),{size:14,class:"animate-spin"}
1),t[21]||(t[21]=e("span",null,"Loading...",-1))])):H.value.length?(r(!0),l(w,{key:1},C(H.value,o=>(r(),l("button",{key:o._id,type:"button",onClick:L=>Oe(o,u),class:p(["flex w-full items-center gap-3 px-3 py-2.5 text-left text-sm transition-colors",R(o._id)?"bg-teal-50 dark:bg-teal-500/10":"hover:bg-gray-50 dark:hover:bg-gray-600/50"])},[e("div",{class:p(["flex h-4 w-4 shrink-0 items-center justify-center rounded border-2 transition-colors",R(o._id)?"border-teal-500 bg-teal-500":"border-gray-300 dark:border-gray-500"])},[R(o._id)?(r(),h(i(Ne),{key:0,size:10,class:"text-white"})):g("",!0)],2),e("span",{class:p(["text-gray-900 dark:text-white",R(o._id)&&"font-medium"])},n(o.company_name),3)],10,Sa))),128)):(r(),l("div",Ca,[c(i(Q),{size:20,class:"text-gray-300 dark:text-gray-500"}),t[22]||(t[22]=e("span",{class:"text-sm text-gray-400 dark:text-gray-500"},"No companies found",-1))]))])):g("",!0)]),_:2},1024)])):g("",!0)]),_:2},1024),c($,{"enter-active-class":"transition-all duration-300 ease-out","enter-from-class":"opacity-0 -translate-y-2","enter-to-class":"opacity-100 translate-y-0","leave-active-class":"transition-all duration-200 ease-in","leave-from-class":"opacity-100 translate-y-0","leave-to-class":"opacity-0 -translate-y-2"},{default:S(()=>[s.target_type==="users"?(r(),l("div",za,[e("label",Ta,[t[23]||(t[23]=b(" Select Users ",-1)),t[24]||(t[24]=e("span",{class:"text-red-500"},"*",-1)),k.value.length?(r(),l("span",$a,n(k.value.length),1)):g("",!0)]),k.value.length?(r(),l("div",ja,[c(ze,{"enter-active-class":"transition-all duration-200","enter-from-class":"opacity-0 scale-90","enter-to-class":"opacity-100 scale-100","leave-active-class":"transition-all duration-150","leave-from-class":"opacity-100 scale-100","leave-to-class":"opacity-0 scale-90"},{default:S(()=>[(r(!0),l(w,null,C(k.value,o=>(r(),l("span",{key:o._id,class:"inline-flex items-center gap-1 rounded-lg bg-violet-50 px-2.5 py-1 text-xs font-medium text-violet-700 ring-1 ring-violet-200 dark:bg-violet-500/15 dark:text-violet-300 dark:ring-violet-500/30"},[c(i(Z),{size:12}),b(" "+n(o.first_name)+" "+n(o.last_name)+" ",1),e("button",{type:"button",onClick:L=>Ie(o._id,u),class:"-mr-0.5 ml-0.5 rounded p-0.5 text-violet-500 transition-colors hover:bg-violet-100 hover:text-violet-700 dark:text-violet-400 dark:hover:bg-violet-500/20"},[c(i(Me),{size:12})],8,La)]))),128))]),_:2},1024)])):g("",!0),e("div",{class:"relative",onClick:t[4]||(t[4]=E(()=>{},["stop"]))},[c(i(pe),{size:16,class:"absolute top-1/2 left-3 -translate-y-1/2 text-gray-400 dark:text-gray-500"}),K(e("input",{"onUpdate:modelValue":t[3]||(t[3]=o=>B.value=o),type:"text",placeholder:"Search users by name or email...",onFocus:Qe,class:"w-full rounded-lg border border-gray-300 bg-white py-2.5 pr-4 pl-10 text-sm text-gray-900 placeholder-gray-400 transition-shadow focus:border-teal-400 focus:ring-2 focus:ring-teal-500/20 focus:outline-none dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-500 dark:focus:border-teal-500"},null,544),[[ge,B.value]])]),c($,{"enter-active-class":"transition-all duration-200 ease-out","enter-from-class":"opacity-0 -translate-y-1","enter-to-class":"opacity-100 translate-y-0","leave-active-class":"transition-all duration-150 ease-in","leave-from-class":"opacity-100 translate-y-0","leave-to-class":"opacity-0 -translate-y-1"},{default:S(()=>[J.value?(r(),l("div",{key:0,class:"mt-1.5 max-h-60 overflow-y-auto rounded-xl border border-gray-200 bg-white shadow-lg dark:border-gray-600 dark:bg-gray-700",onClick:t[5]||(t[5]=E(()=>{},["stop"]))},[le.value?(r(),l("div",Ea,[c(i(ee),{size:14,class:"animate-spin"}),t[25]||(t[25]=e("span",null,"Loading...",-1))])):X.value.length?(r(!0),l(w,{key:1},C(X.value,o=>(r(),l("button",{key:o._id,type:"button",onClick:L=>Ge(o,u),class:p(["flex w-full items-center gap-3 px-3 py-2.5 text-left text-sm transition-colors",D(o._id)?"bg-violet-50 dark:bg-violet-500/10":"hover:bg-gray-50 dark:hover:bg-gray-600/50"])},[e("div",{class:p(["flex h-4 w-4 shrink-0 items-center justify-center rounded border-2 transition-colors",D(o._id)?"border-violet-500 bg-violet-500":"border-gray-300 dark:border-gray-500"])}
1,[D(o._id)?(r(),h(i(Ne),{key:0,size:10,class:"text-white"})):g("",!0)],2),e("div",Pa,[e("span",{class:p(["text-gray-900 dark:text-white",D(o._id)&&"font-medium"])},n(o.first_name)+" "+n(o.last_name),3),e("span",Ma,n(o.email),1)])],10,Ua))),128)):(r(),l("div",Na,[c(i(Z),{size:20,class:"text-gray-300 dark:text-gray-500"}),t[26]||(t[26]=e("span",{class:"text-sm text-gray-400 dark:text-gray-500"},"No users found",-1))]))])):g("",!0)]),_:2},1024)])):g("",!0)]),_:2},1024)])]),e("div",Aa,[t[35]||(t[35]=e("div",{class:"absolute left-0 flex h-9 w-9 items-center justify-center rounded-xl bg-teal-500 text-xs font-bold text-white shadow-md shadow-teal-500/30"}," 2 ",-1)),e("div",null,[e("h2",Ha,n(d?"Email":"Message"),1),e("p",Ra,n(d?"Write the subject line and body":"Compose the notification content"),1),e("div",Ba,[c(ft,{name:"title",label:d?"Subject":"Title",placeholder:d?"Email subject line":"Notification title",required:""},null,8,["label","placeholder"]),d?(r(),h(St,{key:0,name:"template",label:"Template",options:He,hint:s.template==="raw"?"Body is sent exactly as written. Use this when pasting a complete HTML email.":"Subject becomes the headline and the body sits inside the branded shell with logo and footer."},null,8,["hint"])):g("",!0),e("div",null,[e("div",Da,[e("label",Fa,[b(n(d?"Body":"Message")+" ",1),t[29]||(t[29]=e("span",{class:"text-red-500"},"*",-1))]),s.message||d?(r(),l("div",Wa,[e("button",{type:"button",tabindex:"-1",onClick:t[6]||(t[6]=o=>f.value="write"),class:p(["flex items-center gap-1 rounded-md px-2.5 py-1 text-xs font-medium transition-all duration-200",f.value==="write"?"bg-white text-gray-900 shadow-sm dark:bg-gray-600 dark:text-white":"text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200"])},[c(i(Tt),{size:12}),t[30]||(t[30]=b(" Write ",-1))],2),e("button",{type:"button",tabindex:"-1",onClick:t[7]||(t[7]=o=>f.value="preview"),class:p(["flex items-center gap-1 rounded-md px-2.5 py-1 text-xs font-medium transition-all duration-200",f.value==="preview"?"bg-white text-gray-900 shadow-sm dark:bg-gray-600 dark:text-white":"text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200"])},[c(i($t),{size:12}),t[31]||(t[31]=b(" Preview ",-1))],2),d?(r(),l("button",{key:0,type:"button",tabindex:"-1",onClick:t[8]||(t[8]=o=>f.value="html"),class:p(["flex items-center gap-1 rounded-md px-2.5 py-1 text-xs font-medium transition-all duration-200",f.value==="html"?"bg-white text-gray-900 shadow-sm dark:bg-gray-600 dark:text-white":"text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200"])},[c(i(jt),{size:12}),t[32]||(t[32]=b(" HTML ",-1))],2)):g("",!0)])):g("",!0)]),K(e("div",qa,[c(Le,{name:"message",placeholder:"<p>Paste or edit the email HTML...</p>",rows:14})],512),[[Te,f.value==="html"]]),K(e("div",null,[d?(r(),h(wt,{key:0,name:"message",placeholder:"Write the product update...",toolbar:"email"})):(r(),h(Le,{key:1,name:"message",placeholder:"Write your notification message... (HTML supported)",rows:5,required:""}))],512),[[Te,f.value==="write"]]),f.value==="preview"&&s.message&&d?(r(),l("div",Oa,[e("div",Ka,[t[33]||(t[33]=e("span",{class:"text-[11px] text-gray-400 dark:text-gray-500"},"Preview as",-1)),e("div",Qa,[(r(),l(w,null,C(Re,o=>e("button",{key:o.value,type:"button",onClick:L=>A.value=o.value,class:p(["rounded-md px-2.5 py-1 text-xs font-medium transition-all duration-200",A.value===o.value?"bg-white text-gray-900 shadow-sm dark:bg-gray-600 dark:text-white":"text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200"])},n(o.label),11,Ga)),64))])]),e("iframe",{srcdoc:te.value,title:"Email preview",class:"h-160 w-full rounded-lg border border-gray-200 bg-white dark:border-gray-600"},null,8,Ia),A.value?(r(),l("p",Xa," Sample agency without a logo. Real agencies show their own logo, name and reply-to. ")):g("",!0)])):f.value==="preview"&&s.message?(r(),l("div",Ja,[e("div",{class:"prose prose-sm dark:prose-invert max-w-none text-gray-900 dark:text-white",innerHTML:s.message},null,8,Va)])):f.value==="preview"&&!s.message?(r(),l("div",Ya,[...t[34]||(t[34]=[e("p",{class:"text-sm text-gray-400 dark:text-gray-500"},"Nothing to preview yet",-1)])])):g("",!0)])])])]),e("div",Za,[t[44]||(t[44]=e("div",{class:"absolute left-0 flex h-9 w-9 items-center justify-center rounded-xl bg-teal-500 text-xs font-bold text-white shadow-md shadow-teal-500/30"}," 3 ",-1)),e("div",null,[t[42]||(t[42]=e("h2",{class:"mb-1 text-sm font-bold tracking-wide text-gray-900 uppercase dark:text-white"}," Review & Send ",-1)),t[43]||(t[43]=e("p",{class:"mb-4 text-xs text-gray-500 dark:text-gray-400"}," Configure delivery options and send ",-1)),d?g("",!0):(r(),l("div",es,[e("div",ts,[e("div",as,[c(i(Ue),{size:16})]),t[36]||(t[36]=e("div",null,[e("p",{class:"text-sm font-medium text-gray-900 dark:text-white"},"Push Notification"),e("p",{class:"text-xs text-gray-500 dark:text-gray-400"}," Also send to users' devices via FCM ")],-1))]),c(Ct,{name:"send_push_notification"})])),c($,{"enter-active-class":"transition-all duration-300 ease-out","enter-from-class":"opacity-0 -translate-y-2","enter-to-class":"opacity-100 translate-y-0","leave-active-class":"transition-all duration-200 ease-in","leave-from-class":"opacity-100 translate-y-0","leave-to-class":"opacity-0 -translate-y-2"},{default:S(()=>[s.title&&s.message?(r(),l("div",ss,[e("div",rs,[e("div",ls,[e("span",os,n(d?"Send Summary":"Notification Preview"),1),e("span",is,n(Ye(s)),1)])]),d?(r(),l("dl",ns,[e("div",null,[t[37]||(t[37]=e("dt",{class:"text-gray-400 dark:text-gray-500"},"Subject",-1)),e("dd",ds,n(s.title),1)]),e("div",null,[t[38]||(t[38]=e("dt",{class:"text-gray-400 dark:text-gray-500"},"Template",-1)),e("dd",cs,n(s.template==="raw"?"Raw HTML":"Branded shell"),1)]),t[39]||(t[39]=e("div",null,[e("dt",{class:"text-gray-400 dark:text-gray-500"},"Sender"),e("dd",{class:"mt-0.5 font-medium text-gray-900 dark:text-white"}," Agency brand for white-labeled clients, ours otherwise ")],-1))])):(r(),l("div",gs,[e("div",ys,[c(i(Y),{size:14})]),e("div",us,[e("p",ps,n(s.title),1),e("p",ms,n(Ce(s.message)),1),e("div",xs,[d?g("",!0):(r(),l("span",bs,[c(i(Y),{size:10}),t[40]||(t[40]=b(" In-app ",-1))])),!d&&s.send_push_notification?(r(),l("span",vs,[c(i(Ue),{size:10}),t[41]||(t[41]=b(" Push ",-1))])):g("",!0)])])]))])):g("",!0)]),_:2},1024),e("button",{type:"submit",disabled:i(oe),class:"inline-flex items-center gap-2.5 rounded-xl bg-linear-to-r from-teal-500 to-teal-600 px-7 py-3 text-sm font-semibold text-white shadow-lg shadow-teal-500/25 transition-all duration-200 hover:from-teal-600 hover:to-teal-700 hover:shadow-xl hover:shadow-teal-500/30 disabled:cursor-not-allowed disabled:opacity-50 disabled:shadow-none"},[i(oe)?(r(),h(i(ee),{key:0,size:16,class:"animate-spin"})):(r(),h(i(Pe),{key:1,size:16})),b(" "+n(i(oe)?"Sending...":d?"Send Email":"Send Notification"),1)],8,ks)])])])]),_:1},8,["validation-schema"]),(r(),h(yt,{to:"body"},[c($,{"enter-active-class":"transition-all duration-200 ease-out","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-all duration-150 ease-in","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:S(()=>[F.value?(r(),l("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4 backdrop-blur-sm",onClick:E(he,["self"])},[c($,{"enter-active-class":"transition-all duration-200 ease-out","enter-from-class":"opacity-0 scale-95","enter-to-class":"opacity-100 scale-100","leave-active-class":"transition-all duration-150 ease-in","leave-from-class":"opacity-100 scale-100","leave-to-class":"opacity-0 scale-95"},{default:S(()=>[F.value?(r(),l("div",_s,[e("div",hs,[e("div",fs,[c(i(Pe),{size:22,class:"text-teal-600 dar
1k:text-teal-400"})])]),e("h3",ws,n(d?"Send Email?":"Send Notification?"),1),e("p",Ss,[b(" This will send "+n(d?"an email":"a notification")+" to ",1),e("span",Cs,n(_e.value),1),t[46]||(t[46]=b(". ",-1))]),e("div",{class:"flex gap-3"},[e("button",{type:"button",onClick:he,class:"flex-1 rounded-xl border border-gray-300 bg-white px-4 py-2.5 text-sm font-medium text-gray-700 transition-colors hover:bg-gray-50 dark:border-gray-600 dark:bg-gray-700 dark:text-gray-300 dark:hover:bg-gray-600"}," Cancel "),e("button",{type:"button",onClick:Xe,class:"flex-1 rounded-xl bg-teal-500 px-4 py-2.5 text-sm font-semibold text-white transition-colors hover:bg-teal-600"}," Send ")])])):g("",!0)]),_:1})])):g("",!0)]),_:1})])),e("div",null,[e("div",zs,[e("div",Ts,[c(i(Lt),{size:18,class:"text-gray-400 dark:text-gray-500"}),t[47]||(t[47]=e("h2",{class:"text-lg font-bold tracking-tight text-gray-900 dark:text-white"},"History",-1)),i(N)?.pagination?.total?(r(),l("span",$s,n(i(N).pagination.total),1)):g("",!0)]),e("div",js,[c(i(pe),{size:16,class:"absolute top-1/2 left-3 -translate-y-1/2 text-gray-400 dark:text-gray-500"}),K(e("input",{"onUpdate:modelValue":t[9]||(t[9]=s=>ie.value=s),type:"text",placeholder:d?"Search emails...":"Search notifications...",class:"w-full rounded-lg border border-gray-300 bg-white py-2 pr-4 pl-10 text-sm text-gray-900 placeholder-gray-400 transition-shadow focus:border-teal-400 focus:ring-2 focus:ring-teal-500/20 focus:outline-none dark:border-gray-600 dark:bg-gray-700 dark:text-white dark:placeholder-gray-500 dark:focus:border-teal-500"},null,8,Ls),[[ge,ie.value]])])]),i(et)?(r(),l("div",Es,[e("div",Us,[c(i(ee),{size:28,class:"mx-auto animate-spin text-gray-300 dark:text-gray-600"}),t[48]||(t[48]=e("p",{class:"mt-3 text-sm text-gray-400 dark:text-gray-500"},"Loading history...",-1))])])):i(tt)?(r(),l("div",Ps,[e("div",Ms,[c(i(Et),{size:20,class:"mt-0.5 shrink-0 text-red-500"}),e("div",null,[t[49]||(t[49]=e("h3",{class:"font-semibold text-red-900 dark:text-red-400"},"Failed to load history",-1)),e("p",Ns,n(i(at)?.message||"An unexpected error occurred"),1)])])])):(r(),l("div",As,[e("div",Hs,[e("table",Rs,[e("thead",Bs,[e("tr",null,[(r(),l(w,null,C(de,s=>e("th",{key:s.key,class:p(["px-4 py-3 text-left text-[11px] font-semibold tracking-wider text-gray-500 uppercase dark:text-gray-400",s.sortable&&"cursor-pointer transition-colors select-none hover:text-gray-700 dark:hover:text-gray-200"]),onClick:u=>s.sortable&&st(s.key)},[e("div",Fs,[b(n(s.label)+" ",1),s.sortable?(r(),l(w,{key:0},[M.value===s.key&&j.value===1?(r(),h(i(Mt),{key:0,size:13,class:"text-teal-500"})):M.value===s.key&&j.value===-1?(r(),h(i(Nt),{key:1,size:13,class:"text-teal-500"})):(r(),h(i(At),{key:2,size:13,class:"opacity-30"}))],64)):g("",!0)])],10,Ds)),64)),t[50]||(t[50]=e("th",{class:"w-10 px-2 py-3"},null,-1))])]),e("tbody",Ws,[i(N)?.results?.length?g("",!0):(r(),l("tr",qs,[e("td",{colspan:de.length+1,class:"px-4 py-16 text-center"},[e("div",Ks,[e("div",Qs,[c(i(Y),{size:22,class:"text-gray-300 dark:text-gray-500"})]),e("p",Gs," No "+n(d?"emails":"notifications")+" sent yet ",1),e("p",Is,n(d?"Sent emails":"Sent notifications")+" will appear here ",1)])],8,Os)])),(r(!0),l(w,null,C(i(N)?.results,s=>(r(),l(w,{key:s._id},[e("tr",{class:"group cursor-pointer transition-colors hover:bg-gray-50/80 dark:hover:bg-gray-700/30",onClick:u=>lt(s._id)},[e("td",Js,[e("div",Vs,[e("div",{class:p(["h-6 w-0.5 rounded-full",s.target_type==="all_companies"||s.target_type==="companies"?"bg-sky-400":s.target_type==="all_agencies"?"bg-amber-400":"bg-violet-400"])},null,2),e("span",Ys,n(s.title),1)])]),e("td",Zs,[e("div",er,n(Ce(s.message)),1)]),e("td",tr,[e("span",{class:p(["inline-flex items-center gap-1 rounded-md px-2 py-0.5 text-xs font-medium ring-1 ring-inset",it(s.target_type)])},[(r(),h(ce(nt(s.target_type)),{size:11})),b(" "+n(ot(s)),1)],2)]),e("td",ar,[e("span",sr,n(s.recipients_count),1)]),e("td",rr,n(dt(s.sent_by)),1),e("td",lr,n(ct(s.created_at)),1),e("td",or,[c(i(Ht),{size:16,class:p(["mx-auto text-gray-300 transition-transform duration-200 dark:text-gray-600",V.value.has(s._id)&&"rotate-180 text-gray-500 dark:text-gray-400"])},null,8,["class"])])],8,Xs),V.value.has(s._id)?(r(),l("tr",ir,[e("td",{colspan:de.length+1,class:"bg-gray-50/50 px-4 py-0 dark:bg-gray-800/50"},[e("div",dr,[e("div",{class:p(["grid gap-4",d?"lg:grid-cols-[1fr_320px]":"sm:grid-cols-2"])},[d?(r(),l("div",cr,[e("p",gr,[t[52]||(t[52]=b(" Sent Email ",-1)),_.value[s._id]?.selected?(r(),l("span",yr,[b(" · to "+n(_.value[s._id].selected.to)+" · from "+n(_.value[s._id].selected.from?.name)+" · ",1),c(i($e),{to:{name:"admin-email-log-detail",params:{id:_.value[s._id].selected._id}},target:"_blank",class:"text-teal-600 hover:underline dark:text-teal-400"},{default:S(()=>[...t[51]||(t[51]=[b(" open log ",-1)])]),_:1},8,["to"])])):g("",!0)]),_.value[s._id]?.html?(r(),l("iframe",{key:0,srcdoc:_.value[s._id].html,title:"Sent email",class:"h-120 w-full rounded-lg border border-gray-200 bg-white dark:border-gray-600"},null,8,ur)):(r(),l("p",pr,n(_.value[s._id]?.logs?.length===0?"N
1o emails logged yet. Queued emails appear here once the worker sends them.":"Loading..."),1))])):(r(),l("div",mr,[t[53]||(t[53]=e("p",{class:"mb-1.5 text-[11px] font-semibold tracking-wider text-gray-400 uppercase dark:text-gray-500"}," Full Message ",-1)),e("div",{class:"prose prose-sm dark:prose-invert max-w-none rounded-lg border border-gray-200 bg-white p-3 text-gray-700 dark:border-gray-600 dark:bg-gray-700 dark:text-gray-300",innerHTML:s.message},null,8,xr)])),d?(r(),l("div",br,[e("p",vr," Recipients ("+n(_.value[s._id]?.logs?.length??"…")+") ",1),_.value[s._id]?.logs?.length?(r(),l("ul",kr,[(r(!0),l(w,null,C(_.value[s._id].logs,u=>(r(),l("li",{key:u._id,class:p(["flex cursor-pointer items-center justify-between gap-2 px-3 py-1.5 hover:bg-gray-50 dark:hover:bg-gray-600/50",_.value[s._id].selected?._id===u._id&&"bg-teal-50 dark:bg-teal-500/10"]),onClick:E(o=>we(s._id,u),["stop"])},[e("div",hr,[e("p",fr,n(u.to),1),e("p",wr,[b(" from "+n(u.from?.name)+" ",1),u.attempts>1?(r(),l("span",Sr,"· "+n(u.attempts)+" attempts",1)):g("",!0)])]),c(i($e),{to:{name:"admin-email-log-detail",params:{id:u._id}},target:"_blank",title:"Open email log",class:"shrink-0 rounded p-1 text-gray-400 hover:bg-gray-100 hover:text-gray-700 dark:hover:bg-gray-600 dark:hover:text-gray-200",onClick:t[10]||(t[10]=E(()=>{},["stop"]))},{default:S(()=>[c(i(Rt),{size:12})]),_:1},8,["to"]),e("span",{class:p(["shrink-0 rounded px-1.5 py-0.5 text-[10px] font-medium",u.status==="sent"?"bg-emerald-50 text-emerald-700 dark:bg-emerald-500/10 dark:text-emerald-400":"bg-red-50 text-red-700 dark:bg-red-500/10 dark:text-red-400"]),title:u.error?.message||u.error||""},n(u.status),11,Cr)],10,_r))),128))])):(r(),l("p",zr,n(_.value[s._id]?.logs?`Nothing logged yet (${s.recipients_count} queued).`:"Loading..."),1))])):s.target_names?.length?(r(),l("div",Tr,[t[54]||(t[54]=e("p",{class:"mb-1.5 text-[11px] font-semibold tracking-wider text-gray-400 uppercase dark:text-gray-500"}," Recipients ",-1)),e("div",$r,[(r(!0),l(w,null,C(s.target_names,u=>(r(),l("span",{key:u,class:"inline-flex rounded-md bg-gray-100 px-2 py-0.5 text-xs font-medium text-gray-600 dark:bg-gray-700 dark:text-gray-300"},n(u),1))),128))])])):g("",!0)],2)])],8,nr)])):g("",!0)],64))),128))])])]),i(N)?.pagination?(r(),h(ht,{key:0,page:T.value,"page-size":q.value,total:i(N).pagination.total||0,"item-name":d?"emails":"notifications","show-per-page-selector":"","show-page-buttons":"",onPrev:t[11]||(t[11]=s=>T.value--),onNext:t[12]||(t[12]=s=>T.value++),onGoto:t[13]||(t[13]=s=>T.value=s),"onUpdate:pageSize":t[14]||(t[14]=s=>q.value=s)},null,8,["page","page-size","total","item-name"])):g("",!0)]))])]))}};export{Gr 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.