1import{d as Se,c as h,r as m,o as $e,a as Be,z as i,B as e,k as G,K as Me,G as o,a1 as Re,E as p,u as c,D as de,Q as W,a2 as qe,Y as Ae,H as Ie,F as w,V as C,W as ie,a0 as Le,A as U,n as ne,C as d,S as ce}from"./vendor-vue-Dzwqm9Y9.js";import{a as Ee,I as ue,_ as Y,o as je,a0 as V,D as Ne}from"./index-BB-1BiLf.js";import{L as ze}from"./LocaleSwitcher-DwqRgoPh.js";import{u as Fe}from"./vendor-i18n-BuoWFzps.js";import"./vendor-misc-B-nM3tYW.js";/* empty css */const Ve={class:"relative flex min-h-screen flex-col bg-gray-50 dark:bg-dark-950"},He={class:"relative z-20 px-6 py-4"},Pe={class:"mx-auto flex max-w-6xl items-center justify-between"},Oe={class:"h-10 w-10 overflow-hidden rounded-xl shadow-md"},Qe=["src"],Ke={class:"text-lg font-semibold tracking-tight text-gray-900 dark:text-white"},Ge={class:"flex items-center gap-3"},We=["href","title"],Ye=["title"],Ze={class:"flex-1 w-full max-w-5xl mx-auto px-6 py-12"},Je={class:"text-center mb-12"},Xe={class:"text-3xl sm:text-4xl font-bold tracking-tight mb-3 text-gray-900 dark:text-white"},et={class:"text-gray-500 dark:text-dark-400 text-base max-w-md mx-auto"},tt={class:"max-w-xl mx-auto mb-14"},at={class:"flex gap-3"},st={class:"flex-1 relative"},rt=["type","placeholder"],ot={key:0,class:"w-5 h-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},lt={key:1,class:"w-5 h-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},dt=["disabled"],it={key:0,class:"w-4 h-4 animate-spin",viewBox:"0 0 24 24",fill:"none"},nt={key:1,class:"w-4 h-4",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},ct={class:"text-xs text-gray-400 dark:text-dark-500 mt-3 text-center"},ut={key:0,class:"mt-4"},kt={class:"flex flex-wrap items-center gap-2 justify-center"},gt={class:"text-xs text-gray-500 dark:text-dark-400"},xt=["onClick"],yt={key:0,class:"flex items-center gap-2 ml-1"},ht={key:0},mt={key:0,class:"space-y-6"},pt={key:1,class:"space-y-6"},bt={key:0,class:"fade-up flex items-center justify-center mb-2"},vt={class:"inline-flex items-center gap-2 px-5 py-2.5 rounded-full border border-gray-200 bg-white/90 shadow-sm backdrop-blur-sm dark:border-dark-700 dark:bg-dark-900/90"},_t={class:"text-sm font-medium text-gray-900 dark:text-white"},ft={class:"text-xs text-gray-500 dark:text-dark-400"},wt={class:"flex items-center justify-between mb-6"},Ut={class:"text-sm font-semibold uppercase tracking-wider text-gray-500 dark:text-dark-400"},Ct={key:0,class:"w-5 h-5 text-gray-400 dark:text-dark-500",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Tt={key:1,class:"w-5 h-5 text-gray-400 dark:text-dark-500",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},Dt={key:2,class:"w-5 h-5 text-gray-400 dark:text-dark-500",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},St={class:"flex justify-center"},$t={class:"relative"},Bt={class:"w-44 h-44",viewBox:"0 0 160 160"},Mt=["stroke"],Rt=["stroke","stroke-dasharray","stroke-dashoffset"],qt=["id"],At=["stop-color"],It=["stop-color"],Lt={class:"absolute inset-0 flex flex-col items-center justify-center"},Et={class:"text-3xl font-bold tabular-nums text-gray-900 dark:text-white"},jt={class:"text-xs text-gray-500 dark:text-dark-400 mt-0.5"},Nt={key:0,class:"text-xs text-gray-400 dark:text-gray-500 mt-0.5 tabular-nums"},zt={key:2,class:"fade-up fade-up-delay-3 rounded-2xl border border-gray-200 bg-white/90 backdrop-blur-sm overflow-hidden dark:border-dark-700 dark:bg-dark-900/90"},Ft={class:"px-8 py-5 border-b border-gray-200 dark:border-dark-700"},Vt={class:"text-sm font-semibold uppercase tracking-wider text-gray-500 dark:text-dark-400"},Ht={class:"divide-y divide-gray-100 dark:divide-dark-800"},Pt={class:"flex items-center gap-3"},Ot=["innerHTML"],Qt={class:"text-sm text-gray-700 dark:text-dark-200"},Kt={key:3,class:"fade-up fade-up-delay-3 rounded-2xl border border-gray-200 bg-white/90 backdrop-blur-sm overflow-hidden dark:border-dark-700 dark:bg-dark-900/90"},Gt={class:"px-8 py-5 border-b border-gray-200 dark:border-dark-700"},Wt={class:"text-sm font-semibold uppercase tracking-wider text-gray-500 dark:text-dark-400"},Yt={class:"grid grid-cols-2 md:grid-cols-4 gap-px bg-gray-100 dark:bg-dark-800"},Zt={class:"text-xs text-gray-500 dark:text-dark-400 mb-1"},Jt={class:"text-sm font-semibold tabular-nums text-gray-900 dark:text-white"},Xt={key:4,class:"fade-up fade-up-delay-4 rounded-2xl border border-gray-200 bg-white/90 backdrop-blur-sm overflow-hidden dark:border-dark-700 dark:bg-dark-900/90"},ea={class:"flex flex-col gap-3 px-8 py-5 border-b border-gray-200 dark:border-dark-700 sm:flex-row sm:items-center sm:justify-between"},ta={class:"text-sm font-semibold uppercase tracking-wider text-gray-500 dark:text-dark-400"},aa={class:"inline-flex rounded-lg border border-gray-200 bg-white p-0.5 dark:border-dark-700 dark:bg-dark-950"},sa=["onClick"],ra={key:0,class:"overflow-x-auto"},oa={class:"w-full"},la={class:"border-b border-gray-200 bg-gray-50 dark:border-dark-700 dark:bg-dark-950"},da={class:"px-4 py-3 text-left text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-dark-400"},ia={class:"px-4 py-3 text-right text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-dark-400"},na={class:"px-4 py-3 text-right text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-dark-400"},ca={class:"px-4 py-3 text-right text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-dark-400"},ua={class:"px-4 py-3 text-right text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-dark-400"},ka={class:"px-4 py-3 text-right text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-dark-400"},ga={class:"px-4 py-3 text-right text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-dark-400"},xa={class:"px-4 py-3 text-sm font-medium whitespace-nowrap text-gray-900 dark:text-white"},ya={class:"px-4 py-3 text-sm tabular-nums text-right text-gray-700 dark:text-dark-200"},ha={class:"px-4 py-3 text-sm tabular-nums text-right text-gray-700 dark:text-dark-200"},ma={class:"px-4 py-3 text-sm tabular-nums text-right text-gray-700 dark:text-dark-200"},pa={class:"px-4 py-3 text-sm tabular-nums text-right text-gray-700 dark:text-dark-200"},ba={class:"px-4 py-3 text-sm tabular-nums text-right text-gray-700 dark:text-dark-200"},va={class:"px-4 py-3 text-sm tabular-nums text-right font-medium text-gray-900 dark:text-white"},_a={key:1,class:"px-8 py-8 text-center text-sm text-gray-500 dark:text-dark-400"},fa={key:5,class:"fade-up fade-up-delay-4 rounded-2xl border border-gray-200 bg-white/90 backdrop-blur-sm overflow-hidden dark:border-dark-700 dark:bg-dark-900/90"},wa={class:"px-8 py-5 border-b border-gray-200 dark:border-dark-700"},Ua={class:"text-sm font-semibold uppercase tracking-wider text-gray-500 dark:text-dark-400"},Ca={class:"overflow-x-auto"},Ta={class:"w-full"},Da={class:"border-b border-gray-200 bg-gray-50 dark:border-dark-700 dark:bg-dark-950"},Sa={class:"px-4 py-3 text-left text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-dark-400"},$a={class:"px-4 py-3 text-right text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-dark-400"},Ba={class:"px-4 py-3 text-right text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-dark-400"},Ma={class:"px-4 py-3 text-right text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-dark-400"},Ra={class:"px-4 py-3 text-right text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-dark-400"},qa={class:"px-4 py-3 text-right text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-dark-400"},Aa={class:"px-4 py-3 text-right text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-dark-400"},Ia={class:"px-4 py-3 text-right text-xs font-semibold uppercase tracking-wider text-gray-500 dark:text-dark-400"},La={class:"px-4 py-3 text-sm font-medium whitespace-nowrap text-gray-900 dark:text-white"},Ea={class:"px-4 py-3 text-sm tabular-nums text-right text-gray-700 dark:text-dark-200"},ja={class:"px-4 py-3 text-sm tabular-nums text-right text-gray-700 dark:text-dark-200"},Na={class:"px-4 py-3 text-sm tabular-nums text-right text-gray-700 dark:text-dark-200"},za={class:"px-4 py-3 text-sm tabular-nums text-right text-gray-700 dark:text-dark-200"},Fa={class:"px-4 py-3 text-sm tabular-nums text-right text-gray-700 dark:text-dark-200"},Va={class:"px-4 py-3 text-sm tabular-nums text-right text-gray-700 dark:text-dark-200"},Ha={class:"px-4 py-3 text-sm tabular-nums text-right font-medium text-gray-900 dark:text-white"},Pa={class:"relative z-10 border-t border-gray-200/50 px-6 py-8 dark:border-dark-800/50"},Oa={class:"mx-auto flex max-w-6xl flex-col items-center justify-center gap-4 text-center sm:flex-row sm:text-left"},Qa={class:"text-sm text-gray-500 dark:text-dark-400"},Ka={class:"flex items-center gap-4"},Ga=["href"],Wa="https://github.com/Wei-Shaw/sub2api",Ya=Se({__name:"KeyUsageView",setup(Za){const{t:s,locale:D}=Fe(),v=Ee(),Z=h(()=>{var t;return((t=v.cachedPublicSettings)==null?void 0:t.site_name)||v.siteName||"Sub2API"}),ke=h(()=>{var t;return ue(((t=v.cachedPublicSettings)==null?void 0:t.site_logo)||v.siteLogo||"",{allowRelative:!0,allowDataUrl:!0})}),B=h(()=>{var t;return ue(((t=v.cachedPublicSettings)==null?void 0:t.doc_url)||v.docUrl||"")}),f=m(document.documentElement.classList.contains("dark"));function ge(){f.value=!f.value,document.documentElement.classList.toggle("dark",f.value),localStorage.setItem("theme",f.value?"dark":"light")}const xe=h(()=>new Date().getFullYear()),M=m(""),R=m(!1),T=m(!1),H=m(!1),q=m(!1),J=m(!1),b=m(null),X=m(new Date);let P=null;const S=m("today"),A=m(""),I=m(""),L=m(30),ye=h(()=>[{key:"today",label:s("keyUsage.dateRangeToday")},{key:"7d",label:s("keyUsage.dateRange7d")}
1,{key:"30d",label:s("keyUsage.dateRange30d")},{key:"custom",label:s("keyUsage.dateRangeCustom")}]),he=h(()=>[{value:7,label:s("keyUsage.dateRange7d")},{value:30,label:s("keyUsage.dateRange30d")},{value:90,label:s("keyUsage.dateRange90d")}]);function me(t){S.value=t,t!=="custom"&&$()}function pe(){const t=new Date,r=new URLSearchParams;if(S.value==="custom")A.value&&I.value&&(r.set("start_date",A.value),r.set("end_date",I.value));else{const n=V(t);let a;switch(S.value){case"today":a=n;break;case"7d":a=V(new Date(t.getTime()-7*864e5));break;case"30d":a=V(new Date(t.getTime()-30*864e5));break;default:a=V(new Date(t.getTime()-30*864e5))}r.set("start_date",a),r.set("end_date",n)}return r.set("days",String(L.value)),r.set("timezone",Ce()),r.toString()}function be(t){L.value!==t&&(L.value=t,b.value&&M.value.trim()&&$())}const E=2*Math.PI*68,j=[{from:"#14b8a6",to:"#5eead4"},{from:"#6366F1",to:"#A5B4FC"},{from:"#10B981",to:"#6EE7B7"},{from:"#F59E0B",to:"#FCD34D"}],O=m(!1),Q=m([]),ve=h(()=>f.value?"#222222":"#F0F0EE");function _e(t){return O.value?t.isBalance?0:E-Math.min(t.pct,100)/100*E:E}function fe(t){O.value=!1,Q.value=t.map(()=>0),ne(()=>{requestAnimationFrame(()=>{setTimeout(()=>{O.value=!0;const r=1e3,n=performance.now(),a=t.map(x=>x.isBalance?0:x.pct);function l(){const x=performance.now()-n,y=Math.min(x/r,1),u=1-Math.pow(1-y,3);Q.value=a.map(_=>Math.round(u*_)),y<1&&requestAnimationFrame(l)}requestAnimationFrame(l)},50)})})}const N=h(()=>{const t=b.value;if(!t)return null;if(t.mode==="quota_limited"){const r=t.isValid!==!1,n={active:"Active",quota_exhausted:"Quota Exhausted",expired:"Expired"};return{label:s("keyUsage.quotaMode"),statusText:n[t.status]||t.status||"Unknown",isActive:r&&t.status==="active"}}return{label:t.planName||s("keyUsage.walletBalance"),statusText:"Active",isActive:!0}}),z=h(()=>{const t=b.value;if(!t)return[];const r=[];if(t.mode==="quota_limited"){if(t.quota){const n=t.quota.limit>0?Math.min(Math.round(t.quota.used/t.quota.limit*100),100):0;r.push({title:s("keyUsage.totalQuota"),pct:n,amount:`${g(t.quota.used)} / ${g(t.quota.limit)}`,iconType:"dollar"})}if(t.rate_limits){const n={"5h":s("keyUsage.limit5h"),"1d":s("keyUsage.limitDaily"),"7d":s("keyUsage.limit7d")},a={"5h":"clock","1d":"calendar","7d":"calendar"};for(const l of t.rate_limits){const x=l.limit>0?Math.min(Math.round(l.used/l.limit*100),100):0;r.push({title:n[l.window]||l.window,pct:x,amount:`${g(l.used)} / ${g(l.limit)}`,iconType:a[l.window]||"clock",resetAt:l.reset_at})}}}else{if(t.subscription){const n=t.subscription,a=[{label:s("keyUsage.limitDaily"),usage:n.daily_usage_usd,limit:n.daily_limit_usd},{label:s("keyUsage.limitWeekly"),usage:n.weekly_usage_usd,limit:n.weekly_limit_usd},{label:s("keyUsage.limitMonthly"),usage:n.monthly_usage_usd,limit:n.monthly_limit_usd}];for(const l of a)if(l.limit!=null&&l.limit>0){const x=Math.min(Math.round(l.usage/l.limit*100),100);r.push({title:l.label,pct:x,amount:`${g(l.usage)} / ${g(l.limit)}`,iconType:"calendar"})}}!t.subscription&&t.balance!=null&&r.push({title:s("keyUsage.walletBalance"),pct:0,amount:g(t.balance),isBalance:!0,iconType:"dollar"})}return r}),we=h(()=>{const t=z.value.length;return t===1?"grid grid-cols-1 max-w-md mx-auto gap-6":t===2?"grid grid-cols-1 md:grid-cols-2 gap-6":"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6"});function F(t){return t>90?"text-rose-500":t>70?"text-amber-500":"text-emerald-500"}const ee=h(()=>{const t=b.value;if(!t)return[];const r=[],n='<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/>',a='<rect x="3" y="4" width="18" height="18" rx="2" ry="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/>',l='<line x1="12" y1="1" x2="12" y2="23"/><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/>',x='<polyline points="20 6 9 17 4 12"/>';if(t.mode==="quota_limited"){if(t.quota){const y=t.quota.remaining<=0?"text-rose-500":t.quota.remaining<t.quota.limit*.1?"text-amber-500":"text-emerald-500";r.push({iconBg:"bg-emerald-500/10",iconColor:"text-emerald-500",iconSvg:n,label:s("keyUsage.remainingQuota"),value:g(t.quota.remaining),valueClass:y})}if(t.expires_at){const y=t.days_until_expiry;let u=re(t.expires_at);y!=null&&(u+=y>0?` ${s("keyUsage.daysLeft",{days:y})}`:y===0?` ${s("keyUsage.todayExpires")}`:""),r.push({iconBg:"bg-amber-500/10",iconColor:"text-amber-500",iconSvg:a,label:s("keyUsage.expiresAt"),value:u,valueClass:""})}if(t.rate_limits){const y={"5h":"5H","1d":D.value==="zh"?"æ¥":"D","7d":"7D"};for(const u of t.rate_limits){const _=u.limit>0?u.used/u.limit*100:0;let oe=`${g(u.used)} / ${g(u.limit)}`;const le=K(u.reset_at);le&&(oe+=` (â³ ${le})`),r.push({iconBg:"bg-primary-500/10",iconColor:"text-primary-500",iconSvg:l,label:`${s("keyUsage.usedQuota")} (${y[u.window]||u.window})`,value:oe,valueClass:F(_)})}}}else{if(r.push({iconBg:"bg-emerald-500/10",iconColor:"text-emerald-500",iconSvg:x,label:s("keyUsage.subscriptionType"),value:t.planName||s("keyUsage.walletBalance"),valueClass:""}),t.subscription){const u=t.subscription;if(u.daily_limit_usd>0){const _=u.daily_usage_usd/u.daily_limit_usd*100;r.push({iconBg:"bg-primary-500/10",iconColor:"text-primary-500",iconSvg:l,label:`${s("keyUsage.usedQuota")} (${D.value==="zh"?"æ¥":"D"})`,value:`${g(u.daily_usage_usd)} / ${g(u.daily_limit_usd)}`,valueClass:F(_)})}if(u.weekly_limit_usd>0){const _=u.weekly_usage_usd/u.weekly_limit_usd*100;r.push({iconBg:"bg-indigo-500/10",iconColor:"text-indigo-500",iconSvg:l,label:`${s("keyUsage.usedQuota")} (${D.value==="zh"?"å¨":"W"})`,value:`${g(u.weekly_usage_usd)} / ${g(u.weekly_limit_usd)}`,valueClass:F(_)})}if(u.monthly_limit_usd>0){const _=u.monthly_usage_usd/u.monthly_limit_usd*100;r.push({iconBg:"bg-emerald-500/10",iconColor:"text-emerald-500",iconSvg:l,label:`${s("keyUsage.usedQuota")} (${D.value==="zh"?"æ":"M"})`,value:`${g(u.monthly_usage_usd)} / ${g(u.monthly_limit_usd)}`,valueClass:F(_)})}u.expires_at&&r.push({iconBg:"bg-amber-500/10",iconColor:"text-amber-500",iconSvg:a,label:s("keyUsage.subscriptionExpires"),value:re(u.expires_at),valueClass:""})}const y=t.remaining!=null?t.remaining<=0?"text-rose-500":t.remaining<10?"text-amber-500":"text-emerald-500":"";r.push({iconBg:"bg-emerald-500/10",iconColor:"text-emerald-500",iconSvg:n,label:s("keyUsage.remainingQuota"),value:t.remaining!=null?g(t.remaining):"-",valueClass:y})}return r}),te=h(()=>{var a;const t=(a=b.value)==null?void 0:a.usage;if(!t)return[];const r=t.today||{},n=t.total||{};return[{label:s("keyUsage.todayRequests"),value:k(r.requests)},{label:s("keyUsage.todayInputTokens"),value:k(r.input_tokens)},{label:s("keyUsage.todayOutputTokens"),value:k(r.output_tokens)},{label:s("keyUsage.todayTokens"),value:k(r.total_tokens)},{label:s("keyUsage.todayCacheCreation"),value:k(r.cache_creation_tokens)},{label:s("keyUsage.todayCacheRead"),value:k(r.cache_read_tokens)},{label:s("keyUsage.todayCost"),value:g(r.actual_cost)},{label:s("keyUsage.rpmTpm"),value:`${t.rpm||0} / ${t.tpm||0}`},{label:s("keyUsage.totalRequests"),value:k(n.requests)},{label:s("keyUsage.totalInputTokens"),value:k(n.input_tokens)},{label:s("keyUsage.totalOutputTokens"),value:k(n.output_tokens)},{label:s("keyUsage.totalTokensLabel"),value:k(n.total_tokens)},{label:s("keyUsage.totalCacheCreation"),value:k(n.cache_creation_tokens)},{label:s("keyUsage.totalCacheRead"),value:k(n.cache_read_tokens)},{label:s("keyUsage.totalCost"),value:g(n.actual_cost)},{label:s("keyUsage.avgDuration"),value:t.average_duration_ms?`${Math.round(t.average_duration_ms)} ms`:"-"}]}),ae=h(()=>{var t;return((t=b.value)==null?void 0:t.model_stats)||[]}),se=h(()=>{var r;const t=(r=b.value)==null?void 0:r.daily_usage;return Array.isArray(t)?t:[]}),Ue=h(()=>!!(b.value&&Array.isArray(b.value.daily_usage)));function g(t){return t==null||t<0?"-":"$"+Number(t).toFixed(2)}
1function k(t){return t==null?"-":t.toLocaleString()}function re(t){if(!t)return"-";const r=new Date(t),n=D.value==="zh"?"zh-CN":"en-US";return r.toLocaleDateString(n,{year:"numeric",month:"long",day:"numeric"})}function Ce(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC"}catch{return"UTC"}}async function Te(t){var l;const r=pe(),n=je("/v1/usage")+(r?"?"+r:""),a=await fetch(n,{headers:{Authorization:"Bearer "+t}});if(!a.ok){const x=await a.json().catch(()=>null),y=((l=x==null?void 0:x.error)==null?void 0:l.message)||(x==null?void 0:x.message)||`${s("keyUsage.queryFailed")} (${a.status})`;throw new Error(y)}return await a.json()}async function $(){if(T.value)return;const t=M.value.trim();if(!t){v.showInfo(s("keyUsage.enterApiKey"));return}T.value=!0,H.value=!0,q.value=!0,b.value=null;try{const r=await Te(t);b.value=r,q.value=!1,J.value=!0,ne(()=>{fe(z.value)}),v.showSuccess(s("keyUsage.querySuccess"))}catch(r){H.value=!1,q.value=!1,v.showError(r.message||s("keyUsage.queryFailedRetry"))}finally{T.value=!1}}function De(){const t=localStorage.getItem("theme");(t==="dark"||!t&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&(f.value=!0,document.documentElement.classList.add("dark"))}function K(t){if(!t)return"";const r=new Date(t).getTime()-X.value.getTime();if(r<=0)return s("keyUsage.resetNow");const n=Math.floor(r/864e5),a=Math.floor(r%864e5/36e5),l=Math.floor(r%36e5/6e4);return n>0?`${n}d ${a}h`:a>0?`${a}h ${l}m`:`${l}m`}return $e(()=>{De(),v.publicSettingsLoaded||v.fetchPublicSettings(),P=setInterval(()=>{X.value=new Date},6e4)}),Be(()=>{P&&clearInterval(P)}),(t,r)=>{const n=Re("router-link");return d(),i("div",Ve,[e("header",He,[e("nav",Pe,[G(n,{to:"/home",class:"flex items-center gap-3"},{default:Me(()=>[e("div",Oe,[e("img",{src:ke.value||"/logo.svg",alt:"Logo",class:"h-full w-full object-contain"},null,8,Qe)]),e("span",Ke,o(Z.value),1)]),_:1}),e("div",Ge,[G(ze),B.value?(d(),i("a",{key:0,href:B.value,target:"_blank",rel:"noopener noreferrer",class:"rounded-lg p-2 text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-700 dark:text-dark-400 dark:hover:bg-dark-800 dark:hover:text-white",title:c(s)("home.viewDocs")},[G(Y,{name:"book",size:"md"})],8,We)):p("",!0),e("button",{onClick:ge,class:"rounded-lg p-2 text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-700 dark:text-dark-400 dark:hover:bg-dark-800 dark:hover:text-white",title:f.value?c(s)("home.switchToLight"):c(s)("home.switchToDark")},[f.value?(d(),de(Y,{key:0,name:"sun",size:"md"})):(d(),de(Y,{key:1,name:"moon",size:"md"}))],8,Ye)])])]),e("main",Ze,[e("div",Je,[e("h1",Xe,o(c(s)("keyUsage.title")),1),e("p",et,o(c(s)("keyUsage.subtitle")),1)]),e("div",tt,[e("div",at,[e("div",st,[r[6]||(r[6]=e("div",{class:"absolute left-4 top-1/2 -translate-y-1/2 text-gray-400 dark:text-dark-500"},[e("svg",{class:"w-5 h-5",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),e("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})])],-1)),W(e("input",{"onUpdate:modelValue":r[0]||(r[0]=a=>M.value=a),type:R.value?"text":"password",placeholder:c(s)("keyUsage.placeholder"),class:"input-ring w-full h-12 pl-12 pr-12 rounded-xl border border-gray-200 bg-white text-sm text-gray-900 placeholder:text-gray-400 transition-all dark:border-dark-700 dark:bg-dark-900 dark:text-white dark:placeholder:text-dark-500",onKeydown:Ae($,["enter"])},null,40,rt),[[qe,M.value]]),e("button",{onClick:r[1]||(r[1]=a=>R.value=!R.value),class:"absolute right-4 top-1/2 -translate-y-1/2 text-gray-400 hover:text-gray-700 dark:text-dark-500 dark:hover:text-white transition-colors"},[R.value?(d(),i("svg",lt,[...r[5]||(r[5]=[e("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"},null,-1),e("circle",{cx:"12",cy:"12",r:"3"},null,-1)])])):(d(),i("svg",ot,[...r[4]||(r[4]=[e("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"},null,-1),e("line",{x1:"1",y1:"1",x2:"23",y2:"23"},null,-1)])]))])]),e("button",{onClick:$,disabled:T.value,class:"h-12 px-7 rounded-xl bg-primary-500 hover:bg-primary-600 text-white font-medium text-sm transition-all active:scale-[0.97] flex items-center gap-2 whitespace-nowrap disabled:opacity-60"},[T.value?(d(),i("svg",it,[...r[7]||(r[7]=[e("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"3",opacity:"0.25"},null,-1),e("path",{d:"M12 2a10 10 0 0 1 10 10",stroke:"currentColor","stroke-width":"3","stroke-linecap":"round"},null,-1)])])):(d(),i("svg",nt,[...r[8]||(r[8]=[e("circle",{cx:"11",cy:"11",r:"8"},null,-1),e("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"},null,-1)])])),Ie(" "+o(T.value?c(s)("keyUsage.querying"):c(s)("keyUsage.query")),1)],8,dt)]),e("p",ct,o(c(s)("keyUsage.privacyNote")),1),J.value?(d(),i("div",ut,[e("div",kt,[e("span",gt,o(c(s)("keyUsage.dateRange")),1),(d(!0),i(w,null,C(ye.value,a=>(d(),i("button",{key:a.key,onClick:l=>me(a.key),class:U(["text-xs px-3 py-1.5 rounded-lg border transition-all",S.value===a.key?"bg-primary-500 text-white border-primary-500":"border-gray-200 bg-white text-gray-700 dark:border-dark-700 dark:bg-dark-900 dark:text-dark-200 hover:border-primary-300 dark:hover:border-dark-600"])},o(a.label),11,xt))),128)),S.value==="custom"?(d(),i("div",yt,[W(e("input",{"onUpdate:modelValue":r[2]||(r[2]=a=>A.value=a),type:"date",class:"input-ring text-xs px-2 py-1.5 rounded-lg border border-gray-200 bg-white text-gray-900 dark:border-dark-700 dark:bg-dark-900 dark:text-white"},null,512),[[ie,A.value]]),r[9]||(r[9]=e("span",{class:"text-xs text-gray-400"},"-",-1)),W(e("input",{"onUpdate:modelValue":r[3]||(r[3]=a=>I.value=a),type:"date",class:"input-ring text-xs px-2 py-1.5 rounded-lg border border-gray-200 bg-white text-gray-900 dark:border-dark-700 dark:bg-dark-900 dark:text-white"},null,512),[[ie,I.value]]),e("button",{onClick:$,class:"text-xs px-3 py-1.5 rounded-lg bg-primary-500 text-white hover:bg-primary-600"}
1,o(c(s)("keyUsage.apply")),1)])):p("",!0)])])):p("",!0)]),H.value?(d(),i("div",ht,[q.value?(d(),i("div",mt,[...r[10]||(r[10]=[Le('<div class="grid grid-cols-1 md:grid-cols-2 gap-6" data-v-a21cb421><div class="rounded-2xl border border-gray-200 bg-white p-8 dark:border-dark-700 dark:bg-dark-900" data-v-a21cb421><div class="skeleton h-5 w-24 mb-6" data-v-a21cb421></div><div class="flex justify-center" data-v-a21cb421><div class="skeleton w-44 h-44 rounded-full" data-v-a21cb421></div></div></div><div class="rounded-2xl border border-gray-200 bg-white p-8 dark:border-dark-700 dark:bg-dark-900" data-v-a21cb421><div class="skeleton h-5 w-24 mb-6" data-v-a21cb421></div><div class="flex justify-center" data-v-a21cb421><div class="skeleton w-44 h-44 rounded-full" data-v-a21cb421></div></div></div></div><div class="rounded-2xl border border-gray-200 bg-white p-8 dark:border-dark-700 dark:bg-dark-900" data-v-a21cb421><div class="skeleton h-5 w-32 mb-6" data-v-a21cb421></div><div class="space-y-4" data-v-a21cb421><div class="skeleton h-4 w-full" data-v-a21cb421></div><div class="skeleton h-4 w-3/4" data-v-a21cb421></div><div class="skeleton h-4 w-5/6" data-v-a21cb421></div><div class="skeleton h-4 w-2/3" data-v-a21cb421></div></div></div>',2)])])):b.value?(d(),i("div",pt,[N.value?(d(),i("div",bt,[e("div",vt,[e("span",{class:U(["w-2.5 h-2.5 rounded-full pulse-dot",N.value.isActive?"bg-emerald-500":"bg-rose-500"])},null,2),e("span",_t,o(N.value.label),1),r[11]||(r[11]=e("span",{class:"text-xs text-gray-400 dark:text-dark-500"},"|",-1)),e("span",ft,o(N.value.statusText),1)])])):p("",!0),z.value.length>0?(d(),i("div",{key:1,class:U(we.value)},[(d(!0),i(w,null,C(z.value,(a,l)=>(d(),i("div",{key:l,class:U(["fade-up rounded-2xl border border-gray-200 bg-white/90 p-8 backdrop-blur-sm transition-all duration-300 hover:shadow-lg dark:border-dark-700 dark:bg-dark-900/90",`fade-up-delay-${Math.min(l+1,4)}`])},[e("div",wt,[e("h3",Ut,o(a.title),1),a.iconType==="clock"?(d(),i("svg",Ct,[...r[12]||(r[12]=[e("circle",{cx:"12",cy:"12",r:"10"},null,-1),e("polyline",{points:"12 6 12 12 16 14"},null,-1)])])):a.iconType==="calendar"?(d(),i("svg",Tt,[...r[13]||(r[13]=[e("rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",ry:"2"},null,-1),e("line",{x1:"16",y1:"2",x2:"16",y2:"6"},null,-1),e("line",{x1:"8",y1:"2",x2:"8",y2:"6"},null,-1),e("line",{x1:"3",y1:"10",x2:"21",y2:"10"},null,-1)])])):(d(),i("svg",Dt,[...r[14]||(r[14]=[e("line",{x1:"12",y1:"1",x2:"12",y2:"23"},null,-1),e("path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"},null,-1)])]))]),e("div",St,[e("div",$t,[(d(),i("svg",Bt,[e("circle",{cx:"80",cy:"80",r:"68",fill:"none",stroke:ve.value,"stroke-width":"10"},null,8,Mt),e("circle",{class:"progress-ring",cx:"80",cy:"80",r:"68",fill:"none",stroke:`url(#ring-grad-${l})`,"stroke-width":"10","stroke-linecap":"round","stroke-dasharray":E.toFixed(2),"stroke-dashoffset":_e(a)},null,8,Rt),e("defs",null,[e("linearGradient",{id:`ring-grad-${l}`,x1:"0%",y1:"0%",x2:"100%",y2:"100%"},[e("stop",{offset:"0%","stop-color":j[l%4].from},null,8,At),e("stop",{offset:"100%","stop-color":j[l%4].to},null,8,It)],8,qt)])])),e("div",Lt,[a.isBalance?(d(),i("span",{key:0,class:"text-2xl font-bold tabular-nums",style:ce({color:j[l%4].from})},o(a.amount),5)):(d(),i(w,{key:1},[e("span",Et,o(Q.value[l]??0)+"% ",1),e("span",jt,o(c(s)("keyUsage.used")),1),e("span",{class:"text-sm font-semibold mt-1 tabular-nums",style:ce({color:j[l%4].from})},o(a.amount),5),a.resetAt&&K(a.resetAt)?(d(),i("p",Nt," â³ "+o(K(a.resetAt)),1)):p("",!0)],64))])])])],2))),128))],2)):p("",!0),ee.value.length>0?(d(),i("div",zt,[e("div",Ft,[e("h3",Vt,o(c(s)("keyUsage.detailInfo")),1)]),e("div",Ht,[(d(!0),i(w,null,C(ee.value,(a,l)=>(d(),i("div",{key:l,class:"px-8 py-4 flex items-center justify-between"},[e("div",Pt,[e("div",{class:U(["w-8 h-8 rounded-lg flex items-center justify-center",a.iconBg])},[(d(),i("svg",{class:U(["w-4 h-4",a.iconColor]),viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",innerHTML:a.iconSvg},null,10,Ot))],2),e("span",Qt,o(a.label),1)]),e("span",{class:U(["text-sm font-semibold tabular-nums",a.valueClass||"text-gray-900 dark:text-white"])},o(a.value),3)]))),128))])])):p("",!0),te.value.length>0?(d(),i("div",Kt,[e("div",Gt,[e("h3",Wt,o(c(s)("keyUsage.tokenStats")),1)]),e("div",Yt,[(d(!0),i(w,null,C(te.value,(a,l)=>(d(),i("div",{key:l,class:"bg-white px-6 py-4 dark:bg-dark-900"},[e("div",Zt,o(a.label),1),e("div",Jt,o(a.value),1)]))),128))])])):p("",!0),Ue.value?(d(),i("div",Xt,[e("div",ea,[e("h3",ta,o(c(s)("keyUsage.dailyDetail")),1),e("div",aa,[(d(!0),i(w,null,C(he.value,a=>(d(),i("button",{key:a.value,onClick:l=>
1be(a.value),class:U(["min-w-12 rounded-md px-3 py-1.5 text-xs font-medium transition-colors",L.value===a.value?"bg-primary-500 text-white":"text-gray-600 hover:bg-gray-100 dark:text-dark-300 dark:hover:bg-dark-800"])},o(a.label),11,sa))),128))])]),se.value.length>0?(d(),i("div",ra,[e("table",oa,[e("thead",null,[e("tr",la,[e("th",da,o(c(s)("keyUsage.date")),1),e("th",ia,o(c(s)("keyUsage.requests")),1),e("th",na,o(c(s)("keyUsage.inputTokens")),1),e("th",ca,o(c(s)("keyUsage.outputTokens")),1),e("th",ua,o(c(s)("keyUsage.cacheReadTokens")),1),e("th",ka,o(c(s)("keyUsage.cacheWriteTokens")),1),e("th",ga,o(c(s)("keyUsage.cost")),1)])]),e("tbody",null,[(d(!0),i(w,null,C(se.value,a=>(d(),i("tr",{key:a.date,class:"border-b border-gray-100 last:border-b-0 dark:border-dark-800"},[e("td",xa,o(a.date),1),e("td",ya,o(k(a.requests)),1),e("td",ha,o(k(a.input_tokens)),1),e("td",ma,o(k(a.output_tokens)),1),e("td",pa,o(k(a.cache_read_tokens)),1),e("td",ba,o(k(a.cache_write_tokens)),1),e("td",va,o(g(a.actual_cost!=null?a.actual_cost:a.cost)),1)]))),128))])])])):(d(),i("div",_a,o(c(s)("keyUsage.noDailyUsage")),1))])):p("",!0),ae.value.length>0?(d(),i("div",fa,[e("div",wa,[e("h3",Ua,o(c(s)("keyUsage.modelStats")),1)]),e("div",Ca,[e("table",Ta,[e("thead",null,[e("tr",Da,[e("th",Sa,o(c(s)("keyUsage.model")),1),e("th",$a,o(c(s)("keyUsage.requests")),1),e("th",Ba,o(c(s)("keyUsage.inputTokens")),1),e("th",Ma,o(c(s)("keyUsage.outputTokens")),1),e("th",Ra,o(c(s)("keyUsage.cacheCreationTokens")),1),e("th",qa,o(c(s)("keyUsage.cacheReadTokens")),1),e("th",Aa,o(c(s)("keyUsage.totalTokens")),1),e("th",Ia,o(c(s)("keyUsage.cost")),1)])]),e("tbody",null,[(d(!0),i(w,null,C(ae.value,(a,l)=>(d(),i("tr",{key:l,class:"border-b border-gray-100 last:border-b-0 dark:border-dark-800"},[e("td",La,o(a.model||"-"),1),e("td",Ea,o(k(a.requests)),1),e("td",ja,o(k(a.input_tokens)),1),e("td",Na,o(k(a.output_tokens)),1),e("td",za,o(k(a.cache_creation_tokens)),1),e("td",Fa,o(k(a.cache_read_tokens)),1),e("td",Va,o(k(a.total_tokens)),1),e("td",Ha,o(g(a.actual_cost!=null?a.actual_cost:a.cost)),1)]))),128))])])])])):p("",!0)])):p("",!0)])):p("",!0)]),e("footer",Pa,[e("div",Oa,[e("p",Qa," © "+o(xe.value)+" "+o(Z.value)+". "+o(c(s)("home.footer.allRightsReserved")),1),e("div",Ka,[B.value?(d(),i("a",{key:0,href:B.value,target:"_blank",rel:"noopener noreferrer",class:"text-sm text-gray-500 transition-colors hover:text-gray-700 dark:text-dark-400 dark:hover:text-white"},o(c(s)("home.docs")),9,Ga)):p("",!0),e("a",{href:Wa,target:"_blank",rel:"noopener noreferrer",class:"text-sm text-gray-500 transition-colors hover:text-gray-700 dark:text-dark-400 dark:hover:text-white"},"GitHub")])])])])}}}),rs=Ne(Ya,[["__scopeId","data-v-a21cb421"]]);export{rs 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.