1import{d as ee,c as w,i as _,a as l,o,r as te,b as x,e,m as oe,C as ke,J as He,t as d,l as I,_ as Me,s as $e,f as u,g as Ve,h as Ze,w as K,u as c,q as Se,j as m,p as B,K as ne,T as ie,F as de,k as ue,v as R,n as j,L as ce,x as Y}from"./index-DQg1-oXA.js";import{a as N,c as Ae,p as Ce,s as De,d as Be}from"./api-BY-ays0w.js";import{G as ze}from"./PhDownloadSimple.vue-DQ0VYbPF.js";import{I as Te}from"./PhEye.vue-C-zvVEaN.js";import{G as Q}from"./PhFileText.vue-CrJ_ByEI.js";import{_ as Ue}from"./ArticleUploadForm-QvH_s_hM.js";import{c as Re}from"./utils-BzxvdIOf.js";const Ne=["width","height","fill","transform"],Pe={key:0},Ie=e("path",{d:"M216.49,104.49l-80,80a12,12,0,0,1-17,0l-80-80a12,12,0,0,1,17-17L128,159l71.51-71.52a12,12,0,0,1,17,17Z"},null,-1),Le=[Ie],je={key:1},Fe=e("path",{d:"M208,96l-80,80L48,96Z",opacity:"0.2"},null,-1),Ee=e("path",{d:"M215.39,92.94A8,8,0,0,0,208,88H48a8,8,0,0,0-5.66,13.66l80,80a8,8,0,0,0,11.32,0l80-80A8,8,0,0,0,215.39,92.94ZM128,164.69,67.31,104H188.69Z"},null,-1),Ge=[Fe,Ee],Oe={key:2},qe=e("path",{d:"M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,48,88H208a8,8,0,0,1,5.66,13.66Z"},null,-1),Je=[qe],We={key:3},Ke=e("path",{d:"M212.24,100.24l-80,80a6,6,0,0,1-8.48,0l-80-80a6,6,0,0,1,8.48-8.48L128,167.51l75.76-75.75a6,6,0,0,1,8.48,8.48Z"},null,-1),Ye=[Ke],Qe={key:4},Xe=e("path",{d:"M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z"},null,-1),et=[Xe],tt={key:5},ot=e("path",{d:"M210.83,98.83l-80,80a4,4,0,0,1-5.66,0l-80-80a4,4,0,0,1,5.66-5.66L128,170.34l77.17-77.17a4,4,0,1,1,5.66,5.66Z"},null,-1),lt=[ot],rt={name:"PhCaretDown"},pe=ee({...rt,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(p){const s=p,h=_("weight","regular"),g=_("size","1em"),M=_("color","currentColor"),$=_("mirrored",!1),i=w(()=>s.weight??h),f=w(()=>s.size??g),b=w(()=>s.color??M),V=w(()=>s.mirrored!==void 0?s.mirrored?"scale(-1, 1)":void 0:$?"scale(-1, 1)":void 0);return(y,z)=>(o(),l("svg",oe({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:f.value,height:f.value,fill:b.value,transform:V.value},y.$attrs),[te(y.$slots,"default"),i.value==="bold"?(o(),l("g",Pe,Le)):i.value==="duotone"?(o(),l("g",je,Ge)):i.value==="fill"?(o(),l("g",Oe,Je)):i.value==="light"?(o(),l("g",We,Ye)):i.value==="regular"?(o(),l("g",Qe,et)):i.value==="thin"?(o(),l("g",tt,lt)):x("",!0)],16,Ne))}}),at=["width","height","fill","transform"],st={key:0},nt=e("path",{d:"M224,196h-4V40a12,12,0,0,0-12-12H152a12,12,0,0,0-12,12V76H96A12,12,0,0,0,84,88v36H48a12,12,0,0,0-12,12v60H32a12,12,0,0,0,0,24H224a12,12,0,0,0,0-24ZM164,52h32V196H164Zm-56,48h32v96H108ZM60,148H84v48H60Z"},null,-1),it=[nt],dt={key:1},ut=e("path",{d:"M208,40V208H152V40Z",opacity:"0.2"},null,-1),ct=e("path",{d:"M224,200h-8V40a8,8,0,0,0-8-8H152a8,8,0,0,0-8,8V80H96a8,8,0,0,0-8,8v40H48a8,8,0,0,0-8,8v64H32a8,8,0,0,0,0,16H224a8,8,0,0,0,0-16ZM160,48h40V200H160ZM104,96h40V200H104ZM56,144H88v56H56Z"},null,-1),pt=[ut,ct],gt={key:2},mt=e("path",{d:"M232,208a8,8,0,0,1-8,8H32a8,8,0,0,1,0-16h8V136a8,8,0,0,1,8-8H72a8,8,0,0,1,8,8v64H96V88a8,8,0,0,1,8-8h32a8,8,0,0,1,8,8V200h16V40a8,8,0,0,1,8-8h40a8,8,0,0,1,8,8V200h8A8,8,0,0,1,232,208Z"},null,-1),vt=[mt],ft={key:3},bt=e("path",{d:"M224,202H214V40a6,6,0,0,0-6-6H152a6,6,0,0,0-6,6V82H96a6,6,0,0,0-6,6v42H48a6,6,0,0,0-6,6v66H32a6,6,0,0,0,0,12H224a6,6,0,0,0,0-12ZM158,46h44V202H158ZM102,94h44V202H102ZM54,142H90v60H54Z"},null,-1),xt=[bt],ht={key:4},yt=e("path",{d:"M224,200h-8V40a8,8,0,0,0-8-8H152a8,8,0,0,0-8,8V80H96a8,8,0,0,0-8,8v40H48a8,8,0,0,0-8,8v64H32a8,8,0,0,0,0,16H224a8,8,0,0,0,0-16ZM160,48h40V200H160ZM104,96h40V200H104ZM56,144H88v56H56Z"},null,-1),wt=[yt],_t={key:5},kt=e("path",{d:"M224,204H212V40a4,4,0,0,0-4-4H152a4,4,0,0,0-4,4V84H96a4,4,0,0,0-4,4v44H48a4,4,0,0,0-4,4v68H32a4,4,0,0,0,0,8H224a4,4,0,0,0,0-8ZM156,44h48V204H156ZM100,92h48V204H100ZM52,140H92v64H52Z"},null,-1),Ht=[kt],Mt={name:"PhChartBar"},P=ee({...Mt,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(p){const s=p,h=_("weight","regular"),g=_("size","1em"),M=_("color","currentColor"),$=_("mirrored",!1),i=w(()=>s.weight??h),f=w(()=>s.size??g),b=w(()=>s.color??M),V=w(()=>s.mirrored!==void 0?s.mirrored?"scale(-1, 1)":void 0:$?"scale(-1, 1)":void 0);return(y,z)=>(o(),l("svg",oe({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:f.value,height:f.value,fill:b.value,transform:V.value},y.$attrs),[te(y.$slots,"default"),i.value==="bold"?(o(),l("g",st,it)):i.value==="duotone"?(o(),l("g",dt,pt)):i.value==="fill"?(o(),l("g",gt,vt)):i.value==="light"?(o(),l("g",ft,xt)):i.value==="regular"?(o(),l("g",ht,wt)):i.value==="thin"?(o(),l("g",_t,Ht)):x("",!0)],16,at))}}),$t=["width","height","fill","transform"],Vt={key:0}
1,Zt=e("path",{d:"M228,144v64a12,12,0,0,1-12,12H40a12,12,0,0,1-12-12V144a12,12,0,0,1,24,0v52H204V144a12,12,0,0,1,24,0ZM96.49,80.49,116,61v83a12,12,0,0,0,24,0V61l19.51,19.52a12,12,0,1,0,17-17l-40-40a12,12,0,0,0-17,0l-40,40a12,12,0,1,0,17,17Z"},null,-1),St=[Zt],At={key:1},Ct=e("path",{d:"M216,48V208H40V48A16,16,0,0,1,56,32H200A16,16,0,0,1,216,48Z",opacity:"0.2"},null,-1),Dt=e("path",{d:"M224,144v64a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V144a8,8,0,0,1,16,0v56H208V144a8,8,0,0,1,16,0ZM93.66,77.66,120,51.31V144a8,8,0,0,0,16,0V51.31l26.34,26.35a8,8,0,0,0,11.32-11.32l-40-40a8,8,0,0,0-11.32,0l-40,40A8,8,0,0,0,93.66,77.66Z"},null,-1),Bt=[Ct,Dt],zt={key:2},Tt=e("path",{d:"M224,144v64a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V144a8,8,0,0,1,16,0v56H208V144a8,8,0,0,1,16,0ZM88,80h32v64a8,8,0,0,0,16,0V80h32a8,8,0,0,0,5.66-13.66l-40-40a8,8,0,0,0-11.32,0l-40,40A8,8,0,0,0,88,80Z"},null,-1),Ut=[Tt],Rt={key:3},Nt=e("path",{d:"M222,144v64a6,6,0,0,1-6,6H40a6,6,0,0,1-6-6V144a6,6,0,0,1,12,0v58H210V144a6,6,0,0,1,12,0ZM92.24,76.24,122,46.49V144a6,6,0,0,0,12,0V46.49l29.76,29.75a6,6,0,0,0,8.48-8.48l-40-40a6,6,0,0,0-8.48,0l-40,40a6,6,0,0,0,8.48,8.48Z"},null,-1),Pt=[Nt],It={key:4},Lt=e("path",{d:"M224,144v64a8,8,0,0,1-8,8H40a8,8,0,0,1-8-8V144a8,8,0,0,1,16,0v56H208V144a8,8,0,0,1,16,0ZM93.66,77.66,120,51.31V144a8,8,0,0,0,16,0V51.31l26.34,26.35a8,8,0,0,0,11.32-11.32l-40-40a8,8,0,0,0-11.32,0l-40,40A8,8,0,0,0,93.66,77.66Z"},null,-1),jt=[Lt],Ft={key:5},Et=e("path",{d:"M220,144v64a4,4,0,0,1-4,4H40a4,4,0,0,1-4-4V144a4,4,0,0,1,8,0v60H212V144a4,4,0,0,1,8,0ZM90.83,74.83,124,41.66V144a4,4,0,0,0,8,0V41.66l33.17,33.17a4,4,0,1,0,5.66-5.66l-40-40a4,4,0,0,0-5.66,0l-40,40a4,4,0,0,0,5.66,5.66Z"},null,-1),Gt=[Et],Ot={name:"PhUploadSimple"},ge=ee({...Ot,props:{weight:{type:String},size:{type:[String,Number]},color:{type:String},mirrored:{type:Boolean}},setup(p){const s=p,h=_("weight","regular"),g=_("size","1em"),M=_("color","currentColor"),$=_("mirrored",!1),i=w(()=>s.weight??h),f=w(()=>s.size??g),b=w(()=>s.color??M),V=w(()=>s.mirrored!==void 0?s.mirrored?"scale(-1, 1)":void 0:$?"scale(-1, 1)":void 0);return(y,z)=>(o(),l("svg",oe({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",width:f.value,height:f.value,fill:b.value,transform:V.value},y.$attrs),[te(y.$slots,"default"),i.value==="bold"?(o(),l("g",Vt,St)):i.value==="duotone"?(o(),l("g",At,Bt)):i.value==="fill"?(o(),l("g",zt,Ut)):i.value==="light"?(o(),l("g",Rt,Pt)):i.value==="regular"?(o(),l("g",It,jt)):i.value==="thin"?(o(),l("g",Ft,Gt)):x("",!0)],16,$t))}}),qt={class:"relative bg-card rounded-2xl p-6 shadow-lg border border-border hover:shadow-xl hover:border-primary/50 transition-all duration-300 hover:-translate-y-2 overflow-hidden group"},Jt={class:"absolute -top-4 -right-4 w-20 h-20 bg-primary/5 rounded-full flex items-center justify-center opacity-20 group-hover:opacity-30 transition-opacity"},Wt={class:"relative z-10"},Kt={class:"text-3xl font-bold text-primary mb-2",style:{"font-size":"var(--text-2xl)"}},Yt={class:"text-sm font-medium text-muted-foreground uppercase tracking-wide mb-3"},Qt={key:1,class:"text-xs text-muted-foreground mt-2"},F={__name:"StatusCard",props:{icon:{type:[Object,Function],required:!0},label:{type:String,required:!0},value:{type:[String,Number],required:!0},badgeText:{type:String,default:""},badgeColor:{type:String,default:"primary"},updatedText:{type:String,default:""}},setup(p){return(s,h)=>(o(),l("div",qt,[e("div",Jt,[(o(),ke(He(p.icon),{class:"w-8 h-8 text-primary"}))]),e("div",Wt,[e("div",Kt,d(p.value),1),e("div",Yt,d(p.label),1),p.badgeText?(o(),l("div",{key:0,class:I(["inline-flex items-center px-2 py-1 text-xs font-medium rounded-full",{"bg-primary/10 text-primary":p.badgeColor==="primary","bg-green-100 text-green-700":p.badgeColor==="green","bg-blue-100 text-blue-700":p.badgeColor==="blue","bg-muted text-muted-foreground":p.badgeColor==="gray"}])},d(p.badgeText),3)):x("",!0),p.updatedText?(o(),l("div",Qt,d(p.updatedText),1)):x("",!0)])]))}},Xt={class:"min-h-screen bg-background p-4 lg:p-8"},eo={key:1,class:"flex justify-center items-center min-h-[60vh]"},to={class:"max-w-md w-full bg-card rounded-lg shadow-lg border border-border"},oo={class:"text-center p-8"},lo={key:2,class:"mx-auto w-[min(100%-2rem,72rem)]"},ro={class:"mb-12"},ao={class:"flex flex-col lg:flex-row lg:justify-between lg:items-start gap-6 mb-8"},so={class:"flex gap-3"},no={class:"rounded-2xl p-8 text-white shadow-xl border border-border bg-surface-dark"},io={class:"flex flex-col lg:flex-row lg:justify-between lg:items-center gap-8"},uo={class:"flex-1"},co={class:"flex items-center gap-3 mb-3"},po={class:"text-2xl font-bold text-white"},go={class:"text-sm font-medium text-primary"},mo={class:"grid grid-cols-2 lg:grid-cols-4 gap-6 lg:gap-4"},vo={class:"text-center rounded-lg p-4 backdrop-blur-sm bg-white/[0.06]"},fo={class:"text-2xl font-bold mb-1 text-primary"},bo={class:"text-center rounded-lg p-4 backdrop-blur-sm bg-white/[0.06]"},xo={class:"text-2xl font-bold mb-1 text-primary"},ho={class:"text-center rounded-lg p-4 backdrop-blur-sm bg-white/[0.06]"},yo={class:"text-2xl font-bold mb-1 text-primary"},wo={class:"text-center rounded-lg p-4 backdrop-blur-sm bg-white/[0.06]"},_o={class:"text-2xl font-bold mb-1 text-primary"},ko={key:0,class:"flex flex-col items-center justify-center py-16"},Ho={key:1,class:"bg-destructive/15 border border-destructive/20 text-destructive px-4 py-3 rounded-lg my-8"},Mo={key:2},$o={key:0,class:"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 gap-6 mb-8"},Vo={class:"mb-12"},Zo={class:"grid grid-cols-1 lg:grid-cols-2 gap-8 items-start"},So={class:"bg-card rounded-xl shadow-lg border border-border px-4 md:px-8 py-4 self-start h-auto"},Ao={class:"flex items-center gap-3"},Co={class:"w-12 h-12 bg-primary rounded-lg flex items-center justify-center"},Do={class:"mt-4"},Bo={key:0,class:"mt-3"},zo={class:"h-2 w-full bg-muted rounded"},To={key:0,class:"h-2 w-full bg-muted rounded mt-1"},Uo={class:"text-xs text-muted-foreground mt-1"},Ro={key:0},No={key:1},Po={class:"bg-card rounded-xl shadow-lg border border-border px-4 md:px-8 py-4 self-start h-auto"},Io={class:"flex items-center gap-3"},Lo={class:"w-12 h-12 bg-secondary rounded-lg flex items-center justify-center"},jo={class:"space-y-6 mt-4"},Fo={key:0,class:"mb-3"},Eo={class:"h-2 w-full bg-muted rounded"},Go={key:0,class:"h-2 w-full bg-muted rounded mt-1"},Oo={class:"text-xs text-muted-foreground mt-1"},qo={key:0},Jo={key:1},Wo=["disabled"],Ko={class:"grid grid-cols-1 xl:grid-cols-2 gap-8"},Yo={class:"bg-card rounded-xl shadow-sm border border-border"},Qo={class:"p-6 border-b border-border"},Xo={class:"flex items-center text-foreground font-semibold text-lg"},el={class:"p-6"},tl={class:"overflow-x-auto"},ol={class:"w-full text-sm"},ll={class:"py-3 px-2 font-medium text-foreground"},rl={class:"py-3 px-2"},al={class:"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-primary/10 text-primary"},sl={class:"py-3 px-2"},nl={class:"inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-green-100 text-green-700"},il={class:"py-3 px-2 text-muted-foreground text-xs"},dl={key:0},ul={class:"bg-card rounded-xl shadow-sm border border-border"},cl={class:"p-6 border-b border-border"},pl={class:"flex items-center text-foreground font-semibold text-lg"},gl={class:"p-6"},ml={class:"overflow-x-auto"},vl={class:"w-full text-sm"},fl={class:"py-3 px-2 font-medium text-foreground"},bl={class:"py-3 px-2 text-foreground"},xl={class:"py-3 px-2"},hl={class:"py-3 px-2 text-muted-foreground text-xs"},yl={key:0},me="admin_article_draft",X="admin_banner_draft",wl={__name:"AdminDashboard",setup(p){const s=$e(),h=Se(),g=u(null),M=u(!0),$=u(""),i=u(""),f=u(""),b=u({title:"",description:"",link:"",file:null,thumbnail:null}),V=u([]),y=u([]),z=u(!1),ve=u(null),n=u({title:"",subtitle:"",link:"",fileMobile:null,fileDesktop:null}),C=u(!1),Z=u(!1);function fe(){C.value=!C.value,C.value&&(Z.value=!1)}function be(){Z.value=!Z.value,Z.value&&(C.value=!1)}const E=u(null),G=u(null),O=u([]),q=u([]),xe=u(!1),T=u(!1),L=u(0),S=u(0),le=u(0),D=u(0);let U=null;function A(a,t="info"){i.value=a,f.value=t,setTimeout(()=>{i.value=""},3e3)}function he(){try{const a=localStorage.getItem(me);if(a){const t=JSON.parse(a);b.value.title=t.title||"",b.value.description=t.description||"",b.value.link=t.link||"",y.value=Array.isArray(t.category_ids)?t.category_ids:[]}}catch{}try{const a=localStorage.getItem(X);if(a){const t=JSON.parse(a);n.value.title=t.title||"",n.value.subtitle=t.subtitle||"",n.value.link=t.link||""}}catch{}}function re(){const a={title:b.value.title||"",description:b.value.description||"",link:b.value.link||"",category_ids:y.value||[]};try{localStorage.setItem(me,JSON.stringify(a))}catch{}}function ye(){const a={title:n.value.title||"",subtitle:n.value.subtitle||"",link:n.value.link||""};try{localStorage.setItem(X,JSON.stringify(a))}catch{}}async function J(){if(!s.isAuthenticated){h.push("/login");return}M.value=!0;try{const[a,t,r,v,H]=await Promise.all([N("/articles/?page=1&per_page=5",s.token),N("/banners/stats/",s.token),N("/banners/selection/all",s.token).catch(()=>[]),N("/categories/",s.token).catch(()=>[]),N("/admin/stats/overview",s.token).catch(()=>({}))]);g.value={total_articles:(H&&H.total_articles)??(a.total||0),total_banners:t.total_banners||0,active_banners:t.active_banners||0,featured_banners:t.currently_featured||0,last_selection_update:t.last_selection_update||null,total_views:H&&H.total_views||0,total_downloads:
1H&&H.total_downloads||0},O.value=a.articles||[],q.value=r||[],V.value=v||[]}catch{$.value="Failed to load dashboard data",A("Failed to load dashboard data","error")}finally{M.value=!1}}Ve(()=>{he(),J(),document.addEventListener("mousedown",ae)}),Ze(()=>{document.removeEventListener("mousedown",ae)}),K(b,re,{deep:!0}),K(y,re,{deep:!0}),K(n,ye,{deep:!0});function ae(a){if(!z.value)return;const t=ve.value;t&&!t.contains(a.target)&&(z.value=!1)}async function we(){if(!n.value.fileMobile&&!n.value.fileDesktop){A("Please select at least one banner image","warning");return}try{T.value=!0,S.value=0;const a=new FormData,t=Ae();a.append("progress_id",t),n.value.title&&a.append("title",n.value.title),n.value.subtitle&&a.append("subtitle",n.value.subtitle),a.append("link",n.value.link||"#"),n.value.fileMobile&&a.append("file_mobile",n.value.fileMobile),n.value.fileDesktop&&a.append("file_desktop",n.value.fileDesktop);const r=async()=>{U=await Ce(t,{onUpdate:v=>{D.value=v.percent||0}})};U=De(t,{onUpdate:v=>{D.value=v.percent||0},onError:()=>r()});try{const H=await(await fetch(`https://makers-articles.pythowner.com/public/progress/${encodeURIComponent(t)}?t=${Date.now()}`,{cache:"no-store"})).json();D.value=H.percent||0}catch{}await Be("/banners/one-step",a,s.token,{onProgress:v=>{S.value=v}}),A("Banner uploaded successfully","success"),n.value={title:"",subtitle:"",link:"",fileMobile:null,fileDesktop:null};try{localStorage.removeItem(X)}catch{}try{E.value&&(E.value.value=""),G.value&&(G.value.value="")}catch{}Z.value=!1,await J()}catch{A("Failed to upload banner","error")}finally{if(setTimeout(()=>{T.value=!1,S.value=0,D.value=0},2e3),U){try{U()}catch{}U=null}}}function se(a,t){const r=a.target.files[0];if(!r)return;if(!r.type.startsWith("image/")){A("Please select a valid image for banner","warning");return}const v=new Image;v.onload=function(){const H=v.width/v.height,_e=t==="desktop"?32/9:16/9;Math.abs(H-_e)>.08&&A(`Banner (${t}) should be close to ${t==="desktop"?"32:9":"16:9"} ratio`,"warning"),t==="desktop"?n.value.fileDesktop=r:n.value.fileMobile=r},v.src=URL.createObjectURL(r)}function W(a){return new Date(a).toLocaleDateString()}function k(a){return a>=1e3?(a/1e3).toFixed(1)+"k":a?.toString()||"0"}return(a,t)=>(o(),l("div",Xt,[i.value?(o(),l("div",{key:0,class:I(c(Re)("fixed top-4 right-4 z-50 p-4 rounded-lg shadow-lg transition-all duration-300",f.value==="success"&&"bg-green-50 text-green-700 border border-green-200",f.value==="error"&&"bg-destructive/10 text-destructive border border-destructive/20",f.value==="warning"&&"bg-orange-50 text-orange-700 border border-orange-200",f.value==="info"&&"bg-primary/10 text-primary border border-primary/20"))},d(i.value),3)):x("",!0),c(s).isAuthenticated?(o(),l("div",lo,[e("div",ro,[e("div",ao,[t[15]||(t[15]=e("div",null,[e("h1",{class:"flex items-center text-foreground mb-2",style:{"font-size":"var(--text-3xl)","font-weight":"700"}}," Admin Dashboard "),e("p",{class:"text-muted-foreground",style:{"font-size":"var(--text-lg)"}}," Manage articles, banners, and view system statistics ")],-1)),e("div",so,[e("button",{class:"flex items-center gap-2 border border-border hover:bg-accent hover:border-primary hover:shadow-md hover:-translate-y-0.5 text-foreground px-4 py-2 rounded-lg transition-all duration-200 ease-in-out",onClick:t[1]||(t[1]=r=>c(h).push("/admin/articles"))},[m(c(P),{size:16}),t[12]||(t[12]=B(" Manage Articles ",-1))]),e("button",{class:"flex items-center gap-2 border border-border hover:bg-accent hover:border-primary hover:shadow-md hover:-translate-y-0.5 text-foreground px-4 py-2 rounded-lg transition-all duration-200 ease-in-out",onClick:t[2]||(t[2]=r=>c(h).push("/admin/banners"))},[m(c(P),{size:16}),t[13]||(t[13]=B(" Manage Banners ",-1))]),e("button",{class:"flex items-center gap-2 border border-border hover:bg-accent hover:border-primary hover:shadow-md hover:-translate-y-0.5 text-foreground px-4 py-2 rounded-lg transition-all duration-200 ease-in-out",onClick:t[3]||(t[3]=r=>c(h).push("/admin/categories"))},[m(c(P),{size:16}),t[14]||(t[14]=B(" Manage Categories ",-1))])])]),e("div",no,[e("div",io,[e("div",uo,[e("div",co,[e("div",null,[e("h3",po," Welcome back, "+d(c(s).currentUser?.username||"Admin")+"! ",1),e("p",go,d(new Date().toLocaleDateString("en-US",{weekday:"long",year:"numeric",month:"long",day:"numeric"}
1)),1)])]),t[16]||(t[16]=e("p",{class:"text-gray-200 text-lg leading-relaxed max-w-2xl"}," Manage your content ecosystem with powerful tools for articles, banners, and analytics. ",-1))]),e("div",mo,[e("div",vo,[e("div",fo,d(k(g.value?.total_articles||0)),1),t[17]||(t[17]=e("div",{class:"text-xs uppercase tracking-wide text-white/80"},"Articles",-1))]),e("div",bo,[e("div",xo,d(k(g.value?.total_banners||0)),1),t[18]||(t[18]=e("div",{class:"text-xs uppercase tracking-wide text-white/80"},"Banners",-1))]),e("div",ho,[e("div",yo,d(k(g.value?.total_views||0)),1),t[19]||(t[19]=e("div",{class:"text-xs uppercase tracking-wide text-white/80"},"Views",-1))]),e("div",wo,[e("div",_o,d(k(g.value?.total_downloads||0)),1),t[20]||(t[20]=e("div",{class:"text-xs uppercase tracking-wide text-white/80"},"Downloads",-1))])])])])]),M.value?(o(),l("div",ko,[...t[21]||(t[21]=[e("div",{class:"animate-spin rounded-full h-12 w-12 border-b-2 border-primary"},null,-1),e("p",{class:"text-muted-foreground mt-4"},"Loading dashboard...",-1)])])):$.value?(o(),l("div",Ho,d($.value),1)):(o(),l("div",Mo,[g.value?(o(),l("div",$o,[m(F,{icon:c(Q),label:"Total Articles",value:k(g.value.total_articles),badgeText:"Active",badgeColor:"primary"},null,8,["icon","value"]),m(F,{icon:c(P),label:"Featured Banners",value:k(g.value.featured_banners||0),updatedText:g.value.last_selection_update?`Updated: ${W(g.value.last_selection_update)}`:""},null,8,["icon","value","updatedText"]),m(F,{icon:c(ze),label:"Total Downloads",value:k(g.value.total_downloads),badgeText:"Growing",badgeColor:"green"},null,8,["icon","value"]),m(F,{icon:c(Te),label:"Total Views",value:k(g.value.total_views),badgeText:"Trending",badgeColor:"blue"},null,8,["icon","value"])])):x("",!0),e("div",Vo,[t[31]||(t[31]=e("div",{class:"text-center mb-8"},[e("h2",{class:"text-2xl font-bold text-foreground mb-2"},"Quick Actions"),e("p",{class:"text-muted-foreground"},"Create and manage your content")],-1)),e("div",Zo,[e("div",So,[e("div",null,[e("button",{class:"w-full flex items-center justify-between group",onClick:fe},[e("div",Ao,[e("div",Co,[m(c(Q),{size:24,class:"text-primary-foreground"})]),t[22]||(t[22]=e("div",null,[e("h3",{class:"text-xl font-bold text-foreground"},"Upload Article"),e("p",{class:"text-muted-foreground text-sm"},"Add new content to your library")],-1))]),m(c(pe),{size:20,class:I(["transition-transform duration-200",C.value?"rotate-180":""])},null,8,["class"])]),m(ie,{name:"fade-slide"},{default:ne(()=>[R(e("div",Do,[m(Ue,{token:c(s).token,onUploaded:J,onToast:t[4]||(t[4]=({message:r,type:v})=>A(r,v))},null,8,["token"]),xe.value?(o(),l("div",Bo,[e("div",zo,[e("div",{class:"h-2 bg-primary rounded",style:j({width:L.value+"%"})},null,4)]),L.value>=100?(o(),l("div",To,[e("div",{class:"h-2 bg-secondary rounded",style:j({width:Math.min(100,le.value)+"%"})},null,4)])):x("",!0),e("div",Uo,[L.value<100?(o(),l("span",Ro,"Uploading "+d(L.value)+"%",1)):(o(),l("span",No,"Server "+d(Math.min(100,le.value))+"%",1))])])):x("",!0)],512),[[ce,C.value]])]),_:1})])]),e("div",Po,[e("div",null,[e("button",{class:"w-full flex items-center justify-between group",onClick:be},[e("div",Io,[e("div",Lo,[m(c(ge),{size:24,class:"text-secondary-foreground"})]),t[23]||(t[23]=e("div",null,[e("h3",{class:"text-xl font-bold text-foreground"},"Upload Banner"),e("p",{class:"text-muted-foreground text-sm"},"Create eye-catching promotional content")],-1))]),m(c(pe),{size:20,class:I(["transition-transform duration-200",Z.value?"rotate-180":""])},null,8,["class"])]),m(ie,{name:"fade-slide"},{default:ne(()=>[R(e("div",jo,[e("div",null,[t[24]||(t[24]=e("label",{for:"banner-link",class:"block text-sm font-medium text-foreground mb-2"},"Banner Link",-1)),R(e("input",{id:"banner-link","onUpdate:modelValue":t[5]||(t[5]=r=>n.value.link=r),type:"url",placeholder:"Enter banner URL (optional)",class:"w-full px-3 py-2 border border-input rounded-md focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent bg-background"},null,512),[[Y,n.value.link]])]),e("div",null,[t[25]||(t[25]=e("label",{for:"banner-title",class:"block text-sm font-medium text-foreground mb-2"},"Banner Title",-1)),R(e("input",{id:"banner-title","onUpdate:modelValue":t[6]||(t[6]=r=>n.value.title=r),type:"text",placeholder:"Enter banner title (optional)",class:"w-full px-3 py-2 border border-input rounded-md focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent bg-background"},null,512),[[Y,n.value.title]])]),e("div",null,[t[26]||(t[26]=e("label",{for:"banner-subtitle",class:"block text-sm font-medium text-foreground mb-2"},"Banner Subtitle",-1)),R(e("input",{id:"banner-subtitle","onUpdate:modelValue":t[7]||(t[7]=r=>n.value.subtitle=r),type:"text",placeholder:"Enter banner subtitle (optional)",class:"w-full px-3 py-2 border border-input rounded-md focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent bg-background"},null,512),[[Y,n.value.subtitle]])]),e("div",null,[t[27]||(t[27]=e("label",{class:"block text-sm font-medium text-foreground mb-2"},"Banner Image (Mobile 16:9)",-1)),e("input",{ref_key:"bannerMobileInputRef",ref:E,type:"file",accept:"image/*",onChange:t[8]||(t[8]=r=>se(r,"mobile")),class:"w-full px-3 py-2 border border-input rounded-md focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent file:mr-4 file:py-1 file:px-4 file:rounded-md file:border-0 file:text-sm file:font-medium file:bg-primary file:text-primary-foreground hover:file:bg-primary/90"},null,544),t[28]||(t[28]=e("p",{class:"text-xs text-muted-foreground mt-1"},"Recommended: 16:9 (e.g., 1920x1080). Max size 10MB.",-1))]),e("div",null,[t[29]||(t[29]=e("label",{class:"block text-sm font-medium text-foreground mb-2"},"Banner Image (Desktop 32:9)",-1)),e("input",{ref_key:"bannerDesktopInputRef",ref:G,type:"file",accept:"image/*",onChange:t[9]||(t[9]=r=>se(r,"desktop")),class:"w-full px-3 py-2 border border-input rounded-md focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent file:mr-4 file:py-1 file:px-4 file:rounded-md file:border-0 file:text-sm file:font-medium file:bg-primary file:text-primary-foreground hover:file:bg-primary/90"},null,544),t[30]||(t[30]=e("p",{class:"text-xs text-muted-foreground mt-1"},"Recommended: 32:9 (e.g., 3840x1080). Max size 10MB.",-1))]),T.value?(o(),l("div",Fo,[e("div",Eo,[e("div",{class:"h-2 bg-primary rounded",style:j({width:S.value+"%"})},null,4)]),S.value>=100?(o(),l("div",Go,[e("div",{class:"h-2 bg-secondary rounded",style:j({width:Math.min(100,D.value)+"%"})},null,4)])):x("",!0),e("div",Oo,[S.value<100?(o(),l("span",qo,"Uploading "+d(S.value)+"%",1)):(o(),l("span",Jo,"Server "+d(Math.min(100,D.value))+"%",1)
1)])])):x("",!0),e("button",{disabled:T.value,onClick:we,class:"w-full flex items-center justify-center gap-2 bg-primary hover:bg-primary/90 disabled:opacity-60 disabled:cursor-not-allowed text-primary-foreground font-medium py-3 px-4 rounded-lg transition-colors duration-200"},[m(c(ge),{size:16}),B(" "+d(T.value?"Uploading...":"Upload Banner"),1)],8,Wo)],512),[[ce,Z.value]])]),_:1})])])])]),t[38]||(t[38]=e("div",{class:"border-t border-border my-8"},null,-1)),e("div",Ko,[e("div",Yo,[e("div",Qo,[e("div",Xo,[m(c(Q),{size:20,class:"mr-2 text-primary"}),t[32]||(t[32]=B(" Recent Articles ",-1))])]),e("div",el,[e("div",tl,[e("table",ol,[t[34]||(t[34]=e("thead",null,[e("tr",{class:"border-b border-border bg-muted/50"},[e("th",{class:"text-left py-2 px-2 font-medium text-muted-foreground"},"Title"),e("th",{class:"text-left py-2 px-2 font-medium text-muted-foreground"},"Views"),e("th",{class:"text-left py-2 px-2 font-medium text-muted-foreground"},"Downloads"),e("th",{class:"text-left py-2 px-2 font-medium text-muted-foreground"},"Release Date")])],-1)),e("tbody",null,[(o(!0),l(de,null,ue(O.value,r=>(o(),l("tr",{key:r.id,class:"border-b border-border/50 last:border-b-0 hover:bg-muted/30"},[e("td",ll,d(r.title),1),e("td",rl,[e("span",al,d(k(r.views)),1)]),e("td",sl,[e("span",nl,d(k(r.downloads)),1)]),e("td",il,d(W(r.release_date)),1)]))),128)),O.value.length===0?(o(),l("tr",dl,[...t[33]||(t[33]=[e("td",{colspan:"4",class:"py-8 text-center text-muted-foreground"},"No articles found",-1)])])):x("",!0)])])])])]),e("div",ul,[e("div",cl,[e("div",pl,[m(c(P),{size:20,class:"mr-2 text-primary"}),t[35]||(t[35]=B(" Banner Selection Groups ",-1))])]),e("div",gl,[e("div",ml,[e("table",vl,[t[37]||(t[37]=e("thead",null,[e("tr",{class:"border-b border-border bg-muted/50"},[e("th",{class:"text-left py-2 px-2 font-medium text-muted-foreground"},"Name"),e("th",{class:"text-left py-2 px-2 font-medium text-muted-foreground"},"Banners"),e("th",{class:"text-left py-2 px-2 font-medium text-muted-foreground"},"Active"),e("th",{class:"text-left py-2 px-2 font-medium text-muted-foreground"},"Updated")])],-1)),e("tbody",null,[(o(!0),l(de,null,ue(q.value,r=>(o(),l("tr",{key:r.id,class:"border-b border-border/50 last:border-b-0 hover:bg-muted/30"},[e("td",fl,d(r.name),1),e("td",bl,d(r.banner_ids?.length||0),1),e("td",xl,[e("span",{class:I([r.is_active?"bg-green-100 text-green-700":"bg-secondary text-secondary-foreground","inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium"])},d(r.is_active?"Yes":"No"),3)]),e("td",hl,d(r.updated_at?W(r.updated_at):"â"),1)]))),128)),q.value.length===0?(o(),l("tr",yl,[...t[36]||(t[36]=[e("td",{colspan:"4",class:"py-8 text-center text-muted-foreground"},"No groups yet",-1)])])):x("",!0)])])])])])])]))])):(o(),l("div",eo,[e("div",to,[e("div",oo,[t[10]||(t[10]=e("h2",{class:"text-2xl font-bold text-foreground mb-4"},"Access Denied",-1)),t[11]||(t[11]=e("p",{class:"text-muted-foreground mb-8"},"Please login to access the admin dashboard.",-1)),e("button",{onClick:t[0]||(t[0]=r=>c(h).push("/login")),class:"w-full bg-primary hover:bg-primary/90 text-primary-foreground font-medium py-3 px-4 rounded-lg transition-colors duration-200"}," Go to Login ")])])]))]))}},Al=Me(wl,[["__scopeId","data-v-638ad518"]]);export{Al 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.