1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./C2_NjGAw.js","./B8EWEgfi.js"])))=>i.map(i=>d[i]); 2import{u as W,a as k,r as O,w as ve,b as ye,e as de,f as Z,g as oe,h as J,G as we,t as $e,i as ke,d as F,j as u,o as i,k as o,l as e,m as t,n as K,p as a,q as M,s as P,F as E,c as B,v as ae,x as R,y as Y,B as Ce,z as je,A as De,C as re,D as ze,E as H,H as Se,I as Te,J as ne,K as A,L as Me,M as q,N as ce,O as G,P as Pe,Q as Ae,R as ue,S as pe,T as Oe,U as Ee,V as Ie,_ as Le,W as qe}from"./DZ7mik94.js";import{_ as Be}from"./D7bbJmtS.js";import{u as Ue}from"./CQSvDBOg.js";import{a as me,e as He}from"./C_HCVPZZ.js";import{g as Ne}from"./Lmt8mlL8.js";import I from"./hwilLro4.js";import{T as Re}from"./DB7NpyPD.js";import Fe from"./C_R9b47F.js";import{C as Ke,a as Ye}from"./BS6BaDWI.js";import{_ as se}from"./BDcM2FMb.js";import{g as Ge}from"./DXDH8whQ.js";import{d as he}from"./B3Th_mgj.js";import{N as Ve}from"./BVY5LIw9.js";import"./GefESYmt.js";import"./0J-1uiXP.js";import"./Ci2gcBr-.js";import"./Y2uuUinc.js";import"./Du7nxuHz.js";import"./rSTlLCgx.js";import"./CkncaXhN.js";import"./C1qMvYzb.js";import"./BMNdcWOJ.js";import"./CqkleIqs.js";import"./CemF-zL9.js";function be(){const{t:l}=W(),s=Ue(),n=k(()=>s.mergedSummary),p=k(()=>s.isLoading),w=k(()=>s.error),_=k(()=>s.partialError),$=k(()=>s.dataFreshness),y=O(!1);let d=null;function z(){j(),d=setTimeout(()=>{s.isLoading&&(y.value=!0)},1e4)}function j(){d&&(clearTimeout(d),d=null),y.value=!1}const x=O(!1);ve(p,(S,L)=>{L&&!S&&(j(),x.value=!0,requestAnimationFrame(()=>{requestAnimationFrame(()=>{x.value=!1})}))});const h=k(()=>w.value||y.value&&p.value),D=k(()=>p.value&&!y.value);function r(S){return S>=1e3?`$${(S/1e3).toFixed(1)}K`:`$${S.toFixed(2)}`}function g(S){return S>=1e4?`${(S/1e3).toFixed(1)}K`:S.toLocaleString()}function m(S,L,U){const ee=U?de(L):L;if(ee===0)return{percentage:0,direction:"neutral"};const Q=(S-ee)/ee*100;return Math.abs(Q)<=2?{percentage:Q,direction:"neutral"}:{percentage:Q,direction:Q>0?"up":"down"}}const c=k(()=>{if(!n.value)return!1;const S=n.value.previousMonth;return S.total_spend+S.total_requests+S.total_tokens>0}),f=k(()=>!n.value||!c.value?null:m(n.value.totalSpend,n.value.previousMonth.total_spend,!0)),v=k(()=>!n.value||!c.value?null:m(n.value.totalRequests,n.value.previousMonth.total_requests,!1)),T=k(()=>!n.value||!c.value?null:m(n.value.totalTokens,n.value.previousMonth.total_tokens,!1));function C(S){return S?S.direction==="up"?l("analytics.a11y.trend_up",{n:Math.abs(S.percentage).toFixed(1)}):S.direction==="down"?l("analytics.a11y.trend_down",{n:Math.abs(S.percentage).toFixed(1)}):l("analytics.a11y.trend_neutral"):""}const b=k(()=>{if(D.value)return l("analytics.a11y.loading");const S=n.value?r(n.value.totalSpend):"$0.00",L=C(f.value),U=l("analytics.a11y.stat_card_spend",{value:S});return L?`${U}, ${L}`:U}),N=k(()=>{if(D.value)return l("analytics.a11y.loading");const S=n.value?g(n.value.totalRequests):"0",L=C(v.value),U=l("analytics.a11y.stat_card_requests",{value:S});return L?`${U}, ${L}`:U}),X=k(()=>{if(D.value)return l("analytics.a11y.loading");const S=n.value?g(n.value.totalTokens):"0",L=C(T.value),U=l("analytics.a11y.stat_card_tokens",{value:S});return L?`${U}, ${L}`:U});function xe(){j(),z(),s.fetchDashboardData(!0)}function _e(){z(),s.fetchDashboardData()}return ye(()=>{j()}),{mergedSummary:n,analyticsLoading:p,analyticsError:w,partialError:_,dataFreshness:$,showAnalyticsError:h,showAnalyticsSkeleton:D,isTransitioning:x,spendMoM:f,requestsMoM:v,tokensMoM:T,spendAriaLabel:b,requestsAriaLabel:N,tokensAriaLabel:X,formatCurrency:r,formatNumber:g,retryAnalytics:xe,loadAnalyticsSection:_e}}function fe(l){const{t:s}=W(),n=Z(),p=oe(),w=J(),_=O(!1),$=O(null),y=O(!1),d=O(!1);_.value=localStorage.getItem("onboarding_dismissed")==="true";function z(){_.value=!0,localStorage.setItem("onboarding_dismissed","true")}async function j(){y.value=!0;try{const b=await we({page:1,page_size:1});b?.items?.length>0&&($.value=b.items[0])}catch(b){console.error("Failed to fetch default token:",b)}finally{y.value=!1}}function x(b){return b?b.length<=8?"sk-"+b:"sk-"+b.substring(0,4)+"****"+b.substring(b.length-4):""}async function h(){if($.value?.key)try{await navigator.clipboard.writeText("sk-"+$.value.key),$e("dashboard_onboarding"),ke().$wisdomAnalytics?.track("api_key_copied",{source:"dashboard_onboarding"}),d.value=!0,setTimeout(()=>{d.value=!1},2e3)}catch(b){console.error("Failed to copy API key:",b)}}const D=k(()=>me.map(b=>({...b,desc:s(b.descKey)}))),r=k(()=>{const b=(w.info?.balance||0)>0,N=!!$.value,X=(l.mergedSummary.value?.totalRequests||0)>0;return[{key:"register",icon:"lucide:user-plus",title:s("dashboard.onboarding.step_register"),desc:s("dashboard.onboarding.step_register_desc"),completed:!0,action:null},{key:"topup",icon:"lucide:wallet",title:s("dashboard.onboarding.step_topup"),desc:s("dashboard.onboarding.step_topup_desc"),completed:b,optional:!0,action:()=>{l.onTopup()}},{key:"copy_endpoint",icon:"lucide:globe",title:s("dashboard.onboarding.step_copy_endpoint"),desc:s("dashboard.onboarding.step_copy_endpoint_desc"),completed:!1,action:()=>{l.onShowEndpoint()}},{key:"copy_key",icon:"lucide:key",title:s("dashboard.onboarding.step_copy_key"),desc:s("dashboard.onboarding.step_copy_key_desc"),completed:N,action:N?h:()=>n.push(p("/hall/tokens"))},{key:"call_api",icon:"lucide:code",title:s("dashboard.onboarding.step_call_api"),desc:s("dashboard.onboarding.step_call_api_desc"),completed:X,action:()=>window.open("https://docs.wisgate.ai","_blank")},{key:"view_logs",icon:"lucide:scroll-text",title:s("dashboard.onboarding.step_view_logs"),desc:s("dashboard.onboarding.step_view_logs_desc"),completed:!1,action:()=>n.push(p("/hall/logs"))}]}),g=k(()=>r.value.filter(b=>b.completed).length),m=k(()=>r.value.length),c=k(()=>Math.round(g.value/m.value*100)),f=k(()=>g.value===m.value),v=Math.floor(new Date("2026-03-06T00:00:00Z").getTime()/1e3),T=k(()=>{const b=w.info?.created_at;return typeof b=="number"&&b>=v}),C=k(()=>T.value&&!_.value&&!f.value);return{defaultToken:$,defaultTokenLoading:y,keyCopied:d,endpointHosts:D,onboardingSteps:r,completedSteps:g,totalSteps:m,progressPercent:c,showOnboarding:C,dismissOnboarding:z,maskApiKey:x,copyApiKey:h,fetchDefaultToken:j}}const We={class:"text-xs font-medium font-mono"},Qe={class:"text-xs text-slate-400 ml-0.5"},Ze=F({__name:"TrendIndicator",props:{percentage:{},direction:{},invertColor:{type:Boolean}},setup(l){const s=l,{t:n}=W(),p=k(()=>{const $=Math.abs(s.percentage);return $<=2?"text-slate-400":s.invertColor&&s.direction==="down"?"text-emerald-500":$>20?"text-orange-500":"text-amber-500"}),w=k(()=>s.direction==="up"?"lucide:arrow-up":s.direction==="down"?"lucide:arrow-down":"lucide:arrow-right"),_=k(()=>`${s.percentage>0?"+":""}${s.percentage.toFixed(1)}%`);return($,y)=>{const d=K;return i(),u("div",{class:M(["flex items-center gap-1",t(p)]),"aria-hidden":"true"},[o(d,{name:t(w),class:"size-3.5"},null,8,["name"]),e("span",We,a(t(_)),1),e("span",Qe,a(t(n)("analytics.trend.vs_last_month")),1
2)],2)}}}),Je=Object.assign(Ze,{__name:"AnalyticsTrendIndicator"}),Xe=["aria-label","aria-busy"],et={class:"bg-slate-900 rounded-2xl p-6 text-white shadow-lg shadow-slate-200 relative overflow-hidden group"},tt={class:"relative z-10"},st={class:"flex items-center justify-between mb-4"},ot={class:"size-10 flex items-center justify-center bg-white/10 rounded-lg"},at={class:"text-xs font-medium px-2 py-1 bg-green-500/20 text-green-300 rounded-full"},nt={class:"text-slate-400 text-sm font-medium mb-1"},rt={class:"text-3xl font-bold tracking-tight"},lt=["aria-label","aria-busy"],it={class:"flex items-center justify-between mb-4"},dt={class:"size-10 flex items-center justify-center bg-slate-100 rounded-lg"},ct={class:"text-slate-400 text-sm font-medium mb-1"},ut={class:"text-2xl font-bold text-slate-600 tracking-tight font-mono"},pt=["aria-label","aria-busy"],mt={class:"flex items-center justify-between mb-4"},ht={class:"size-10 flex items-center justify-center bg-slate-100 rounded-lg"},bt={class:"text-slate-400 text-sm font-medium mb-1"},ft={class:"text-2xl font-bold text-slate-600 tracking-tight font-mono"},gt=["aria-label","aria-busy"],xt={class:"flex items-center justify-between mb-4"},_t={class:"size-10 flex items-center justify-center bg-slate-100 rounded-lg"},vt={class:"text-slate-400 text-sm font-medium mb-1"},yt={class:"text-2xl font-bold text-slate-600 tracking-tight font-mono"},wt={key:0,"aria-live":"assertive",class:"bg-white border border-slate-200 rounded-lg p-5 border-l-4 border-l-orange-500 mb-4"},$t={class:"flex items-center justify-between"},kt={class:"flex items-center gap-3"},Ct={class:"text-sm text-slate-600"},jt={key:1,class:"mt-2 flex items-center gap-1.5"},Dt={class:"text-xs text-amber-600"},zt=F({__name:"DashboardAnalyticsOverview",setup(l){const s=J(),{mergedSummary:n,showAnalyticsError:p,showAnalyticsSkeleton:w,isTransitioning:_,spendMoM:$,requestsMoM:y,tokensMoM:d,spendAriaLabel:z,requestsAriaLabel:j,tokensAriaLabel:x,formatCurrency:h,formatNumber:D,partialError:r,retryAnalytics:g}=be();return(m,c)=>{const f=K,v=Je;return i(),u("section",{"aria-label":m.$t("analytics.a11y.section_label"),"aria-busy":t(w)},[e("div",{class:M(["grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-
25 transition-opacity duration-150 ease-in motion-reduce:transition-none",{"opacity-0":t(_)}])},[e("div",et,[c[1]||(c[1]=e("div",{class:"absolute top-0 right-0 w-32 h-32 bg-white/5 rounded-full -mr-10 -mt-10 transition-transform duration-700 group-hover:scale-110"},null,-1)),e("div",tt,[e("div",st,[e("div",ot,[o(f,{name:"lucide:wallet",class:"text-xl"})]),e("span",at,a(m.$t("dashboard.active")),1)]),e("div",null,[e("p",nt,a(m.$t("dashboard.current_balance")),1),e("p",rt,a(t(s).balanceInUSD),1)])])]),e("div",{class:"bg-white border border-slate-100 rounded-2xl p-6 hover:shadow-md transition-all duration-200 relative overflow-hidden","aria-label":t(z),"aria-busy":t(w),role:"group"},[t(w)?(i(),u(E,{key:0},[o(t(I),{width:"60%",height:"1rem",class:"mb-4"}),o(t(I),{width:"40%",height:"2rem",class:"mb-2"}),o(t(I),{width:"50%",height:"0.875rem"})],64)):(i(),u(E,{key:1},[e("div",it,[e("div",dt,[o(f,{name:"lucide:dollar-sign",class:"size-5 text-slate-400"})])]),e("div",null,[e("p",ct,a(m.$t("analytics.stat_card.monthly_spend")),1),e("p",ut,a(t(p)?"--":t(n)?t(h)(t(n).totalSpend):"$0.00"),1),!t(p)&&t($)?(i(),B(v,{key:0,percentage:t($).percentage,direction:t($).direction,"invert-color":!0},null,8,["percentage","direction"])):P("",!0)])],64))],8,lt),e("div",{class:"bg-white border border-slate-100 rounded-2xl p-6 hover:shadow-md transition-all duration-200 relative overflow-hidden","aria-label":t(j),"aria-busy":t(w),role:"group"},[t(w)?(i(),u(E,{key:0},[o(t(I),{width:"60%",height:"1rem",class:"mb-4"}),o(t(I),{width:"40%",height:"2rem",class:"mb-2"}),o(t(I),{width:"50%",height:"0.875rem"})],64)):(i(),u(E,{key:1},[e("div",mt,[e("div",ht,[o(f,{name:"lucide:bar-chart-3",class:"size-5 text-slate-400"})])]),e("div",null,[e("p",bt,a(m.$t("analytics.stat_card.monthly_requests")),1),e("p",ft,a(t(p)?"--":t(n)?t(D)(t(n).totalRequests):"0"),1),!t(p)&&t(y)?(i(),B(v,{key:0,percentage:t(y).percentage,direction:t(y).direction},null,8,["percentage","direction"])):P("",!0)])],64))],8,pt),e("div",{class:"bg-white border border-slate-100 rounded-2xl p-6 hover:shadow-md transition-all duration-200 relative overflow-hidden","aria-label":t(x),"aria-busy":t(w),role:"group"},[t(w)?(i(),u(E,{key:0},[o(t(I),{width:"60%",height:"1rem",class:"mb-4"}),o(t(I),{width:"40%",height:"2rem",class:"mb-2"}),o(t(I),{width:"50%",height:"0.875rem"})],64)):(i(),u(E,{key:1},[e("div",xt,[e("div",_t,[o(f,{name:"lucide:database",class:"size-5 text-slate-400"})])]),e("div",null,[e("p",vt,a(m.$t("analytics.stat_card.monthly_tokens")),1),e("p",yt,a(t(p)?"--":t(n)?t(D)(t(n).totalTokens):"0"),1),!t(p)&&t(d)?(i(),B(v,{key:0,percentage:t(d).percentage,direction:t(d).direction},null,8,["percentage","direction"])):P("",!0)])],64))],8,gt)],2),t(p)?(i(),u("div",wt,[e("div",$t,[e("div",kt,[o(f,{name:"lucide:alert-triangle",class:"size-5 text-orange-500"}),e("span",Ct,a(m.$t("analytics.error.load_failed")),1)]),e("button",{class:"text-sm font-medium text-slate-600 hover:text-slate-900 transition-colors min-h-[44px] min-w-[44px] flex items-center justify-center",onClick:c[0]||(c[0]=(...T)=>t(g)&&t(g)(...T))},a(m.$t("analytics.error.retry")),1)])])):P("",!0),t(r)&&!t(p)?(i(),u("div",jt,[o(f,{name:"lucide:info",class:"size-3.5 text-amber-500"}),e("span",Dt,a(m.$t("analytics.error.partial_failure")),1)])):P("",!0)],8,Xe)}}}),St=Object.assign(zt,{__name:"HallDashboardAnalyticsOverview"}),Tt={key:0,class:"bg-white rounded-2xl border border-slate-100 overflow-hidden"},Mt={class:"flex items-center justify-between px-6 pt-5 pb-3"},Pt={class:"flex items-center gap-3"},At={class:"size-8 rounded-lg bg-slate-900 flex items-center justify-center"},Ot={class:"text-sm font-semibold text-slate-900"},Et={class:"flex items-center gap-3"},It={class:"text-xs text-slate-400"},Lt={class:"px-4 pb-5 pt-5 md:px-6"},qt={class:"hidden md:flex gap-0"},Bt=["onClick"],Ut={key:1,class:"size-1.5 rounded-full bg-slate-300 group-hover:bg-slate-500 transition-colors"},Ht={key:0,class:"text-[10px] text-slate-400 mt-0.5"},Nt={class:"truncate max-w-[72px]"},Rt={class:"grid grid-cols-3 gap-4 md:hidden"},Ft=["onClick"],Kt={key:1,class:"size-1.5 rounded-full bg-slate-300 group-hover:bg-slate-500 transition-colors"},Yt={key:0,class:"text-[10px] text-slate-400 mt-0.5"},Gt={class:"truncate max-w-[56px]"},Vt=F({__name:"DashboardOnboarding",props:{mergedSummary:{}},emits:["topup","show-endpoint"],setup(l,{emit:s}){const n=l,p=s,w=Z(),_=oe(),$=k(()=>n.mergedSummary),{defaultToken:y,defaultTokenLoading:d,keyCopied:z,onboardingSteps:j,completedSteps:x,totalSteps:h,showOnboarding:D,dismissOnboarding:r,maskApiKey:g,copyApiKey:m,fetchDefaultToken:c}=fe({mergedSummary:$,onTopup:()=>p("topup"),onShowEndpoint:()=>p("show-endpoint")});return ae(()=>{c()}),(f,v)=>{const T=K;return t(D)?(i(),u("div",Tt,[e("div",Mt,[e("div",Pt,[e("div",At,[o(T,{name:"lucide:rocket",class:"size-4 text-white"})]),e("h3",Ot,a(f.$t("dashboard.onboarding.title")),1)]),e("div",Et,[e("span",It,a(f.$t("dashboard.onboarding.progress",{completed:t(x),total:t(h)})),1),e("button",{onClick:v[0]||(v[0]=(...C)=>t(r)&&t(r)(...C)),class:"size-6 flex items-center justify-center rounded-md text-slate-300 hover:text-slate-500 hover:bg-slate-50 transition-colors cursor-pointer"},[o(T,{name:"lucide:x",class:"size-3.5"})])])]),e("div",Lt,[e("div",qt,[(i(!0),u(E,null,R(t(j),(C,b)=>(i(),u(E,{key:C.key},[b>0?(i(),u("div",{key:0,class:M(["flex-1 min-w-[16px] self-start mt-[11px] h-px",t(j)[b-1].completed?"bg-slate-900":"bg-slate-200"])},null,2)):P("",!0),e("div",{class:M(["flex flex-col items-center shrink-0 cursor-pointer group",{"curs
2or-default":!C.action}]),onClick:N=>C.action?.()},[e("div",{class:M(["size-6 rounded-full flex items-center justify-center border transition-colors",C.completed?"bg-slate-900 border-slate-900":"bg-white border-slate-200 group-hover:border-slate-400"])},[C.completed?(i(),B(T,{key:0,name:"lucide:check",class:"size-3 text-white"})):(i(),u("div",Ut))],2),e("span",{class:M(["text-xs font-medium mt-2 text-center leading-tight max-w-[80px]",C.completed?"text-slate-400":"text-slate-700"])},a(C.title),3),C.optional?(i(),u("span",Ht,a(f.$t("dashboard.onboarding.step_topup_optional")),1)):P("",!0),C.key==="copy_key"&&t(y)?(i(),u("button",{key:1,onClick:v[1]||(v[1]=Y((...N)=>t(m)&&t(m)(...N),["stop"])),class:"mt-1.5 flex items-center gap-1 px-2 py-1 bg-slate-900 rounded text-[10px] font-mono text-slate-400 hover:bg-slate-800 transition-colors cursor-pointer"},[e("span",Nt,a(t(g)(t(y).key)),1),o(T,{name:t(z)?"lucide:check":"lucide:copy",class:M(["size-3 shrink-0",t(z)?"text-green-400":"text-slate-500"])},null,8,["name","class"])])):C.key==="copy_key"&&!t(y)&&!t(d)?(i(),u("button",{key:2,onClick:v[2]||(v[2]=Y(N=>t(w).push(t(_)("/hall/tokens")),["stop"])),class:"mt-1.5 text-[10px] font-medium text-slate-900 underline underline-offset-2 cursor-pointer"},a(f.$t("dashboard.onboarding.step_copy_key_create")),1)):P("",!0),C.key==="copy_endpoint"?(i(),u("button",{key:3,onClick:v[3]||(v[3]=Y(N=>p("show-endpoint"),["stop"])),class:"mt-1.5 text-[10px] font-medium text-slate-900 underline underline-offset-2 cursor-pointer"},a(f.$t("tokens.endpoints.view_endpoints")),1)):P("",!0)],10,Bt)],64))),128))]),e("div",Rt,[(i(!0),u(E,null,R(t(j),C=>(i(),u("div",{key:C.key,class:M(["flex flex-col items-center cursor-pointer group",{"cursor-default":!C.action}]),onClick:b=>C.action?.()},[e("div",{class:M(["size-6 rounded-full flex items-center justify-center border transition-colors",C.completed?"bg-slate-900 border-slate-900":"bg-white border-slate-200 group-hover:border-slate-400"])},[C.completed?(i(),B(T,{key:0,name:"lucide:check",class:"size-3 text-white"})):(i(),u("div",Kt))],2),e("span",{class:M(["text-xs font-medium mt-2 text-center leading-tight",C.completed?"text-slate-400":"text-slate-700"])},a(C.title),3),C.optional?(i(),u("span",Yt,a(f.$t("dashboard.onboarding.step_topup_optional")),1)):P("",!0),C.key==="copy_key"&&t(y)?(i(),u("button",{key:1,onClick:v[4]||(v[4]=Y((...b)=>t(m)&&t(m)(...b),["stop"])),class:"mt-1.5 flex items-center gap-1 px-2 py-1 bg-slate-900 rounded text-[10px] font-mono text-slate-400 active:bg-slate-800 transition-colors cursor-pointer"},[e("span",Gt,a(t(g)(t(y).key)),1),o(T,{name:t(z)?"lucide:check":"lucide:copy",class:M(["size-3 shrink-0",t(z)?"text-green-400":"text-slate-500"])},null,8,["name","class"])])):C.key==="copy_key"&&!t(y)&&!t(d)?(i(),u("button",{key:2,onClick:v[5]||(v[5]=Y(b=>t(w).push(t(_)("/hall/tokens")),["stop"])),class:"mt-1.5 text-[10px] font-medium text-slate-900 underline underline-offset-2 cursor-pointer"},a(f.$t("dashboard.onboarding.step_copy_key_create")),1)):P("",!0),C.key==="copy_endpoint"?(i(),u("button",{key:3,onClick:v[6]||(v[6]=Y(b=>p("show-endpoint"),["stop"])),class:"mt-1.5 text-[10px] font-medium text-slate-900 underline underline-offset-2 cursor-pointer"},a(f.$t("tokens.endpoints.view_endpoints")),1)):P("",!0)],10,Ft))),128))])])])):P("",!0)}}}),Wt=Object.assign(Vt,{__name:"HallDashboardOnboarding"});var Qt={root:{position:"relative"}},Zt={root:"p-chart"},Jt=Ce.extend({name:"chart",classes:Zt,inlineStyles:Qt}),Xt={name:"BaseChart",extends:je,props:{type:String,data:null,options:null,plugins:null,width:{type:Number,default:300},height:{type:Number,default:150},canvasProps:{type:null,default:null}},style:Jt,provide:function(){return{$pcChart:this,$parentInstance:this}}},ge={name:"Chart",extends:Xt,inheritAttrs:!1,emits:["select","loaded"],chart:null,watch:{data:{handler:function(){this.reinit()},deep:!0},type:function(){this.reinit()},options:function(){this.reinit()}},mounted:function(){this.initChart()},beforeUnmount:function(){this.chart&&(this.chart.destroy(),this.chart=null)},methods:{initChart:function(){var s=this;De(()=>import("./C2_NjGAw.js"),__vite__mapDeps([0,1]),import.meta.url).then(function(n){s.chart&&(s.chart.destroy(),s.chart=null),n&&n.default&&(s.chart=new n.default(s.$refs.canvas,{type:s.type,data:s.data,options:s.options,plugins:s.plugins})),s.$emit("loaded",s.chart)})},getCanvas:function(){return this.$canvas},getChart:function(){return this.chart},getBase64Image:function(){return this.chart.toBase64Image()}
2,refresh:function(){this.chart&&this.chart.update()},reinit:function(){this.initChart()},onCanvasClick:function(s){if(this.chart){var n=this.chart.getElementsAtEventForMode(s,"nearest",{intersect:!0},!1),p=this.chart.getElementsAtEventForMode(s,"dataset",{intersect:!0},!1);n&&n[0]&&p&&this.$emit("select",{originalEvent:s,element:n[0],dataset:p})}},generateLegend:function(){if(this.chart)return this.chart.generateLegend()}}};function V(l){"@babel/helpers - typeof";return V=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(s){return typeof s}:function(s){return s&&typeof Symbol=="function"&&s.constructor===Symbol&&s!==Symbol.prototype?"symbol":typeof s},V(l)}function le(l,s){var n=Object.keys(l);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(l);s&&(p=p.filter(function(w){return Object.getOwnPropertyDescriptor(l,w).enumerable})),n.push.apply(n,p)}return n}function ie(l){for(var s=1;s<arguments.length;s++){var n=arguments[s]!=null?arguments[s]:{};s%2?le(Object(n),!0).forEach(function(p){es(l,p,n[p])}):Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(n)):le(Object(n)).forEach(function(p){Object.defineProperty(l,p,Object.getOwnPropertyDescriptor(n,p))})}return l}function es(l,s,n){return(s=ts(s))in l?Object.defineProperty(l,s,{value:n,enumerable:!0,configurable:!0,writable:!0}):l[s]=n,l}function ts(l){var s=ss(l,"string");return V(s)=="symbol"?s:s+""}function ss(l,s){if(V(l)!="object"||!l)return l;var n=l[Symbol.toPrimitive];if(n!==void 0){var p=n.call(l,s);if(V(p)!="object")return p;throw new TypeError("@@toPrimitive must return a primitive value.")}return(s==="string"?String:Number)(l)}var os=["width","height"];function as(l,s,n,p,w,_){return i(),u("div",re({class:l.cx("root"),style:l.sx("root")},l.ptmi("root")),[e("canvas",re({ref:"canvas",width:l.width,height:l.height,onClick:s[0]||(s[0]=function($){return _.onCanvasClick($)})},ie(ie({},l.canvasProps),l.ptm("canvas"))),null,16,os)],16)}ge.render=as;function ns(){const l=O([]),s=O(),n=O();function p(){const _=[],$=new Date;for(let r=6;r>=0;r--){const g=new Date($);g.setDate($.getDate()-r);const m=g.toISOString().split("T")[0];_.push(m?.slice(5))}const y=new Map,d=[];for(let r=6;r>=0;r--){const g=new Date($);g.setDate($.getDate()-r),d.push(g.toISOString().split("T")[0]||"")}l.value.forEach(r=>{if(d.includes(r.Day)){const g=y.get(r.ModelName)||0;y.set(r.ModelName,g+r.RequestCount)}
2});const z=Array.from(y.entries()).sort((r,g)=>g[1]-r[1]).slice(0,5).map(r=>r[0]),j=["#3b82f6","#8b5cf6","#10b981","#f59e0b","#ef4444","#64748b"],h={label:"Total",data:d.map(r=>l.value.filter(g=>g.Day===r).reduce((g,m)=>g+m.RequestCount,0)),fill:!0,borderColor:"#0f172a",backgroundColor:"rgba(15, 23, 42, 0.05)",tension:.4,pointBackgroundColor:"#0f172a",pointBorderColor:"#fff",pointHoverBackgroundColor:"#fff",pointHoverBorderColor:"#0f172a",pointRadius:4,pointHoverRadius:6,borderWidth:3,order:0},D=z.map((r,g)=>{const m=d.map(v=>l.value.filter(T=>T.Day===v&&T.ModelName===r).reduce((T,C)=>T+C.RequestCount,0)),c=j[g%j.length];return{label:r.split("/").pop()||r,data:m,fill:!1,borderColor:c,backgroundColor:c,tension:.4,pointBackgroundColor:"#fff",pointBorderColor:c,pointHoverBackgroundColor:c,pointHoverBorderColor:"#fff",pointRadius:3,pointHoverRadius:5,borderWidth:2,order:1}});s.value={labels:_,datasets:[h,...D]},n.value={plugins:{legend:{display:!0,position:"bottom",labels:{usePointStyle:!0,boxWidth:8,padding:20,color:"#64748b",font:{size:12}}},tooltip:{backgroundColor:"#fff",titleColor:"#0f172a",bodyColor:"#64748b",borderColor:"#e2e8f0",borderWidth:1,padding:12,boxPadding:4,usePointStyle:!0,callbacks:{label:function(r){return`${r.dataset.label}: ${r.parsed.y} reqs`}}}},scales:{x:{grid:{display:!1},ticks:{color:"#64748b"}},y:{beginAtZero:!0,grid:{color:"#f1f5f9",drawBorder:!1},ticks:{color:"#64748b",maxTicksLimit:5}}},interaction:{intersect:!1,mode:"index"},maintainAspectRatio:!1}}async function w(){try{const _=await ze();l.value=_?.data||_||[],p()}catch(_){console.error("Failed to fetch dashboard data:",_)}}return{chartData:s,chartOptions:n,fetchLegacyDashboardData:w}}const rs={class:"bg-white rounded-2xl p-6 border border-slate-100 hover:shadow-md transition-all duration-200"},ls={class:"flex items-center justify-between mb-6"},is={class:"text-lg font-bold text-slate-900 flex items-center gap-2"},ds={class:"size-8 rounded-lg bg-slate-50 text-slate-600 flex items-center justify-center text-lg"},cs={class:"text-sm text-slate-500"},us={key:0,class:"h-[300px] flex flex-col justify-end gap-2 px-4"},ps={key:1,class:"h-[300px] w-full"},ms=F({__name:"DashboardUsageChart",setup(l){const{chartData:s,chartOptions:n,fetchLegacyDashboardData:p}=ns(),w=O(!0);return ae(async()=>{await p(),w.value=!1}),(_,$)=>{const y=K;return i(),u("div",rs,[e("div",ls,[e("h3",is,[e("span",ds,[o(y,{name:"lucide:line-chart",class:"size-5"})]),H(" "+a(_.$t("dashboard.charts.volume")),1)]),e("span",cs,a(_.$t("dashboard.charts.last_7_days")),1)]),t(w)?(i(),u("div",us,[o(t(I),{height:"1.5rem",width:"100%"}),o(t(I),{height:"1.5rem",width:"85%"}),o(t(I),{height:"1.5rem",width:"60%"}),o(t(I),{height:"1.5rem",width:"90%"})])):(i(),u("div",ps,[o(t(ge),{type:"line",data:t(s),options:t(n),class:"h-full"},null,8,["data","options"])]))])}}}),hs=Object.assign(ms,{__name:"HallDashboardUsageChart"}),bs={class:"grid grid-cols-1 md:grid-cols-2 gap-5"},fs={class:"bg-white rounded-2xl border border-slate-100 hover:shadow-md transition-all duration-200 p-6"},gs={class:"flex items-center justify-between mb-6"},xs={class:"text-lg font-bold text-slate-900 flex items-center gap-2"},_s={class:"w-8 h-8 rounded-lg bg-purple-50 text-purple-600 flex items-center justify-center text-lg"},vs={class:"space-y-6"},ys={class:"p-4 bg-slate-50 rounded-xl border border-slate-100"},ws={class:"text-sm text-slate-500 font-medium mb-1"},$s={class:"flex items-baseline justify-between"},ks={class:"text-2xl font-bold text-slate-900 tracking-tight"},Cs={class:"flex items-center justify-between p-2"},js={class:"flex items-center gap-3"},Ds={class:"w-10 h-10 rounded-full bg-slate-100 flex items-center justify-center text-slate-600"},zs={class:"font-medium text-slate-900"},Ss={class:"text-xs text-slate-500"},Ts={class:"text-xl font-bold text-slate-900"},Ms={class:"bg-white rounded-2xl border border-slate-100 hover:shadow-md transition-all duration-200 p-6"},Ps={class:"flex flex-col flex-row items-center justify-between mb-6 gap-5"},As={class:"text-lg font-bold text-slate-900 flex items-center gap-2"},Os={class:"w-8 h-8 rounded-lg bg-orange-50 text-orange-600 flex items-center justify-center text-lg"},Es={class:"flex flex-col gap-5"},Is={key:0,class:"flex flex-col items-center justify-center py-8 text-center bg-white rounded-xl border border-dashed border-slate-200"},Ls={class:"w-12 h-12 bg-green-50 rounded-full flex items-center justify-center mb-3 shadow-sm text-green-600"},qs={class:"text-sm font-medium text-slate-900 mb-1"},Bs={class:"text-xs text-slate-500 max-w-[200px]"},Us={key:1,class:"flex flex-col items-center justify-center py-8 text-center bg-slate-50 rounded-xl border border-dashed border-slate-200"},Hs={class:"w-12 h-12 bg-white rounded-full flex items-center justify-center mb-3 shadow-sm text-slate-400"},Ns={class:"text-sm font-medium text-slate-600 mb-1"},Rs={class:"text-xs text-slate-400 max-w-[200px]"},Fs={class:"bg-white rounded-2xl p-6 border border-slate-100 hover:shadow-md transition-all duration-200"},Ks={class:"flex items-center justify-between mb-6"},Ys={class:"text-lg font-bold text-slate-900 flex items-center gap-2"},Gs={class:"size-8 rounded-lg bg-indigo-50 text-indigo-600 flex items-center justify-center text-lg"},Vs={class:"grid grid-cols-1 md:grid-cols-2 gap-5"},Ws={class:"p-6 rounded-xl bg-slate-50 border border-slate-100 flex flex-col md:flex-row items-center gap-6 group hover:border-slate-300 transition-colors"},Qs={class:"size-14 rounded-full bg-black text-white flex items-center justify-center shrink-0"},Zs={class:"flex-1 text-center md:text-left"},Js={class:"font-bold text-slate-900 mb-1"},Xs={class:"text-sm text-slate-500 mb-4"},eo={class:"p-6 rounded-xl bg-slate-50 border border-slate-100 flex flex-col md:flex-row items-center gap-6 group hover:border-slate-300 transition-colors"},to={class:"size-14 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center shrink-0"},so={class:"flex-1 text-center md:text-left"},oo={class:"font-bold text-slate-900 mb-1"},ao={class:"text-sm text-slate-500 mb-4"},no={class:"flex flex-col sm:flex-row gap-3 sm:gap-2 justify-center md:justify-start"},ro={class:"space-y-4"},lo={class:"relative"},io={class:"flex justify-end gap-2"},te=`Hi WisGate Team, 3I'm writing to request a test API key for potential use in our project. 4Here is some brief information about our use case: 5 6Industry / Product: 7(e.g. content website, SaaS platform, e-commerce) 8 9Primary model: 10(e.g. Nano Banana Pro, Sora 2) 11 12Estimated monthly usage: 13(rough estimate is fine, such as <10k, 10kâ100k, or 100k+ requests) 14 15Best regards, 16[Name]`,co=F({__name:"DashboardAccountPanel",setup(l,{expose:s}){const n=J(),{isMobile:p}=Se(),w=Te(),_=k(()=>de(n.info?.aff_quota||0));k(()=>n.info?.display_name||n.info?.username||"User");const $=k(()=>n.info?.aff_count||0),y=O(!1),d=O(!1),z=O([]),j=k(()=>z.value.length>0);async function x(){try{const c=await Pe();z.value=c||[]}catch(c){console.error("Failed to fetch payment methods:",c)}}async function h(){await x()}const D=O(!1);function r(){navigator.clipboard.writeText(te).then(()=>
16{w.add({severity:"success",summary:"Copied",detail:"Email template copied to clipboard",life:2e3})}).catch(()=>{w.add({severity:"error",summary:"Error",detail:"Failed to copy template",life:2e3})})}function g(){const c=encodeURIComponent("Request for Test API Key â Production Evaluation"),f=encodeURIComponent(te);window.open(`mailto:[email protected]?subject=${c}&body=${f}`,"_blank")}function m(){window.open("https://x.com/juheapi","_blank")}return s({fetchPaymentMethods:x,openCashier:()=>{y.value=!0}}),(c,f)=>{const v=K,T=ne,C=Re;return i(),u(E,null,[e("div",bs,[e("div",fs,[e("div",gs,[e("h3",xs,[e("span",_s,[o(v,{name:"lucide:users",class:"size-5"})]),H(" "+a(c.$t("dashboard.affiliate.title")),1)]),o(T,{to:c.$localePath("/hall/dashboard/affiliate")},{default:A(()=>[o(t(q),{unstyled:"",class:"bg-slate-900 hover:bg-slate-800 text-white cursor-pointer flex items-center gap-1 text-center px-3 py-1.5 rounded-lg text-xs font-bold transition-all shadow-sm border border-slate-600",label:t(p)?void 0:c.$t("dashboard.affiliate.center_title")},{icon:A(()=>[o(v,{name:"lucide:arrow-right",class:"size-4"})]),_:1},8,["label"])]),_:1},8,["to"])]),e("div",vs,[e("div",ys,[e("p",ws,a(c.$t("dashboard.affiliate.quota")),1),e("div",$s,[e("p",ks,a(t(Me)(t(_))),1)])]),e("div",Cs,[e("div",js,[e("div",Ds,[o(v,{name:"lucide:users",class:"size-5"})]),e("div",null,[e("p",zs,a(c.$t("dashboard.affiliate.invited_users")),1),e("p",Ss,a(c.$t("dashboard.affiliate.total_referrals")),1)])]),e("span",Ts,a(t($)),1)])])]),e("div",Ms,[e("div",Ps,[e("h3",As,[e("span",Os,[o(v,{name:"lucide:credit-card",class:"size-5"})]),H(" "+a(c.$t("dashboard.payment_method.title")),1)]),t(j)?P("",!0):(i(),B(t(q),{key:0,onClick:f[0]||(f[0]=b=>d.value=!0),unstyled:"",class:"bg-slate-900 hover:bg-slate-800 text-white cursor-pointer flex items-center justify-center gap-1 text-center px-4 py-2 sm:px-3 sm:py-1.5 rounded-lg text-sm sm:text-xs font-bold transition-all shadow-sm border border-slate-600",label:t(p)?void 0:c.$t("dashboard.payment_method.bind_btn")},{icon:A(()=>[o(v,{name:"lucide:plus",class:"size-4"})]),_:1},8,["label"]))]),e("div",Es,[t(j)?(i(),u("div",Is,[e("div",Ls,[o(v,{name:"lucide:check",class:"size-6"})]),e("p",qs,a(c.$t("dashboard.payment_method.bound")),1),e("p",Bs,a(c.$t("dashboard.payment_method.ready_msg")),1)])):(i(),u("div",Us,[e("div",Hs,[o(v,{name:"lucide:credit-card",class:"size-6"})]),e("p",Ns,a(c.$t("dashboard.payment_method.not_bound")),1),e("p",Rs,a(c.$t("dashboard.payment_method.bind_msg")),1)]))])])]),e("div",Fs,[e("div",Ks,[e("h3",Ys,[e("span",Gs,[o(v,{name:"lucide:gift",class:"size-5"})]),H(" "+a(c.$t("dashboard.trial.title")),1)])]),e("div",Vs,[e("div",Ws,[e("div",Qs,[o(v,{name:"lucide:twitter",class:"size-6"})]),e("div",Zs,[e("h4",Js,a(c.$t("dashboard.trial.via_twitter")),1),e("p",Xs,a(c.$t("dashboard.trial.twitter_desc")),1),o(t(q),{label:c.$t("dashboard.trial.go_twitter"),unstyled:"",class:"bg-slate-900 hover:bg-slate-800 text-white cursor-pointer flex items-center justify-center gap-1 text-center px-4 py-2 sm:px-3 sm:py-1.5 rounded-lg text-sm sm:text-xs font-bold transition-all shadow-sm border border-slate-600 w-full sm:w-auto",onClick:m},{icon:A(()=>[o(v,{name:"lucide:external-link",class:"size-4"})]),_:1},8,["label"])])]),e("div",eo,[e("div",to,[o(v,{name:"lucide:mail",class:"size-6"})]),e("div",so,[e("h4",oo,a(c.$t("dashboard.trial.via_email")),1),e("p",ao,a(c.$t("dashboard.trial.email_desc")),1),e("div",no,[o(t(q),{label:c.$t("dashboard.trial.get_template"),unstyled:"",class:"bg-slate-900 hover:bg-slate-800 text-white cursor-pointer flex items-center justify-center gap-1 text-center px-4 py-2 sm:px-3 sm:py-1.5 rounded-lg text-sm sm:text-xs font-bold transition-all shadow-sm border border-slate-600 w-full sm:w-auto",onClick:f[1]||(f[1]=b=>D.value=!0)},{icon:A(()=>[o(v,{name:"lucide:file-text",class:"size-4"})]),_:1},8,["label"]),o(t(q),{label:c.$t("dashboard.trial.send_email"),unstyled:"",class:"bg-slate-900 hover:bg-slate-800 text-white cursor-pointer flex items-center justify-center gap-1 text-center px-4 py-2 sm:px-3 sm:py-1.5 rounded-lg text-sm sm:text-xs font-bold transition-all shadow-sm border border-slate-600 w-full sm:w-auto",onClick:g},{icon:A(()=>[o(v,{name:"lucide:send",class:"size-4"})]),_:1},8,["label"])])])])])]),o(t(ce),{visible:t(D),"onUpdate:visible":f[4]||(f[4]=b=>G(D)?D.value=b:null),modal:"",header:"Email Template",style:{width:"500px"},pt:{root:{class:"rounded-2xl overflow-hidden border-0 shadow-2xl"},header:{class:"bg-white border-b border-slate-100 px-6 py-4"},content:{class:"bg-white px-6 !py-6"},footer:{class:"bg-slate-50 border-t border-slate-100 px-6 !py-4"}}},{footer:A(()=>[e("div",io,[o(t(q),{label:"Close",text:"",onClick:f[2]||(f[2]=b=>D.value=!1),class:"text-slate-500 hover:text-slate-700"}),o(t(q),{label:"Copy & Open Mail",onClick:f[3]||(f[3]=b=>{r(),g()}),class:"bg-blue-600 border-0 hover:bg-blue-700"},{icon:A(()=>[o(v,{name:"lucide:mail",class:"size-4"})]),_:1})])]),default:A(()=>[e("div",ro,[f[7]||(f[7]=e("p",{class:"text-sm text-slate-600"},[H("Please include the following information in your email to "),e("strong",null,"[email protected]"),H(": ")],-1)),e("div",lo,[e("textarea",{readonly:"",value:te,class:"w-full h-64 p-4 rounded-xl bg-slate-50 border border-slate-200 text-sm font-mono text-slate-700 focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 resize-none"}),Ae((i(),B(t(q),{class:"absolute top-2 right-2 p-2 h-8 w-8 !p-0 bg-white border border-slate-200 text-slate-500 hover:text-blue-600 hover:border-blue-200 rounded-lg shadow-sm",onClick:r},{icon:A(()=>[o(v,{name:"lucide:copy",class:"size-4"})]),_:1})),[[C,"Copy to clipboard"]])])])]),_:1}
16,8,["visible"]),o(Ke,{visible:t(y),"onUpdate:visible":f[5]||(f[5]=b=>G(y)?y.value=b:null),onSuccess:h},null,8,["visible"]),o(Ye,{visible:t(d),"onUpdate:visible":f[6]||(f[6]=b=>G(d)?d.value=b:null),onSuccess:x},null,8,["visible"]),o(t(Fe))],64)}}}),uo=Object.assign(co,{__name:"HallDashboardAccountPanel"}),po={class:"bg-white rounded-2xl p-6 border border-slate-100 hover:shadow-md transition-all duration-200"},mo={class:"flex items-center justify-between mb-6"},ho={class:"text-lg font-bold text-slate-900 flex items-center gap-2"},bo={class:"size-8 rounded-lg bg-violet-50 text-violet-600 flex items-center justify-center"},fo={key:0,class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-5"},go={class:"flex items-center gap-3"},xo={class:"flex-1"},_o={key:1,class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-5"},vo=["onClick"],yo={class:"flex items-center gap-3"},wo={class:"size-10 rounded-lg bg-white flex items-center justify-center shrink-0 overflow-hidden border border-slate-100"},$o={key:1,class:"size-10 bg-gradient-to-br from-slate-100 to-slate-200 rounded-lg flex items-center justify-center text-sm font-bold text-slate-400"},ko={class:"flex-1 min-w-0"},Co={class:"flex items-center gap-1.5"},jo={class:"font-semibold text-sm text-slate-700 truncate group-hover:text-slate-900 transition-colors"},Do={key:0,class:"shrink-0 text-[10px] font-bold text-rose-600 bg-rose-50 px-1.5 py-0.5 rounded-full"},zo={class:"flex items-center gap-1.5 mt-0.5 text-xs"},So={class:"text-slate-500"},To={class:"text-slate-400"},Mo={key:2,class:"flex flex-col items-center justify-center py-10 text-center"},Po={class:"size-12 bg-slate-50 rounded-full flex items-center justify-center mb-3"},Ao={class:"text-sm text-slate-400"},Oo=F({__name:"DashboardLatestModels",setup(l){const s=Z(),n=ue(),p=k(()=>n.latestModelsLoading),w=k(()=>n.latestModels),_=k(()=>w.value.slice(0,6));function $(d){return Ge(d)?.svg}function y(d){return d?he(d).format("YYYY-MM-DD"):""}return(d,z)=>{const j=K,x=ne;return i(),u("div",po,[e("div",mo,[e("h3",ho,[e("span",bo,[o(j,{name:"lucide:sparkles",class:"size-5"})]),H(" "+a(d.$t("dashboard.latest_models.title")),1)]),o(x,{to:d.$localePath("/models")},{default:A(()=>[o(t(q),{unstyled:"",class:"bg-slate-900 hover:bg-slate-800 text-white cursor-pointer flex items-center gap-1.5 text-center px-3 py-1.5 rounded-lg text-xs font-bold transition-all shadow-sm border border-slate-600"},{default:A(()=>[e("span",null,a(d.$t("dashboard.latest_models.view_all")),1),o(j,{name:"lucide:arrow-right",class:"size-3.5"})]),_:1})]),_:1},8,["to"])]),t(p)?(i(),u("div",fo,[(i(),u(E,null,R(6,h=>e("div",{key:h,class:"rounded-xl border border-slate-100 p-4"},[e("div",go,[o(t(I),{shape:"circle",size:"2.5rem"}),e("div",xo,[o(t(I),{width:"70%",height:"1rem",class:"mb-2"}),o(t(I),{width:"50%",height:"0.75rem"})])])])),64))])):t(_).length>0?(i(),u("div",_o,[(i(!0),u(E,null,R(t(_),h=>(i(),u("div",{key:h.id,class:"group relative rounded-xl p-4 bg-slate-50 border border-slate-100 hover:border-slate-300 transition-all duration-300 cursor-pointer",onClick:D=>t(s).push(d.$localePath(`/models/${h.id}`))},[e("div",yo,[e("div",wo,[$(h.name)?(i(),B(se,{key:0,name:$(h.name),class:"w-7 h-7"},null,8,["name"])):(i(),u("div",$o,a((h.provider||h.name)?.[0]?.toUpperCase()),1))]),e("div",ko,[e("div",Co,[e("h4",jo,a(h.display_name||h.name),1),h.is_hot?(i(),u("span",Do,a(d.$t("dashboard.latest_models.hot")),1)):P("",!0)]),e("div",zo,[e("span",So,a(h.provider),1),z[0]||(z[0]=e("span",{class:"text-slate-300"},"·",-1)),e("span",To,a(y(h.created_at)),1)])]),o(j,{name:"lucide:chevron-right",class:"size-4 text-slate-300 group-hover:text-slate-500 transition-colors shrink-0"})])],8,vo))),128))])):(i(),u("div",Mo,[e("div",Po,[o(j,{name:"lucide:box",class:"size-6 text-slate-300"})]),e("p",Ao,a(d.$t("dashboard.latest_models.no_models")),1)]))])}}}),Eo=Object.assign(Oo,{__name:"HallDashboardLatestModels"}),Io={key:0,class:"bg-white rounded-2xl p-6 border border-slate-100 hover:shadow-md transition-all duration-200"},Lo={class:"flex items-center justify-between mb-6"},qo={class:"text-lg font-bold text-slate-900 flex items-center gap-2"},Bo={class:"size-8 rounded-lg bg-amber-50 text-amber-600 flex items-center justify-center"},Uo={class:"space-y-3"},Ho={class:"flex items-start justify-between gap-3"},No={class:"flex-1 min-w-0"},Ro=["innerHTML"],Fo={key:0,class:"mt-2 bg-white p-2 rounded-lg text-xs text-slate-500 break-all font-mono border border-slate-100"},Ko={class:"flex flex-col items-end gap-1 shrink-0"},Yo={key:0,class:"text-[10px] font-bold text-blue-600 bg-blue-50 px-1.5 py-0.5 rounded-full"},Go={class:"text-xs text-slate-400 whitespace-nowrap"}
16,Vo=F({__name:"DashboardAnnouncements",setup(l){const s=pe(),n=O(!1),p=O(0),w=k(()=>s.announcements.slice(0,3));function _(d){if(!d)return"";try{return he(d).format("YYYY-MM-DD HH:mm")}catch{return d}}function $(d){return new Date(d).getTime()>s.lastReadTime}function y(){p.value=0,n.value=!0}return(d,z)=>{const j=K;return i(),u(E,null,[t(s).hasAnnouncements?(i(),u("div",Io,[e("div",Lo,[e("h3",qo,[e("span",Bo,[o(j,{name:"lucide:megaphone",class:"size-5"})]),H(" "+a(d.$t("dashboard.announcements.title")),1)]),o(t(q),{unstyled:"",onClick:y,class:"bg-slate-900 hover:bg-slate-800 text-white cursor-pointer flex items-center gap-1.5 text-center px-3 py-1.5 rounded-lg text-xs font-bold transition-all shadow-sm border border-slate-600"},{default:A(()=>[e("span",null,a(d.$t("dashboard.announcements.view_all")),1),o(j,{name:"lucide:arrow-right",class:"size-3.5"})]),_:1})]),e("div",Uo,[(i(!0),u(E,null,R(t(w),x=>(i(),u("div",{key:x.id,class:M(["rounded-xl p-4 bg-slate-50 border border-slate-100 hover:border-slate-300 transition-all duration-200 border-l-4",{"border-l-amber-400":x.type==="warning","border-l-red-400":x.type==="error","border-l-blue-400":x.type==="info","border-l-slate-200":!x.type||x.type==="default"}])},[e("div",Ho,[e("div",No,[e("div",{class:"text-sm text-slate-700 leading-relaxed line-clamp-2",innerHTML:x.content},null,8,Ro),x.extra?(i(),u("div",Fo,a(x.extra),1)):P("",!0)]),e("div",Ko,[$(x.publishDate)?(i(),u("span",Yo,a(d.$t("dashboard.announcements.new_tag")),1)):P("",!0),e("span",Go,a(_(x.publishDate)),1)])])],2))),128))])])):P("",!0),o(Ve,{visible:t(n),"onUpdate:visible":z[0]||(z[0]=x=>G(n)?n.value=x:null),"initial-tab":t(p)},null,8,["visible","initial-tab"])],64)}}}),Wo=Object.assign(Vo,{__name:"HallDashboardAnnouncements"}),Qo={class:"space-y-4 md:space-y-5"},Zo={class:"grid gap-3"},Jo=["onClick"],Xo={class:"flex items-center gap-1.5 md:gap-2 mb-1"},ea={class:"text-xs md:text-sm font-bold text-slate-800 truncate"},ta={key:1,class:"inline-flex items-center px-1.5 py-0.5 rounded-full text-[10px] font-medium bg-emerald-50 text-emerald-600 shrink-0"},sa={class:"text-[11px] md:text-xs text-slate-400 mb-0.5 pl-5 md:pl-6"},oa={class:"list-disc list-inside text-[10px] md:text-[11px] text-slate-400/70 mb-2.5 md:mb-3 pl-5 md:pl-6 space-y-0.5"},aa={class:"flex flex-col gap-1.5 pl-0 md:pl-6"},na=["onClick"],ra={class:"text-[11px] md:text-xs text-slate-600 font-mono flex-1 truncate"},la=["onClick"],ia={class:"text-[11px] md:text-xs text-slate-600 font-mono flex-1 truncate"},da={class:"flex items-center flex-wrap gap-x-2 gap-y-0.5 px-1 mb-2"},ca={class:"text-[11px] text-slate-400 hidden md:inline"},ua={class:"flex items-center gap-1.5 px-1 mb-1.5"},pa={class:"text-[11px] font-semibold text-slate-400 uppercase tracking-wider"},ma={class:"rounded-xl border border-slate-100 bg-slate-50/50 divide-y divide-slate-100"},ha=["onClick"],ba={class:"flex-1 min-w-0"},fa={class:"flex items-center gap-2 md:gap-3"},ga={class:"text-xs font-medium text-slate-600 shrink-0"},xa={class:"text-[11px] md:text-xs text-slate-400 font-mono truncate hidden md:inline"},_a={class:"text-[11px] text-slate-400 font-mono truncate block md:hidden mt-0.5"},va={class:"flex items-center justify-between gap-2"},ya={class:"text-[11px] text-slate-400 flex items-center gap-1 md:hidden"},wa={class:"flex gap-2 ml-auto"},$a=F({__name:"DashboardEndpointDialog",props:{visible:{type:Boolean}},emits:["update:visible"],setup(l,{emit:s}){const n=l,p=s,{t:w}=W(),_=O("wisgate"),$=k(()=>me.map(x=>({...x,desc:w(x.descKey),advantages:x.advantagesKeys.map(h=>w(h))}))),y=k(()=>$.value.find(x=>x.id===_.value)||$.value[0]),d=O(""),z=k({get:()=>n.visible,set:x=>p("update:visible",x)});async function j(x,h){try{await navigator.clipboard.writeText(x),d.value=h,setTimeout(()=>{d.value=""},2e3)}catch(D){console.error("Failed to copy endpoint:",D)}}return(x,h)=>{const D=K;return i(),B(t(ce),{visible:t(z),"onUpdate:visible":h[1]||(h[1]=r=>G(z)?z.value=r:null),modal:"",header:x.$t("tokens.endpoints.title"),class:"w-full max-w-3xl mx-2 md:mx-4",pt:{root:{class:"rounded-2xl overflow-hidden border-0 shadow-2xl"},header:{class:"bg-white !border-b !border-slate-100 !px-4 md:!px-6 !py-3 md:!py-4"},content:{class:"bg-white !px-4 md:!px-6 !py-4 md:!py-5 max-h-[80vh] overflow-y-auto"},footer:{class:"!bg-slate-50 !border-t !border-slate-100 !px-4 md:!px-6 !py-3"},mask:{class:"backdrop-blur-sm bg-slate-900/20"}}},{footer:A(()=>[e("div",va,[e("p",ya,[o(D,{name:"lucide:info",class:"size-3"}),H(" "+a(x.$t("tokens.endpoints.copy_includes_host")),1)]),e("div",wa,[o(t(q),{onClick:h[0]||(h[0]=r=>z.value=!1),class:"!bg-slate-100 hover:!bg-slate-200 !text-slate-600 !border-0 !rounded-lg !px-3 md:!px-4 !py-2 !text-xs md:!text-sm !font-medium"},{default:A(()=>[H(a(x.$t("tokens.cancel")),1)]),_:1})])])]),default:A(()=>[e("div",Qo,[e("div",null,[h[4]||(h[4]=e("div",{class:"text-[11px] font-semibold text-slate-400 uppercase tracking-wider px-1 mb-2"}," API Hosts ",-1)),e("div",Zo,[(i(!0),u(E,null,R(t($),r=>(i(),u("div",{key:r.id,onClick:g=>
16_.value=r.id,class:M(["rounded-xl border-2 p-3 md:p-4 cursor-pointer transition-all",t(_)===r.id?"border-slate-700 bg-slate-50/80":"border-slate-100 hover:border-slate-200 bg-white"])},[e("div",Xo,[o(D,{name:"lucide:globe",class:M(["size-3.5 md:size-4",t(_)===r.id?"text-slate-700":"text-slate-400"])},null,8,["class"]),e("span",ea,a(r.url.replace("https://","")),1),r.id==="wisgate"?(i(),B(se,{key:0,name:"cloudflare",class:"h-5 aspect-[3/1] shrink-0 opacity-60"})):P("",!0),r.recommended?(i(),u("span",ta,a(x.$t("tokens.endpoints.recommended")),1)):P("",!0),t(_)===r.id?(i(),B(D,{key:2,name:"lucide:check-circle",class:"size-4 text-emerald-500 ml-auto shrink-0"})):P("",!0)]),e("p",sa,a(r.desc),1),e("ul",oa,[(i(!0),u(E,null,R(r.advantages,g=>(i(),u("li",{key:g},a(g),1))),128))]),e("div",aa,[e("div",{class:M(["group flex items-center gap-2 px-2.5 md:px-3 py-2 rounded-lg border transition-colors",t(_)===r.id?"bg-white border-slate-200 hover:bg-slate-50":"bg-slate-50/50 border-slate-100 hover:bg-slate-50"]),onClick:Y(g=>j(r.url,r.id+"-base"),["stop"])},[h[2]||(h[2]=e("span",{class:"text-[10px] text-slate-400 font-medium shrink-0 uppercase"},"Base",-1)),e("code",ra,a(r.url),1),o(D,{name:t(d)===r.id+"-base"?"lucide:check":"lucide:copy",class:M(["size-3 shrink-0 transition-colors",t(d)===r.id+"-base"?"text-green-600":"text-slate-300 group-hover:text-slate-500"])},null,8,["name","class"])],10,na),e("div",{class:M(["group flex items-center gap-2 px-2.5 md:px-3 py-2 rounded-lg border transition-colors",t(_)===r.id?"bg-white border-slate-200 hover:bg-slate-50":"bg-slate-50/50 border-slate-100 hover:bg-slate-50"]),onClick:Y(g=>j(r.url+"/v1",r.id+"-base-v1"),["stop"])},[h[3]||(h[3]=e("span",{class:"text-[10px] text-slate-400 font-medium shrink-0 uppercase"},"v1",-1)),e("code",ia,a(r.url)+"/v1",1),o(D,{name:t(d)===r.id+"-base-v1"?"lucide:check":"lucide:copy",class:M(["size-3 shrink-0 transition-colors",t(d)===r.id+"-base-v1"?"text-green-600":"text-slate-300 group-hover:text-slate-500"])},null,8,["name","class"])],10,la)])],10,Jo))),128))])]),e("div",null,[e("div",da,[h[5]||(h[5]=e("span",{class:"text-[11px] font-semibold text-slate-400 uppercase tracking-wider"},"Endpoints",-1)),h[6]||(h[6]=e("span",{class:"text-[11px] text-slate-300 hidden md:inline"},"â",-1)),e("span",ca,a(x.$t("tokens.endpoints.copy_includes_host")),1)]),(i(!0),u(E,null,R(t(He),r=>(i(),u("div",{key:r.id,class:"mb-3 last:mb-0"},[e("div",ua,[o(se,{class:"size-3.5",name:r.logo.toLowerCase()},null,8,["name"]),e("span",pa,a(r.name),1)]),e("div",ma,[(i(!0),u(E,null,R(r.endpoints,(g,m)=>(i(),u("div",{key:g.key,class:M(["group flex items-center gap-2 md:gap-3 px-3 md:px-4 py-2.5 hover:bg-slate-50 transition-colors cursor-pointer",{"rounded-t-xl":m===0,"rounded-b-xl":m===r.endpoints.length-1}]),onClick:c=>j(t(y).url+g.path,t(y).id+"-"+g.key)},[e("div",{class:M(["w-1.5 h-1.5 rounded-full shrink-0",r.color])},null,2),e("div",ba,[e("div",fa,[e("span",ga,a(g.name),1),e("code",xa,a(g.path),1)]),e("code",_a,a(g.path),1)]),o(D,{name:t(d)===t(y).id+"-"+g.key?"lucide:check":"lucide:copy",class:M(["size-3 shrink-0 transition-colors",t(d)===t(y).id+"-"+g.key?"text-green-600":"text-slate-300 group-hover:text-slate-500"])},null,8,["name","class"])],10,ha))),128))])]))),128))])])]),_:1},8,["visible","header"])}}}),ka=Object.assign($a,{__name:"HallDashboardEndpointDialog"}),Ca={class:"flex flex-col md:flex-row md:items-center justify-between gap-5 pb-4"},ja={class:"text-2xl font-bold text-slate-900 tracking-tight"},Da={class:"text-slate-500 mt-1"},za={class:"flex items-center gap-3"},Sa={class:"flex gap-5 overflow-x-auto pb-1"},Ta={class:"size-10 rounded-xl bg-white/10 flex items-center justify-center text-white group-hover:bg-white/20 transition-colors shrink-0"},Ma={class:"flex-1 min-w-0"},Pa={class:"flex items-center justify-between gap-2"},Aa={class:"text-sm font-bold text-white truncate"},Oa={class:"text-xs text-slate-400 mt-1 truncate"},Ea={class:"size-10 rounded-xl bg-blue-50 flex items-center justify-center text-blue-600 group-hover:bg-blue-100 transition-colors shrink-0"},Ia={class:"flex-1 min-w-0"},La={class:"flex items-center justify-between gap-2"},qa={class:"text-sm font-bold text-slate-900 truncate"},Ba={class:"text-xs text-slate-500 mt-1 truncate"},Ua={href:"https://docs.wisgate.ai/",target:"_blank",rel:"noopener",class:"group flex items-center gap-5 p-5 bg-white rounded-2xl border border-slate-100 hover:border-violet-200 hover:shadow-md transition-all duration-200 cursor-pointer shrink-0 flex-1 min-w-[220px]"},Ha={class:"size-10 rounded-xl bg-violet-50 flex items-center justify-center text-violet-600 group-hover:bg-violet-100 transition-colors shrink-0"},Na={class:"flex-1 min-w-0"},Ra={class:"flex items-center justify-between gap-2"},Fa={class:"text-sm font-bold text-slate-900 truncate"},Ka={class:"text-xs text-slate-500 mt-1 truncate"},Ya={class:"size-10 rounded-xl bg-amber-50 flex items-center justify-center text-amber-600 group-hover:bg-amber-100 transition-colors shrink-0"},Ga={class:"flex-1 min-w-0"},Va={class:"flex items-center justify-between gap-2"},Wa={class:"text-sm font-bold text-slate-900 truncate"},Qa={class:"text-xs text-slate-500 mt-1 truncate"},Za={class:"h-full w-full overflow-y-auto bg-gradient-to-br from-slate-50 to-gray-100"},Ja=F({__name:"dashboard",setup(l){const{t:s}=W(),n=Oe(),p=Z(),w=oe(),_=J(),$=ue(),y=pe();Ee(k(()=>Ne(s).hallDashboard));const d=k(()=>n.path!==w("/hall/dashboard")),z=m=>{m||p.push(w("/hall/dashboard"))},{mergedSummary:j,loadAnalyticsSection:x}=be(),h=O(!1),D=fe({mergedSummary:j,onTopup:()=>{r.value?.openCashier()},onShowEndpoint:()=>{h.value=!0}}),r=O(null),g=k(()=>_.info?.display_name||_.info?.username||"User");return ae(async()=>
16{if(!_.isLogin||!_.info?.id)try{await _.getUserInfo()}catch(m){console.error("Failed to fetch user info:",m)}x(),r.value?.fetchPaymentMethods(),D.fetchDefaultToken(),$.getLatestModelsCached(),y.initialize(),y.fetchAnnouncements()}),(m,c)=>{const f=K,v=ne,T=Le,C=Be;return i(),u("div",{class:M(["dashboard-container p-4 md:p-6 max-w-[1600px] mx-auto min-h-dvh font-sans grid grid-cols-1 gap-5 content-start",{"overflow-hidden":(m._.provides[Ie]||m.$route).path!==m.$localePath("/hall/dashboard")}])},[e("div",Ca,[e("div",null,[e("h1",ja,a(m.$t("dashboard.title")),1),e("p",Da,a(m.$t("dashboard.welcome_back",{name:t(g)})),1)]),e("div",za,[o(t(q),{onClick:c[0]||(c[0]=b=>t(p).push(t(w)("/hall/billing"))),unstyled:"",class:"bg-slate-900 hover:bg-slate-800 cursor-pointer text-white px-5 py-2.5 rounded-xl text-sm font-medium transition-all duration-300 shadow-sm hover:shadow-md flex items-center gap-2"},{default:A(()=>[o(f,{name:"lucide:wallet",class:"size-4"}),e("span",null,a(m.$t("dashboard.wallet_transfer")),1)]),_:1})])]),e("div",Sa,[e("button",{onClick:c[1]||(c[1]=b=>t(r)?.openCashier()),class:"group flex items-center gap-5 p-5 bg-slate-900 rounded-2xl border border-slate-800 hover:bg-slate-800 hover:shadow-md transition-all duration-200 cursor-pointer text-left shrink-0 flex-1 min-w-[220px]"},[e("div",Ta,[o(f,{name:"lucide:zap",class:"size-5"})]),e("div",Ma,[e("div",Pa,[e("h4",Aa,a(m.$t("dashboard.quick_access.topup_title")),1),o(f,{name:"lucide:arrow-right",class:"size-3.5 text-white/30 group-hover:text-white/70 group-hover:translate-x-0.5 transition-all shrink-0"})]),e("p",Oa,a(m.$t("dashboard.quick_access.topup_desc")),1)])]),o(v,{to:m.$localePath("/hall/tokens"),class:"group flex items-center gap-5 p-5 bg-white rounded-2xl border border-slate-100 hover:border-blue-200 hover:shadow-md transition-all duration-200 cursor-pointer shrink-0 flex-1 min-w-[220px]"},{default:A(()=>[e("div",Ea,[o(f,{name:"lucide:key",class:"size-5"})]),e("div",Ia,[e("div",La,[e("h4",qa,a(m.$t("dashboard.quick_access.tokens_title")),1),o(f,{name:"lucide:arrow-right",class:"size-3.5 text-slate-300 group-hover:text-blue-500 group-hover:translate-x-0.5 transition-all shrink-0"})]),e("p",Ba,a(m.$t("dashboard.quick_access.tokens_desc")),1)])]),_:1},8,["to"]),e("a",Ua,[e("div",Ha,[o(f,{name:"lucide:book-open",class:"size-5"})]),e("div",Na,[e("div",Ra,[e("h4",Fa,a(m.$t("dashboard.quick_access.docs_title")),1),o(f,{name:"lucide:arrow-up-right",class:"size-3.5 text-slate-300 group-hover:text-violet-500 group-hover:-translate-y-0.5 group-hover:translate-x-0.5 transition-all shrink-0"})]),e("p",Ka,a(m.$t("dashboard.quick_access.docs_desc")),1)])]),o(v,{to:m.$localePath("/hall/billing"),class:"group flex items-center gap-5 p-5 bg-white rounded-2xl border border-slate-100 hover:border-amber-200 hover:shadow-md transition-all duration-200 cursor-pointer shrink-0 flex-1 min-w-[220px]"},{default:A(()=>[e("div",Ya,[o(f,{name:"lucide:receipt-text",class:"size-5"})]),e("div",Ga,[e("div",Va,[e("h4",Wa,a(m.$t("dashboard.quick_access.billing_title")),1),o(f,{name:"lucide:arrow-right",class:"size-3.5 text-slate-300 group-hover:text-amber-500 group-hover:translate-x-0.5 transition-all shrink-0"})]),e("p",Qa,a(m.$t("dashboard.quick_access.billing_desc")),1)])]),_:1},8,["to"])]),o(Wt,{"merged-summary":t(j),onTopup:c[2]||(c[2]=b=>t(r)?.openCashier()),onShowEndpoint:c[3]||(c[3]=b=>h.value=!0)},null,8,["merged-summary"]),o(St),o(uo,{ref_key:"accountPanel",ref:r},null,512),o(hs),o(Eo),o(Wo),o(ka,{visible:t(h),"onUpdate:visible":c[4]||(c[4]=b=>G(h)?h.value=b:null)},null,8,["visible"]),o(C,{open:t(d),"onUpdate:open":[c[5]||(c[5]=b=>G(d)?d.value=b:null),z],direction:"right",dismissible:!1,inset:!0,handle:!1,ui:{content:"w-full md:w-[80vw] lg:w-[60vw]",overlay:"bg-black/20"}},{content:A(()=>[e("div",Za,[o(T)])]),_:1},8,["open"])],2)}}}),kn=qe(Ja,[["__scopeId","data-v-4d492451"]]);export{kn 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.