@ipv9/tokentracker-cli 0.39.20 → 0.39.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dashboard/dist/assets/ActivityHeatmap-CELfYBTt.js +42 -0
- package/dashboard/dist/assets/{Card-BkPPFQ2y.js → Card-ujZVroNf.js} +1 -1
- package/dashboard/dist/assets/DashboardPage-BlrdSzXk.js +19 -0
- package/dashboard/dist/assets/{DevicePage-BKGFtwCR.js → DevicePage-BHCImXqB.js} +1 -1
- package/dashboard/dist/assets/{DialogTitle-CBB3_KlY.js → DialogTitle-BZChmVBZ.js} +1 -1
- package/dashboard/dist/assets/{FadeIn-BF_CqPKS.js → FadeIn-BZedqZ1G.js} +1 -1
- package/dashboard/dist/assets/{InsforgeUserHeaderControls-DqVJLGo5.js → InsforgeUserHeaderControls-DCxVzkPM.js} +1 -1
- package/dashboard/dist/assets/{IpCheckPage-B-QDRAz-.js → IpCheckPage-CTCaly6H.js} +1 -1
- package/dashboard/dist/assets/{LandingPage-BFpEIOmB.js → LandingPage-CT_rnDT2.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardAvatar-DZ35g0Lj.js → LeaderboardAvatar-FsPxRt6U.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardPage-B0GYq-c7.js → LeaderboardPage-DKHtq_oY.js} +3 -3
- package/dashboard/dist/assets/{LeaderboardProfileModal-CjG2YKMG.js → LeaderboardProfileModal-DJDUgVgy.js} +1 -1
- package/dashboard/dist/assets/LeaderboardProfilePage-Bx3Pdvhf.js +1 -0
- package/dashboard/dist/assets/{LimitsPage-C2S3KD96.js → LimitsPage-yipy5gpd.js} +2 -2
- package/dashboard/dist/assets/{LocalOnlyNotice-Bi9tl4lv.js → LocalOnlyNotice-BCiV270e.js} +1 -1
- package/dashboard/dist/assets/{LoginPage-CwZRGFuU.js → LoginPage-Tq-ybhHD.js} +1 -1
- package/dashboard/dist/assets/{PopoverPopup-DODSuNbQ.js → PopoverPopup-Os-jofHx.js} +1 -1
- package/dashboard/dist/assets/{Select-BGE79mR7.js → Select-CFNV80AC.js} +1 -1
- package/dashboard/dist/assets/{SelectItemText-DmhALN50.js → SelectItemText-BAbRVhjM.js} +1 -1
- package/dashboard/dist/assets/SettingsPage-CSkada-3.js +1 -0
- package/dashboard/dist/assets/{SkillsPage-CGbHTzKJ.js → SkillsPage-D5YWVPCs.js} +1 -1
- package/dashboard/dist/assets/{WidgetsPage-CNRUAGQE.js → WidgetsPage-CQg0bz-U.js} +1 -1
- package/dashboard/dist/assets/{WrappedPage-DFky0dVB.js → WrappedPage-DRWo2vZ-.js} +1 -1
- package/dashboard/dist/assets/{arrow-up-right-DPLhuRg1.js → arrow-up-right-CGFtsC6R.js} +1 -1
- package/dashboard/dist/assets/{download-j03ZReAK.js → download-CwnayxOU.js} +1 -1
- package/dashboard/dist/assets/{info-fhixFAmT.js → info-BpHDtTkz.js} +1 -1
- package/dashboard/dist/assets/{main-CluPbgHH.js → main-Dp0-bT2x.js} +3 -2
- package/dashboard/dist/assets/main-q1TPDNrj.css +1 -0
- package/dashboard/dist/assets/{use-limits-display-prefs-COELS3ya.js → use-limits-display-prefs-BjUV6txJ.js} +1 -1
- package/dashboard/dist/assets/{use-native-settings-zuzsJ8F2.js → use-native-settings-Bq8DfgFb.js} +1 -1
- package/dashboard/dist/assets/{use-spring-BYne_0SS.js → use-spring-DHoDgFxc.js} +1 -1
- package/dashboard/dist/assets/{use-usage-limits-CFL-yCKq.js → use-usage-limits-DRGDlITW.js} +1 -1
- package/dashboard/dist/assets/{useCurrency-CUZ-Vc07.js → useCurrency-DLb0Pbsl.js} +1 -1
- package/dashboard/dist/assets/{useOpenInteractionType-1N3MTdVz.js → useOpenInteractionType-BXvHx5Tg.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dashboard/dist/share.html +2 -2
- package/package.json +1 -1
- package/src/lib/pricing/seed-snapshot.json +1 -1
- package/dashboard/dist/assets/ActivityHeatmap-5ZYLf3mQ.js +0 -42
- package/dashboard/dist/assets/DashboardPage-NfYBARcP.js +0 -19
- package/dashboard/dist/assets/LeaderboardProfilePage-DtsObbxn.js +0 -1
- package/dashboard/dist/assets/SettingsPage-C3adpGOz.js +0 -1
- package/dashboard/dist/assets/main-D7hbfv3x.css +0 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import{c as Fi,j as s,L as Ei,r as y,u as $i,a as Ii,b as Ri,d as Li,e as dn,m as Be,g as Bi,i as Dt,f as zt,h as Ht,k as Yi,l as ur,n as Sn,o as Ma,p as $n,q as zi,s as Hi,t as Ui,v as sn,w as nt,x as Xn,y as qi,z as _e,A as g,R as W,X as lo,B as In,C as ut,D as Se,E as co,P as ja,F as Wn,G as uo,H as Vi,I as fo,J as mo,K as ho,M as Da,N as Re,O as Ki,Q as Gi,_ as yo,S as Xi,T as ma,U as Qi,V as Ji,W as Zi,Y as el,Z as tl,$ as nl,a0 as al,a1 as rl,a2 as ol,a3 as sl,a4 as fr,a5 as Ae}from"./main-Dp0-bT2x.js";import{u as il}from"./use-usage-limits-DRGDlITW.js";import{u as Ct}from"./useCurrency-DLb0Pbsl.js";import{T as ll,M as cl,A as dl}from"./ActivityHeatmap-CELfYBTt.js";import{u as ul,D as fl,a as ml,b as hl,c as yl,d as gl,e as pl}from"./DialogTitle-BZChmVBZ.js";import{C as un}from"./Card-ujZVroNf.js";import{S as bl}from"./Select-CFNV80AC.js";import{u as xl,a as kl,b as wl}from"./use-spring-DHoDgFxc.js";import{I as go}from"./info-BpHDtTkz.js";import{P as ha,a as ya,b as ga,c as pa,d as ba,L as vl}from"./PopoverPopup-Os-jofHx.js";import{F as st}from"./FadeIn-BZedqZ1G.js";import"./useOpenInteractionType-BXvHx5Tg.js";import"./SelectItemText-BAbRVhjM.js";const _l=[["path",{d:"M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6",key:"y09zxi"}],["path",{d:"m21 3-9 9",key:"mpx6sq"}],["path",{d:"M15 3h6v6",key:"1q9fwt"}]],Nl=Fi("square-arrow-out-up-right",_l);function Sl(){return s.jsxs(Ei,{to:"/landing",className:"flex items-center gap-2.5 no-underline hover:opacity-80 transition-opacity",children:[s.jsx("img",{src:"/app-icon.png",alt:"Token Tracker",width:28,height:28,className:"rounded-md"}),s.jsx("span",{className:"text-base font-semibold text-oai-black dark:text-oai-white leading-tight",children:"Token Tracker"})]})}function Ml({children:e,header:t,footer:n,className:a="",hideHeader:r=!1,hideFooter:o=!1,bare:l=!1}){return l?s.jsxs("div",{className:`flex flex-col flex-1 min-h-0 ${a}`,children:[s.jsx("main",{className:"flex-1 px-6 py-6",children:e}),!o&&n&&s.jsx("footer",{className:"border-t border-oai-gray-200 dark:border-oai-gray-800 px-6 py-4 mt-auto transition-colors duration-200",children:n})]}):s.jsxs("div",{className:`min-h-screen bg-oai-white dark:bg-oai-gray-950 text-oai-black dark:text-oai-white font-sans flex flex-col transition-colors duration-200 ${a}`,children:[!r&&s.jsxs("header",{className:"border-b border-oai-gray-200 dark:border-oai-gray-800 px-6 py-4 flex items-center justify-between transition-colors duration-200",children:[s.jsx(Sl,{}),s.jsx("div",{className:"flex-1 flex justify-center",children:t})]}),s.jsx("main",{className:"flex-1 px-6 py-6",children:e}),!o&&n&&s.jsx("footer",{className:"border-t border-oai-gray-200 dark:border-oai-gray-800 px-6 py-4 mt-auto transition-colors duration-200",children:n})]})}function jl({children:e,variant:t="info",size:n="md",className:a=""}){const r="inline-flex items-center font-medium",o={success:"bg-oai-brand-100 dark:bg-oai-brand-900/30 text-oai-brand-700 dark:text-oai-brand-400 rounded-full",warning:"bg-oai-amber-50 dark:bg-oai-amber-900/30 text-oai-amber-dark dark:text-oai-amber-400 rounded-full",error:"bg-red-50 dark:bg-red-900/30 text-red-600 dark:text-red-400 rounded-full",info:"bg-oai-gray-100 dark:bg-oai-gray-800 text-oai-gray-600 dark:text-oai-gray-300 rounded-full",secondary:"bg-oai-gray-100 dark:bg-oai-gray-800 text-oai-gray-500 dark:text-oai-gray-300 rounded-md"},l={sm:"px-2 py-0.5 text-xs",md:"px-2.5 py-1 text-sm"},i=`${r} ${o[t]} ${l[n]} ${a}`.trim();return s.jsx("span",{className:i,children:e})}const Dl=y.forwardRef(function(t,n){const{render:a,className:r,disabled:o=!1,nativeButton:l=!0,...i}=t,{store:c}=ul(),d=c.useState("open");function u(p){d&&c.setOpen(!1,Ri(Li,p.nativeEvent))}const{getButtonProps:f,buttonRef:m}=$i({disabled:o,native:l}),h=y.useMemo(()=>({disabled:o}),[o]);return Ii("button",t,{state:h,ref:[n,m],props:[{onClick:u},i,f]})});var Cl={};function Tl(e,t){return e==="."?{width:"0.34ch",justifyContent:"center",marginInline:"-0.04ch"}:e===","?{width:"0.08ch",justifyContent:"center",marginInline:"-0.30ch"}:{width:"0.72ch",justifyContent:"flex-start",paddingLeft:"0.04ch",height:t}}function Pl({mv:e,digit:t,height:n}){const a=wl(e,r=>{const o=(r%10+10)%10,l=(10+t-o)%10;let i=l*n;return l>5&&(i-=10*n),i});return s.jsx(Be.span,{style:{position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",y:a},children:t})}function Ol(e){const t=Math.round(e),n=1e-9*Math.max(1,Math.abs(e));return Math.abs(e-t)<n?t:e}function Wl(e,t){const n=e/t;return Math.floor(Ol(n))}function Al(e){const t=String(e??""),n=Array.from(t),a=n.indexOf(".");let r=n.filter((i,c)=>/\d/.test(i)&&(a===-1||c<a)).length,o=0,l=!1;return n.map(i=>{if(!/\d/.test(i))return i==="."&&(l=!0),i;if(!l){const c=10**Math.max(r-1,0);return r-=1,c}return o+=1,10**-o})}function Fl({place:e,value:t,height:n,digitStyle:a,shouldReduceMotion:r,isLed:o}){if(typeof e!="number"){const d=Tl(e,n);return s.jsx("span",{"data-counter-token":"static",className:`relative inline-flex items-center justify-center${o?" tt-lcd-sep":""}`,style:{height:n,...d,...a},children:e})}const l=Wl(t,e),i=xl(0),c=kl(i,{stiffness:220,damping:26,mass:.8});return y.useEffect(()=>{i.set(l)},[i,l]),r?s.jsx("span",{"data-counter-token":"digit",className:`relative inline-flex items-center justify-center overflow-hidden${o?" tt-lcd-cell":""}`,style:{height:n,position:"relative",width:"0.9ch",fontVariantNumeric:"tabular-nums",...a},children:Math.abs(l)%10}):s.jsx("span",{"data-counter-token":"digit",className:`relative inline-flex overflow-hidden${o?" tt-lcd-cell":""}`,style:{height:n,position:"relative",width:"0.9ch",fontVariantNumeric:"tabular-nums",...a},children:Array.from({length:10},(d,u)=>s.jsx(Pl,{mv:c,digit:u,height:n},u))})}function El({value:e,displayValue:t,fontSize:n=72,padding:a=0,places:r,gap:o=6,borderRadius:l=4,horizontalPadding:i=0,textColor:c="inherit",fontWeight:d="inherit",containerStyle:u,counterStyle:f,digitStyle:m,gradientHeight:h=14,gradientFrom:p="rgba(255,255,255,0.95)",gradientTo:b="rgba(255,255,255,0)",topGradientStyle:w,bottomGradientStyle:v,variant:k="default"}){const x=k==="led",M=String(t??e??""),T=y.useMemo(()=>Array.isArray(r)&&r.length?r:Al(M),[r,M]),j=typeof navigator<"u"&&/jsdom/i.test(navigator.userAgent||"")||typeof process<"u"&&Cl?.VITEST==="true",E=dn()||j,N=Number.isFinite(Number(e))?Math.abs(Number(e)):0,O=n+a;return E?s.jsx("span",{"data-counter-root":"true",className:x?"tt-lcd":void 0,style:{display:"inline-flex",alignItems:"center",color:c,fontSize:n,fontWeight:d,lineHeight:1,...u,...f},children:x?s.jsx("span",{className:"tt-lcd-cell tt-lcd-cell--static",children:M}):M}):s.jsxs("span",{"data-counter-root":"true",style:{position:"relative",display:"inline-block",...u},children:[s.jsx("span",{className:x?"tt-lcd":void 0,style:{fontSize:n,...x?null:{display:"flex",gap:o,borderRadius:l,paddingLeft:i,paddingRight:i,color:c},overflow:"hidden",lineHeight:1,fontWeight:d,...f},children:T.map((P,A)=>s.jsx(Fl,{place:P,value:N,height:O,digitStyle:m,shouldReduceMotion:E,isLed:x},`${String(P)}-${A}`))}),s.jsxs("span",{style:{pointerEvents:"none",position:"absolute",inset:0,display:"flex",flexDirection:"column",justifyContent:"space-between"},children:[s.jsx("span",{style:w??{height:h,background:`linear-gradient(to bottom, ${p}, ${b})`}}),s.jsx("span",{style:v??{height:h,background:`linear-gradient(to top, ${p}, ${b})`}})]})]})}function $l({baseUrl:e,accessToken:t,guestAllowed:n=!1,weeks:a=52,weekStartsOn:r="sun",cacheKey:o,timeZone:l,tzOffsetMinutes:i,now:c}={}){const d=y.useMemo(()=>Bi({weeks:a,weekStartsOn:r,now:c}),[c,a,r]),[u,f]=y.useState([]),[m,h]=y.useState(null),[p,b]=y.useState("edge"),[w,v]=y.useState(!1),[k,x]=y.useState(null),M=Dt(),T=zt(t),j=!n,E=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),N=y.useMemo(()=>{if(!o)return null;const F=$n({timeZone:l,offsetMinutes:i});return`tokentracker.heatmap.${o}.${a}.${r}.${F}`},[o,l,i,a,r]),O=y.useCallback(()=>{if(!N||typeof window>"u")return null;try{const F=window.localStorage.getItem(N);if(!F)return null;const D=JSON.parse(F);return!D||!D.heatmap?null:D}catch{return null}},[N]),P=y.useCallback(F=>{if(!(!N||typeof window>"u"))try{window.localStorage.setItem(N,JSON.stringify(F))}catch{}},[N]),A=y.useCallback(()=>{if(!(!N||typeof window>"u"))try{window.localStorage.removeItem(N)}catch{}},[N]),X=y.useCallback(async()=>{const F=await Ht(t);if(!(!F&&!M&&!E)){v(!0),x(null);try{try{const B=await Yi({baseUrl:e,accessToken:F,weeks:a,to:d.to,weekStartsOn:r,timeZone:l,tzOffsetMinutes:i}),C=Array.isArray(B?.weeks)?B.weeks:[];if(!C.length&&j){const U=O();if(U?.heatmap){h(U.heatmap),f(U.daily||[]),b("cache");return}}if(!C.some(U=>(Array.isArray(U)?U:[]).some(K=>K&&Number.isFinite(Number(K.level))))&&C.length){const U=[];for(const R of C)for(const H of Array.isArray(R)?R:[])H?.day&&U.push({day:H.day,total_tokens:H.total_tokens??H.value??0,billable_total_tokens:H.billable_total_tokens??H.value??H.total_tokens??0});const K=ur({dailyRows:U,weeks:a,to:B?.to||d.to,weekStartsOn:r});f(U),h({...K,week_starts_on:r,active_days:U.filter(R=>Number(R?.billable_total_tokens??R?.total_tokens)>0).length,streak_days:Sn({dailyRows:U,to:B?.to||d.to})}),b("client"),j?P({heatmap:{...K,week_starts_on:r,active_days:U.filter(R=>Number(R?.billable_total_tokens??R?.total_tokens)>0).length,streak_days:Sn({dailyRows:U,to:B?.to||d.to})},daily:U,fetchedAt:new Date().toISOString()}):A();return}h(B||null),f([]),b("edge"),B&&j?P({heatmap:B,daily:[],fetchedAt:new Date().toISOString()}):j||A();return}catch(B){const C=B,Y=C?.status??C?.statusCode;if(Y===401||Y===403)throw B}const D=await Ma({baseUrl:e,accessToken:F,from:d.from,to:d.to,timeZone:l,tzOffsetMinutes:i}),S=Array.isArray(D?.data)?D.data:[];f(S);const I=ur({dailyRows:S,weeks:a,to:d.to,weekStartsOn:r});h({...I,week_starts_on:r,active_days:S.filter(B=>Number(B?.billable_total_tokens??B?.total_tokens)>0).length,streak_days:Sn({dailyRows:S,to:d.to})}),b("client"),j?P({heatmap:{...I,week_starts_on:r,active_days:S.filter(B=>Number(B?.billable_total_tokens??B?.total_tokens)>0).length,streak_days:Sn({dailyRows:S,to:d.to})},daily:S,fetchedAt:new Date().toISOString()}):A()}catch(D){if(j){const S=O();if(S?.heatmap)h(S.heatmap),f(S.daily||[]),b("cache"),x(null);else{const I=D;x(I?.message||String(I)),f([]),h(null),b("edge")}}else{const S=D;x(S?.message||String(S)),f([]),h(null),b("edge")}}finally{v(!1)}}},[t,e,M,n,j,d.from,d.to,O,T,l,i,r,a,A,P,E]);return y.useEffect(()=>{if(!T&&!n&&!M&&!E){f([]),v(!1),x(null),h(null),b("edge");return}if(!j)A(),f([]),x(null),h(null),b("edge");else{const F=O();F?.heatmap&&(h(F.heatmap),f(F.daily||[]),b("cache"))}X()},[t,M,O,X,T,n,j,A,E]),{range:d,daily:u,heatmap:m,source:M?"mock":p==="client"?"edge":p,loading:w,error:k,refresh:X}}function Il({baseUrl:e,accessToken:t,limit:n=3,from:a,to:r,source:o,timeZone:l,tzOffsetMinutes:i}={}){const[c,d]=y.useState([]),[u,f]=y.useState(!1),[m,h]=y.useState(null),p=Dt(),b=zt(t),w=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),v=y.useCallback(async()=>{const k=await Ht(t);if(!k&&!p&&!w){d([]),h(null),f(!1);return}f(!0),h(null);try{const x=await zi({baseUrl:e,accessToken:k,limit:n,from:a,to:r,source:o,timeZone:l,tzOffsetMinutes:i});d(Array.isArray(x?.entries)?x.entries:[])}catch(x){const M=x?.message||String(x);h(M),d([])}finally{f(!1)}},[t,e,a,n,p,o,l,r,i,w]);return y.useEffect(()=>{if(!b&&!p&&!w){d([]),h(null),f(!1);return}v()},[p,v,b,w]),{entries:c,loading:u,error:m,refresh:v}}const Rl=24;function po({baseUrl:e,accessToken:t,guestAllowed:n=!1,period:a,from:r,to:o,months:l=Rl,cacheKey:i,timeZone:c,tzOffsetMinutes:d,now:u,sharedRows:f,sharedRange:m}={}){const[h,p]=y.useState([]),[b,w]=y.useState(()=>({from:r,to:o})),[v,k]=y.useState("edge"),[x,M]=y.useState(null),[T,j]=y.useState(!1),[E,N]=y.useState(null),O=Dt(),P=zt(t),A=!n&&!O,X=Array.isArray(f),L=m?.from||r,F=m?.to||o,D=y.useMemo(()=>a==="day"||a==="24h"?"hourly":a==="total"?"monthly":"daily",[a]),S=(()=>{if(!i)return null;const R=Ll(e)||"default",H=$n({timeZone:c,offsetMinutes:d});if(D==="hourly"){const te=a==="24h"?`${r||""}.${o||""}`:o||r||"day";return`tokentracker.trend.${i}.${R}.hourly.${te}.${H}`}if(D==="monthly")return`tokentracker.trend.${i}.${R}.monthly.${l}.${o||"today"}.${H}`;const q=`${r||""}.${o||""}`;return`tokentracker.trend.${i}.${R}.daily.${q}.${H}`})(),I=y.useCallback(()=>{if(!S||typeof window>"u")return null;try{const R=window.localStorage.getItem(S);if(!R)return null;const H=JSON.parse(R);return!H||!Array.isArray(H.rows)?null:H}catch{return null}},[S]),B=y.useCallback(R=>{if(!(!S||typeof window>"u"))try{window.localStorage.setItem(S,JSON.stringify(R))}catch{}},[S]),C=y.useCallback(()=>{if(!(!S||typeof window>"u"))try{window.localStorage.removeItem(S)}catch{}},[S]),Y=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),U=y.useCallback(async()=>{if(X){p(Array.isArray(f)?f:[]),w({from:L,to:F}),k("shared"),M(null),j(!1),N(null);return}const R=await Ht(t);if(!(!R&&!O&&!Y)){j(!0),N(null);try{let H;D==="hourly"?H=await Bl({baseUrl:e,accessToken:R,from:r,to:o,period:a,timeZone:c,tzOffsetMinutes:d,now:u}):D==="monthly"?H=await Hi({baseUrl:e,accessToken:R,months:l,to:o,timeZone:c,tzOffsetMinutes:d}):H=await Ma({baseUrl:e,accessToken:R,from:r,to:o,timeZone:c,tzOffsetMinutes:d});const q=H?.from||r||H?.day||null,te=H?.to||o||H?.day||null;let re=Array.isArray(H?.data)?H.data:[];D==="daily"?re=Qn(re,q||r,te||o,{timeZone:c,offsetMinutes:d,now:u}):D==="hourly"?re=Tn(re,q||r||H?.day,te||o,{period:a,timeZone:c,offsetMinutes:d,now:u}):D==="monthly"&&(re=Jn(re,{timeZone:c,offsetMinutes:d,now:u}));const ge=new Date().toISOString();p(re),w({from:q,to:te}),k("edge"),M(ge),A?B({rows:re,from:q,to:te,mode:D,fetchedAt:ge}):C()}catch(H){if(A){const q=I();if(q?.rows){let te=D==="daily"?Qn(q.rows||[],q.from||r,q.to||o,{timeZone:c,offsetMinutes:d,now:u}):D==="hourly"?Tn(q.rows||[],q.from||r||q.day||o,q.to||o,{period:a,timeZone:c,offsetMinutes:d,now:u}):Array.isArray(q.rows)?q.rows:[];D==="monthly"&&(te=Jn(te,{timeZone:c,offsetMinutes:d,now:u})),p(te),w({from:q.from||r,to:q.to||o}),k("cache"),M(q.fetchedAt||null),N(null)}else{p([]),w({from:r,to:o}),k("edge"),M(null);const te=H;N(te?.message||String(te))}}else{p([]),w({from:r,to:o}),k("edge"),M(null);const q=H;N(q?.message||String(q))}}finally{j(!1)}}},[t,e,r,O,n,A,D,l,a,I,P,X,L,f,F,c,o,d,u,C,B,Y]);y.useEffect(()=>{if(X){p(Array.isArray(f)?f:[]),w({from:L,to:F}),k("shared"),M(null),j(!1),N(null);return}if(!P&&!n&&!O&&!Y){p([]),w({from:r,to:o}),N(null),j(!1),k("edge"),M(null);return}if(!A)C(),p([]),w({from:r,to:o}),N(null),k("edge"),M(null);else{const R=I();if(R?.rows){let H=D==="daily"?Qn(R.rows||[],R.from||r,R.to||o,{timeZone:c,offsetMinutes:d,now:u}):D==="hourly"?Tn(R.rows||[],R.from||r||R.day||o,R.to||o,{period:a,timeZone:c,offsetMinutes:d,now:u}):Array.isArray(R.rows)?R.rows:[];D==="monthly"&&(H=Jn(H,{timeZone:c,offsetMinutes:d,now:u})),p(H),w({from:R.from||r,to:R.to||o}),k("cache"),M(R.fetchedAt||null)}}U()},[t,O,I,U,X,L,f,F,P,n,A,C,Y,D,r,o,c,d,u,a]);const K=O?"mock":v;return{rows:h,from:b.from||r,to:b.to||o,source:K,fetchedAt:x,loading:T,error:E,refresh:U}}function Ll(e){try{return new URL(e).host}catch{return null}}async function Bl({baseUrl:e,accessToken:t,from:n,to:a,period:r,timeZone:o,tzOffsetMinutes:l,now:i}){const c=r==="24h"?bo(n,a):[a||n].filter(Boolean),d=Array.from(new Set(c)),u=await Promise.all(d.map(p=>Ui({accessToken:t,day:p,timeZone:o,tzOffsetMinutes:l}))),f=u.flatMap(p=>Array.isArray(p?.data)?p.data:[]),m=r==="24h"?d[0]||n||a:u[0]?.day||n||a,h=r==="24h"?d[d.length-1]||a||n:u[0]?.day||a||n;return{day:h,from:m,to:h,data:Tn(f,m,h,{period:r,timeZone:o,offsetMinutes:l,now:i})}}function Yt(e){if(!e)return null;const t=String(e).trim(),n=t.split("-");if(n.length!==3)return null;const a=Number(n[0]),r=Number(n[1])-1,o=Number(n[2]);if(!Number.isFinite(a)||!Number.isFinite(r)||!Number.isFinite(o))return null;const l=new Date(Date.UTC(a,r,o));return Number.isFinite(l.getTime())&&nt(l)===t?l:null}function Ca(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function bo(e,t){const n=Yt(e||t),a=Yt(t||e);if(!n||!a)return[e||t].filter(Boolean).map(String);if(a<n)return[nt(a),nt(n)];const r=[];for(let o=n;o<=a;o=Ca(o,1))r.push(nt(o));return r}const xo=["total_tokens","billable_total_tokens","input_tokens","cached_input_tokens","cache_creation_input_tokens","output_tokens","reasoning_output_tokens","conversation_count"];function Qn(e,t,n,{timeZone:a,offsetMinutes:r,now:o}={}){const l=Yt(t),i=Yt(n);if(!l||!i||i<l)return Array.isArray(e)?e:[];const c=o instanceof Date&&Number.isFinite(o.getTime())?o:new Date,d=sn({timeZone:a,offsetMinutes:r,date:c}),u=Yt(d),f=u?u.getTime():c.getTime(),m=new Map;for(const p of e||[])p?.day&&m.set(p.day,p);const h=[];for(let p=l;p<=i;p=Ca(p,1)){const b=nt(p),w=m.get(b),v=p.getTime()>f;if(w){h.push({...w,missing:!1,future:v});continue}h.push({day:b,total_tokens:null,billable_total_tokens:null,input_tokens:null,cached_input_tokens:null,output_tokens:null,reasoning_output_tokens:null,missing:!v,future:v})}return h}function Yl(e,t){const n=t?null:0;return{hour:e,total_tokens:n,billable_total_tokens:n,input_tokens:n,cached_input_tokens:n,cache_creation_input_tokens:n,output_tokens:n,reasoning_output_tokens:n,conversation_count:n,missing:!1,future:t}}function zl(e){if(!e||typeof e!="object")return!1;const t=e.models;return t&&typeof t=="object"&&Object.keys(t).length>0?!1:xo.every(n=>e[n]==null)}function Hl(e,t,n){const a={...e,hour:t,missing:!1,future:n};if(!n&&zl(e))for(const r of xo)a[r]=0;return a}function Ul(e,t){const n=t===30?48:24,a=[];for(let r=0;r<n;r++){const o=Math.floor(r*t/60),l=r*t%60;a.push(`${e}T${String(o).padStart(2,"0")}:${String(l).padStart(2,"0")}:00`)}return a}function ql(e,t,{timeZone:n,offsetMinutes:a}={}){const r=Ul(e,t);if(!n||typeof Intl>"u"||!Intl.DateTimeFormat)return r;const o=Yt(e);if(!o)return r;const l=o.getUTCFullYear()*1e4+(o.getUTCMonth()+1)*100+o.getUTCDate(),i=o.getTime()-2160*60*1e3,c=Ca(o,2).getTime()+2160*60*1e3,d=[],u=new Set;for(let f=i;f<=c;f+=1800*1e3){const m=fn({timeZone:n,offsetMinutes:a,now:new Date(f)});if(!m||m.dayNum!==l||t===60&&m.minute!==0||t===30&&m.minute!==0&&m.minute!==30)continue;const h=`${e}T${String(m.hour).padStart(2,"0")}:${String(m.minute).padStart(2,"0")}:00`;u.has(h)||(u.add(h),d.push(h))}return d.length>0?d:r}function Vl(e,t,{timeZone:n,offsetMinutes:a,now:r}={}){if(!t)return Array.isArray(e)?e:[];const o=t.trim().slice(0,10),l=fn({timeZone:n,offsetMinutes:a,now:r}),i=l?l.dayNum:void 0;let c=!1;for(const h of e||[]){const p=h?.hour||h?.label||"",b=Pn(p,i);if(b&&b.slot%2!==0){c=!0;break}}const d=c?30:60,u=new Map;for(const h of e||[]){const p=h?.hour||h?.label||"",b=Pn(p,i);b&&u.set(b.slot,h)}const f=[],m=ql(o,d,{timeZone:n,offsetMinutes:a});for(let h=0;h<m.length;h++){const p=m[h],b=Pn(p,i),w=b?b.slot:c?h:h*2,v=u.get(w);let k=!1;if(l){const x=l.year*1e4+l.month*100+l.day,M=b?.dayNum??Number(o.replace(/-/g,""));if(M>x)k=!0;else if(M===x){const T=l.hour*2+(l.minute>=30?1:0);k=w>T}}v?f.push(Hl(v,p,k)):f.push(Yl(p,k))}return f}function Tn(e,t,n,{period:a,timeZone:r,offsetMinutes:o,now:l}={}){const i=a==="24h"?bo(t,n):[n||t].filter(Boolean).map(String),d=Array.from(new Set(i)).flatMap(f=>Vl(Kl(e||[],f),f,{timeZone:r,offsetMinutes:o,now:l})),u=Gl(d,{timeZone:r,offsetMinutes:o,now:l});return a!=="24h"?u:Xl(u,{timeZone:r,offsetMinutes:o,now:l})}function Kl(e,t){return e.filter(n=>{const a=n?.hour||n?.label||"",r=String(a).trim();return r.includes("T")?r.slice(0,10)===t:!0})}function Gl(e,{timeZone:t,offsetMinutes:n,now:a}={}){if(!Array.isArray(e))return[];const r=fn({timeZone:t,offsetMinutes:n,now:a});return r?e.map(o=>{const l=o?.hour||o?.label||"",i=Pn(l,r.dayNum);if(!i)return{...o,future:!1};const c=i.dayNum!==null&&i.dayNum>r.dayNum||(i.dayNum===null||i.dayNum===r.dayNum)&&i.slot>r.slot;return{...o,future:!!c}}):e}function Xl(e,{timeZone:t,offsetMinutes:n,now:a}={}){if(!Array.isArray(e))return[];const r=fn({timeZone:t,offsetMinutes:n,now:a});if(!r)return e.filter(i=>!i?.future);const o=ko({year:r.year,month:r.month,day:r.day,hour:r.hour,minute:r.minute}),l=o-1440*60*1e3;return e.filter(i=>{if(i?.future)return!1;const c=Ql(i?.hour||i?.label);return c!=null&&c>=l&&c<=o})}function Jn(e,{timeZone:t,offsetMinutes:n,now:a}={}){if(!Array.isArray(e))return[];const r=fn({timeZone:t,offsetMinutes:n,now:a});return r?e.map(o=>{const l=o?.month||o?.label||"",i=Jl(l);if(!i)return{...o,future:!1};const c=i.year>r.year||i.year===r.year&&i.month>r.month;return{...o,future:c}}):e}function fn({timeZone:e,offsetMinutes:t,now:n}={}){const a=n instanceof Date&&Number.isFinite(n.getTime())?n:new Date;if(e&&typeof Intl<"u"&&Intl.DateTimeFormat)try{const m=new Intl.DateTimeFormat("en-CA",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).formatToParts(a).reduce((k,x)=>(x.type&&x.value&&(k[x.type]=x.value),k),{}),h=Number(m.year),p=Number(m.month),b=Number(m.day),w=Number(m.hour),v=Number(m.minute);if(Number.isFinite(h)&&Number.isFinite(p)&&Number.isFinite(b)&&Number.isFinite(w)&&Number.isFinite(v)){const k=w*2+(v>=30?1:0);return{year:h,month:p,day:b,hour:w,minute:v,dayNum:h*1e4+p*100+b,slot:k}}}catch{}if(Number.isFinite(t)){const u=new Date(a.getTime()+t*60*1e3),f=u.getUTCFullYear(),m=u.getUTCMonth()+1,h=u.getUTCDate(),p=u.getUTCHours(),b=u.getUTCMinutes(),w=p*2+(b>=30?1:0);return{year:f,month:m,day:h,hour:p,minute:b,dayNum:f*1e4+m*100+h,slot:w}}const r=a.getFullYear(),o=a.getMonth()+1,l=a.getDate(),i=a.getHours(),c=a.getMinutes(),d=i*2+(c>=30?1:0);return{year:r,month:o,day:l,hour:i,minute:c,dayNum:r*1e4+o*100+l,slot:d}}function Pn(e,t){if(!e)return null;const n=String(e).trim();if(n.includes("T")){const[a,r]=n.split("T");if(!a||!r)return null;const o=a.split("-");if(o.length!==3)return null;const l=Number(o[0]),i=Number(o[1]),c=Number(o[2]);if(!Number.isFinite(l)||!Number.isFinite(i)||!Number.isFinite(c))return null;const d=r.split(":"),u=Number(d[0]),f=Number(d[1]);if(!Number.isFinite(u)||u<0||u>23||!Number.isFinite(f)||f<0||f>59)return null;const m=u*2+(f>=30?1:0);return{dayNum:l*1e4+i*100+c,slot:m}}else{let a=NaN,r=0;if(/^\d{1,2}$/.test(n))a=Number(n);else if(/^\d{1,2}:\d{2}(:\d{2})?$/.test(n)){const l=n.split(":");a=Number(l[0]),r=Number(l[1])}if(!Number.isFinite(a)||a<0||a>23||!Number.isFinite(r)||r<0||r>59)return null;const o=a*2+(r>=30?1:0);return{dayNum:t||null,slot:o}}}function ko({year:e,month:t,day:n,hour:a=0,minute:r=0}){return Date.UTC(Number(e),Number(t)-1,Number(n),Number(a),Number(r),0,0)}function Ql(e){if(!e)return null;const t=String(e).trim();if(!t.includes("T"))return null;const[n,a]=t.split("T");if(!n||!a)return null;const r=n.split("-"),o=a.split(":");if(r.length!==3||o.length<2)return null;const[l,i,c]=r.map(Number),[d,u]=o.map(Number);return!Number.isFinite(l)||!Number.isFinite(i)||!Number.isFinite(c)||!Number.isFinite(d)||!Number.isFinite(u)?null:ko({year:l,month:i,day:c,hour:d,minute:u})}function Jl(e){if(!e)return null;const n=String(e).trim().split("-");if(n.length!==2)return null;const a=Number(n[0]),r=Number(n[1]);return!Number.isFinite(a)||!Number.isFinite(r)||r<1||r>12?null:{year:a,month:r}}function mr({baseUrl:e,accessToken:t,guestAllowed:n=!1,from:a,to:r,includeDaily:o=!0,cacheKey:l,timeZone:i,tzOffsetMinutes:c,now:d}={}){const[u,f]=y.useState([]),[m,h]=y.useState(null),[p,b]=y.useState(null),[w,v]=y.useState("edge"),[k,x]=y.useState(null),[M,T]=y.useState(!1),[j,E]=y.useState(null),N=Dt(),O=zt(t),P=!n&&!N,A=(()=>{if(!l)return null;const B=Zl(e)||"default",C=o?"daily":"summary",Y=$n({timeZone:i,offsetMinutes:c});return`tokentracker.usage.${l}.${B}.${a}.${r}.${C}.${Y}`})(),X=y.useCallback(()=>{if(!A||typeof window>"u")return null;try{const B=window.localStorage.getItem(A);if(!B)return null;const C=JSON.parse(B);return!C||!C.summary?null:C}catch{return null}},[A]),L=y.useCallback(B=>{if(!(!A||typeof window>"u"))try{window.localStorage.setItem(A,JSON.stringify(B))}catch{}},[A]),F=y.useCallback(()=>{if(!(!A||typeof window>"u"))try{window.localStorage.removeItem(A)}catch{}},[A]),D=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),S=y.useCallback(async()=>{const B=await Ht(t);if(!(!B&&!N&&!D)){T(!0),E(null);try{let C=null,Y=null;if(o){const[q,te]=await Promise.allSettled([Ma({baseUrl:e,accessToken:B,from:a,to:r,timeZone:i,tzOffsetMinutes:c}),Xn({baseUrl:e,accessToken:B,from:a,to:r,timeZone:i,tzOffsetMinutes:c,rolling:!0})]);if(q.status==="rejected")throw q.reason;C=q.value,Y=te.status==="fulfilled"?te.value:null}else Y=await Xn({baseUrl:e,accessToken:B,from:a,to:r,timeZone:i,tzOffsetMinutes:c,rolling:!0});let U=o&&Array.isArray(C?.data)?C.data:[];o&&(U=ea(U,a,r,{timeZone:i,offsetMinutes:c,now:d}));let K=Y?.totals||C?.summary?.totals||null,R=Y?.rolling||C?.summary?.rolling||null;if(o&&!K&&!Y)try{const q=await Xn({baseUrl:e,accessToken:B,from:a,to:r,timeZone:i,tzOffsetMinutes:c,rolling:!0});K=q?.totals||null,R=q?.rolling||R}catch{}const H=new Date().toISOString();f(U),h(K),b(R),v("edge"),x(H),K&&P?L({summary:K,rolling:R,daily:U,from:a,to:r,includeDaily:o,fetchedAt:H}):P||F()}catch(C){if(P){const Y=X();if(Y?.summary){h(Y.summary),b(Y.rolling||null);const U=Array.isArray(Y.daily)?Y.daily:[],K=o?ea(U,Y.from||a,Y.to||r,{timeZone:i,offsetMinutes:c,now:d}):U;f(K),v("cache"),x(Y.fetchedAt||null),E(null)}else{const U=C;E(U?.message||String(U)),f([]),h(null),b(null),v("edge"),x(null)}}else{const Y=C;E(Y?.message||String(Y)),f([]),h(null),b(null),v("edge"),x(null)}}finally{T(!1)}}},[t,e,a,o,N,n,P,d,X,O,i,r,c,F,L,D]);return y.useEffect(()=>{const B=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1");if(!O&&!n&&!N&&!B){f([]),h(null),b(null),E(null),T(!1),v("edge"),x(null);return}if(!P)F(),f([]),h(null),b(null),E(null),v("edge"),x(null);else{const C=X();if(C?.summary){h(C.summary),b(C.rolling||null);const Y=Array.isArray(C.daily)?C.daily:[],U=o?ea(Y,C.from||a,C.to||r,{timeZone:i,offsetMinutes:c,now:d}):Y;f(U),v("cache"),x(C.fetchedAt||null)}}S()},[t,N,X,S,O,n,P,F,D]),{daily:u,summary:m,rolling:p,source:N?"mock":w,fetchedAt:k,loading:M,error:j,refresh:S}}function Zl(e){try{return new URL(e).host}catch{return null}}function Zn(e){if(!e)return null;const t=String(e).trim(),n=t.split("-");if(n.length!==3)return null;const a=Number(n[0]),r=Number(n[1])-1,o=Number(n[2]);if(!Number.isFinite(a)||!Number.isFinite(r)||!Number.isFinite(o))return null;const l=new Date(Date.UTC(a,r,o));return Number.isFinite(l.getTime())&&nt(l)===t?l:null}function ec(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function ea(e,t,n,{timeZone:a,offsetMinutes:r,now:o}={}){const l=Zn(t),i=Zn(n);if(!l||!i||i<l)return Array.isArray(e)?e:[];const c=o instanceof Date&&Number.isFinite(o.getTime())?o:new Date,d=sn({timeZone:a,offsetMinutes:r,date:c}),u=Zn(d),f=u?u.getTime():c.getTime(),m=new Map;for(const p of e||[])p?.day&&m.set(p.day,p);const h=[];for(let p=l;p<=i;p=ec(p,1)){const b=nt(p),w=m.get(b),v=p.getTime()>f;if(w){h.push({...w,missing:!1,future:v});continue}h.push({day:b,total_tokens:null,billable_total_tokens:null,input_tokens:null,cached_input_tokens:null,output_tokens:null,reasoning_output_tokens:null,missing:!v,future:v})}return h}function tc({baseUrl:e,accessToken:t,guestAllowed:n=!1,from:a,to:r,cacheKey:o,timeZone:l,tzOffsetMinutes:i}={}){const[c,d]=y.useState(null),[u,f]=y.useState("edge"),[m,h]=y.useState(!1),[p,b]=y.useState(null),w=Dt(),v=zt(t),k=!n,x=y.useMemo(()=>{if(!o)return null;const P=nc(e)||"default",A=$n({timeZone:l,offsetMinutes:i});return`tokentracker.modelBreakdown.${o}.${P}.${a}.${r}.${A}`},[e,o,a,l,r,i]),M=y.useCallback(()=>{if(!x||typeof window>"u")return null;try{const P=window.localStorage.getItem(x);if(!P)return null;const A=JSON.parse(P);return!A||!A.breakdown?null:A}catch{return null}},[x]),T=y.useCallback(P=>{if(!(!x||typeof window>"u"))try{window.localStorage.setItem(x,JSON.stringify(P))}catch{}},[x]),j=y.useCallback(()=>{if(!(!x||typeof window>"u"))try{window.localStorage.removeItem(x)}catch{}},[x]),E=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),N=y.useCallback(async()=>{const P=await Ht(t);if(!(!P&&!w&&!E)){h(!0),b(null);try{const A=await qi({baseUrl:e,accessToken:P,from:a,to:r,timeZone:l,tzOffsetMinutes:i});d(A||null),f("edge"),A&&k?T({breakdown:A,fetchedAt:new Date().toISOString()}):k||j()}catch(A){if(k){const X=M();if(X?.breakdown)d(X.breakdown),f("cache"),b(null);else{d(null),f("edge");const L=A;b(L?.message||String(L))}}else{d(null),f("edge");const X=A;b(X?.message||String(X))}}finally{h(!1)}}},[t,e,a,w,n,k,M,l,r,v,i,j,T,E]);return y.useEffect(()=>{if(!v&&!n&&!w&&!E){d(null),f("edge"),b(null),h(!1);return}if(!k)j(),d(null),f("edge"),b(null);else{const P=M();P?.breakdown&&(d(P.breakdown),f("cache"))}N()},[t,w,M,N,v,n,k,j,E]),{breakdown:c,source:w?"mock":u,loading:m,error:p,refresh:N}}function nc(e){try{return new URL(e).host}catch{return null}}const wo=new Set(["day","hour","month"]);function ac(e){return wo.has(e)}function hr(e){if(e==null)return null;const t=String(e).trim();if(!/^[0-9]+$/.test(t))return null;const n=t.replace(/^0+/,"");return n.length===0?"0":n}function rc(e,t){const n=hr(e),a=hr(t);if(n&&a)return n.length!==a.length?n.length<a.length?-1:1:n===a?0:n<a?-1:1;const r=_e(e),o=_e(t);return r==null&&o==null?0:r==null?1:o==null?-1:r===o?0:r<o?-1:1}function vo(e,t){const n=typeof e=="string"?e:String(e||""),a=typeof t=="string"?t:String(t||"");return n===a?0:n<a?-1:1}function oc(e){if(!e)return null;const n=String(e).trim().match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!n)return null;const a=Number(n[1]),r=Number(n[2]),o=Number(n[3]);if(!Number.isFinite(a)||!Number.isFinite(r)||!Number.isFinite(o))return null;const l=new Date(Date.UTC(a,r-1,o));return!Number.isFinite(l.getTime())||l.getUTCFullYear()!==a||l.getUTCMonth()+1!==r||l.getUTCDate()!==o?null:l.getTime()}function sc(e){if(!e)return null;const n=String(e).trim().match(/^(\d{4})-(\d{2})$/);if(!n)return null;const a=Number(n[1]),r=Number(n[2]);if(!Number.isFinite(a)||!Number.isFinite(r)||r<1||r>12)return null;const o=new Date(Date.UTC(a,r-1,1));return Number.isFinite(o.getTime())?o.getTime():null}function ic(e){if(!e)return null;const n=String(e).trim().match(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(?::(\d{2}))?Z?$/);if(!n)return null;const a=Number(n[1]),r=Number(n[2]),o=Number(n[3]),l=Number(n[4]),i=Number(n[5]),c=Number(n[6]||0);if(!Number.isFinite(a)||!Number.isFinite(r)||!Number.isFinite(o)||!Number.isFinite(l)||!Number.isFinite(i)||!Number.isFinite(c)||r<1||r>12||o<1||o>31||l<0||l>23||i<0||i>59||c<0||c>59)return null;const d=new Date(Date.UTC(a,r-1,o,l,i,c));return Number.isFinite(d.getTime())?d.getTime():null}function lc(e,t,n){const a=n==="hour"?ic:n==="month"?sc:oc,r=a(e),o=a(t);return r!=null&&o!=null?r===o?0:r<o?-1:1:vo(e,t)}function _o(e,{key:t,dir:n}){const a=n==="asc"?1:-1,r=Array.isArray(e)?e:[],o=wo.has(t)?(i,c)=>lc(i,c,t):t==="top_model"?vo:rc,l=i=>t==="total_tokens"&&i?.billable_total_tokens!=null?i.billable_total_tokens:i?.[t];return r.map((i,c)=>({row:i,index:c})).sort((i,c)=>{const d=l(i.row),u=l(c.row),f=d==null,m=u==null;if(f&&m)return i.index-c.index;if(f)return 1;if(m)return-1;const h=o(d,u);return h!==0?h*a:i.index-c.index}).map(i=>i.row)}function cc(){return[{key:"day",label:g("daily.sort.date.label"),title:g("daily.sort.date.title")},{key:"total_tokens",label:g("daily.sort.total.label"),title:g("daily.sort.total.title")},{key:"input_tokens",label:g("daily.sort.input.label"),title:g("daily.sort.input.title")},{key:"output_tokens",label:g("daily.sort.output.label"),title:g("daily.sort.output.title")},{key:"cached_input_tokens",label:g("daily.sort.cached.label"),title:g("daily.sort.cached.title")},{key:"reasoning_output_tokens",label:g("daily.sort.reasoning.label"),title:g("daily.sort.reasoning.title")},{key:"conversation_count",label:g("daily.sort.conversations.label"),title:g("daily.sort.conversations.title")}]}function yr(e){const t=ac(e)?e:"day";return cc().map((n,a)=>a===0?{...n,key:t}:n)}function gr(e,{key:t,dir:n}){return _o(e,{key:t,dir:n})}const An=12,dc=["total_tokens","billable_total_tokens","input_tokens","cached_input_tokens","cache_creation_input_tokens","output_tokens","reasoning_output_tokens"];function uc(e){if(typeof e=="bigint")return e!==0n;if(typeof e=="number")return Number.isFinite(e)&&e!==0;if(e==null)return!1;const t=String(e).trim();if(!t||!/^-?\d+$/.test(t))return!1;const n=t.startsWith("-")?t.slice(1):t;return/[1-9]/.test(n)}function fc(e){return dc.some(t=>uc(e?.[t]))}function mc(e){const t=Array.isArray(e)?e:[];if(!t.length)return[];const n=_o(t,{key:"month",dir:"asc"}),a=n.findIndex(r=>r?.month&&fc(r));return a===-1?t:n.slice(a)}function hc(e,t,n=An){const a=Array.isArray(e)?e:[],r=Number.isFinite(n)&&n>0?n:An,l=(Number.isFinite(t)&&t>=0?Math.floor(t):0)*r;return a.slice(l,l+r)}function No(e){if(typeof e!="string")return null;const t=e.trim();return t?t.toLowerCase():null}function yc(e){const t=No(e?.model_id);return t||null}function So(e,t){return e?.model?String(e.model):t}function gc(e){const t=String(e||"").toLowerCase();return t.includes("free")||t.includes("hy3-preview")||/^glm-[\d.]+-flash(?![a-z])/.test(t)}function jt(e,t=0){const n=_e(e?.billable_total_tokens),a=_e(e?.total_tokens);return n!=null&&n>0?n:a!=null&&a>0?a:n??a??t}function Mo(e,{copyFn:t}={}){const n=typeof t=="function"?t:l=>l,r=(Array.isArray(e?.sources)?e.sources:[]).map(l=>{const i=jt(l?.totals),c=_e(l?.totals?.total_cost_usd)??0;return{source:l?.source,totalTokens:Number.isFinite(i)?i:0,totalCost:Number.isFinite(c)?c:0,models:Array.isArray(l?.models)?l.models:[]}}).filter(l=>l.totalTokens>0);if(!r.length)return[];const o=r.reduce((l,i)=>l+i.totalTokens,0);return typeof e?.pricing?.pricing_mode=="string"&&e.pricing.pricing_mode.toUpperCase(),r.slice().sort((l,i)=>i.totalTokens-l.totalTokens).map(l=>{const i=l.source?String(l.source).toUpperCase():n("shared.placeholder.short"),c=o>0?l.totalTokens/o*100:0,d=Number.isFinite(c)?c.toFixed(1):"0.0",u=l.models.map(h=>{const p=jt(h?.totals);if(!Number.isFinite(p)||p<=0)return null;const b=l.totalTokens>0?Math.round(p/l.totalTokens*1e3)/10:0,w=So(h,n("shared.placeholder.short")),v=yc(h),k=_e(h?.totals?.total_cost_usd),x=k??(l.totalCost>0&&l.totalTokens>0?p/l.totalTokens*l.totalCost:null),M=p>0&&(x==null||x<=0)&&!gc(w);return{id:v,name:w,share:b,usage:p,cost:x,pricingMissing:M}}).filter(Boolean),f=u.filter(h=>Number.isFinite(Number(h?.cost))&&Number(h.cost)>0).sort((h,p)=>Number(p.cost)-Number(h.cost))[0]||null,m=u.filter(h=>h?.pricingMissing);return{source:l.source,label:i,totalPercent:String(d),usd:l.totalCost,usage:l.totalTokens,topCostModel:f,missingPricingModels:m,models:u}})}function pc(e,{copyFn:t}={}){const a=Mo(e,{copyFn:typeof t=="function"?t:u=>u}),r=a.reduce((u,f)=>u+(Number(f?.usage)||0),0),o=a.reduce((u,f)=>u+(Number(f?.usd)||0),0),l=a.flatMap(u=>(u.models||[]).map(f=>({...f,source:u.label}))),i=l.filter(u=>Number.isFinite(Number(u?.cost))&&Number(u.cost)>0).sort((u,f)=>Number(f.cost)-Number(u.cost))[0]||null,c=l.filter(u=>Number.isFinite(Number(u?.usage))&&Number(u.usage)>0).sort((u,f)=>Number(f.usage)-Number(u.usage))[0]||null,d=l.filter(u=>u?.pricingMissing);return{totalTokens:r,totalCost:o,costPerMillionTokens:r>0?o/(r/1e6):null,topCostModel:i,topUsageModel:c,missingPricingModels:d}}function bc(e,t="—"){const n=Object.entries(e?.models||{});if(!n.length)return t;let a=null,r=-1;for(const[o,l]of n){const i=Number(l);!Number.isFinite(i)||i<=r||(a=o,r=i)}return a||t}function xc(e,{fallback:t="—"}={}){const n=(Array.isArray(e)?e:[]).map(o=>{const l=jt(o),i=_e(o?.total_cost_usd)??0,c=Number.isFinite(l)&&l>0?i/(l/1e6):null;return{...o,cost_per_million_tokens:c,top_model:bc(o,t)}}),a=n.reduce((o,l)=>{const i=_e(l?.cost_per_million_tokens);return i!=null&&i>0&&o.push(i),o},[]),r=a.length>0?a.reduce((o,l)=>o+l,0)/a.length:null;return n.map(o=>{const l=_e(o?.cost_per_million_tokens),i=l!=null&&r!=null&&r>0&&l>r*1.15;return{...o,cost_per_million_baseline:r,cost_per_million_status:i?"high":"normal"}})}function kc(e,{limit:t=3,copyFn:n}={}){const a=typeof n=="function"?n:m=>m,r=Array.isArray(e?.sources)?e.sources:[];if(!r.length)return[];const o=new Map,l=new Map,i=new Map;let c=0;for(const m of r){const h=Array.isArray(m?.models)?m.models:[];for(const p of h){const b=jt(p?.totals);if(!Number.isFinite(b)||b<=0)continue;c+=b;const w=So(p,a("shared.placeholder.short")),v=No(w);if(!v)continue;o.set(v,(o.get(v)||0)+b);const k=i.get(v)||0;b>=k&&(i.set(v,b),l.set(v,w))}}if(!o.size)return[];const d=Array.from(o.values()).reduce((m,h)=>m+h,0),u=c>0?c:d,f=Number.isFinite(t)?Math.max(0,Math.floor(t)):3;return Array.from(o.entries()).map(([m,h])=>{const p=u>0?(h/u*100).toFixed(1):"0.0";return{id:m,name:l.get(m)||a("shared.placeholder.short"),tokens:h,percent:String(p)}}).sort((m,h)=>h.tokens!==m.tokens?h.tokens-m.tokens:String(m.name).localeCompare(String(h.name))).slice(0,f)}function wc(e,t,n){if(!Number.isFinite(e))return g("shared.placeholder.short");const a=ut(e,{decimals:2,currency:t,rate:n});return a==="-"?g("shared.placeholder.short"):a}function pr(e,t,n){if(!Number.isFinite(e)||e<=0)return null;const a=In(t);return(t===co?e:e*n)<.01?`<${a}0.01`:ut(e,{decimals:2,currency:t,rate:n})}function br(e){const t=Number(e);return!Number.isFinite(t)||t<=0?null:Se(t,{decimals:1})}const vc=W.memo(function({isOpen:t,onClose:n,fleetData:a=[]}){const{currency:r,rate:o}=Ct(),l=y.useMemo(()=>(Array.isArray(a)?a:[]).map(c=>{const d=_e(c?.usd)??0,u=_e(c?.usage)??0,f=Array.isArray(c?.models)?c.models:[];return{label:c?.label?String(c.label):"",usdValue:d,costLabel:pr(d,r,o),tokensLabel:br(u),models:f.map(m=>{const h=_e(m?.usage)??0,p=_e(m?.cost)??0;return{id:m?.id?String(m.id):"",name:m?.name?String(m.name):"",tokensLabel:br(h),costLabel:pr(p,r,o),sortCost:p}}).filter(m=>m.costLabel||m.tokensLabel).sort((m,h)=>h.sortCost-m.sortCost)}}).filter(c=>c.usdValue>0||c.models.length>0).sort((c,d)=>d.usdValue-c.usdValue),[a,r,o]),i=y.useMemo(()=>{const c=l.reduce((d,u)=>d+u.usdValue,0);return wc(c,r,o)},[l,r,o]);return s.jsx(fl,{open:t,onOpenChange:c=>{c||n?.()},children:s.jsxs(ml,{children:[s.jsx(hl,{className:"cost-modal-backdrop","data-cost-analysis-backdrop":"true"}),s.jsx(yl,{className:"fixed inset-0 z-[101] flex items-center justify-center p-4",children:s.jsxs(gl,{className:"cost-modal-popup relative w-full max-w-[460px] max-h-[calc(100vh-2rem)] flex flex-col rounded-2xl bg-white dark:bg-oai-gray-950 shadow-[0_20px_60px_-20px_rgba(0,0,0,0.25)] dark:shadow-[0_20px_60px_-10px_rgba(0,0,0,0.65)] ring-1 ring-oai-gray-200 dark:ring-oai-gray-800 overflow-hidden",children:[s.jsx(pl,{render:s.jsx("h2",{className:"sr-only"}),children:g("dashboard.cost_breakdown.title")}),s.jsx(Dl,{type:"button",className:"absolute top-3 right-3 flex h-9 w-9 items-center justify-center rounded-md text-oai-gray-500 dark:text-oai-gray-400 hover:text-oai-gray-800 dark:hover:text-oai-gray-100 hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand/50 transition-colors z-10","aria-label":g("dashboard.cost_breakdown.close"),children:s.jsx(lo,{size:16,strokeWidth:2,"aria-hidden":!0})}),s.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto oai-scrollbar",children:s.jsxs("div",{className:"px-3 py-6",children:[s.jsx("p",{className:"text-label uppercase tracking-[0.12em] text-oai-gray-500 dark:text-oai-gray-400 mb-2",children:g("dashboard.cost_breakdown.total_label")}),s.jsx("p",{className:"font-bold text-oai-brand tabular-nums tracking-tight leading-none mb-6",style:{fontSize:"clamp(24px, 6.5vw, 32px)"},children:i}),l.length===0?s.jsx("p",{className:"text-body-sm text-oai-gray-500 dark:text-oai-gray-400",children:"No spend recorded."}):s.jsxs("div",{role:"table","aria-label":g("dashboard.cost_breakdown.title"),children:[s.jsxs("div",{role:"row",className:"flex items-center justify-between gap-4 py-2 mb-2 border-b border-oai-gray-200 dark:border-oai-gray-800 text-label uppercase text-oai-gray-500 dark:text-oai-gray-400",children:[s.jsx("span",{role:"columnheader",children:"Model"}),s.jsx("span",{role:"columnheader",children:"Cost"})]}),l.map((c,d)=>{const u=`fleet-${d}`;return s.jsxs("div",{role:"rowgroup","aria-labelledby":u,className:d>0?"mt-5":"mt-2",children:[s.jsxs("div",{role:"row",className:"flex items-center justify-between gap-4 py-2",children:[s.jsx("span",{id:u,role:"rowheader",className:"flex-1 min-w-0 text-body-sm font-semibold text-oai-black dark:text-oai-white truncate leading-none",children:c.label}),s.jsx("span",{role:"cell",className:"shrink-0 text-body-sm font-semibold text-oai-black dark:text-oai-white tabular-nums leading-none",children:c.costLabel||"—"})]}),c.models.map((f,m)=>s.jsxs("div",{role:"row",className:"flex items-center justify-between gap-4 py-[5px]",children:[s.jsx("span",{role:"cell",className:"flex-1 min-w-0 text-caption text-oai-gray-500 dark:text-oai-gray-400 truncate leading-none",title:f.name,children:f.name}),s.jsx("span",{role:"cell",className:"shrink-0 text-caption text-oai-gray-700 dark:text-oai-gray-300 tabular-nums leading-none",children:f.costLabel||""})]},f.id||`${f.name}-${m}`))]},`${c.label}-${d}`)})]})]})})]})})]})})});function _c(e){if(typeof e!="string")return{owner:"",repo:""};const[t,n]=e.split("/");return{owner:t||"",repo:n||""}}function Nc({projectKey:e,projectRef:t}){const[n,a]=y.useState(!1),r=typeof t=="string"?t.replace("https://github.com/",""):"",{owner:o,repo:l}=_c(e||r),i=o&&l?`${o}/${l}`:e,c=o&&!n?`https://github.com/${o}.png?size=80`:"";return c?s.jsx("img",{src:c,alt:"",className:"w-8 h-8 rounded-md oai-bg-elevated object-cover",onError:()=>a(!0)}):s.jsx("div",{className:"w-8 h-8 rounded-md oai-bg-elevated flex items-center justify-center text-oai-gray-500 dark:text-oai-gray-300",children:s.jsx(ja,{provider:i,size:20})})}function Sc({projectEntries:e=[],projectLimit:t=3,onProjectLimitChange:n,copy:a,hasDetailsActual:r,dailyEmptyPrefix:o,installSyncCmd:l,dailyEmptySuffix:i,detailsColumns:c,ariaSortFor:d,toggleSort:u,sortIconFor:f,pagedDetails:m,dailyBreakdownRows:h=[],dailyBreakdownColumns:p=[],dailyBreakdownAriaSortFor:b,dailyBreakdownSortIconFor:w,dailyBreakdownDateKey:v="day",detailsDateKey:k,renderDetailDate:x,renderDailyBreakdownDate:M,renderDetailCell:T,DETAILS_PAGED_PERIODS:j,period:E,detailsPageCount:N,detailsPage:O,setDetailsPage:P}){const[A,X]=y.useState("daily");function L(D,S,I){return I===0?"text-oai-gray-500 dark:text-oai-gray-300":S.key==="total_tokens"||S.key==="total_cost_usd"?"font-medium text-oai-black dark:text-oai-white tabular-nums":S.key==="cost_per_million_tokens"&&D?.cost_per_million_status==="high"?"font-semibold text-amber-700 dark:text-amber-300 tabular-nums":S.key==="top_model"?"text-oai-gray-600 dark:text-oai-gray-300":"text-oai-gray-600 dark:text-oai-gray-300 tabular-nums"}function F(D,S,I){return I===0?M?M(D):x(D):T(D,S.key)}return s.jsxs(un,{children:[s.jsxs("div",{className:"flex items-center justify-between gap-3 mb-4",children:[s.jsxs("div",{role:"tablist","aria-label":"Data view",className:"flex gap-1",children:[s.jsx("button",{role:"tab","aria-selected":A==="daily",type:"button",onClick:()=>X("daily"),className:`text-xs font-medium px-3 py-1.5 rounded transition-colors ${A==="daily"?"text-oai-black dark:text-oai-white bg-oai-gray-100 dark:bg-oai-gray-800":"text-oai-gray-500 dark:text-oai-gray-300 hover:text-oai-black dark:hover:text-oai-white hover:bg-oai-gray-50 dark:hover:bg-oai-gray-800/50"}`,children:a("dashboard.daily.title")}),s.jsx("button",{role:"tab","aria-selected":A==="projects",type:"button",onClick:()=>X("projects"),className:`text-xs font-medium px-3 py-1.5 rounded transition-colors ${A==="projects"?"text-oai-black dark:text-oai-white bg-oai-gray-100 dark:bg-oai-gray-800":"text-oai-gray-500 dark:text-oai-gray-300 hover:text-oai-black dark:hover:text-oai-white hover:bg-oai-gray-50 dark:hover:bg-oai-gray-800/50"}`,children:a("dashboard.projects.title")})]}),A==="projects"&&s.jsx(bl,{ariaLabel:a("dashboard.projects.limit_aria"),value:t,onValueChange:D=>n?.(Number(D)),options:[{value:3,label:a("dashboard.projects.limit_top_3")},{value:6,label:a("dashboard.projects.limit_top_6")},{value:10,label:a("dashboard.projects.limit_top_10")}],align:"end",className:"px-2 py-1 text-xs text-oai-gray-600 dark:text-oai-gray-300"})]}),A==="projects"&&s.jsx("div",{className:"space-y-1",children:e.slice(0,t).map((D,S)=>{const I=typeof D?.project_ref=="string"?D.project_ref:"",B=D?.project_key||I||`entry-${S}`,C=D?.billable_total_tokens??D?.total_tokens,Y=Number(C),U=Number.isFinite(Y)?Y.toLocaleString():"—",K=D?.project_key||I.split("/").pop()||"—";return s.jsxs("div",{className:"flex items-center gap-3 p-2 rounded-lg",children:[s.jsx(Nc,{projectKey:D?.project_key,projectRef:I}),s.jsx("div",{className:"min-w-0 flex-1",children:s.jsx("div",{className:"oai-text-body-sm font-medium text-oai-black dark:text-oai-white truncate",children:K})}),s.jsx("div",{className:"oai-text-body-sm font-medium text-oai-black dark:text-oai-white tabular-nums",children:U})]},B)})}),A==="daily"&&s.jsxs("div",{children:[h?.length===0?s.jsxs("div",{className:"oai-text-body-sm text-oai-gray-500 dark:text-oai-gray-300 mb-4",children:[o,s.jsx("code",{className:"mx-1 rounded border border-oai-gray-300 dark:border-oai-gray-700 oai-bg-elevated px-1.5 py-0.5 font-mono oai-text-caption",children:l}),i]}):s.jsx("div",{className:"overflow-auto max-h-[384px] -mx-4 oai-scrollbar",children:s.jsxs("table",{className:"w-full border-collapse",children:[s.jsx("thead",{className:"sticky top-0 z-10",children:s.jsx("tr",{className:"border-b border-oai-gray-200 dark:border-oai-gray-700",children:p.map((D,S)=>s.jsx("th",{...b?.(D.key)?{"aria-sort":b(D.key)}:{},className:"text-left p-0 bg-white dark:bg-oai-gray-900",children:s.jsx("button",{type:"button",onClick:()=>u(D.key),className:"flex w-full items-center justify-start px-2.5 sm:px-4 py-2 text-left oai-text-caption font-semibold text-oai-gray-600 dark:text-oai-gray-300 hover:text-oai-black dark:hover:text-oai-white transition-colors",children:s.jsxs("span",{className:"inline-flex items-center gap-1",children:[s.jsx("span",{children:D.label}),s.jsx("span",{className:"text-oai-gray-400 dark:text-oai-gray-400",children:w?.(D.key)||""})]})})},D.key))})}),s.jsx("tbody",{children:h.map(D=>s.jsx("tr",{className:`border-b border-oai-gray-100 dark:border-oai-gray-800 last:border-b-0 odd:bg-transparent even:bg-oai-gray-50/55 dark:odd:bg-transparent dark:even:bg-white/[0.035] hover:bg-oai-gray-100/60 dark:hover:bg-oai-gray-800/70 transition-colors ${D.missing?"text-oai-gray-400 dark:text-oai-gray-400":D.future?"text-oai-gray-300 dark:text-oai-gray-600":"text-oai-black dark:text-oai-white"}`,children:p.map((S,I)=>s.jsx("td",{className:`px-2.5 sm:px-4 py-2 oai-text-body-sm whitespace-nowrap ${L(D,S,I)}`,children:F(D,S,I)},S.key))},String(D?.[v]||D?.day||D?.hour||D?.month||"")))})]})}),A!=="daily"&&j.has(E)&&N>1?s.jsxs("div",{className:"mt-3 flex items-center justify-between oai-text-caption",children:[s.jsx("button",{type:"button",onClick:()=>P(D=>Math.max(0,D-1)),disabled:O===0,className:"px-3 py-1.5 text-oai-gray-600 dark:text-oai-gray-300 hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 rounded-md disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:a("details.pagination.prev")}),s.jsxs("span",{className:"oai-text-muted",children:[O+1," / ",N]}),s.jsx("button",{type:"button",onClick:()=>P(D=>Math.min(N-1,D+1)),disabled:O+1>=N,className:"px-3 py-1.5 text-oai-gray-600 dark:text-oai-gray-300 hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 rounded-md disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:a("details.pagination.next")})]}):null]})]})}function On(e){return typeof e!="string"?"":e.trim()}function xr(e){const t=On(e);return t?t.split(/[_\-\s]+/).filter(Boolean).map(n=>n.slice(0,1).toUpperCase()+n.slice(1).toLowerCase()).join(" "):""}function Mc(e){if(!Array.isArray(e))return[];const t=new Map;for(const n of e){if(!n||typeof n!="object")continue;const a=On(n.tool),r=On(n.planType)||On(n.plan_type);if(!a||!r)continue;const o=xr(a)||a,l=xr(r)||r;t.set(`${a.toLowerCase()}::${r.toLowerCase()}`,{tool:o,plan:l})}return Array.from(t.values())}function kr({period:e="month",rankLabel:t,streakDays:n,subscriptions:a=[],periodConversations:r,rolling:o,topModels:l=[],className:i=""}){const c=g("shared.placeholder.short"),d=g("shared.unit.percent"),u=t??g("identity_card.rank_placeholder"),f=Number.isFinite(Number(n))?Number(n):0,m=f?g("identity_card.streak_value",{days:f}):g("identity_card.rank_placeholder"),h=Mc(a),p={thousandSuffix:g("shared.unit.thousand_abbrev"),millionSuffix:g("shared.unit.million_abbrev"),billionSuffix:g("shared.unit.billion_abbrev")},b=k=>{if(k==null)return c;const x=Se(k,p);return x==="-"?c:x},w=(()=>{switch(e){case"day":return g("stats.period.today");case"24h":return g("stats.period.last24h");case"week":return g("stats.period.week");case"month":return g("stats.period.month");case"total":return g("stats.period.all");default:return g("stats.period.convs")}})(),v=l.slice(0,3);return s.jsxs(un,{className:`h-full ${i}`,children:[s.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-2",children:[s.jsxs("div",{className:"flex flex-col items-center justify-center px-2 py-2 bg-oai-gray-50 dark:bg-oai-gray-800 rounded-lg",children:[s.jsx("span",{className:"text-sm font-semibold text-oai-black dark:text-oai-white tabular-nums",children:b(o?.last_7d?.totals?.billable_total_tokens)}),s.jsx("span",{className:"text-[10px] text-oai-gray-400 dark:text-oai-gray-400 mt-0.5 whitespace-nowrap",children:"7d"})]}),s.jsxs("div",{className:"flex flex-col items-center justify-center px-2 py-2 bg-oai-gray-50 dark:bg-oai-gray-800 rounded-lg",children:[s.jsx("span",{className:"text-sm font-semibold text-oai-black dark:text-oai-white tabular-nums",children:b(o?.last_30d?.totals?.billable_total_tokens)}),s.jsx("span",{className:"text-[10px] text-oai-gray-400 dark:text-oai-gray-400 mt-0.5 whitespace-nowrap",children:"30d"})]}),s.jsxs("div",{className:"flex flex-col items-center justify-center px-2 py-2 bg-oai-gray-50 dark:bg-oai-gray-800 rounded-lg",children:[s.jsx("span",{className:"text-sm font-semibold text-oai-black dark:text-oai-white tabular-nums",children:b(o?.current_month?.totals?.billable_total_tokens)}),s.jsx("span",{className:"text-[10px] text-oai-gray-400 dark:text-oai-gray-400 mt-0.5 whitespace-nowrap",children:g("stats.period.this_month")})]}),s.jsxs("div",{className:"flex flex-col items-center justify-center px-2 py-2 bg-oai-gray-50 dark:bg-oai-gray-800 rounded-lg",children:[s.jsx("span",{className:"text-sm font-semibold text-oai-black dark:text-oai-white tabular-nums",children:b(r)}),s.jsx("span",{className:"text-[10px] text-oai-gray-400 dark:text-oai-gray-400 mt-0.5 whitespace-nowrap",children:w})]})]}),v.length>0&&s.jsx("div",{className:"mt-4 pt-3 border-t border-oai-gray-100 dark:border-oai-gray-800",children:v.map((k,x)=>{const M=k?.name?String(k.name):c,T=k?.percent?String(k.percent):"",j=x===v.length-1,E=x+1;return s.jsxs("div",{className:`flex items-center py-2 ${j?"":"border-b border-oai-gray-50 dark:border-oai-gray-800"}`,children:[s.jsx("span",{className:"w-5 h-5 flex items-center justify-center rounded-full bg-oai-gray-100 dark:bg-oai-gray-800 text-[10px] font-semibold text-oai-gray-500 dark:text-oai-gray-300 flex-shrink-0",children:E}),s.jsx("span",{className:"flex-1 text-sm text-oai-gray-700 dark:text-oai-gray-300 truncate px-2.5",title:M,children:M}),s.jsxs("span",{className:"text-sm font-semibold text-oai-black dark:text-oai-white tabular-nums flex-shrink-0",children:[T,d]})]},k.id||M)})}),h.length>0&&s.jsx("div",{className:"mt-3 pt-3 border-t border-oai-gray-100 dark:border-oai-gray-800 flex flex-wrap gap-1.5",children:h.map((k,x)=>s.jsxs(jl,{variant:"secondary",size:"sm",children:[k.tool," ",k.plan]},`${k.tool}:${k.plan}:${x}`))}),s.jsxs("div",{className:"mt-4 pt-3 border-t border-oai-gray-100 dark:border-oai-gray-800 flex items-center justify-between text-xs text-oai-gray-400 dark:text-oai-gray-400",children:[s.jsxs("div",{className:"flex items-center gap-1.5",children:[s.jsx("span",{children:g("identity_card.rank_label")}),s.jsx("span",{className:"text-oai-gray-500 dark:text-oai-gray-300 tabular-nums",children:u})]}),s.jsxs("div",{className:"flex items-center gap-1",children:[s.jsx("span",{children:g("identity_card.streak_label")}),s.jsx("span",{className:"text-oai-gray-500 dark:text-oai-gray-300 tabular-nums",children:m})]})]})]})}function jc(e,t,n="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:e,timeZoneName:n}).format(t).split(/\s/g).slice(2).join(" ")}const Dc={},an={};function Nt(e,t){try{const a=(Dc[e]||=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"longOffset"}).format)(t).split("GMT")[1];return a in an?an[a]:wr(a,a.split(":"))}catch{if(e in an)return an[e];const n=e?.match(Cc);return n?wr(e,n.slice(1)):NaN}}const Cc=/([+-]\d\d):?(\d\d)?/;function wr(e,t){const n=+(t[0]||0),a=+(t[1]||0),r=+(t[2]||0)/60;return an[e]=n*60+a>0?n*60+a+r:n*60-a-r}class Ve extends Date{constructor(...t){super(),t.length>1&&typeof t[t.length-1]=="string"&&(this.timeZone=t.pop()),this.internal=new Date,isNaN(Nt(this.timeZone,this))?this.setTime(NaN):t.length?typeof t[0]=="number"&&(t.length===1||t.length===2&&typeof t[1]!="number")?this.setTime(t[0]):typeof t[0]=="string"?this.setTime(+new Date(t[0])):t[0]instanceof Date?this.setTime(+t[0]):(this.setTime(+new Date(...t)),jo(this),xa(this)):this.setTime(Date.now())}static tz(t,...n){return n.length?new Ve(...n,t):new Ve(Date.now(),t)}withTimeZone(t){return new Ve(+this,t)}getTimezoneOffset(){const t=-Nt(this.timeZone,this);return t>0?Math.floor(t):Math.ceil(t)}setTime(t){return Date.prototype.setTime.apply(this,arguments),xa(this),+this}[Symbol.for("constructDateFrom")](t){return new Ve(+new Date(t),this.timeZone)}}const vr=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!vr.test(e))return;const t=e.replace(vr,"$1UTC");Ve.prototype[t]&&(e.startsWith("get")?Ve.prototype[e]=function(){return this.internal[t]()}:(Ve.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),Tc(this),+this},Ve.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),xa(this),+this}))});function xa(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-Nt(e.timeZone,e)*60))}function Tc(e){Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),jo(e)}function jo(e){const t=Nt(e.timeZone,e),n=t>0?Math.floor(t):Math.ceil(t),a=new Date(+e);a.setUTCHours(a.getUTCHours()-1);const r=-new Date(+e).getTimezoneOffset(),o=-new Date(+a).getTimezoneOffset(),l=r-o,i=Date.prototype.getHours.apply(e)!==e.internal.getUTCHours();l&&i&&e.internal.setUTCMinutes(e.internal.getUTCMinutes()+l);const c=r-n;c&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+c);const d=new Date(+e);d.setUTCSeconds(0);const u=r>0?d.getSeconds():(d.getSeconds()-60)%60,f=Math.round(-(Nt(e.timeZone,e)*60))%60;(f||u)&&(e.internal.setUTCSeconds(e.internal.getUTCSeconds()+f),Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+f+u));const m=Nt(e.timeZone,e),h=m>0?Math.floor(m):Math.ceil(m),b=-new Date(+e).getTimezoneOffset()-h,w=h!==n,v=b-c;if(w&&v){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+v);const k=Nt(e.timeZone,e),x=k>0?Math.floor(k):Math.ceil(k),M=h-x;M&&(e.internal.setUTCMinutes(e.internal.getUTCMinutes()+M),Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+M))}}class ve extends Ve{static tz(t,...n){return n.length?new ve(...n,t):new ve(Date.now(),t)}toISOString(){const[t,n,a]=this.tzComponents(),r=`${t}${n}:${a}`;return this.internal.toISOString().slice(0,-1)+r}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){const[t,n,a,r]=this.internal.toUTCString().split(" ");return`${t?.slice(0,-1)} ${a} ${n} ${r}`}toTimeString(){const t=this.internal.toUTCString().split(" ")[4],[n,a,r]=this.tzComponents();return`${t} GMT${n}${a}${r} (${jc(this.timeZone,this)})`}toLocaleString(t,n){return Date.prototype.toLocaleString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleDateString(t,n){return Date.prototype.toLocaleDateString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleTimeString(t,n){return Date.prototype.toLocaleTimeString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}tzComponents(){const t=this.getTimezoneOffset(),n=t>0?"-":"+",a=String(Math.floor(Math.abs(t)/60)).padStart(2,"0"),r=String(Math.abs(t)%60).padStart(2,"0");return[n,a,r]}withTimeZone(t){return new ve(+this,t)}[Symbol.for("constructDateFrom")](t){return new ve(+new Date(t),this.timeZone)}}const Do=6048e5,Pc=864e5,_r=Symbol.for("constructDateFrom");function ye(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&_r in e?e[_r](t):e instanceof Date?new e.constructor(t):new Date(t)}function ie(e,t){return ye(t||e,e)}function Co(e,t,n){const a=ie(e,n?.in);return isNaN(t)?ye(e,NaN):(t&&a.setDate(a.getDate()+t),a)}function To(e,t,n){const a=ie(e,n?.in);if(isNaN(t))return ye(e,NaN);if(!t)return a;const r=a.getDate(),o=ye(e,a.getTime());o.setMonth(a.getMonth()+t+1,0);const l=o.getDate();return r>=l?o:(a.setFullYear(o.getFullYear(),o.getMonth(),r),a)}let Oc={};function mn(){return Oc}function ft(e,t){const n=mn(),a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,r=ie(e,t?.in),o=r.getDay(),l=(o<a?7:0)+o-a;return r.setDate(r.getDate()-l),r.setHours(0,0,0,0),r}function ln(e,t){return ft(e,{...t,weekStartsOn:1})}function Po(e,t){const n=ie(e,t?.in),a=n.getFullYear(),r=ye(n,0);r.setFullYear(a+1,0,4),r.setHours(0,0,0,0);const o=ln(r),l=ye(n,0);l.setFullYear(a,0,4),l.setHours(0,0,0,0);const i=ln(l);return n.getTime()>=o.getTime()?a+1:n.getTime()>=i.getTime()?a:a-1}function Nr(e){const t=ie(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function Tt(e,...t){const n=ye.bind(null,e||t.find(a=>typeof a=="object"));return t.map(n)}function cn(e,t){const n=ie(e,t?.in);return n.setHours(0,0,0,0),n}function Ta(e,t,n){const[a,r]=Tt(n?.in,e,t),o=cn(a),l=cn(r),i=+o-Nr(o),c=+l-Nr(l);return Math.round((i-c)/Pc)}function Wc(e,t){const n=Po(e,t),a=ye(e,0);return a.setFullYear(n,0,4),a.setHours(0,0,0,0),ln(a)}function Ac(e,t,n){return Co(e,t*7,n)}function Fc(e,t,n){return To(e,t*12,n)}function Ec(e,t){let n,a=t?.in;return e.forEach(r=>{!a&&typeof r=="object"&&(a=ye.bind(null,r));const o=ie(r,a);(!n||n<o||isNaN(+o))&&(n=o)}),ye(a,n||NaN)}function $c(e,t){let n,a=t?.in;return e.forEach(r=>{!a&&typeof r=="object"&&(a=ye.bind(null,r));const o=ie(r,a);(!n||n>o||isNaN(+o))&&(n=o)}),ye(a,n||NaN)}function Ic(e,t,n){const[a,r]=Tt(n?.in,e,t);return+cn(a)==+cn(r)}function Oo(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function Rc(e){return!(!Oo(e)&&typeof e!="number"||isNaN(+ie(e)))}function Wo(e,t,n){const[a,r]=Tt(n?.in,e,t),o=a.getFullYear()-r.getFullYear(),l=a.getMonth()-r.getMonth();return o*12+l}function Lc(e,t){const n=ie(e,t?.in),a=n.getMonth();return n.setFullYear(n.getFullYear(),a+1,0),n.setHours(23,59,59,999),n}function Ao(e,t){const[n,a]=Tt(e,t.start,t.end);return{start:n,end:a}}function Bc(e,t){const{start:n,end:a}=Ao(t?.in,e);let r=+n>+a;const o=r?+n:+a,l=r?a:n;l.setHours(0,0,0,0),l.setDate(1);let i=1;const c=[];for(;+l<=o;)c.push(ye(n,l)),l.setMonth(l.getMonth()+i);return r?c.reverse():c}function Yc(e,t){const n=ie(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function zc(e,t){const n=ie(e,t?.in),a=n.getFullYear();return n.setFullYear(a+1,0,0),n.setHours(23,59,59,999),n}function Fo(e,t){const n=ie(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function Hc(e,t){const{start:n,end:a}=Ao(t?.in,e);let r=+n>+a;const o=r?+n:+a,l=r?a:n;l.setHours(0,0,0,0),l.setMonth(0,1);let i=1;const c=[];for(;+l<=o;)c.push(ye(n,l)),l.setFullYear(l.getFullYear()+i);return r?c.reverse():c}function Eo(e,t){const n=mn(),a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,r=ie(e,t?.in),o=r.getDay(),l=(o<a?-7:0)+6-(o-a);return r.setDate(r.getDate()+l),r.setHours(23,59,59,999),r}function Uc(e,t){return Eo(e,{...t,weekStartsOn:1})}const qc={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},Vc=(e,t,n)=>{let a;const r=qc[e];return typeof r=="string"?a=r:t===1?a=r.one:a=r.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+a:a+" ago":a};function Me(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const Kc={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},Gc={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},Xc={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},Qc={date:Me({formats:Kc,defaultWidth:"full"}),time:Me({formats:Gc,defaultWidth:"full"}),dateTime:Me({formats:Xc,defaultWidth:"full"})},Jc={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},Zc=(e,t,n,a)=>Jc[e];function ce(e){return(t,n)=>{const a=n?.context?String(n.context):"standalone";let r;if(a==="formatting"&&e.formattingValues){const l=e.defaultFormattingWidth||e.defaultWidth,i=n?.width?String(n.width):l;r=e.formattingValues[i]||e.formattingValues[l]}else{const l=e.defaultWidth,i=n?.width?String(n.width):e.defaultWidth;r=e.values[i]||e.values[l]}const o=e.argumentCallback?e.argumentCallback(t):t;return r[o]}}const ed={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},td={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},nd={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},ad={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},rd={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},od={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},sd=(e,t)=>{const n=Number(e),a=n%100;if(a>20||a<10)switch(a%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},id={ordinalNumber:sd,era:ce({values:ed,defaultWidth:"wide"}),quarter:ce({values:td,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ce({values:nd,defaultWidth:"wide"}),day:ce({values:ad,defaultWidth:"wide"}),dayPeriod:ce({values:rd,defaultWidth:"wide",formattingValues:od,defaultFormattingWidth:"wide"})};function de(e){return(t,n={})=>{const a=n.width,r=a&&e.matchPatterns[a]||e.matchPatterns[e.defaultMatchWidth],o=t.match(r);if(!o)return null;const l=o[0],i=a&&e.parsePatterns[a]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(i)?cd(i,f=>f.test(l)):ld(i,f=>f.test(l));let d;d=e.valueCallback?e.valueCallback(c):c,d=n.valueCallback?n.valueCallback(d):d;const u=t.slice(l.length);return{value:d,rest:u}}}function ld(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function cd(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function hn(e){return(t,n={})=>{const a=t.match(e.matchPattern);if(!a)return null;const r=a[0],o=t.match(e.parsePattern);if(!o)return null;let l=e.valueCallback?e.valueCallback(o[0]):o[0];l=n.valueCallback?n.valueCallback(l):l;const i=t.slice(r.length);return{value:l,rest:i}}}const dd=/^(\d+)(th|st|nd|rd)?/i,ud=/\d+/i,fd={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},md={any:[/^b/i,/^(a|c)/i]},hd={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},yd={any:[/1/i,/2/i,/3/i,/4/i]},gd={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},pd={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},bd={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},xd={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},kd={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},wd={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},vd={ordinalNumber:hn({matchPattern:dd,parsePattern:ud,valueCallback:e=>parseInt(e,10)}),era:de({matchPatterns:fd,defaultMatchWidth:"wide",parsePatterns:md,defaultParseWidth:"any"}),quarter:de({matchPatterns:hd,defaultMatchWidth:"wide",parsePatterns:yd,defaultParseWidth:"any",valueCallback:e=>e+1}),month:de({matchPatterns:gd,defaultMatchWidth:"wide",parsePatterns:pd,defaultParseWidth:"any"}),day:de({matchPatterns:bd,defaultMatchWidth:"wide",parsePatterns:xd,defaultParseWidth:"any"}),dayPeriod:de({matchPatterns:kd,defaultMatchWidth:"any",parsePatterns:wd,defaultParseWidth:"any"})},dt={code:"en-US",formatDistance:Vc,formatLong:Qc,formatRelative:Zc,localize:id,match:vd,options:{weekStartsOn:0,firstWeekContainsDate:1}};function _d(e,t){const n=ie(e,t?.in);return Ta(n,Fo(n))+1}function Pa(e,t){const n=ie(e,t?.in),a=+ln(n)-+Wc(n);return Math.round(a/Do)+1}function $o(e,t){const n=ie(e,t?.in),a=n.getFullYear(),r=mn(),o=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,l=ye(t?.in||e,0);l.setFullYear(a+1,0,o),l.setHours(0,0,0,0);const i=ft(l,t),c=ye(t?.in||e,0);c.setFullYear(a,0,o),c.setHours(0,0,0,0);const d=ft(c,t);return+n>=+i?a+1:+n>=+d?a:a-1}function Nd(e,t){const n=mn(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,r=$o(e,t),o=ye(t?.in||e,0);return o.setFullYear(r,0,a),o.setHours(0,0,0,0),ft(o,t)}function Oa(e,t){const n=ie(e,t?.in),a=+ft(n,t)-+Nd(n,t);return Math.round(a/Do)+1}function se(e,t){const n=e<0?"-":"",a=Math.abs(e).toString().padStart(t,"0");return n+a}const it={y(e,t){const n=e.getFullYear(),a=n>0?n:1-n;return se(t==="yy"?a%100:a,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):se(n+1,2)},d(e,t){return se(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return n==="am"?"a.m.":"p.m."}},h(e,t){return se(e.getHours()%12||12,t.length)},H(e,t){return se(e.getHours(),t.length)},m(e,t){return se(e.getMinutes(),t.length)},s(e,t){return se(e.getSeconds(),t.length)},S(e,t){const n=t.length,a=e.getMilliseconds(),r=Math.trunc(a*Math.pow(10,n-3));return se(r,t.length)}},Rt={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Sr={G:function(e,t,n){const a=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(a,{width:"abbreviated"});case"GGGGG":return n.era(a,{width:"narrow"});default:return n.era(a,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const a=e.getFullYear(),r=a>0?a:1-a;return n.ordinalNumber(r,{unit:"year"})}return it.y(e,t)},Y:function(e,t,n,a){const r=$o(e,a),o=r>0?r:1-r;if(t==="YY"){const l=o%100;return se(l,2)}return t==="Yo"?n.ordinalNumber(o,{unit:"year"}):se(o,t.length)},R:function(e,t){const n=Po(e);return se(n,t.length)},u:function(e,t){const n=e.getFullYear();return se(n,t.length)},Q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(a);case"QQ":return se(a,2);case"Qo":return n.ordinalNumber(a,{unit:"quarter"});case"QQQ":return n.quarter(a,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(a,{width:"narrow",context:"formatting"});default:return n.quarter(a,{width:"wide",context:"formatting"})}},q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(a);case"qq":return se(a,2);case"qo":return n.ordinalNumber(a,{unit:"quarter"});case"qqq":return n.quarter(a,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(a,{width:"narrow",context:"standalone"});default:return n.quarter(a,{width:"wide",context:"standalone"})}},M:function(e,t,n){const a=e.getMonth();switch(t){case"M":case"MM":return it.M(e,t);case"Mo":return n.ordinalNumber(a+1,{unit:"month"});case"MMM":return n.month(a,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(a,{width:"narrow",context:"formatting"});default:return n.month(a,{width:"wide",context:"formatting"})}},L:function(e,t,n){const a=e.getMonth();switch(t){case"L":return String(a+1);case"LL":return se(a+1,2);case"Lo":return n.ordinalNumber(a+1,{unit:"month"});case"LLL":return n.month(a,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(a,{width:"narrow",context:"standalone"});default:return n.month(a,{width:"wide",context:"standalone"})}},w:function(e,t,n,a){const r=Oa(e,a);return t==="wo"?n.ordinalNumber(r,{unit:"week"}):se(r,t.length)},I:function(e,t,n){const a=Pa(e);return t==="Io"?n.ordinalNumber(a,{unit:"week"}):se(a,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):it.d(e,t)},D:function(e,t,n){const a=_d(e);return t==="Do"?n.ordinalNumber(a,{unit:"dayOfYear"}):se(a,t.length)},E:function(e,t,n){const a=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(a,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(a,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},e:function(e,t,n,a){const r=e.getDay(),o=(r-a.weekStartsOn+8)%7||7;switch(t){case"e":return String(o);case"ee":return se(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(r,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(r,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(r,{width:"short",context:"formatting"});default:return n.day(r,{width:"wide",context:"formatting"})}},c:function(e,t,n,a){const r=e.getDay(),o=(r-a.weekStartsOn+8)%7||7;switch(t){case"c":return String(o);case"cc":return se(o,t.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(r,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(r,{width:"narrow",context:"standalone"});case"cccccc":return n.day(r,{width:"short",context:"standalone"});default:return n.day(r,{width:"wide",context:"standalone"})}},i:function(e,t,n){const a=e.getDay(),r=a===0?7:a;switch(t){case"i":return String(r);case"ii":return se(r,t.length);case"io":return n.ordinalNumber(r,{unit:"day"});case"iii":return n.day(a,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(a,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},a:function(e,t,n){const r=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(e,t,n){const a=e.getHours();let r;switch(a===12?r=Rt.noon:a===0?r=Rt.midnight:r=a/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(e,t,n){const a=e.getHours();let r;switch(a>=17?r=Rt.evening:a>=12?r=Rt.afternoon:a>=4?r=Rt.morning:r=Rt.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(r,{width:"narrow",context:"formatting"});default:return n.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let a=e.getHours()%12;return a===0&&(a=12),n.ordinalNumber(a,{unit:"hour"})}return it.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):it.H(e,t)},K:function(e,t,n){const a=e.getHours()%12;return t==="Ko"?n.ordinalNumber(a,{unit:"hour"}):se(a,t.length)},k:function(e,t,n){let a=e.getHours();return a===0&&(a=24),t==="ko"?n.ordinalNumber(a,{unit:"hour"}):se(a,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):it.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):it.s(e,t)},S:function(e,t){return it.S(e,t)},X:function(e,t,n){const a=e.getTimezoneOffset();if(a===0)return"Z";switch(t){case"X":return jr(a);case"XXXX":case"XX":return vt(a);default:return vt(a,":")}},x:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"x":return jr(a);case"xxxx":case"xx":return vt(a);default:return vt(a,":")}},O:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+Mr(a,":");default:return"GMT"+vt(a,":")}},z:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+Mr(a,":");default:return"GMT"+vt(a,":")}},t:function(e,t,n){const a=Math.trunc(+e/1e3);return se(a,t.length)},T:function(e,t,n){return se(+e,t.length)}};function Mr(e,t=""){const n=e>0?"-":"+",a=Math.abs(e),r=Math.trunc(a/60),o=a%60;return o===0?n+String(r):n+String(r)+t+se(o,2)}function jr(e,t){return e%60===0?(e>0?"-":"+")+se(Math.abs(e)/60,2):vt(e,t)}function vt(e,t=""){const n=e>0?"-":"+",a=Math.abs(e),r=se(Math.trunc(a/60),2),o=se(a%60,2);return n+r+t+o}const Dr=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},Io=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Sd=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],a=n[1],r=n[2];if(!r)return Dr(e,t);let o;switch(a){case"P":o=t.dateTime({width:"short"});break;case"PP":o=t.dateTime({width:"medium"});break;case"PPP":o=t.dateTime({width:"long"});break;default:o=t.dateTime({width:"full"});break}return o.replace("{{date}}",Dr(a,t)).replace("{{time}}",Io(r,t))},Md={p:Io,P:Sd},jd=/^D+$/,Dd=/^Y+$/,Cd=["D","DD","YY","YYYY"];function Td(e){return jd.test(e)}function Pd(e){return Dd.test(e)}function Od(e,t,n){const a=Wd(e,t,n);if(console.warn(a),Cd.includes(e))throw new RangeError(a)}function Wd(e,t,n){const a=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${a} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const Ad=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Fd=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Ed=/^'([^]*?)'?$/,$d=/''/g,Id=/[a-zA-Z]/;function Ke(e,t,n){const a=mn(),r=n?.locale??a.locale??dt,o=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,l=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??a.weekStartsOn??a.locale?.options?.weekStartsOn??0,i=ie(e,n?.in);if(!Rc(i))throw new RangeError("Invalid time value");let c=t.match(Fd).map(u=>{const f=u[0];if(f==="p"||f==="P"){const m=Md[f];return m(u,r.formatLong)}return u}).join("").match(Ad).map(u=>{if(u==="''")return{isToken:!1,value:"'"};const f=u[0];if(f==="'")return{isToken:!1,value:Rd(u)};if(Sr[f])return{isToken:!0,value:u};if(f.match(Id))throw new RangeError("Format string contains an unescaped latin alphabet character `"+f+"`");return{isToken:!1,value:u}});r.localize.preprocessor&&(c=r.localize.preprocessor(i,c));const d={firstWeekContainsDate:o,weekStartsOn:l,locale:r};return c.map(u=>{if(!u.isToken)return u.value;const f=u.value;(!n?.useAdditionalWeekYearTokens&&Pd(f)||!n?.useAdditionalDayOfYearTokens&&Td(f))&&Od(f,t,String(e));const m=Sr[f[0]];return m(i,f,r.localize,d)}).join("")}function Rd(e){const t=e.match(Ed);return t?t[1].replace($d,"'"):e}function Ld(e,t){const n=ie(e,t?.in),a=n.getFullYear(),r=n.getMonth(),o=ye(n,0);return o.setFullYear(a,r+1,0),o.setHours(0,0,0,0),o.getDate()}function Bd(e,t){return ie(e,t?.in).getMonth()}function Yd(e,t){return ie(e,t?.in).getFullYear()}function zd(e,t){return+ie(e)>+ie(t)}function Hd(e,t){return+ie(e)<+ie(t)}function Ud(e,t,n){const[a,r]=Tt(n?.in,e,t);return+ft(a,n)==+ft(r,n)}function qd(e,t,n){const[a,r]=Tt(n?.in,e,t);return a.getFullYear()===r.getFullYear()&&a.getMonth()===r.getMonth()}function Vd(e,t,n){const[a,r]=Tt(n?.in,e,t);return a.getFullYear()===r.getFullYear()}function Kd(e,t,n){const a=ie(e,n?.in),r=a.getFullYear(),o=a.getDate(),l=ye(e,0);l.setFullYear(r,t,15),l.setHours(0,0,0,0);const i=Ld(l);return a.setMonth(t,Math.min(o,i)),a}function Gd(e,t,n){const a=ie(e,n?.in);return isNaN(+a)?ye(e,NaN):(a.setFullYear(t),a)}const Cr=5,Xd=4;function Qd(e,t){const n=t.startOfMonth(e),a=n.getDay()>0?n.getDay():7,r=t.addDays(e,-a+1),o=t.addDays(r,Cr*7-1);return t.getMonth(e)===t.getMonth(o)?Cr:Xd}function Ro(e,t){const n=t.startOfMonth(e),a=n.getDay();return a===1?n:a===0?t.addDays(n,-6):t.addDays(n,-1*(a-1))}function Jd(e,t){const n=Ro(e,t),a=Qd(e,t);return t.addDays(n,a*7-1)}const Zd={lessThanXSeconds:{one:"1秒未満",other:"{{count}}秒未満",oneWithSuffix:"約1秒",otherWithSuffix:"約{{count}}秒"},xSeconds:{one:"1秒",other:"{{count}}秒"},halfAMinute:"30秒",lessThanXMinutes:{one:"1分未満",other:"{{count}}分未満",oneWithSuffix:"約1分",otherWithSuffix:"約{{count}}分"},xMinutes:{one:"1分",other:"{{count}}分"},aboutXHours:{one:"約1時間",other:"約{{count}}時間"},xHours:{one:"1時間",other:"{{count}}時間"},xDays:{one:"1日",other:"{{count}}日"},aboutXWeeks:{one:"約1週間",other:"約{{count}}週間"},xWeeks:{one:"1週間",other:"{{count}}週間"},aboutXMonths:{one:"約1か月",other:"約{{count}}か月"},xMonths:{one:"1か月",other:"{{count}}か月"},aboutXYears:{one:"約1年",other:"約{{count}}年"},xYears:{one:"1年",other:"{{count}}年"},overXYears:{one:"1年以上",other:"{{count}}年以上"},almostXYears:{one:"1年近く",other:"{{count}}年近く"}},eu=(e,t,n)=>{n=n||{};let a;const r=Zd[e];return typeof r=="string"?a=r:t===1?n.addSuffix&&r.oneWithSuffix?a=r.oneWithSuffix:a=r.one:n.addSuffix&&r.otherWithSuffix?a=r.otherWithSuffix.replace("{{count}}",String(t)):a=r.other.replace("{{count}}",String(t)),n.addSuffix?n.comparison&&n.comparison>0?a+"後":a+"前":a},tu={full:"y年M月d日EEEE",long:"y年M月d日",medium:"y/MM/dd",short:"y/MM/dd"},nu={full:"H時mm分ss秒 zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},au={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},ru={date:Me({formats:tu,defaultWidth:"full"}),time:Me({formats:nu,defaultWidth:"full"}),dateTime:Me({formats:au,defaultWidth:"full"})},ou={lastWeek:"先週のeeeeのp",yesterday:"昨日のp",today:"今日のp",tomorrow:"明日のp",nextWeek:"翌週のeeeeのp",other:"P"},su=(e,t,n,a)=>ou[e],iu={narrow:["BC","AC"],abbreviated:["紀元前","西暦"],wide:["紀元前","西暦"]},lu={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["第1四半期","第2四半期","第3四半期","第4四半期"]},cu={narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]},du={narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],abbreviated:["日","月","火","水","木","金","土"],wide:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},uu={narrow:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},abbreviated:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},wide:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"}},fu={narrow:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},abbreviated:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},wide:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"}},mu=(e,t)=>{const n=Number(e);switch(String(t?.unit)){case"year":return`${n}年`;case"quarter":return`第${n}四半期`;case"month":return`${n}月`;case"week":return`第${n}週`;case"date":return`${n}日`;case"hour":return`${n}時`;case"minute":return`${n}分`;case"second":return`${n}秒`;default:return`${n}`}},hu={ordinalNumber:mu,era:ce({values:iu,defaultWidth:"wide"}),quarter:ce({values:lu,defaultWidth:"wide",argumentCallback:e=>Number(e)-1}),month:ce({values:cu,defaultWidth:"wide"}),day:ce({values:du,defaultWidth:"wide"}),dayPeriod:ce({values:uu,defaultWidth:"wide",formattingValues:fu,defaultFormattingWidth:"wide"})},yu=/^第?\d+(年|四半期|月|週|日|時|分|秒)?/i,gu=/\d+/i,pu={narrow:/^(B\.?C\.?|A\.?D\.?)/i,abbreviated:/^(紀元[前後]|西暦)/i,wide:/^(紀元[前後]|西暦)/i},bu={narrow:[/^B/i,/^A/i],any:[/^(紀元前)/i,/^(西暦|紀元後)/i]},xu={narrow:/^[1234]/i,abbreviated:/^Q[1234]/i,wide:/^第[1234一二三四1234]四半期/i},ku={any:[/(1|一|1)/i,/(2|二|2)/i,/(3|三|3)/i,/(4|四|4)/i]},wu={narrow:/^([123456789]|1[012])/,abbreviated:/^([123456789]|1[012])月/i,wide:/^([123456789]|1[012])月/i},vu={any:[/^1\D/,/^2/,/^3/,/^4/,/^5/,/^6/,/^7/,/^8/,/^9/,/^10/,/^11/,/^12/]},_u={narrow:/^[日月火水木金土]/,short:/^[日月火水木金土]/,abbreviated:/^[日月火水木金土]/,wide:/^[日月火水木金土]曜日/},Nu={any:[/^日/,/^月/,/^火/,/^水/,/^木/,/^金/,/^土/]},Su={any:/^(AM|PM|午前|午後|正午|深夜|真夜中|夜|朝)/i},Mu={any:{am:/^(A|午前)/i,pm:/^(P|午後)/i,midnight:/^深夜|真夜中/i,noon:/^正午/i,morning:/^朝/i,afternoon:/^午後/i,evening:/^夜/i,night:/^深夜/i}},ju={ordinalNumber:hn({matchPattern:yu,parsePattern:gu,valueCallback:function(e){return parseInt(e,10)}}),era:de({matchPatterns:pu,defaultMatchWidth:"wide",parsePatterns:bu,defaultParseWidth:"any"}),quarter:de({matchPatterns:xu,defaultMatchWidth:"wide",parsePatterns:ku,defaultParseWidth:"any",valueCallback:e=>e+1}),month:de({matchPatterns:wu,defaultMatchWidth:"wide",parsePatterns:vu,defaultParseWidth:"any"}),day:de({matchPatterns:_u,defaultMatchWidth:"wide",parsePatterns:Nu,defaultParseWidth:"any"}),dayPeriod:de({matchPatterns:Su,defaultMatchWidth:"any",parsePatterns:Mu,defaultParseWidth:"any"})},Du={code:"ja",formatDistance:eu,formatLong:ru,formatRelative:su,localize:hu,match:ju,options:{weekStartsOn:0,firstWeekContainsDate:1}},Cu={lessThanXSeconds:{one:"1초 미만",other:"{{count}}초 미만"},xSeconds:{one:"1초",other:"{{count}}초"},halfAMinute:"30초",lessThanXMinutes:{one:"1분 미만",other:"{{count}}분 미만"},xMinutes:{one:"1분",other:"{{count}}분"},aboutXHours:{one:"약 1시간",other:"약 {{count}}시간"},xHours:{one:"1시간",other:"{{count}}시간"},xDays:{one:"1일",other:"{{count}}일"},aboutXWeeks:{one:"약 1주",other:"약 {{count}}주"},xWeeks:{one:"1주",other:"{{count}}주"},aboutXMonths:{one:"약 1개월",other:"약 {{count}}개월"},xMonths:{one:"1개월",other:"{{count}}개월"},aboutXYears:{one:"약 1년",other:"약 {{count}}년"},xYears:{one:"1년",other:"{{count}}년"},overXYears:{one:"1년 이상",other:"{{count}}년 이상"},almostXYears:{one:"거의 1년",other:"거의 {{count}}년"}},Tu=(e,t,n)=>{let a;const r=Cu[e];return typeof r=="string"?a=r:t===1?a=r.one:a=r.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?a+" 후":a+" 전":a},Pu={full:"y년 M월 d일 EEEE",long:"y년 M월 d일",medium:"y.MM.dd",short:"y.MM.dd"},Ou={full:"a H시 mm분 ss초 zzzz",long:"a H:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},Wu={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},Au={date:Me({formats:Pu,defaultWidth:"full"}),time:Me({formats:Ou,defaultWidth:"full"}),dateTime:Me({formats:Wu,defaultWidth:"full"})},Fu={lastWeek:"'지난' eeee p",yesterday:"'어제' p",today:"'오늘' p",tomorrow:"'내일' p",nextWeek:"'다음' eeee p",other:"P"},Eu=(e,t,n,a)=>Fu[e],$u={narrow:["BC","AD"],abbreviated:["BC","AD"],wide:["기원전","서기"]},Iu={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1분기","2분기","3분기","4분기"]},Ru={narrow:["1","2","3","4","5","6","7","8","9","10","11","12"],abbreviated:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"],wide:["1월","2월","3월","4월","5월","6월","7월","8월","9월","10월","11월","12월"]},Lu={narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],abbreviated:["일","월","화","수","목","금","토"],wide:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},Bu={narrow:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},abbreviated:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},wide:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"}},Yu={narrow:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},abbreviated:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},wide:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"}},zu=(e,t)=>{const n=Number(e);switch(String(t?.unit)){case"minute":case"second":return String(n);case"date":return n+"일";default:return n+"번째"}},Hu={ordinalNumber:zu,era:ce({values:$u,defaultWidth:"wide"}),quarter:ce({values:Iu,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ce({values:Ru,defaultWidth:"wide"}),day:ce({values:Lu,defaultWidth:"wide"}),dayPeriod:ce({values:Bu,defaultWidth:"wide",formattingValues:Yu,defaultFormattingWidth:"wide"})},Uu=/^(\d+)(일|번째)?/i,qu=/\d+/i,Vu={narrow:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(기원전|서기)/i},Ku={any:[/^(bc|기원전)/i,/^(ad|서기)/i]},Gu={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234]사?분기/i},Xu={any:[/1/i,/2/i,/3/i,/4/i]},Qu={narrow:/^(1[012]|[123456789])/,abbreviated:/^(1[012]|[123456789])월/i,wide:/^(1[012]|[123456789])월/i},Ju={any:[/^1월?$/,/^2/,/^3/,/^4/,/^5/,/^6/,/^7/,/^8/,/^9/,/^10/,/^11/,/^12/]},Zu={narrow:/^[일월화수목금토]/,short:/^[일월화수목금토]/,abbreviated:/^[일월화수목금토]/,wide:/^[일월화수목금토]요일/},ef={any:[/^일/,/^월/,/^화/,/^수/,/^목/,/^금/,/^토/]},tf={any:/^(am|pm|오전|오후|자정|정오|아침|저녁|밤)/i},nf={any:{am:/^(am|오전)/i,pm:/^(pm|오후)/i,midnight:/^자정/i,noon:/^정오/i,morning:/^아침/i,afternoon:/^오후/i,evening:/^저녁/i,night:/^밤/i}},af={ordinalNumber:hn({matchPattern:Uu,parsePattern:qu,valueCallback:e=>parseInt(e,10)}),era:de({matchPatterns:Vu,defaultMatchWidth:"wide",parsePatterns:Ku,defaultParseWidth:"any"}),quarter:de({matchPatterns:Gu,defaultMatchWidth:"wide",parsePatterns:Xu,defaultParseWidth:"any",valueCallback:e=>e+1}),month:de({matchPatterns:Qu,defaultMatchWidth:"wide",parsePatterns:Ju,defaultParseWidth:"any"}),day:de({matchPatterns:Zu,defaultMatchWidth:"wide",parsePatterns:ef,defaultParseWidth:"any"}),dayPeriod:de({matchPatterns:tf,defaultMatchWidth:"any",parsePatterns:nf,defaultParseWidth:"any"})},rf={code:"ko",formatDistance:Tu,formatLong:Au,formatRelative:Eu,localize:Hu,match:af,options:{weekStartsOn:0,firstWeekContainsDate:1}},of={lessThanXSeconds:{one:"不到 1 秒",other:"不到 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分钟",lessThanXMinutes:{one:"不到 1 分钟",other:"不到 {{count}} 分钟"},xMinutes:{one:"1 分钟",other:"{{count}} 分钟"},xHours:{one:"1 小时",other:"{{count}} 小时"},aboutXHours:{one:"大约 1 小时",other:"大约 {{count}} 小时"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大约 1 个星期",other:"大约 {{count}} 个星期"},xWeeks:{one:"1 个星期",other:"{{count}} 个星期"},aboutXMonths:{one:"大约 1 个月",other:"大约 {{count}} 个月"},xMonths:{one:"1 个月",other:"{{count}} 个月"},aboutXYears:{one:"大约 1 年",other:"大约 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超过 1 年",other:"超过 {{count}} 年"},almostXYears:{one:"将近 1 年",other:"将近 {{count}} 年"}},sf=(e,t,n)=>{let a;const r=of[e];return typeof r=="string"?a=r:t===1?a=r.one:a=r.other.replace("{{count}}",String(t)),n?.addSuffix?n.comparison&&n.comparison>0?a+"内":a+"前":a},lf={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},cf={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},df={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},uf={date:Me({formats:lf,defaultWidth:"full"}),time:Me({formats:cf,defaultWidth:"full"}),dateTime:Me({formats:df,defaultWidth:"full"})};function Tr(e,t,n){const a="eeee p";return Ud(e,t,n)?a:e.getTime()>t.getTime()?"'下个'"+a:"'上个'"+a}const ff={lastWeek:Tr,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:Tr,other:"PP p"},mf=(e,t,n,a)=>{const r=ff[e];return typeof r=="function"?r(t,n,a):r},hf={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},yf={narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},gf={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},pf={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},bf={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},xf={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},kf=(e,t)=>{const n=Number(e);switch(t?.unit){case"date":return n.toString()+"日";case"hour":return n.toString()+"时";case"minute":return n.toString()+"分";case"second":return n.toString()+"秒";default:return"第 "+n.toString()}},wf={ordinalNumber:kf,era:ce({values:hf,defaultWidth:"wide"}),quarter:ce({values:yf,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ce({values:gf,defaultWidth:"wide"}),day:ce({values:pf,defaultWidth:"wide"}),dayPeriod:ce({values:bf,defaultWidth:"wide",formattingValues:xf,defaultFormattingWidth:"wide"})},vf=/^(第\s*)?\d+(日|时|分|秒)?/i,_f=/\d+/i,Nf={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},Sf={any:[/^(前)/i,/^(公元)/i]},Mf={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},jf={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},Df={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},Cf={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},Tf={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},Pf={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},Of={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},Wf={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},Af={ordinalNumber:hn({matchPattern:vf,parsePattern:_f,valueCallback:e=>parseInt(e,10)}),era:de({matchPatterns:Nf,defaultMatchWidth:"wide",parsePatterns:Sf,defaultParseWidth:"any"}),quarter:de({matchPatterns:Mf,defaultMatchWidth:"wide",parsePatterns:jf,defaultParseWidth:"any",valueCallback:e=>e+1}),month:de({matchPatterns:Df,defaultMatchWidth:"wide",parsePatterns:Cf,defaultParseWidth:"any"}),day:de({matchPatterns:Tf,defaultMatchWidth:"wide",parsePatterns:Pf,defaultParseWidth:"any"}),dayPeriod:de({matchPatterns:Of,defaultMatchWidth:"any",parsePatterns:Wf,defaultParseWidth:"any"})},Ff={code:"zh-CN",formatDistance:sf,formatLong:uf,formatRelative:mf,localize:wf,match:Af,options:{weekStartsOn:1,firstWeekContainsDate:4}},Ef={lessThanXSeconds:{one:"少於 1 秒",other:"少於 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分鐘",lessThanXMinutes:{one:"少於 1 分鐘",other:"少於 {{count}} 分鐘"},xMinutes:{one:"1 分鐘",other:"{{count}} 分鐘"},xHours:{one:"1 小時",other:"{{count}} 小時"},aboutXHours:{one:"大約 1 小時",other:"大約 {{count}} 小時"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大約 1 個星期",other:"大約 {{count}} 個星期"},xWeeks:{one:"1 個星期",other:"{{count}} 個星期"},aboutXMonths:{one:"大約 1 個月",other:"大約 {{count}} 個月"},xMonths:{one:"1 個月",other:"{{count}} 個月"},aboutXYears:{one:"大約 1 年",other:"大約 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超過 1 年",other:"超過 {{count}} 年"},almostXYears:{one:"將近 1 年",other:"將近 {{count}} 年"}},$f=(e,t,n)=>{let a;const r=Ef[e];return typeof r=="string"?a=r:t===1?a=r.one:a=r.other.replace("{{count}}",String(t)),n?.addSuffix?n.comparison&&n.comparison>0?a+"內":a+"前":a},If={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},Rf={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},Lf={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},Bf={date:Me({formats:If,defaultWidth:"full"}),time:Me({formats:Rf,defaultWidth:"full"}),dateTime:Me({formats:Lf,defaultWidth:"full"})},Yf={lastWeek:"'上個'eeee p",yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:"'下個'eeee p",other:"P"},zf=(e,t,n,a)=>Yf[e],Hf={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},Uf={narrow:["1","2","3","4"],abbreviated:["第一刻","第二刻","第三刻","第四刻"],wide:["第一刻鐘","第二刻鐘","第三刻鐘","第四刻鐘"]},qf={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},Vf={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["週日","週一","週二","週三","週四","週五","週六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},Kf={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜間"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜間"}},Gf={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜間"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜間"}},Xf=(e,t)=>{const n=Number(e);switch(t?.unit){case"date":return n+"日";case"hour":return n+"時";case"minute":return n+"分";case"second":return n+"秒";default:return"第 "+n}},Qf={ordinalNumber:Xf,era:ce({values:Hf,defaultWidth:"wide"}),quarter:ce({values:Uf,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ce({values:qf,defaultWidth:"wide"}),day:ce({values:Vf,defaultWidth:"wide"}),dayPeriod:ce({values:Kf,defaultWidth:"wide",formattingValues:Gf,defaultFormattingWidth:"wide"})},Jf=/^(第\s*)?\d+(日|時|分|秒)?/i,Zf=/\d+/i,em={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},tm={any:[/^(前)/i,/^(公元)/i]},nm={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻鐘/i},am={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},rm={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},om={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},sm={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^週[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},im={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},lm={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨)/i},cm={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},dm={ordinalNumber:hn({matchPattern:Jf,parsePattern:Zf,valueCallback:e=>parseInt(e,10)}),era:de({matchPatterns:em,defaultMatchWidth:"wide",parsePatterns:tm,defaultParseWidth:"any"}),quarter:de({matchPatterns:nm,defaultMatchWidth:"wide",parsePatterns:am,defaultParseWidth:"any",valueCallback:e=>e+1}),month:de({matchPatterns:rm,defaultMatchWidth:"wide",parsePatterns:om,defaultParseWidth:"any"}),day:de({matchPatterns:sm,defaultMatchWidth:"wide",parsePatterns:im,defaultParseWidth:"any"}),dayPeriod:de({matchPatterns:lm,defaultMatchWidth:"any",parsePatterns:cm,defaultParseWidth:"any"})},um={code:"zh-TW",formatDistance:$f,formatLong:Bf,formatRelative:zf,localize:Qf,match:dm,options:{weekStartsOn:1,firstWeekContainsDate:4}},Lo={...dt,labels:{labelDayButton:(e,t,n,a)=>{let r;a&&typeof a.format=="function"?r=a.format.bind(a):r=(l,i)=>Ke(l,i,{locale:dt,...n});let o=r(e,"PPPP");return t.today&&(o=`Today, ${o}`),t.selected&&(o=`${o}, selected`),o},labelMonthDropdown:"Choose the Month",labelNext:"Go to the Next Month",labelPrevious:"Go to the Previous Month",labelWeekNumber:e=>`Week ${e}`,labelYearDropdown:"Choose the Year",labelGrid:(e,t,n)=>{let a;return n&&typeof n.format=="function"?a=n.format.bind(n):a=(r,o)=>Ke(r,o,{locale:dt,...t}),a(e,"LLLL yyyy")},labelGridcell:(e,t,n,a)=>{let r;a&&typeof a.format=="function"?r=a.format.bind(a):r=(l,i)=>Ke(l,i,{locale:dt,...n});let o=r(e,"PPPP");return t?.today&&(o=`Today, ${o}`),o},labelNav:"Navigation bar",labelWeekNumberHeader:"Week Number",labelWeekday:(e,t,n)=>{let a;return n&&typeof n.format=="function"?a=n.format.bind(n):a=(r,o)=>Ke(r,o,{locale:dt,...t}),a(e,"cccc")}}};class Pe{constructor(t,n){this.Date=Date,this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?ve.tz(this.options.timeZone):new this.Date,this.newDate=(a,r,o)=>this.overrides?.newDate?this.overrides.newDate(a,r,o):this.options.timeZone?new ve(a,r,o,this.options.timeZone):new Date(a,r,o),this.addDays=(a,r)=>this.overrides?.addDays?this.overrides.addDays(a,r):Co(a,r),this.addMonths=(a,r)=>this.overrides?.addMonths?this.overrides.addMonths(a,r):To(a,r),this.addWeeks=(a,r)=>this.overrides?.addWeeks?this.overrides.addWeeks(a,r):Ac(a,r),this.addYears=(a,r)=>this.overrides?.addYears?this.overrides.addYears(a,r):Fc(a,r),this.differenceInCalendarDays=(a,r)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(a,r):Ta(a,r),this.differenceInCalendarMonths=(a,r)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(a,r):Wo(a,r),this.eachMonthOfInterval=a=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(a):Bc(a),this.eachYearOfInterval=a=>{const r=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(a):Hc(a),o=new Set(r.map(i=>this.getYear(i)));if(o.size===r.length)return r;const l=[];return o.forEach(i=>{l.push(new Date(i,0,1))}),l},this.endOfBroadcastWeek=a=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(a):Jd(a,this),this.endOfISOWeek=a=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(a):Uc(a),this.endOfMonth=a=>this.overrides?.endOfMonth?this.overrides.endOfMonth(a):Lc(a),this.endOfWeek=(a,r)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(a,r):Eo(a,this.options),this.endOfYear=a=>this.overrides?.endOfYear?this.overrides.endOfYear(a):zc(a),this.format=(a,r,o)=>{const l=this.overrides?.format?this.overrides.format(a,r,this.options):Ke(a,r,this.options);return this.options.numerals&&this.options.numerals!=="latn"?this.replaceDigits(l):l},this.getISOWeek=a=>this.overrides?.getISOWeek?this.overrides.getISOWeek(a):Pa(a),this.getMonth=(a,r)=>this.overrides?.getMonth?this.overrides.getMonth(a,this.options):Bd(a,this.options),this.getYear=(a,r)=>this.overrides?.getYear?this.overrides.getYear(a,this.options):Yd(a,this.options),this.getWeek=(a,r)=>this.overrides?.getWeek?this.overrides.getWeek(a,this.options):Oa(a,this.options),this.isAfter=(a,r)=>this.overrides?.isAfter?this.overrides.isAfter(a,r):zd(a,r),this.isBefore=(a,r)=>this.overrides?.isBefore?this.overrides.isBefore(a,r):Hd(a,r),this.isDate=a=>this.overrides?.isDate?this.overrides.isDate(a):Oo(a),this.isSameDay=(a,r)=>this.overrides?.isSameDay?this.overrides.isSameDay(a,r):Ic(a,r),this.isSameMonth=(a,r)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(a,r):qd(a,r),this.isSameYear=(a,r)=>this.overrides?.isSameYear?this.overrides.isSameYear(a,r):Vd(a,r),this.max=a=>this.overrides?.max?this.overrides.max(a):Ec(a),this.min=a=>this.overrides?.min?this.overrides.min(a):$c(a),this.setMonth=(a,r)=>this.overrides?.setMonth?this.overrides.setMonth(a,r):Kd(a,r),this.setYear=(a,r)=>this.overrides?.setYear?this.overrides.setYear(a,r):Gd(a,r),this.startOfBroadcastWeek=(a,r)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(a,this):Ro(a,this),this.startOfDay=a=>this.overrides?.startOfDay?this.overrides.startOfDay(a):cn(a),this.startOfISOWeek=a=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(a):ln(a),this.startOfMonth=a=>this.overrides?.startOfMonth?this.overrides.startOfMonth(a):Yc(a),this.startOfWeek=(a,r)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(a,this.options):ft(a,this.options),this.startOfYear=a=>this.overrides?.startOfYear?this.overrides.startOfYear(a):Fo(a),this.options={locale:Lo,...t},this.overrides=n}getDigitMap(){const{numerals:t="latn"}=this.options,n=new Intl.NumberFormat("en-US",{numberingSystem:t}),a={};for(let r=0;r<10;r++)a[r.toString()]=n.format(r);return a}replaceDigits(t){const n=this.getDigitMap();return t.replace(/\d/g,a=>n[a]||a)}formatNumber(t){return this.replaceDigits(t.toString())}getMonthYearOrder(){const t=this.options.locale?.code;return t&&Pe.yearFirstLocales.has(t)?"year-first":"month-first"}formatMonthYear(t){const{locale:n,timeZone:a,numerals:r}=this.options,o=n?.code;if(o&&Pe.yearFirstLocales.has(o))try{return new Intl.DateTimeFormat(o,{month:"long",year:"numeric",timeZone:a,numberingSystem:r}).format(t)}catch{}const l=this.getMonthYearOrder()==="year-first"?"y LLLL":"LLLL y";return this.format(t,l)}}Pe.yearFirstLocales=new Set(["eu","hu","ja","ja-Hira","ja-JP","ko","ko-KR","lt","lt-LT","lv","lv-LV","mn","mn-MN","zh","zh-CN","zh-HK","zh-TW"]);const Ge=new Pe;class Bo{constructor(t,n,a=Ge){this.date=t,this.displayMonth=n,this.outside=!!(n&&!a.isSameMonth(t,n)),this.dateLib=a,this.isoDate=a.format(t,"yyyy-MM-dd"),this.displayMonthId=a.format(n,"yyyy-MM"),this.dateMonthId=a.format(t,"yyyy-MM")}isEqualTo(t){return this.dateLib.isSameDay(t.date,this.date)&&this.dateLib.isSameMonth(t.displayMonth,this.displayMonth)}}class fm{constructor(t,n){this.date=t,this.weeks=n}}class mm{constructor(t,n){this.days=n,this.weekNumber=t}}function hm(e){return W.createElement("button",{...e})}function ym(e){return W.createElement("span",{...e})}function gm(e){const{size:t=24,orientation:n="left",className:a}=e;return W.createElement("svg",{className:a,width:t,height:t,viewBox:"0 0 24 24"},n==="up"&&W.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),n==="down"&&W.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),n==="left"&&W.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),n==="right"&&W.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function pm(e){const{day:t,modifiers:n,...a}=e;return W.createElement("td",{...a})}function bm(e){const{day:t,modifiers:n,...a}=e,r=W.useRef(null);return W.useEffect(()=>{n.focused&&r.current?.focus()},[n.focused]),W.createElement("button",{ref:r,...a})}var V;(function(e){e.Root="root",e.Chevron="chevron",e.Day="day",e.DayButton="day_button",e.CaptionLabel="caption_label",e.Dropdowns="dropdowns",e.Dropdown="dropdown",e.DropdownRoot="dropdown_root",e.Footer="footer",e.MonthGrid="month_grid",e.MonthCaption="month_caption",e.MonthsDropdown="months_dropdown",e.Month="month",e.Months="months",e.Nav="nav",e.NextMonthButton="button_next",e.PreviousMonthButton="button_previous",e.Week="week",e.Weeks="weeks",e.Weekday="weekday",e.Weekdays="weekdays",e.WeekNumber="week_number",e.WeekNumberHeader="week_number_header",e.YearsDropdown="years_dropdown"})(V||(V={}));var fe;(function(e){e.disabled="disabled",e.hidden="hidden",e.outside="outside",e.focused="focused",e.today="today"})(fe||(fe={}));var Le;(function(e){e.range_end="range_end",e.range_middle="range_middle",e.range_start="range_start",e.selected="selected"})(Le||(Le={}));var Te;(function(e){e.weeks_before_enter="weeks_before_enter",e.weeks_before_exit="weeks_before_exit",e.weeks_after_enter="weeks_after_enter",e.weeks_after_exit="weeks_after_exit",e.caption_after_enter="caption_after_enter",e.caption_after_exit="caption_after_exit",e.caption_before_enter="caption_before_enter",e.caption_before_exit="caption_before_exit"})(Te||(Te={}));function xm(e){const{options:t,className:n,components:a,classNames:r,...o}=e,l=[r[V.Dropdown],n].join(" "),i=t?.find(({value:c})=>c===o.value);return W.createElement("span",{"data-disabled":o.disabled,className:r[V.DropdownRoot]},W.createElement(a.Select,{className:l,...o},t?.map(({value:c,label:d,disabled:u})=>W.createElement(a.Option,{key:c,value:c,disabled:u},d))),W.createElement("span",{className:r[V.CaptionLabel],"aria-hidden":!0},i?.label,W.createElement(a.Chevron,{orientation:"down",size:18,className:r[V.Chevron]})))}function km(e){return W.createElement("div",{...e})}function wm(e){return W.createElement("div",{...e})}function vm(e){const{calendarMonth:t,displayIndex:n,...a}=e;return W.createElement("div",{...a},e.children)}function _m(e){const{calendarMonth:t,displayIndex:n,...a}=e;return W.createElement("div",{...a})}function Nm(e){return W.createElement("table",{...e})}function Sm(e){return W.createElement("div",{...e})}const Yo=y.createContext(void 0);function yn(){const e=y.useContext(Yo);if(e===void 0)throw new Error("useDayPicker() must be used within a custom component.");return e}function Mm(e){const{components:t}=yn();return W.createElement(t.Dropdown,{...e})}function jm(e){const{onPreviousClick:t,onNextClick:n,previousMonth:a,nextMonth:r,...o}=e,{components:l,classNames:i,labels:{labelPrevious:c,labelNext:d}}=yn(),u=y.useCallback(m=>{r&&n?.(m)},[r,n]),f=y.useCallback(m=>{a&&t?.(m)},[a,t]);return W.createElement("nav",{...o},W.createElement(l.PreviousMonthButton,{type:"button",className:i[V.PreviousMonthButton],tabIndex:a?void 0:-1,"aria-disabled":a?void 0:!0,"aria-label":c(a),onClick:f},W.createElement(l.Chevron,{disabled:a?void 0:!0,className:i[V.Chevron],orientation:"left"})),W.createElement(l.NextMonthButton,{type:"button",className:i[V.NextMonthButton],tabIndex:r?void 0:-1,"aria-disabled":r?void 0:!0,"aria-label":d(r),onClick:u},W.createElement(l.Chevron,{disabled:r?void 0:!0,orientation:"right",className:i[V.Chevron]})))}function Dm(e){const{components:t}=yn();return W.createElement(t.Button,{...e})}function Cm(e){return W.createElement("option",{...e})}function Tm(e){const{components:t}=yn();return W.createElement(t.Button,{...e})}function Pm(e){const{rootRef:t,...n}=e;return W.createElement("div",{...n,ref:t})}function Om(e){return W.createElement("select",{...e})}function Wm(e){const{week:t,...n}=e;return W.createElement("tr",{...n})}function Am(e){return W.createElement("th",{...e})}function Fm(e){return W.createElement("thead",{"aria-hidden":!0},W.createElement("tr",{...e}))}function Em(e){const{week:t,...n}=e;return W.createElement("th",{...n})}function $m(e){return W.createElement("th",{...e})}function Im(e){return W.createElement("tbody",{...e})}function Rm(e){const{components:t}=yn();return W.createElement(t.Dropdown,{...e})}const Lm=Object.freeze(Object.defineProperty({__proto__:null,Button:hm,CaptionLabel:ym,Chevron:gm,Day:pm,DayButton:bm,Dropdown:xm,DropdownNav:km,Footer:wm,Month:vm,MonthCaption:_m,MonthGrid:Nm,Months:Sm,MonthsDropdown:Mm,Nav:jm,NextMonthButton:Dm,Option:Cm,PreviousMonthButton:Tm,Root:Pm,Select:Om,Week:Wm,WeekNumber:Em,WeekNumberHeader:$m,Weekday:Am,Weekdays:Fm,Weeks:Im,YearsDropdown:Rm},Symbol.toStringTag,{value:"Module"}));function et(e,t,n=!1,a=Ge){let{from:r,to:o}=e;const{differenceInCalendarDays:l,isSameDay:i}=a;return r&&o?(l(o,r)<0&&([r,o]=[o,r]),l(t,r)>=(n?1:0)&&l(o,t)>=(n?1:0)):!n&&o?i(o,t):!n&&r?i(r,t):!1}function Wa(e){return!!(e&&typeof e=="object"&&"before"in e&&"after"in e)}function Rn(e){return!!(e&&typeof e=="object"&&"from"in e)}function Aa(e){return!!(e&&typeof e=="object"&&"after"in e)}function Fa(e){return!!(e&&typeof e=="object"&&"before"in e)}function zo(e){return!!(e&&typeof e=="object"&&"dayOfWeek"in e)}function Ho(e,t){return Array.isArray(e)&&e.every(t.isDate)}function tt(e,t,n=Ge){const a=Array.isArray(t)?t:[t],{isSameDay:r,differenceInCalendarDays:o,isAfter:l}=n;return a.some(i=>{if(typeof i=="boolean")return i;if(n.isDate(i))return r(e,i);if(Ho(i,n))return i.some(c=>r(e,c));if(Rn(i))return et(i,e,!1,n);if(zo(i))return Array.isArray(i.dayOfWeek)?i.dayOfWeek.includes(e.getDay()):i.dayOfWeek===e.getDay();if(Wa(i)){const c=o(i.before,e),d=o(i.after,e),u=c>0,f=d<0;return l(i.before,i.after)?f&&u:u||f}return Aa(i)?o(e,i.after)>0:Fa(i)?o(i.before,e)>0:typeof i=="function"?i(e):!1})}function Bm(e,t,n,a,r){const{disabled:o,hidden:l,modifiers:i,showOutsideDays:c,broadcastCalendar:d,today:u=r.today()}=t,{isSameDay:f,isSameMonth:m,startOfMonth:h,isBefore:p,endOfMonth:b,isAfter:w}=r,v=n&&h(n),k=a&&b(a),x={[fe.focused]:[],[fe.outside]:[],[fe.disabled]:[],[fe.hidden]:[],[fe.today]:[]},M={};for(const T of e){const{date:j,displayMonth:E}=T,N=!!(E&&!m(j,E)),O=!!(v&&p(j,v)),P=!!(k&&w(j,k)),A=!!(o&&tt(j,o,r)),X=!!(l&&tt(j,l,r))||O||P||!d&&!c&&N||d&&c===!1&&N,L=f(j,u);N&&x.outside.push(T),A&&x.disabled.push(T),X&&x.hidden.push(T),L&&x.today.push(T),i&&Object.keys(i).forEach(F=>{const D=i?.[F];D&&tt(j,D,r)&&(M[F]?M[F].push(T):M[F]=[T])})}return T=>{const j={[fe.focused]:!1,[fe.disabled]:!1,[fe.hidden]:!1,[fe.outside]:!1,[fe.today]:!1},E={};for(const N in x){const O=x[N];j[N]=O.some(P=>P===T)}for(const N in M)E[N]=M[N].some(O=>O===T);return{...j,...E}}}function Ym(e,t,n={}){return Object.entries(e).filter(([,r])=>r===!0).reduce((r,[o])=>(n[o]?r.push(n[o]):t[fe[o]]?r.push(t[fe[o]]):t[Le[o]]&&r.push(t[Le[o]]),r),[t[V.Day]])}function zm(e){return{...Lm,...e}}function Hm(e){const t={"data-mode":e.mode??void 0,"data-required":"required"in e?e.required:void 0,"data-multiple-months":e.numberOfMonths&&e.numberOfMonths>1||void 0,"data-week-numbers":e.showWeekNumber||void 0,"data-broadcast-calendar":e.broadcastCalendar||void 0,"data-nav-layout":e.navLayout||void 0};return Object.entries(e).forEach(([n,a])=>{n.startsWith("data-")&&(t[n]=a)}),t}function Um(){const e={};for(const t in V)e[V[t]]=`rdp-${V[t]}`;for(const t in fe)e[fe[t]]=`rdp-${fe[t]}`;for(const t in Le)e[Le[t]]=`rdp-${Le[t]}`;for(const t in Te)e[Te[t]]=`rdp-${Te[t]}`;return e}function Uo(e,t,n){return(n??new Pe(t)).formatMonthYear(e)}const qm=Uo;function Vm(e,t,n){return(n??new Pe(t)).format(e,"d")}function Km(e,t=Ge){return t.format(e,"LLLL")}function Gm(e,t,n){return(n??new Pe(t)).format(e,"cccccc")}function Xm(e,t=Ge){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function Qm(){return""}function qo(e,t=Ge){return t.format(e,"yyyy")}const Jm=qo,Zm=Object.freeze(Object.defineProperty({__proto__:null,formatCaption:Uo,formatDay:Vm,formatMonthCaption:qm,formatMonthDropdown:Km,formatWeekNumber:Xm,formatWeekNumberHeader:Qm,formatWeekdayName:Gm,formatYearCaption:Jm,formatYearDropdown:qo},Symbol.toStringTag,{value:"Module"}));function eh(e){return e?.formatMonthCaption&&!e.formatCaption&&(e.formatCaption=e.formatMonthCaption),e?.formatYearCaption&&!e.formatYearDropdown&&(e.formatYearDropdown=e.formatYearCaption),{...Zm,...e}}function Ea(e,t,n,a){let r=(a??new Pe(n)).format(e,"PPPP");return t.today&&(r=`Today, ${r}`),t.selected&&(r=`${r}, selected`),r}const th=Ea;function $a(e,t,n){return(n??new Pe(t)).formatMonthYear(e)}const nh=$a;function Vo(e,t,n,a){let r=(a??new Pe(n)).format(e,"PPPP");return t?.today&&(r=`Today, ${r}`),r}function Ko(e){return"Choose the Month"}function Go(){return""}const ah="Go to the Next Month";function Xo(e,t){return ah}function Qo(e){return"Go to the Previous Month"}function Jo(e,t,n){return(n??new Pe(t)).format(e,"cccc")}function Zo(e,t){return`Week ${e}`}function es(e){return"Week Number"}function ts(e){return"Choose the Year"}const rh=Object.freeze(Object.defineProperty({__proto__:null,labelCaption:nh,labelDay:th,labelDayButton:Ea,labelGrid:$a,labelGridcell:Vo,labelMonthDropdown:Ko,labelNav:Go,labelNext:Xo,labelPrevious:Qo,labelWeekNumber:Zo,labelWeekNumberHeader:es,labelWeekday:Jo,labelYearDropdown:ts},Symbol.toStringTag,{value:"Module"})),Ie=(e,t,n)=>t||(n?typeof n=="function"?n:(...a)=>n:e);function oh(e,t){const n=t.locale?.labels??{};return{...rh,...e??{},labelDayButton:Ie(Ea,e?.labelDayButton,n.labelDayButton),labelMonthDropdown:Ie(Ko,e?.labelMonthDropdown,n.labelMonthDropdown),labelNext:Ie(Xo,e?.labelNext,n.labelNext),labelPrevious:Ie(Qo,e?.labelPrevious,n.labelPrevious),labelWeekNumber:Ie(Zo,e?.labelWeekNumber,n.labelWeekNumber),labelYearDropdown:Ie(ts,e?.labelYearDropdown,n.labelYearDropdown),labelGrid:Ie($a,e?.labelGrid,n.labelGrid),labelGridcell:Ie(Vo,e?.labelGridcell,n.labelGridcell),labelNav:Ie(Go,e?.labelNav,n.labelNav),labelWeekNumberHeader:Ie(es,e?.labelWeekNumberHeader,n.labelWeekNumberHeader),labelWeekday:Ie(Jo,e?.labelWeekday,n.labelWeekday)}}function sh(e,t,n,a,r){const{startOfMonth:o,startOfYear:l,endOfYear:i,eachMonthOfInterval:c,getMonth:d}=r;return c({start:l(e),end:i(e)}).map(m=>{const h=a.formatMonthDropdown(m,r),p=d(m),b=t&&m<o(t)||n&&m>o(n)||!1;return{value:p,label:h,disabled:b}})}function ih(e,t={},n={}){let a={...t?.[V.Day]};return Object.entries(e).filter(([,r])=>r===!0).forEach(([r])=>{a={...a,...n?.[r]}}),a}function lh(e,t,n,a){const r=a??e.today(),o=n?e.startOfBroadcastWeek(r,e):t?e.startOfISOWeek(r):e.startOfWeek(r),l=[];for(let i=0;i<7;i++){const c=e.addDays(o,i);l.push(c)}return l}function ch(e,t,n,a,r=!1){if(!e||!t)return;const{startOfYear:o,endOfYear:l,eachYearOfInterval:i,getYear:c}=a,d=o(e),u=l(t),f=i({start:d,end:u});return r&&f.reverse(),f.map(m=>{const h=n.formatYearDropdown(m,a);return{value:c(m),label:h,disabled:!1}})}function dh(e,t={}){const{weekStartsOn:n,locale:a}=t,r=n??a?.options?.weekStartsOn??0,o=i=>{const c=typeof i=="number"||typeof i=="string"?new Date(i):i;return new ve(c.getFullYear(),c.getMonth(),c.getDate(),12,0,0,e)},l=i=>{const c=o(i);return new Date(c.getFullYear(),c.getMonth(),c.getDate(),0,0,0,0)};return{today:()=>o(ve.tz(e)),newDate:(i,c,d)=>new ve(i,c,d,12,0,0,e),startOfDay:i=>o(i),startOfWeek:(i,c)=>{const d=o(i),u=c?.weekStartsOn??r,f=(d.getDay()-u+7)%7;return d.setDate(d.getDate()-f),d},startOfISOWeek:i=>{const c=o(i),d=(c.getDay()-1+7)%7;return c.setDate(c.getDate()-d),c},startOfMonth:i=>{const c=o(i);return c.setDate(1),c},startOfYear:i=>{const c=o(i);return c.setMonth(0,1),c},endOfWeek:(i,c)=>{const d=o(i),m=(((c?.weekStartsOn??r)+6)%7-d.getDay()+7)%7;return d.setDate(d.getDate()+m),d},endOfISOWeek:i=>{const c=o(i),d=(7-c.getDay())%7;return c.setDate(c.getDate()+d),c},endOfMonth:i=>{const c=o(i);return c.setMonth(c.getMonth()+1,0),c},endOfYear:i=>{const c=o(i);return c.setMonth(11,31),c},eachMonthOfInterval:i=>{const c=o(i.start),d=o(i.end),u=[],f=new ve(c.getFullYear(),c.getMonth(),1,12,0,0,e),m=d.getFullYear()*12+d.getMonth();for(;f.getFullYear()*12+f.getMonth()<=m;)u.push(new ve(f,e)),f.setMonth(f.getMonth()+1,1);return u},addDays:(i,c)=>{const d=o(i);return d.setDate(d.getDate()+c),d},addWeeks:(i,c)=>{const d=o(i);return d.setDate(d.getDate()+c*7),d},addMonths:(i,c)=>{const d=o(i);return d.setMonth(d.getMonth()+c),d},addYears:(i,c)=>{const d=o(i);return d.setFullYear(d.getFullYear()+c),d},eachYearOfInterval:i=>{const c=o(i.start),d=o(i.end),u=[],f=new ve(c.getFullYear(),0,1,12,0,0,e);for(;f.getFullYear()<=d.getFullYear();)u.push(new ve(f,e)),f.setFullYear(f.getFullYear()+1,0,1);return u},getWeek:(i,c)=>{const d=l(i);return Oa(d,{weekStartsOn:c?.weekStartsOn??r,firstWeekContainsDate:c?.firstWeekContainsDate??a?.options?.firstWeekContainsDate??1})},getISOWeek:i=>{const c=l(i);return Pa(c)},differenceInCalendarDays:(i,c)=>{const d=l(i),u=l(c);return Ta(d,u)},differenceInCalendarMonths:(i,c)=>{const d=l(i),u=l(c);return Wo(d,u)}}}const gn=e=>e instanceof HTMLElement?e:null,ta=e=>[...e.querySelectorAll("[data-animated-month]")??[]],uh=e=>gn(e.querySelector("[data-animated-month]")),na=e=>gn(e.querySelector("[data-animated-caption]")),aa=e=>gn(e.querySelector("[data-animated-weeks]")),fh=e=>gn(e.querySelector("[data-animated-nav]")),mh=e=>gn(e.querySelector("[data-animated-weekdays]"));function hh(e,t,{classNames:n,months:a,focused:r,dateLib:o}){const l=y.useRef(null),i=y.useRef(a),c=y.useRef(!1);y.useLayoutEffect(()=>{const d=i.current;if(i.current=a,!t||!e.current||!(e.current instanceof HTMLElement)||a.length===0||d.length===0||a.length!==d.length)return;const u=o.isSameMonth(a[0].date,d[0].date),f=o.isAfter(a[0].date,d[0].date),m=f?n[Te.caption_after_enter]:n[Te.caption_before_enter],h=f?n[Te.weeks_after_enter]:n[Te.weeks_before_enter],p=l.current,b=e.current.cloneNode(!0);if(b instanceof HTMLElement?(ta(b).forEach(x=>{if(!(x instanceof HTMLElement))return;const M=uh(x);M&&x.contains(M)&&x.removeChild(M);const T=na(x);T&&T.classList.remove(m);const j=aa(x);j&&j.classList.remove(h)}),l.current=b):l.current=null,c.current||u||r)return;const w=p instanceof HTMLElement?ta(p):[],v=ta(e.current);if(v?.every(k=>k instanceof HTMLElement)&&w&&w.every(k=>k instanceof HTMLElement)){c.current=!0,e.current.style.isolation="isolate";const k=fh(e.current);k&&(k.style.zIndex="1"),v.forEach((x,M)=>{const T=w[M];if(!T)return;x.style.position="relative",x.style.overflow="hidden";const j=na(x);j&&j.classList.add(m);const E=aa(x);E&&E.classList.add(h);const N=()=>{c.current=!1,e.current&&(e.current.style.isolation=""),k&&(k.style.zIndex=""),j&&j.classList.remove(m),E&&E.classList.remove(h),x.style.position="",x.style.overflow="",x.contains(T)&&x.removeChild(T)};T.style.pointerEvents="none",T.style.position="absolute",T.style.overflow="hidden",T.setAttribute("aria-hidden","true");const O=mh(T);O&&(O.style.opacity="0");const P=na(T);P&&(P.classList.add(f?n[Te.caption_before_exit]:n[Te.caption_after_exit]),P.addEventListener("animationend",N));const A=aa(T);A&&A.classList.add(f?n[Te.weeks_before_exit]:n[Te.weeks_after_exit]),x.insertBefore(T,x.firstChild)})}})}function yh(e,t,n,a){const r=e[0],o=e[e.length-1],{ISOWeek:l,fixedWeeks:i,broadcastCalendar:c}=n??{},{addDays:d,differenceInCalendarDays:u,differenceInCalendarMonths:f,endOfBroadcastWeek:m,endOfISOWeek:h,endOfMonth:p,endOfWeek:b,isAfter:w,startOfBroadcastWeek:v,startOfISOWeek:k,startOfWeek:x}=a,M=c?v(r,a):l?k(r):x(r),T=c?m(o):l?h(p(o)):b(p(o)),j=t&&(c?m(t):l?h(t):b(t)),E=j&&w(T,j)?j:T,N=u(E,M),O=f(o,r)+1,P=[];for(let L=0;L<=N;L++){const F=d(M,L);P.push(F)}const X=(c?35:42)*O;if(i&&P.length<X){const L=X-P.length;for(let F=0;F<L;F++){const D=d(P[P.length-1],1);P.push(D)}}return P}function gh(e){const t=[];return e.reduce((n,a)=>{const r=a.weeks.reduce((o,l)=>o.concat(l.days.slice()),t.slice());return n.concat(r.slice())},t.slice())}function ph(e,t,n,a){const{numberOfMonths:r=1}=n,o=[];for(let l=0;l<r;l++){const i=a.addMonths(e,l);if(t&&i>t)break;o.push(i)}return o}function Pr(e,t,n,a){const{month:r,defaultMonth:o,today:l=a.today(),numberOfMonths:i=1}=e;let c=r||o||l;const{differenceInCalendarMonths:d,addMonths:u,startOfMonth:f}=a;if(n&&d(n,c)<i-1){const m=-1*(i-1);c=u(n,m)}return t&&d(c,t)<0&&(c=t),f(c)}function bh(e,t,n,a){const{addDays:r,endOfBroadcastWeek:o,endOfISOWeek:l,endOfMonth:i,endOfWeek:c,getISOWeek:d,getWeek:u,startOfBroadcastWeek:f,startOfISOWeek:m,startOfWeek:h}=a,p=e.reduce((b,w)=>{const v=n.broadcastCalendar?f(w,a):n.ISOWeek?m(w):h(w),k=n.broadcastCalendar?o(w):n.ISOWeek?l(i(w)):c(i(w)),x=t.filter(E=>E>=v&&E<=k),M=n.broadcastCalendar?35:42;if(n.fixedWeeks&&x.length<M){const E=t.filter(N=>{const O=M-x.length;return N>k&&N<=r(k,O)});x.push(...E)}const T=x.reduce((E,N)=>{const O=n.ISOWeek?d(N):u(N),P=E.find(X=>X.weekNumber===O),A=new Bo(N,w,a);return P?P.days.push(A):E.push(new mm(O,[A])),E},[]),j=new fm(w,T);return b.push(j),b},[]);return n.reverseMonths?p.reverse():p}function xh(e,t){let{startMonth:n,endMonth:a}=e;const{startOfYear:r,startOfDay:o,startOfMonth:l,endOfMonth:i,addYears:c,endOfYear:d,newDate:u,today:f}=t,{fromYear:m,toYear:h,fromMonth:p,toMonth:b}=e;!n&&p&&(n=p),!n&&m&&(n=t.newDate(m,0,1)),!a&&b&&(a=b),!a&&h&&(a=u(h,11,31));const w=e.captionLayout==="dropdown"||e.captionLayout==="dropdown-years";return n?n=l(n):m?n=u(m,0,1):!n&&w&&(n=r(c(e.today??f(),-100))),a?a=i(a):h?a=u(h,11,31):!a&&w&&(a=d(e.today??f())),[n&&o(n),a&&o(a)]}function kh(e,t,n,a){if(n.disableNavigation)return;const{pagedNavigation:r,numberOfMonths:o=1}=n,{startOfMonth:l,addMonths:i,differenceInCalendarMonths:c}=a,d=r?o:1,u=l(e);if(!t)return i(u,d);if(!(c(t,e)<o))return i(u,d)}function wh(e,t,n,a){if(n.disableNavigation)return;const{pagedNavigation:r,numberOfMonths:o}=n,{startOfMonth:l,addMonths:i,differenceInCalendarMonths:c}=a,d=r?o??1:1,u=l(e);if(!t)return i(u,-d);if(!(c(u,t)<=0))return i(u,-d)}function vh(e){const t=[];return e.reduce((n,a)=>n.concat(a.weeks.slice()),t.slice())}function Ln(e,t){const[n,a]=y.useState(e);return[t===void 0?n:t,a]}function _h(e,t){const[n,a]=xh(e,t),{startOfMonth:r,endOfMonth:o}=t,l=Pr(e,n,a,t),[i,c]=Ln(l,e.month?l:void 0);y.useEffect(()=>{const M=Pr(e,n,a,t);c(M)},[e.timeZone]);const{months:d,weeks:u,days:f,previousMonth:m,nextMonth:h}=y.useMemo(()=>{const M=ph(i,a,{numberOfMonths:e.numberOfMonths},t),T=yh(M,e.endMonth?o(e.endMonth):void 0,{ISOWeek:e.ISOWeek,fixedWeeks:e.fixedWeeks,broadcastCalendar:e.broadcastCalendar},t),j=bh(M,T,{broadcastCalendar:e.broadcastCalendar,fixedWeeks:e.fixedWeeks,ISOWeek:e.ISOWeek,reverseMonths:e.reverseMonths},t),E=vh(j),N=gh(j),O=wh(i,n,e,t),P=kh(i,a,e,t);return{months:j,weeks:E,days:N,previousMonth:O,nextMonth:P}},[t,i.getTime(),a?.getTime(),n?.getTime(),e.disableNavigation,e.broadcastCalendar,e.endMonth?.getTime(),e.fixedWeeks,e.ISOWeek,e.numberOfMonths,e.pagedNavigation,e.reverseMonths]),{disableNavigation:p,onMonthChange:b}=e,w=M=>u.some(T=>T.days.some(j=>j.isEqualTo(M))),v=M=>{if(p)return;let T=r(M);n&&T<r(n)&&(T=r(n)),a&&T>r(a)&&(T=r(a)),c(T),b?.(T)};return{months:d,weeks:u,days:f,navStart:n,navEnd:a,previousMonth:m,nextMonth:h,goToMonth:v,goToDay:M=>{w(M)||v(M.date)}}}var Ue;(function(e){e[e.Today=0]="Today",e[e.Selected=1]="Selected",e[e.LastFocused=2]="LastFocused",e[e.FocusedModifier=3]="FocusedModifier"})(Ue||(Ue={}));function Or(e){return!e[fe.disabled]&&!e[fe.hidden]&&!e[fe.outside]}function Nh(e,t,n,a){let r,o=-1;for(const l of e){const i=t(l);Or(i)&&(i[fe.focused]&&o<Ue.FocusedModifier?(r=l,o=Ue.FocusedModifier):a?.isEqualTo(l)&&o<Ue.LastFocused?(r=l,o=Ue.LastFocused):n(l.date)&&o<Ue.Selected?(r=l,o=Ue.Selected):i[fe.today]&&o<Ue.Today&&(r=l,o=Ue.Today))}return r||(r=e.find(l=>Or(t(l)))),r}function Sh(e,t,n,a,r,o,l){const{ISOWeek:i,broadcastCalendar:c}=o,{addDays:d,addMonths:u,addWeeks:f,addYears:m,endOfBroadcastWeek:h,endOfISOWeek:p,endOfWeek:b,max:w,min:v,startOfBroadcastWeek:k,startOfISOWeek:x,startOfWeek:M}=l;let j={day:d,week:f,month:u,year:m,startOfWeek:E=>c?k(E,l):i?x(E):M(E),endOfWeek:E=>c?h(E):i?p(E):b(E)}[e](n,t==="after"?1:-1);return t==="before"&&a?j=w([a,j]):t==="after"&&r&&(j=v([r,j])),j}function ns(e,t,n,a,r,o,l,i=0){if(i>365)return;const c=Sh(e,t,n.date,a,r,o,l),d=!!(o.disabled&&tt(c,o.disabled,l)),u=!!(o.hidden&&tt(c,o.hidden,l)),f=c,m=new Bo(c,f,l);return!d&&!u?m:ns(e,t,m,a,r,o,l,i+1)}function Mh(e,t,n,a,r){const{autoFocus:o}=e,[l,i]=y.useState(),c=Nh(t.days,n,a||(()=>!1),l),[d,u]=y.useState(o?c:void 0);return{isFocusTarget:b=>!!c?.isEqualTo(b),setFocused:u,focused:d,blur:()=>{i(d),u(void 0)},moveFocus:(b,w)=>{if(!d)return;const v=ns(b,w,d,t.navStart,t.navEnd,e,r);v&&(e.disableNavigation&&!t.days.some(x=>x.isEqualTo(v))||(t.goToDay(v),u(v)))}}}function jh(e,t){const{selected:n,required:a,onSelect:r}=e,[o,l]=Ln(n,r?n:void 0),i=r?n:o,{isSameDay:c}=t,d=h=>i?.some(p=>c(p,h))??!1,{min:u,max:f}=e;return{selected:i,select:(h,p,b)=>{let w=[...i??[]];if(d(h)){if(i?.length===u||a&&i?.length===1)return;w=i?.filter(v=>!c(v,h))}else i?.length===f?w=[h]:w=[...w,h];return r||l(w),r?.(w,h,p,b),w},isSelected:d}}function Dh(e,t,n=0,a=0,r=!1,o=Ge){const{from:l,to:i}=t||{},{isSameDay:c,isAfter:d,isBefore:u}=o;let f;if(!l&&!i)f={from:e,to:n>0?void 0:e};else if(l&&!i)c(l,e)?n===0?f={from:l,to:e}:r?f={from:l,to:void 0}:f=void 0:u(e,l)?f={from:e,to:l}:f={from:l,to:e};else if(l&&i)if(c(l,e)&&c(i,e))r?f={from:l,to:i}:f=void 0;else if(c(l,e))f={from:l,to:n>0?void 0:e};else if(c(i,e))f={from:e,to:n>0?void 0:e};else if(u(e,l))f={from:e,to:i};else if(d(e,l))f={from:l,to:e};else if(d(e,i))f={from:l,to:e};else throw new Error("Invalid range");if(f?.from&&f?.to){const m=o.differenceInCalendarDays(f.to,f.from);a>0&&m>a?f={from:e,to:void 0}:n>1&&m<n&&(f={from:e,to:void 0})}return f}function Ch(e,t,n=Ge){const a=Array.isArray(t)?t:[t];let r=e.from;const o=n.differenceInCalendarDays(e.to,e.from),l=Math.min(o,6);for(let i=0;i<=l;i++){if(a.includes(r.getDay()))return!0;r=n.addDays(r,1)}return!1}function Wr(e,t,n=Ge){return et(e,t.from,!1,n)||et(e,t.to,!1,n)||et(t,e.from,!1,n)||et(t,e.to,!1,n)}function Th(e,t,n=Ge){const a=Array.isArray(t)?t:[t];if(a.filter(i=>typeof i!="function").some(i=>typeof i=="boolean"?i:n.isDate(i)?et(e,i,!1,n):Ho(i,n)?i.some(c=>et(e,c,!1,n)):Rn(i)?i.from&&i.to?Wr(e,{from:i.from,to:i.to},n):!1:zo(i)?Ch(e,i.dayOfWeek,n):Wa(i)?n.isAfter(i.before,i.after)?Wr(e,{from:n.addDays(i.after,1),to:n.addDays(i.before,-1)},n):tt(e.from,i,n)||tt(e.to,i,n):Aa(i)||Fa(i)?tt(e.from,i,n)||tt(e.to,i,n):!1))return!0;const l=a.filter(i=>typeof i=="function");if(l.length){let i=e.from;const c=n.differenceInCalendarDays(e.to,e.from);for(let d=0;d<=c;d++){if(l.some(u=>u(i)))return!0;i=n.addDays(i,1)}}return!1}function Ph(e,t){const{disabled:n,excludeDisabled:a,resetOnSelect:r,selected:o,required:l,onSelect:i}=e,[c,d]=Ln(o,i?o:void 0),u=i?o:c;return{selected:u,select:(h,p,b)=>{const{min:w,max:v}=e;let k;if(h){const x=u?.from,M=u?.to,T=!!x&&!!M,j=!!x&&!!M&&t.isSameDay(x,M)&&t.isSameDay(h,x);r&&(T||!u?.from)?!l&&j?k=void 0:k={from:h,to:void 0}:k=Dh(h,u,w,v,l,t)}return a&&n&&k?.from&&k.to&&Th({from:k.from,to:k.to},n,t)&&(k.from=h,k.to=void 0),i||d(k),i?.(k,h,p,b),k},isSelected:h=>u&&et(u,h,!1,t)}}function Oh(e,t){const{selected:n,required:a,onSelect:r}=e,[o,l]=Ln(n,r?n:void 0),i=r?n:o,{isSameDay:c}=t;return{selected:i,select:(f,m,h)=>{let p=f;return!a&&i&&i&&c(f,i)&&(p=void 0),r||l(p),r?.(p,f,m,h),p},isSelected:f=>i?c(i,f):!1}}function Wh(e,t){const n=Oh(e,t),a=jh(e,t),r=Ph(e,t);switch(e.mode){case"single":return n;case"multiple":return a;case"range":return r;default:return}}function Fe(e,t){return e instanceof ve&&e.timeZone===t?e:new ve(e,t)}function Lt(e,t,n){return Fe(e,t)}function Ar(e,t,n){return typeof e=="boolean"||typeof e=="function"?e:e instanceof Date?Lt(e,t):Array.isArray(e)?e.map(a=>a instanceof Date?Lt(a,t):a):Rn(e)?{...e,from:e.from?Fe(e.from,t):e.from,to:e.to?Fe(e.to,t):e.to}:Wa(e)?{before:Lt(e.before,t),after:Lt(e.after,t)}:Aa(e)?{after:Lt(e.after,t)}:Fa(e)?{before:Lt(e.before,t)}:e}function ra(e,t,n){return e&&(Array.isArray(e)?e.map(a=>Ar(a,t)):Ar(e,t))}function Ah(e){let t=e;const n=t.timeZone;if(n&&(t={...e,timeZone:n},t.today&&(t.today=Fe(t.today,n)),t.month&&(t.month=Fe(t.month,n)),t.defaultMonth&&(t.defaultMonth=Fe(t.defaultMonth,n)),t.startMonth&&(t.startMonth=Fe(t.startMonth,n)),t.endMonth&&(t.endMonth=Fe(t.endMonth,n)),t.mode==="single"&&t.selected?t.selected=Fe(t.selected,n):t.mode==="multiple"&&t.selected?t.selected=t.selected?.map(Q=>Fe(Q,n)):t.mode==="range"&&t.selected&&(t.selected={from:t.selected.from?Fe(t.selected.from,n):t.selected.from,to:t.selected.to?Fe(t.selected.to,n):t.selected.to}),t.disabled!==void 0&&(t.disabled=ra(t.disabled,n)),t.hidden!==void 0&&(t.hidden=ra(t.hidden,n)),t.modifiers)){const Q={};Object.keys(t.modifiers).forEach(ne=>{Q[ne]=ra(t.modifiers?.[ne],n)}),t.modifiers=Q}const{components:a,formatters:r,labels:o,dateLib:l,locale:i,classNames:c}=y.useMemo(()=>{const Q={...Lo,...t.locale},ne=t.broadcastCalendar?1:t.weekStartsOn,G=t.noonSafe&&t.timeZone?dh(t.timeZone,{weekStartsOn:ne,locale:Q}):void 0,ae=t.dateLib&&G?{...G,...t.dateLib}:t.dateLib??G,pe=new Pe({locale:Q,weekStartsOn:ne,firstWeekContainsDate:t.firstWeekContainsDate,useAdditionalWeekYearTokens:t.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:t.useAdditionalDayOfYearTokens,timeZone:t.timeZone,numerals:t.numerals},ae);return{dateLib:pe,components:zm(t.components),formatters:eh(t.formatters),labels:oh(t.labels,pe.options),locale:Q,classNames:{...Um(),...t.classNames}}},[t.locale,t.broadcastCalendar,t.weekStartsOn,t.firstWeekContainsDate,t.useAdditionalWeekYearTokens,t.useAdditionalDayOfYearTokens,t.timeZone,t.numerals,t.dateLib,t.noonSafe,t.components,t.formatters,t.labels,t.classNames]);t.today||(t={...t,today:l.today()});const{captionLayout:d,mode:u,navLayout:f,numberOfMonths:m=1,onDayBlur:h,onDayClick:p,onDayFocus:b,onDayKeyDown:w,onDayMouseEnter:v,onDayMouseLeave:k,onNextClick:x,onPrevClick:M,showWeekNumber:T,styles:j}=t,{formatCaption:E,formatDay:N,formatMonthDropdown:O,formatWeekNumber:P,formatWeekNumberHeader:A,formatWeekdayName:X,formatYearDropdown:L}=r,F=_h(t,l),{days:D,months:S,navStart:I,navEnd:B,previousMonth:C,nextMonth:Y,goToMonth:U}=F,K=Bm(D,t,I,B,l),{isSelected:R,select:H,selected:q}=Wh(t,l)??{},{blur:te,focused:re,isFocusTarget:ge,moveFocus:le,setFocused:ue}=Mh(t,F,K,R??(()=>!1),l),{labelDayButton:Xe,labelGridcell:je,labelGrid:Oe,labelMonthDropdown:Pt,labelNav:Ye,labelPrevious:De,labelNext:Ot,labelWeekday:Ne,labelWeekNumber:Ut,labelWeekNumberHeader:qt,labelYearDropdown:at}=o,ee=y.useMemo(()=>lh(l,t.ISOWeek,t.broadcastCalendar,t.today),[l,t.ISOWeek,t.broadcastCalendar,t.today]),mt=u!==void 0||p!==void 0,ke=y.useCallback(()=>{C&&(U(C),M?.(C))},[C,U,M]),we=y.useCallback(()=>{Y&&(U(Y),x?.(Y))},[U,Y,x]),Wt=y.useCallback((Q,ne)=>G=>{G.preventDefault(),G.stopPropagation(),ue(Q),!ne.disabled&&(H?.(Q.date,ne,G),p?.(Q.date,ne,G))},[H,p,ue]),ht=y.useCallback((Q,ne)=>G=>{ue(Q),b?.(Q.date,ne,G)},[b,ue]),Vt=y.useCallback((Q,ne)=>G=>{te(),h?.(Q.date,ne,G)},[te,h]),yt=y.useCallback((Q,ne)=>G=>{const ae={ArrowLeft:[G.shiftKey?"month":"day",t.dir==="rtl"?"after":"before"],ArrowRight:[G.shiftKey?"month":"day",t.dir==="rtl"?"before":"after"],ArrowDown:[G.shiftKey?"year":"week","after"],ArrowUp:[G.shiftKey?"year":"week","before"],PageUp:[G.shiftKey?"year":"month","before"],PageDown:[G.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(ae[G.key]){G.preventDefault(),G.stopPropagation();const[pe,J]=ae[G.key];le(pe,J)}w?.(Q.date,ne,G)},[le,w,t.dir]),gt=y.useCallback((Q,ne)=>G=>{v?.(Q.date,ne,G)},[v]),Kt=y.useCallback((Q,ne)=>G=>{k?.(Q.date,ne,G)},[k]),Qe=y.useCallback(Q=>ne=>{const G=Number(ne.target.value),ae=l.setMonth(l.startOfMonth(Q),G);U(ae)},[l,U]),At=y.useCallback(Q=>ne=>{const G=Number(ne.target.value),ae=l.setYear(l.startOfMonth(Q),G);U(ae)},[l,U]),{className:We,style:xe}=y.useMemo(()=>({className:[c[V.Root],t.className].filter(Boolean).join(" "),style:{...j?.[V.Root],...t.style}}),[c,t.className,t.style,j]),ze=Hm(t),pt=y.useRef(null);hh(pt,!!t.animate,{classNames:c,months:S,focused:re,dateLib:l});const bt={dayPickerProps:t,selected:q,select:H,isSelected:R,months:S,nextMonth:Y,previousMonth:C,goToMonth:U,getModifiers:K,components:a,classNames:c,styles:j,labels:o,formatters:r};return W.createElement(Yo.Provider,{value:bt},W.createElement(a.Root,{rootRef:t.animate?pt:void 0,className:We,style:xe,dir:t.dir,id:t.id,lang:t.lang??i.code,nonce:t.nonce,title:t.title,role:t.role,"aria-label":t["aria-label"],"aria-labelledby":t["aria-labelledby"],...ze},W.createElement(a.Months,{className:c[V.Months],style:j?.[V.Months]},!t.hideNavigation&&!f&&W.createElement(a.Nav,{"data-animated-nav":t.animate?"true":void 0,className:c[V.Nav],style:j?.[V.Nav],"aria-label":Ye(),onPreviousClick:ke,onNextClick:we,previousMonth:C,nextMonth:Y}),S.map((Q,ne)=>W.createElement(a.Month,{"data-animated-month":t.animate?"true":void 0,className:c[V.Month],style:j?.[V.Month],key:ne,displayIndex:ne,calendarMonth:Q},f==="around"&&!t.hideNavigation&&ne===0&&W.createElement(a.PreviousMonthButton,{type:"button",className:c[V.PreviousMonthButton],tabIndex:C?void 0:-1,"aria-disabled":C?void 0:!0,"aria-label":De(C),onClick:ke,"data-animated-button":t.animate?"true":void 0},W.createElement(a.Chevron,{disabled:C?void 0:!0,className:c[V.Chevron],orientation:t.dir==="rtl"?"right":"left"})),W.createElement(a.MonthCaption,{"data-animated-caption":t.animate?"true":void 0,className:c[V.MonthCaption],style:j?.[V.MonthCaption],calendarMonth:Q,displayIndex:ne},d?.startsWith("dropdown")?W.createElement(a.DropdownNav,{className:c[V.Dropdowns],style:j?.[V.Dropdowns]},(()=>{const G=d==="dropdown"||d==="dropdown-months"?W.createElement(a.MonthsDropdown,{key:"month",className:c[V.MonthsDropdown],"aria-label":Pt(),classNames:c,components:a,disabled:!!t.disableNavigation,onChange:Qe(Q.date),options:sh(Q.date,I,B,r,l),style:j?.[V.Dropdown],value:l.getMonth(Q.date)}):W.createElement("span",{key:"month"},O(Q.date,l)),ae=d==="dropdown"||d==="dropdown-years"?W.createElement(a.YearsDropdown,{key:"year",className:c[V.YearsDropdown],"aria-label":at(l.options),classNames:c,components:a,disabled:!!t.disableNavigation,onChange:At(Q.date),options:ch(I,B,r,l,!!t.reverseYears),style:j?.[V.Dropdown],value:l.getYear(Q.date)}):W.createElement("span",{key:"year"},L(Q.date,l));return l.getMonthYearOrder()==="year-first"?[ae,G]:[G,ae]})(),W.createElement("span",{role:"status","aria-live":"polite",style:{border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}},E(Q.date,l.options,l))):W.createElement(a.CaptionLabel,{className:c[V.CaptionLabel],role:"status","aria-live":"polite"},E(Q.date,l.options,l))),f==="around"&&!t.hideNavigation&&ne===m-1&&W.createElement(a.NextMonthButton,{type:"button",className:c[V.NextMonthButton],tabIndex:Y?void 0:-1,"aria-disabled":Y?void 0:!0,"aria-label":Ot(Y),onClick:we,"data-animated-button":t.animate?"true":void 0},W.createElement(a.Chevron,{disabled:Y?void 0:!0,className:c[V.Chevron],orientation:t.dir==="rtl"?"left":"right"})),ne===m-1&&f==="after"&&!t.hideNavigation&&W.createElement(a.Nav,{"data-animated-nav":t.animate?"true":void 0,className:c[V.Nav],style:j?.[V.Nav],"aria-label":Ye(),onPreviousClick:ke,onNextClick:we,previousMonth:C,nextMonth:Y}),W.createElement(a.MonthGrid,{role:"grid","aria-multiselectable":u==="multiple"||u==="range","aria-label":Oe(Q.date,l.options,l)||void 0,className:c[V.MonthGrid],style:j?.[V.MonthGrid]},!t.hideWeekdays&&W.createElement(a.Weekdays,{"data-animated-weekdays":t.animate?"true":void 0,className:c[V.Weekdays],style:j?.[V.Weekdays]},T&&W.createElement(a.WeekNumberHeader,{"aria-label":qt(l.options),className:c[V.WeekNumberHeader],style:j?.[V.WeekNumberHeader],scope:"col"},A()),ee.map(G=>W.createElement(a.Weekday,{"aria-label":Ne(G,l.options,l),className:c[V.Weekday],key:String(G),style:j?.[V.Weekday],scope:"col"},X(G,l.options,l)))),W.createElement(a.Weeks,{"data-animated-weeks":t.animate?"true":void 0,className:c[V.Weeks],style:j?.[V.Weeks]},Q.weeks.map(G=>W.createElement(a.Week,{className:c[V.Week],key:G.weekNumber,style:j?.[V.Week],week:G},T&&W.createElement(a.WeekNumber,{week:G,style:j?.[V.WeekNumber],"aria-label":Ut(G.weekNumber,{locale:i}),className:c[V.WeekNumber],scope:"row",role:"rowheader"},P(G.weekNumber,l)),G.days.map(ae=>{const{date:pe}=ae,J=K(ae);if(J[fe.focused]=!J.hidden&&!!re?.isEqualTo(ae),J[Le.selected]=R?.(pe)||J.selected,Rn(q)){const{from:Gt,to:Xt}=q;J[Le.range_start]=!!(Gt&&Xt&&l.isSameDay(pe,Gt)),J[Le.range_end]=!!(Gt&&Xt&&l.isSameDay(pe,Xt)),J[Le.range_middle]=et(q,pe,!0,l)}const Bn=ih(J,j,t.modifiersStyles),pn=Ym(J,c,t.modifiersClassNames),bn=!mt&&!J.hidden?je(pe,J,l.options,l):void 0;return W.createElement(a.Day,{key:`${ae.isoDate}_${ae.displayMonthId}`,day:ae,modifiers:J,className:pn.join(" "),style:Bn,role:"gridcell","aria-selected":J.selected||void 0,"aria-label":bn,"data-day":ae.isoDate,"data-month":ae.outside?ae.dateMonthId:void 0,"data-selected":J.selected||void 0,"data-disabled":J.disabled||void 0,"data-hidden":J.hidden||void 0,"data-outside":ae.outside||void 0,"data-focused":J.focused||void 0,"data-today":J.today||void 0},!J.hidden&&mt?W.createElement(a.DayButton,{className:c[V.DayButton],style:j?.[V.DayButton],type:"button",day:ae,modifiers:J,disabled:!J.focused&&J.disabled||void 0,"aria-disabled":J.focused&&J.disabled||void 0,tabIndex:ge(ae)?0:-1,"aria-label":Xe(pe,J,l.options,l),onClick:Wt(ae,J),onBlur:Vt(ae,J),onFocus:ht(ae,J),onKeyDown:yt(ae,J),onMouseEnter:gt(ae,J),onMouseLeave:Kt(ae,J)},N(pe,l.options,l)):!J.hidden&&N(ae.date,l.options,l))})))))))),t.footer&&W.createElement(a.Footer,{className:c[V.Footer],style:j?.[V.Footer],role:"status","aria-live":"polite"},t.footer)))}const Fh={en:dt,"zh-CN":Ff,"zh-TW":um,ja:Du,ko:rf};function as(e){return Fh[e]||dt}function Fr(e,t){if(!e)return"";const n=e.split("-");if(n.length!==3)return e;const a=new Date(Number(n[0]),Number(n[1])-1,Number(n[2]));return Number.isFinite(a.getTime())?Ke(a,"MMM d",t?{locale:t}:void 0):e}function ka({from:e,to:t,onApply:n,onCancel:a}){const r=y.useMemo(()=>{const u={from:void 0,to:void 0};if(e){const f=e.split("-");u.from=new Date(Number(f[0]),Number(f[1])-1,Number(f[2]))}if(t){const f=t.split("-");u.to=new Date(Number(f[0]),Number(f[1])-1,Number(f[2]))}return u},[e,t]),[o,l]=y.useState(r),i=as(uo()),c=()=>{if(!o?.from)return;const u=Ke(o.from,"yyyy-MM-dd"),f=o.to?Ke(o.to,"yyyy-MM-dd"):u;n?.(u,f)},d=!!o?.from;return s.jsxs("div",{className:"p-4",children:[s.jsx(Ah,{mode:"range",locale:i,selected:o,onSelect:l,numberOfMonths:2,showOutsideDays:!1,classNames:{root:"rdp-oai",months:"flex gap-4",month:"space-y-3",month_caption:"flex justify-center items-center h-8",caption_label:"text-sm font-medium text-oai-black dark:text-oai-white",nav:"flex items-center justify-between absolute inset-x-0 top-0 px-2",button_previous:"inline-flex items-center justify-center w-7 h-7 rounded-md text-oai-gray-500 hover:text-oai-black dark:text-oai-gray-400 dark:hover:text-oai-white hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 transition-colors",button_next:"inline-flex items-center justify-center w-7 h-7 rounded-md text-oai-gray-500 hover:text-oai-black dark:text-oai-gray-400 dark:hover:text-oai-white hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 transition-colors",chevron:"w-4 h-4",month_grid:"border-collapse",weekdays:"flex",weekday:"w-9 text-center text-xs font-medium text-oai-gray-400 dark:text-oai-gray-500 py-1",week:"flex",day:"w-9 h-9 text-center text-sm p-0 relative",day_button:"w-full h-full inline-flex items-center justify-center rounded-md transition-colors hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 text-oai-black dark:text-oai-white cursor-pointer rdp-day-btn",today:"font-bold",selected:"rdp-selected",range_start:"rdp-selected rdp-range-start",range_end:"rdp-selected rdp-range-end",range_middle:"rdp-range-mid",outside:"text-oai-gray-300 dark:text-oai-gray-600",disabled:"text-oai-gray-300 dark:text-oai-gray-600 cursor-not-allowed",hidden:"invisible"},styles:{months:{position:"relative"}}}),s.jsxs("div",{className:"flex items-center justify-end gap-2 mt-4 pt-3 border-t border-oai-gray-200 dark:border-oai-gray-700",children:[d&&o.from&&s.jsxs("span",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-400 mr-auto",children:[Ke(o.from,"MMM d, yyyy",{locale:i}),o.to&&o.to.getTime()!==o.from.getTime()?` — ${Ke(o.to,"MMM d, yyyy",{locale:i})}`:""]}),s.jsx(Wn,{variant:"secondary",size:"sm",onClick:a,children:g("shared.action.cancel")}),s.jsx(Wn,{variant:"primary",size:"sm",onClick:c,disabled:!d,children:g("shared.action.apply")})]})]})}function rs(e){if(!Number.isFinite(Number(e)))return null;const t=Number(e);return t<=0?null:Se(t,{decimals:1})}function Ia(e,t,n){const a=Number(e);if(!Number.isFinite(a)||a<=0)return null;const r=In(t);return(t===co?a:a*n)<.01?`<${r}0.01`:ut(a,{decimals:2,currency:t,rate:n})}function Eh(e,t,n){const a=Ia(e,t,n);return a?`${a}/MTok`:null}function rn(e){return e?String(e).replace(/^claude-/,""):""}function $h(e){return Array.isArray(e)?e.map(t=>typeof t=="string"?{key:t,label:Er(t)}:{key:t.key,label:t.label||Er(t.key)}):[]}function Ih(e){if(typeof e!="string")return null;const t=e.replace(/,/g,"").match(/-?\d+(?:\.\d+)?/);if(!t)return null;const n=Number(t[0]);return Number.isFinite(n)?n:null}const Rh={CODEX:"#3b82f6",CLAUDE:"#d97757",OPENCODE:"#f59e0b",GEMINI:"#2196f3",KIMI:"#a78bfa","KILO-CLI":"#facc15","KILO-CODE":"#facc15",DROID:"#ef4444"};function oa(e,t){const n=e?.toUpperCase?.()||"";return Rh[n]||`hsl(${150+t*40}, 60%, 45%)`}function Fn(e){const t=String(e?.source||"").trim().toLowerCase(),n=String(e?.label||"").trim().toLowerCase();return t==="claude"||n==="claude"?"claude":t==="codex"||n==="codex"?"codex":null}function Ra(e){return!!e?.models?.length}function Lh(e){const t=Number(e);return!Number.isFinite(t)||t<=0?"0%":`${Math.min(100,Math.max(2,t))}%`}function Bh(e,t){const n=String(e?.id||e?.name||"").trim().toLowerCase(),a=String(t?.id||t?.name||"").trim().toLowerCase();return!!(n&&a&&n===a)}function Yh(e,t=3){return[...e?.models||[]].sort((n,a)=>(Number(a.share)||0)-(Number(n.share)||0)).slice(0,t)}function zh(e,t){return Math.max(0,(e?.models?.length||0)-t.length)}const Hh={day:"usage.period.day","24h":"usage.period.last24h",week:"usage.period.week",month:"usage.period.month",total:"usage.period.total",custom:"usage.period.custom"};function Er(e){const t=Hh[e];return t?g(t):String(e).toUpperCase()}function Uh({loading:e,onClick:t}){const n=dn();return s.jsx(Wn,{variant:"secondary",size:"sm",disabled:e,onClick:t,"aria-label":g("usage.button.refresh"),className:"w-8 p-0",children:s.jsx(Be.span,{"aria-hidden":"true",animate:e?{rotate:360}:{rotate:0},transition:e&&!n?{duration:1,repeat:1/0,ease:"linear"}:{duration:.3},style:{display:"inline-block"},children:"↻"})})}function $r({period:e,periods:t,onPeriodChange:n,autoRefreshOptions:a=[],autoRefreshIntervalMs:r,onAutoRefreshIntervalChange:o,summaryValue:l,summaryLabel:i,summaryUpdatedAtLabel:c,summaryCostValue:d,usageInsights:u,onCostInfo:f,onRefresh:m,loading:h,customFrom:p,customTo:b,onCustomRangeApply:w,customRangeOpen:v,onCustomRangeOpenChange:k,onOpenShare:x}){const M=dn(),T=$h(t),j=Array.isArray(a)&&a.length>0&&typeof o=="function",E=as(uo()),N=Ih(String(l??"")),O=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(max-width: 639px)").matches,[P,A]=y.useState(O);y.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const K=window.matchMedia("(max-width: 639px)"),R=H=>A(H.matches);return K.addEventListener("change",R),()=>K.removeEventListener("change",R)},[]);const X=N!=null&&!P&&!h&&!M,L=y.useRef(null);y.useEffect(()=>{const K=L.current?.querySelector('[aria-selected="true"]');K&&typeof K.scrollIntoView=="function"&&K.scrollIntoView({block:"nearest",inline:"center"})},[e]);const{currency:F,rate:D}=Ct(),S=Eh(u?.costPerMillionTokens,F,D),I=u?.topCostModel?.name?rn(u.topCostModel.name):"",B=u?.topUsageModel?.name?rn(u.topUsageModel.name):"",C=Array.isArray(u?.missingPricingModels)?u.missingPricingModels.length:0,Y=!!C,U=!!(S||I||B||Y);return s.jsxs(un,{children:[s.jsxs("div",{className:"flex items-center gap-2 mb-6",children:[s.jsx("div",{ref:L,role:"tablist","aria-label":g("usage.overview.tablist_aria"),className:"flex flex-1 min-w-0 gap-1 overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:T.map(K=>{const R=e===K.key,H=`shrink-0 whitespace-nowrap text-xs font-medium px-3 py-1.5 rounded-md transition-colors ${R?"text-oai-black dark:text-oai-white bg-oai-gray-100 dark:bg-oai-gray-800":"text-oai-gray-500 dark:text-oai-gray-300 hover:text-oai-black dark:hover:text-oai-white hover:bg-oai-gray-50 dark:hover:bg-oai-gray-800"}`;if(K.key==="custom"){const q=R&&p&&b?`${Fr(p,E)} — ${Fr(b,E)}`:K.label;return s.jsxs(ha,{open:v,onOpenChange:te=>{te?n?.("custom"):k?.(te)},children:[s.jsx(ya,{render:s.jsx("button",{role:"tab","aria-selected":R,type:"button",className:H}),children:q}),s.jsx(ga,{children:s.jsx(pa,{sideOffset:8,side:"bottom",align:"start",className:"!z-[9999]",children:s.jsx(ba,{className:"bg-white dark:bg-oai-gray-900 border border-oai-gray-200 dark:border-oai-gray-700 rounded-xl shadow-lg",children:s.jsx(ka,{from:p,to:b,onApply:w,onCancel:()=>k?.(!1)})})})})]},"custom")}return s.jsx("button",{role:"tab","aria-selected":R,type:"button",className:H,onClick:()=>n?.(K.key),children:K.label},K.key)})}),s.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[j?s.jsx("select",{"aria-label":g("usage.auto_refresh.aria"),value:String(r),onChange:K=>o(K.target.value),className:"h-8 rounded-md border border-oai-gray-300 dark:border-oai-gray-700 bg-oai-white dark:bg-oai-gray-900 px-2 text-xs font-medium text-oai-gray-700 dark:text-oai-gray-200 transition-colors hover:border-oai-gray-400 dark:hover:border-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand/25",children:a.map(K=>s.jsx("option",{value:String(K.value),children:g(K.labelKey)},K.value))}):null,x?s.jsxs("button",{type:"button",onClick:x,"aria-label":g("share.button.aria"),className:"inline-flex items-center justify-center gap-1.5 h-8 px-3 text-xs font-medium rounded-md border border-oai-gray-300 dark:border-oai-gray-700 bg-oai-white dark:bg-oai-gray-900 text-oai-black dark:text-oai-white hover:border-oai-brand hover:text-oai-brand transition-colors duration-200",children:[s.jsx(Nl,{className:"h-3.5 w-3.5",strokeWidth:2}),g("share.button.label")]}):null,m&&s.jsx(Uh,{loading:h,onClick:m})]})]}),s.jsxs("div",{className:"text-center mb-8",children:[s.jsx("div",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-300 uppercase tracking-wider mb-3",children:i}),s.jsx("div",{className:"text-5xl sm:text-6xl md:text-7xl font-bold text-oai-black dark:text-oai-white tracking-tight tabular-nums",children:X?s.jsx(El,{value:N,displayValue:l,fontSize:72,padding:6,gap:1,textColor:"var(--oai-black, #111827)",fontWeight:700,variant:"led",gradientHeight:8,gradientFrom:"rgba(8,11,17,0.98)",gradientTo:"rgba(8,11,17,0)",counterStyle:{paddingLeft:0,paddingRight:0,gap:0},digitStyle:{width:"0.88ch"}}):l}),c?s.jsx("div",{className:"mt-3 text-[11px] font-medium text-oai-gray-400 dark:text-oai-gray-500 tabular-nums",children:c}):null,d&&s.jsx("div",{className:"flex items-center justify-center gap-2 mt-3",children:f?s.jsxs("button",{type:"button",onClick:f,className:"inline-flex items-center gap-1.5 text-xl font-bold text-oai-brand hover:text-oai-brand-dark dark:hover:text-oai-brand-light transition-colors cursor-pointer","aria-label":g("usage.overview.cost_breakdown_aria"),children:[d,s.jsx(go,{size:16,strokeWidth:2,className:"opacity-80"})]}):s.jsx("span",{className:"text-xl font-bold text-oai-brand",children:d})}),U&&s.jsxs("div",{className:"mt-3 flex flex-wrap items-center justify-center gap-1.5 text-[11px] font-medium",children:[S?s.jsx("span",{className:"rounded-md border border-oai-gray-200 dark:border-oai-gray-700 px-2 py-1 text-oai-gray-600 dark:text-oai-gray-300 tabular-nums",children:g("usage.overview.cost_per_mtok",{value:S})}):null,I?s.jsx("span",{className:"rounded-md border border-oai-gray-200 dark:border-oai-gray-700 px-2 py-1 text-oai-gray-600 dark:text-oai-gray-300",children:g("usage.overview.top_cost_model",{model:I})}):null,B&&B!==I?s.jsx("span",{className:"rounded-md border border-oai-gray-200 dark:border-oai-gray-700 px-2 py-1 text-oai-gray-600 dark:text-oai-gray-300",children:g("usage.overview.top_usage_model",{model:B})}):null,Y?s.jsx("span",{className:"rounded-md border border-amber-200 bg-amber-50 px-2 py-1 text-amber-700 dark:border-amber-500/30 dark:bg-amber-500/10 dark:text-amber-200",children:g("usage.overview.missing_pricing_count",{count:C})}):null]})]})]})}const Ir={claude:35,codex:250},Rr={system_prompt:{l:.55,c:.05},messages:{l:.65,c:.18},tool_calls:{l:.6,c:.14},custom_agents:{l:.55,c:.1},reasoning:{l:.7,c:.08}};function qh(e,t){const n=Ir[t]??Ir.claude,a=Rr[e]||Rr.system_prompt;return`oklch(${a.l} ${a.c} ${n})`}const Vh=[{key:"system_prompt",from:["system_prefix"]},{key:"messages",from:["user_input","conversation_history","assistant_response"]},{key:"tool_calls",from:["tool_calls"]},{key:"custom_agents",from:["subagents"]},{key:"reasoning",from:["reasoning"]}],Kh=[["by_type","dashboard.context_breakdown.exec_details.group_by_type"],["by_executable","dashboard.context_breakdown.exec_details.group_by_executable"],["by_command","dashboard.context_breakdown.exec_details.group_by_command"],["by_duration","dashboard.context_breakdown.exec_details.group_by_duration"],["by_output","dashboard.context_breakdown.exec_details.group_by_output"],["by_exit","dashboard.context_breakdown.exec_details.group_by_exit"]],Gh={duration:.18,ease:[.4,0,.2,1]},Xh={height:0,opacity:0},Qh={height:"auto",opacity:1},Jh={height:0,opacity:0};function Zh(e){const t=Number(e||0);return Number.isFinite(t)&&t>0?t:0}function ey(e,t){const n={};for(const a of["input_tokens","cached_input_tokens","cache_creation_input_tokens","output_tokens","reasoning_output_tokens","total_tokens"])n[a]=Math.round(Number(e?.[a]||0)*t);return n}function os(e,t=null){const n=e.reduce((l,i)=>l+Number(i.totals.total_tokens||0),0),a=Zh(t),r=a||n,o=a&&n>0?a/n:1;return e.map(l=>{const i=o===1?l.totals:ey(l.totals,o);return{...l,totals:i,percent:r>0?Number((i.total_tokens/r*100).toFixed(2)):0}}).sort((l,i)=>i.totals.total_tokens-l.totals.total_tokens)}function ty(e,t=null){const n=new Map;for(const r of e||[])n.set(r.key,r);const a=Vh.map(r=>{const o={input_tokens:0,cached_input_tokens:0,cache_creation_input_tokens:0,output_tokens:0,reasoning_output_tokens:0,total_tokens:0};for(const l of r.from){const i=n.get(l);if(!i)continue;const c=i.totals||{};o.input_tokens+=c.input_tokens||0,o.cached_input_tokens+=c.cached_input_tokens||0,o.cache_creation_input_tokens+=c.cache_creation_input_tokens||0,o.output_tokens+=c.output_tokens||0,o.reasoning_output_tokens+=c.reasoning_output_tokens||0,o.total_tokens+=c.total_tokens||0}return{key:r.key,totals:o}});return os(a,t)}function ny(e,t=null){const n=e?.totals||{},a=Number(n.reasoning_output_tokens||0),r=(e?.tool_calls_breakdown?.categories||[]).reduce((d,u)=>u?.name==="Text Response"?d:d+Number(u?.totals?.total_tokens||0),0),o=Number(n.total_tokens||0),l=Math.min(Math.max(0,r),Math.max(0,o-a)),c=[{key:"messages",totals:{total_tokens:Math.max(0,o-a-l)}},{key:"tool_calls",totals:{total_tokens:l}},{key:"reasoning",totals:{total_tokens:a}}];return os(c,t)}const Lr="MCP: ";function ay(e){if(!e?.categories?.length)return{mcpSet:null,residualSet:e,mcpTotalTokens:0};const t=[],n=[];let a=0;for(const r of e.categories){const o=String(r?.name||"");o.startsWith(Lr)?(t.push({...r,name:o.slice(Lr.length)}),a+=Number(r?.totals?.total_tokens||0)):n.push(r)}return t.length===0?{mcpSet:null,residualSet:e,mcpTotalTokens:0}:(t.sort((r,o)=>(o.totals?.total_tokens||0)-(r.totals?.total_tokens||0)),{mcpSet:{...e,categories:t},residualSet:{...e,categories:n},mcpTotalTokens:a})}function Br(e){return g(`dashboard.context_breakdown.category.${e}`)}function qe(e){return!Number.isFinite(Number(e))||Number(e)<=0?"0":Se(Number(e),{decimals:1})}function ry(e){return typeof e!="string"?"":e.startsWith("mcp__")?e.split("__").slice(2).join("__")||e:e.includes("/")&&e.split("/").pop()||e}function oy(e){return(Array.isArray(e)?e:[]).map(t=>{const n=t?.totals||null,a=Number(n?n.input_tokens||0:t?.input_tokens||0),r=Number(n?n.output_tokens||0:t?.output_tokens||0),o=Number(n?n.cached_input_tokens||0:t?.cache_read||0),l=Number(n?n.cache_creation_input_tokens||0:t?.cache_creation||0),i=Number(n?n.total_tokens||a+r:t?.total_tokens||r);return{name:ry(t?.name?String(t.name):""),calls:Number(t?.calls||0),input_tokens:a,output_tokens:r,cache_read:o,cache_creation:l,total_tokens:Number(i||0)}}).filter(t=>t.name).sort((t,n)=>(n.total_tokens||0)-(t.total_tokens||0))}function sy(e){return(Array.isArray(e)?e:[]).map(t=>{const n=t?.totals||{},a=Array.isArray(t?.tools)?t.tools:[],r=Number(n.input_tokens||0),o=Number(n.output_tokens||0),l=Number(n.cached_input_tokens||0),i=Number(n.cache_creation_input_tokens||0);return{name:t?.name?String(t.name):"",calls:Number(t?.calls||0),totals:{input_tokens:r,output_tokens:o,cached_input_tokens:l,cache_creation_input_tokens:i,total_tokens:Number(n.total_tokens||r+o)},tools:oy(a),toolCount:a.length}}).filter(t=>t.name).sort((t,n)=>(n.totals.total_tokens||0)-(t.totals.total_tokens||0))}function iy(e){return(Array.isArray(e)?e:[]).map(t=>{const n=t?.totals||{},a=Number(n.input_tokens||0),r=Number(n.output_tokens||0),o=Number(n.cached_input_tokens||0),l=Number(n.cache_creation_input_tokens||0);return{key:t?.key?String(t.key):"",name:t?.name?String(t.name):"",totals:{input_tokens:a,output_tokens:r,cached_input_tokens:o,cache_creation_input_tokens:l,total_tokens:Number(n.total_tokens||a+r+o+l)}}}).filter(t=>t.key||t.name).sort((t,n)=>(n.totals.total_tokens||0)-(t.totals.total_tokens||0))}function ly(e){return(Array.isArray(e)?e:[]).map(t=>{const n=t?.totals||{};return{name:t?.name?String(t.name):"",calls:Number(t?.calls||0),total_tokens:Number(n.total_tokens||0)}}).filter(t=>t.name).sort((t,n)=>Number(n.total_tokens||0)-Number(t.total_tokens||0))}function cy(e){if(e?.key){const t=g(`dashboard.context_breakdown.message_details.${e.key}`);if(t&&!t.includes("dashboard.context_breakdown"))return t}return e?.name||""}function dy(e){return(Array.isArray(e)?e:[]).map(t=>{const n=t?.totals||{},a=Number(n.input_tokens||0),r=Number(n.output_tokens||0),o=Number(n.cached_input_tokens||0),l=Number(n.cache_creation_input_tokens||0);return{name:t?.name?String(t.name):"",calls:Number(t?.calls||0),failures:Number(t?.failures||0),duration_ms:Number(t?.duration_ms||0),max_duration_ms:Number(t?.max_duration_ms||0),output_chars:Number(t?.output_chars||0),output_lines:Number(t?.output_lines||0),totals:{input_tokens:a,output_tokens:r,cached_input_tokens:o,cache_creation_input_tokens:l,total_tokens:Number(n.total_tokens||a+r)}}}).filter(t=>t.name).sort((t,n)=>Number(n.totals.total_tokens||0)-Number(t.totals.total_tokens||0))}function Yr(e){const t=Number(e||0);return!Number.isFinite(t)||t<=0?"0ms":t<1e3?`${Math.round(t)}ms`:t<6e4?`${(t/1e3).toFixed(1)}s`:`${Math.round(t/1e3)}s`}function uy(e,t){return e?t==="by_executable"?e.by_executable||[]:t==="by_command"?e.by_command||[]:t==="by_duration"?e.by_duration||[]:t==="by_output"?e.by_output||[]:t==="by_exit"?e.by_exit||[]:e.by_type||[]:[]}function zr(e){return e==="exec_command"||e==="Bash"}function ss(e){return e==="codex"?"dashboard.context_breakdown.empty_codex":"dashboard.context_breakdown.empty"}function fy(e){return e==="codex"?"dashboard.context_breakdown.error_codex":"dashboard.context_breakdown.error"}function my(e){return e==="codex"?"dashboard.context_breakdown.footnote_codex":"dashboard.context_breakdown.footnote"}const hy=10;function Ze({level:e=0,colorSquare:t=null,label:n,labelSuffix:a=null,labelTone:r="default",hasChevron:o=!1,open:l=!1,onToggle:i,tokens:c,percent:d=null,children:u,share:f=null,fillColor:m=null}){const h=r==="accent"?"text-oai-brand truncate":r==="muted"?"text-oai-gray-500 dark:text-oai-gray-400 truncate":r==="strong"?"font-medium text-oai-black dark:text-oai-white truncate":"text-oai-gray-700 dark:text-oai-gray-300 truncate",p=s.jsx("span",{className:"shrink-0 flex items-center justify-start",style:{width:hy},"aria-hidden":!t,children:t}),b=s.jsxs(s.Fragment,{children:[p,s.jsx("span",{className:h,children:n}),a,o&&s.jsx(Be.span,{animate:{rotate:l?90:0},transition:{duration:.15},className:"shrink-0 text-oai-gray-400 dark:text-oai-gray-500 flex items-center","aria-hidden":"true",children:s.jsx(ho,{size:11})})]}),w=m&&f!=null&&f>0,v=w?Math.max(0,Math.min(100,f)):0;return s.jsxs("li",{className:"min-w-0 group/row",children:[s.jsxs("div",{className:"relative grid grid-cols-[minmax(0,1fr)_64px_48px] items-center gap-2 text-xs py-1 px-1 rounded-sm transition-colors duration-150",style:w?{backgroundImage:`linear-gradient(to right, ${m.replace(/\)\s*$/," / 0.10)")} 0%, ${m.replace(/\)\s*$/," / 0.10)")} ${v}%, transparent ${v}%)`}:void 0,children:[o?s.jsx("button",{type:"button",onClick:i,"aria-expanded":l,className:"relative flex items-center gap-1.5 min-w-0 text-left cursor-pointer focus-visible:outline-none focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-oai-brand/40 rounded-sm",children:b}):s.jsx("div",{className:"relative flex items-center gap-1.5 min-w-0",children:b}),s.jsx("span",{className:"relative text-right tabular-nums text-oai-gray-500 dark:text-oai-gray-400",children:c||""}),s.jsx("span",{className:"relative text-right tabular-nums text-[10px] text-oai-gray-400 dark:text-oai-gray-500 font-normal",children:d||""})]}),o&&u?s.jsx(Da,{initial:!1,children:l&&s.jsx(Be.div,{initial:Xh,animate:Qh,exit:Jh,transition:Gh,style:{overflow:"hidden"},children:u},"content")}):null]})}function Hr({execDetails:e,source:t="claude"}){const[n,a]=y.useState("by_type"),r=dy(uy(e,n)),o=t==="codex",l=o?"grid-cols-[minmax(0,1fr)_48px_48px_72px_72px_60px_60px]":"grid-cols-[minmax(0,1fr)_56px_60px]";return s.jsxs("div",{className:"mt-2 ml-4",children:[s.jsx("div",{className:"flex flex-wrap items-center gap-1 rounded-md bg-oai-gray-100 dark:bg-oai-gray-900 p-1 w-fit max-w-full",children:Kh.map(([i,c])=>s.jsx("button",{type:"button",onClick:()=>a(i),className:"h-7 px-2 rounded-md text-[10px] font-medium transition-colors "+(n===i?"bg-oai-white dark:bg-oai-gray-800 text-oai-black dark:text-oai-white shadow-sm":"text-oai-gray-600 dark:text-oai-gray-300 hover:bg-oai-white/70 dark:hover:bg-oai-gray-800/70"),children:g(c)},i))}),r.length===0?s.jsx("p",{className:"mt-2 text-[10px] text-oai-gray-400 dark:text-oai-gray-500",children:"—"}):s.jsx("div",{className:"mt-2 overflow-x-auto",children:s.jsxs("div",{role:"table","aria-label":g("dashboard.context_breakdown.exec_details.title"),className:o?"min-w-[420px]":"min-w-[260px]",children:[s.jsxs("div",{role:"row",className:`grid ${l} gap-2 py-1.5 mb-1 border-b border-oai-gray-200 dark:border-oai-gray-800 text-label uppercase text-oai-gray-500 dark:text-oai-gray-400`,children:[s.jsx("span",{role:"columnheader",children:g("dashboard.context_breakdown.exec_details.kind_column")}),s.jsx("span",{role:"columnheader",className:"text-right",children:g("dashboard.context_breakdown.exec_details.calls_column")}),o&&s.jsxs(s.Fragment,{children:[s.jsx("span",{role:"columnheader",className:"text-right",children:g("dashboard.context_breakdown.exec_details.failures_column")}),s.jsx("span",{role:"columnheader",className:"text-right",children:g("dashboard.context_breakdown.exec_details.duration_column")}),s.jsx("span",{role:"columnheader",className:"text-right",children:g("dashboard.context_breakdown.exec_details.max_duration_column")})]}),s.jsx("span",{role:"columnheader",className:"text-right",children:g("dashboard.context_breakdown.tool_details.total_column")}),o&&s.jsx("span",{role:"columnheader",className:"text-right",children:g("dashboard.context_breakdown.exec_details.output_column")})]}),r.map((i,c)=>s.jsxs(Be.div,{role:"row",className:`grid ${l} gap-2 py-1.5`,title:i.name,initial:{opacity:0},animate:{opacity:1},transition:{duration:.18,delay:c*.02},children:[s.jsx("span",{role:"cell",className:"min-w-0 text-body-sm font-medium text-oai-black dark:text-oai-white truncate",children:i.name}),s.jsx("span",{role:"cell",className:"text-right text-body-sm tabular-nums text-oai-gray-700 dark:text-oai-gray-300",children:Se(i.calls||0)}),o&&s.jsxs(s.Fragment,{children:[s.jsx("span",{role:"cell",className:"text-right text-body-sm tabular-nums text-oai-gray-700 dark:text-oai-gray-300",children:Se(i.failures||0)}),s.jsx("span",{role:"cell",className:"text-right text-body-sm tabular-nums text-oai-gray-700 dark:text-oai-gray-300",children:Yr(i.duration_ms||0)}),s.jsx("span",{role:"cell",className:"text-right text-body-sm tabular-nums text-oai-gray-700 dark:text-oai-gray-300",children:Yr(i.max_duration_ms||0)})]}),s.jsx("span",{role:"cell",className:"text-right text-body-sm tabular-nums text-oai-gray-700 dark:text-oai-gray-300",children:qe(i.totals.total_tokens||0)}),o&&s.jsx("span",{role:"cell",className:"text-right text-body-sm tabular-nums text-oai-gray-700 dark:text-oai-gray-300",children:Se(i.output_lines||0)})]},i.name))]})})]})}function tn({toolSet:e,execDetails:t,source:n,codexQueueFallback:a}){const[r,o]=y.useState({}),[l,i]=y.useState(!1),c=sy(e?.categories||[]);function d(u){o(f=>({...f,[u]:!f[u]}))}return c.length===0?s.jsx("p",{className:"text-[11px] text-oai-gray-400 dark:text-oai-gray-500 py-0.5",children:n==="codex"&&a?g("dashboard.context_breakdown.tool_details.unavailable_codex"):g(ss(n))}):s.jsx("ul",{className:"mt-0.5 mb-0.5 space-y-0.5",children:c.map(u=>{const f=u.toolCount>0,m=u.name==="Execution"&&t,h=m&&u.tools.some(b=>zr(b.name)),p=!!r[u.name];return s.jsxs(Ze,{level:1,label:u.name,labelTone:"strong",hasChevron:f||m&&!h,open:p||m&&!h&&l,onToggle:()=>{f?d(u.name):m&&!h&&i(b=>!b)},tokens:qe(u.totals.total_tokens||0),percent:null,children:[f&&s.jsx("ul",{className:"space-y-0.5",children:u.tools.map(b=>{const w=m&&zr(b.name);return s.jsx(Ze,{level:2,label:b.name,labelTone:w?"accent":"default",hasChevron:w,open:l,onToggle:()=>i(v=>!v),tokens:qe(b.total_tokens||0),percent:null,children:w&&s.jsx(Hr,{execDetails:t,source:n})},b.name)})}),m&&!h&&s.jsx(Hr,{execDetails:t,source:n})]},u.name)})})}function is({from:e,to:t,source:n="claude",referenceTotalTokens:a=null,onLoadingChange:r=null}){const[o,l]=y.useState(null),[i,c]=y.useState(!1),[d,u]=y.useState(null),[f,m]=y.useState({});function h(S){m(I=>({...I,[S]:!I[S]}))}if(y.useEffect(()=>{let S=!1;return c(!0),r?.(!0),u(null),Vi({from:e,to:t,source:n,timeZone:mo(),tzOffsetMinutes:fo()}).then(I=>{S||l(I)}).catch(I=>{S||u(I?.message||String(I))}).finally(()=>{S||(c(!1),r?.(!1))}),()=>{S=!0}},[e,t,n]),i&&!o)return s.jsxs("div",{children:[s.jsx("div",{className:"h-1 w-full bg-oai-gray-100 dark:bg-oai-gray-800 rounded-full overflow-hidden animate-pulse"}),s.jsx("div",{className:"mt-3 grid grid-cols-1 sm:grid-cols-2 gap-x-4 gap-y-2",children:[0,1,2,3,4].map(S=>s.jsx("div",{className:"h-3 rounded bg-oai-gray-100 dark:bg-oai-gray-800 animate-pulse",style:{animationDelay:`${S*80}ms`}},S))}),s.jsx("p",{className:"mt-3 text-[11px] text-oai-gray-500 dark:text-oai-gray-400",children:g("dashboard.context_breakdown.loading_hint")})]});if(d)return s.jsx("p",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-400",children:g(fy(n))});if(!o||o.scope!=="supported"||!o.totals?.total_tokens)return s.jsx("p",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-400",children:g(ss(n))});const p=n==="claude"?ty(o.categories||[],a):ny(o,a),b=o.tool_calls_breakdown||null,w=o.skills_breakdown||null,v=o.message_breakdown||null,k=o.configured_resources||null,x=o.exec_command_breakdown||null,M=ly(w?.skills||[]),T=iy(v?.categories||[]),j=n==="codex"&&(o?.breakdown_status==="queue_fallback"||o?.fallback==="queue_totals"),E=n==="claude"?b?.tool_calls||null:b||null,{mcpSet:N,residualSet:O,mcpTotalTokens:P}=ay(E),A=n==="claude"&&b?.subagents||null,X=A?.categories?.length>0||(k?.custom_agents_count||0)>0,L=n==="claude"?(O?.categories||[]).reduce((S,I)=>S+Number(I?.totals?.total_tokens||0),0):0,F=n==="claude"?(A?.categories||[]).reduce((S,I)=>S+Number(I?.totals?.total_tokens||0),0):0,D=[...p].sort((S,I)=>(I.totals?.total_tokens||0)-(S.totals?.total_tokens||0));return s.jsxs("div",{role:"region","aria-label":g("dashboard.context_breakdown.bar_aria",{summary:p.filter(S=>S.percent>0).filter(S=>!(n==="claude"&&(S.key==="tool_calls"||S.key==="custom_agents"))).map(S=>`${Br(S.key)} ${S.percent}%`).join(",")}),children:[s.jsxs("ul",{className:"space-y-0.5",children:[D.map(S=>{const I=S.key==="system_prompt",B=S.key==="messages",C=S.key==="tool_calls",Y=S.key==="custom_agents";if(S.key,n==="claude"&&(C||Y))return null;const U=B&&T.length>0||C&&(O?.categories?.length>0||j)||Y&&X&&A,K=!!f[S.key],R=qh(S.key,n),H=s.jsx("span",{className:"h-2 w-2 rounded-sm shrink-0",style:{backgroundColor:R},"aria-hidden":"true"}),q=I?s.jsxs("span",{className:"relative inline-flex shrink-0 group",children:[s.jsx(go,{size:11,className:"text-oai-gray-400 dark:text-oai-gray-500 cursor-help","aria-hidden":"true"}),s.jsx("span",{role:"tooltip",className:"pointer-events-none absolute left-1/2 bottom-full z-20 mb-1.5 -translate-x-1/2 w-64 rounded-md border border-oai-gray-200 dark:border-oai-gray-700 bg-oai-white dark:bg-oai-gray-900 px-2.5 py-1.5 text-[11px] leading-snug text-oai-gray-700 dark:text-oai-gray-200 shadow-md opacity-0 group-hover:opacity-100 transition-opacity",children:g("dashboard.context_breakdown.system_prefix_tooltip")})]}):null,te=S.percent>0?`${S.percent.toFixed(S.percent<.1&&S.percent>0?2:1)}%`:"0.0%";return s.jsxs(Ze,{level:0,colorSquare:H,label:Br(S.key),labelSuffix:q,tokens:qe(S.totals?.total_tokens||0),percent:te,hasChevron:U,open:K,onToggle:()=>h(S.key),share:S.percent,fillColor:R,children:[B&&s.jsx("ul",{className:"space-y-0.5",children:T.map(re=>s.jsx(Ze,{level:1,label:cy(re),tokens:qe(re.totals.total_tokens||0),percent:null},re.key||re.name))}),C&&O&&s.jsx(tn,{toolSet:O,execDetails:x,source:n,codexQueueFallback:j}),C&&j&&!O&&s.jsx("p",{className:"text-[11px] text-oai-gray-400 dark:text-oai-gray-500 py-0.5",children:g("dashboard.context_breakdown.tool_details.unavailable_codex")}),Y&&A&&s.jsx(tn,{toolSet:A,execDetails:null,source:n,codexQueueFallback:!1})]},S.key)}),n==="claude"&&O?.categories?.length>0&&s.jsx(Ze,{level:0,colorSquare:s.jsx("span",{className:"h-2 w-2 rounded-sm shrink-0 bg-oai-gray-300 dark:bg-oai-gray-600","aria-hidden":"true"}),label:g("dashboard.context_breakdown.category.tool_calls"),tokens:qe(L),percent:null,hasChevron:!0,open:!!f.tool_calls_aux,onToggle:()=>h("tool_calls_aux"),children:s.jsx(tn,{toolSet:O,execDetails:x,source:n,codexQueueFallback:!1})}),n==="claude"&&A?.categories?.length>0&&s.jsx(Ze,{level:0,colorSquare:s.jsx("span",{className:"h-2 w-2 rounded-sm shrink-0 bg-oai-gray-300 dark:bg-oai-gray-600","aria-hidden":"true"}),label:g("dashboard.context_breakdown.category.custom_agents"),tokens:qe(F),percent:null,hasChevron:!0,open:!!f.custom_agents_aux,onToggle:()=>h("custom_agents_aux"),children:s.jsx(tn,{toolSet:A,execDetails:null,source:n,codexQueueFallback:!1})}),N?.categories?.length>0&&s.jsx(Ze,{level:0,colorSquare:s.jsx("span",{className:"h-2 w-2 rounded-sm shrink-0 bg-oai-gray-300 dark:bg-oai-gray-600","aria-hidden":"true"}),label:g("dashboard.context_breakdown.category.mcp_servers"),tokens:qe(P),percent:null,hasChevron:!0,open:!!f.mcp_servers,onToggle:()=>h("mcp_servers"),children:s.jsx(tn,{toolSet:N,execDetails:null,source:n,codexQueueFallback:!1})}),M.length>0&&s.jsx(Ze,{level:0,colorSquare:s.jsx("span",{className:"h-2 w-2 rounded-sm shrink-0 bg-oai-gray-300 dark:bg-oai-gray-600","aria-hidden":"true"}),label:g("dashboard.context_breakdown.category.skills"),tokens:qe(M.reduce((S,I)=>S+(I.total_tokens||0),0)),percent:null,hasChevron:!0,open:!!f.skills,onToggle:()=>h("skills"),children:s.jsx("ul",{className:"space-y-0.5",children:M.slice(0,12).map(S=>s.jsx(Ze,{level:1,label:S.name,tokens:qe(S.total_tokens),percent:null},S.name))})})]}),s.jsx("p",{className:"mt-2 text-[10px] text-oai-gray-400 dark:text-oai-gray-500",children:g(my(n))}),j?s.jsx("p",{className:"mt-2 text-[11px] text-oai-gray-500 dark:text-oai-gray-400",children:g("dashboard.context_breakdown.tool_details.unavailable_codex")}):null,k?s.jsxs("p",{className:"mt-2 text-[10px] text-oai-gray-400 dark:text-oai-gray-500",children:[Se(k.skills_count||0)," skills ·"," ",Se(k.mcp_servers_count||0)," MCP servers ·"," ",Se(k.custom_agents_count||0)," agents ·"," ",Se(k.memory_files_count||0)," memory files"]}):null]})}function Ur({fleetData:e=[],from:t,to:n}){const a=dn(),[r,o]=y.useState(null),{currency:l,rate:i}=Ct(),c=e.filter(Ra);return c.length===0?null:s.jsx(un,{children:s.jsxs("div",{className:"space-y-6",children:[s.jsx("div",{role:"img","aria-label":g("usage.overview.distribution_aria",{items:c.map(d=>g("usage.overview.distribution_item",{label:d.label,percent:d.totalPercent})).join(",")}),className:"h-1.5 w-full bg-oai-gray-100 dark:bg-oai-gray-800 rounded-full overflow-hidden flex",children:c.map((d,u)=>{const f=oa(d.label,u);return s.jsx(Be.div,{initial:{width:0},animate:{width:`${d.totalPercent}%`},transition:{duration:.5,delay:.45+u*.04,ease:[.16,1,.3,1]},className:"h-full",style:{backgroundColor:f},title:`${d.label}: ${d.totalPercent}%`},d.label)})}),s.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 xl:grid-cols-5 gap-3",children:c.map((d,u)=>{const f=oa(d.label,u),m=r===d.label,h=d.missingPricingModels?.length||0,p=!!h,b=Yh(d),w=zh(d,b);return s.jsxs("button",{"aria-expanded":m,"aria-controls":`provider-details-${d.label}`,"aria-label":g("usage.overview.provider_card_aria",{provider:d.label,percent:d.totalPercent,tokens:rs(d.usage)||"0",cost:Ia(d.usd,l,i)||`${In(l)}0`,action:g(m?"usage.overview.collapse":"usage.overview.expand")}),onClick:()=>o(m?null:d.label),className:`min-w-0 text-left p-3 rounded-lg border transition-colors duration-200 ${m?"border-oai-gray-300 dark:border-oai-gray-600 bg-oai-gray-50 dark:bg-oai-gray-800":"border-oai-gray-200 dark:border-oai-gray-700 hover:border-oai-gray-300 dark:hover:border-oai-gray-600"}`,children:[s.jsxs("div",{className:"flex items-center gap-1.5 mb-1",children:[s.jsx(ja,{provider:d.label,size:15,color:f,className:"text-oai-gray-700 dark:text-oai-gray-300 shrink-0"}),s.jsx("span",{className:"text-sm font-medium text-oai-black dark:text-oai-white",children:d.label})]}),s.jsxs("div",{className:"text-lg font-semibold text-oai-black dark:text-oai-white tabular-nums",children:[d.totalPercent,"%"]}),s.jsx("div",{className:"mt-0.5 text-[11px] text-oai-gray-400 dark:text-oai-gray-400 tabular-nums",children:g("usage.overview.model_count",{count:d.models.length})}),s.jsxs("div",{className:"mt-2 space-y-1.5",children:[b.map(v=>{const k=Bh(v,d.topCostModel);return s.jsxs("div",{className:"min-w-0",children:[s.jsxs("div",{className:"flex min-w-0 items-center justify-between gap-2 text-[10px] font-medium",children:[s.jsx("span",{className:`truncate ${k?"text-oai-black dark:text-oai-white":"text-oai-gray-600 dark:text-oai-gray-300"}`,title:v.name,children:rn(v.name)}),s.jsx("span",{className:"shrink-0 text-oai-gray-500 dark:text-oai-gray-400 tabular-nums",children:g("usage.overview.model_percent",{percent:v.share})})]}),s.jsx("div",{role:"progressbar","aria-label":g("usage.overview.model_chip",{model:rn(v.name),percent:v.share}),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Number(v.share)||0,className:"mt-1 h-1.5 overflow-hidden rounded-full bg-oai-gray-100 dark:bg-oai-gray-800",children:s.jsx(Be.div,{initial:{width:0},animate:{width:Lh(v.share)},transition:{duration:a?0:.45,delay:a?0:.05,ease:[.16,1,.3,1]},className:"h-full rounded-full",style:{backgroundColor:k?f:`${f}99`}})})]},v.id||v.name)}),!!w&&s.jsx("div",{className:"text-[10px] font-medium text-oai-gray-400 dark:text-oai-gray-500",children:g("usage.overview.model_more",{count:w})})]}),d.topCostModel?.name?s.jsx("div",{className:"mt-1.5 truncate text-[10px] font-medium text-oai-gray-500 dark:text-oai-gray-400",children:g("usage.overview.provider_top_cost",{model:rn(d.topCostModel.name)})}):null,p?s.jsx("div",{className:"mt-1.5 truncate text-[10px] font-semibold text-amber-700 dark:text-amber-300",children:g("usage.overview.provider_missing_pricing",{count:h})}):null]},d.label)})}),r&&s.jsx("div",{id:`provider-details-${r}`,role:"region","aria-label":g("usage.overview.model_details_aria",{provider:r}),className:"mt-2",children:c.filter(d=>d.label===r).map(d=>{const u=oa(d.label,0),f=Fn(d),m=[...d.models].sort((p,b)=>(b.share||0)-(p.share||0)),h=f?`${f==="claude"?"Claude":"Codex"} Context Breakdown`:d.label;return s.jsx(yy,{provider:d,color:u,providerHeading:h,contextSource:f,from:t,to:n,sortedModels:m},d.label)})})]})})}function yy({provider:e,color:t,providerHeading:n,contextSource:a,from:r,to:o,sortedModels:l}){const{currency:i,rate:c}=Ct(),[d,u]=y.useState(!1),f=String(e?.source||e?.label||"").trim().toLowerCase()==="antigravity";return s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center gap-1.5 mb-3",children:[s.jsx(ja,{provider:e.label,size:14,color:t,className:"shrink-0"}),s.jsx("span",{className:"text-sm font-medium text-oai-black dark:text-oai-white",children:n}),a&&d&&s.jsx(vl,{size:12,className:"text-oai-gray-400 dark:text-oai-gray-500 animate-spin shrink-0","aria-label":g("dashboard.context_breakdown.loading_aria")})]}),f&&s.jsxs("p",{className:"mb-3 text-[10px] leading-snug text-oai-gray-400 dark:text-oai-gray-500",children:[s.jsxs("span",{className:"font-medium text-oai-gray-500 dark:text-oai-gray-400",children:[g("usage.overview.antigravity_notice_title"),"."]})," ",g("usage.overview.antigravity_notice_body")]}),a?s.jsx("div",{className:"mb-4 pb-4 border-b border-oai-gray-200 dark:border-oai-gray-700",children:s.jsx(is,{from:r,to:o,source:a,referenceTotalTokens:e.usage,onLoadingChange:u})}):null,s.jsx("div",{className:"space-y-3",children:l.map(m=>{const h=rs(m.usage),p=Ia(m.cost,i,c),b=Math.max(0,Math.min(100,Number(m.share)||0));return s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-baseline gap-4 mb-1.5",children:[s.jsx("span",{className:"flex-1 min-w-0 text-sm text-oai-gray-700 dark:text-oai-gray-300 truncate",title:m.name,children:m.name}),s.jsx("span",{className:"shrink-0 w-16 text-right text-sm text-oai-gray-500 dark:text-oai-gray-400 tabular-nums",children:h}),s.jsx("span",{className:"shrink-0 w-16 text-right text-sm text-oai-gray-500 dark:text-oai-gray-400 tabular-nums",children:p}),s.jsxs("span",{className:"shrink-0 w-12 text-right text-sm text-oai-black dark:text-oai-white tabular-nums",children:[m.share,"%"]})]}),s.jsx("div",{className:"h-[3px] bg-oai-gray-100 dark:bg-oai-gray-800 rounded-full overflow-hidden",role:"progressbar","aria-valuenow":b,"aria-valuemin":0,"aria-valuemax":100,children:s.jsx("div",{className:"h-full transition-[width] duration-500 ease-out",style:{width:`${b}%`,backgroundColor:t,opacity:.45}})})]},m.id||m.name)})})]})}function gy({fleetData:e=[],from:t,to:n}){const a=e.filter(Ra).filter(l=>Fn(l)!==null);if(a.length===0)return null;const r=a.reduce((l,i)=>(Number(i.usage)||0)>(Number(l.usage)||0)?i:l),o=Fn(r);return s.jsx(un,{title:g("dashboard.context_breakdown.card_title"),children:s.jsx(is,{from:t,to:n,source:o,referenceTotalTokens:r.usage})})}function py(e){return e==="day"?"hourly":e==="total"?"monthly":"daily"}function by(e){return!!e&&!e.missing&&!e.future}function xy(e){const t=e?.billable_total_tokens??e?.total_tokens??e?.value,n=Number(t);return Number.isFinite(n)&&n>=0?n:0}function ky(e){const t=e?.total_tokens??e?.billable_total_tokens??e?.value,n=Number(t);return Number.isFinite(n)&&n>=0?n:0}function wy(e){const t=Array.isArray(e)?e.filter(by):[];let n=0,a=0,r=0,o=0,l=!1,i=0,c=-1,d=null;for(const u of t){const f=ky(u),m=xy(u);n+=f,a+=m;const h=Number(u?.conversation_count);Number.isFinite(h)&&h>0&&(r+=h);const p=Number(u?.total_cost_usd);Number.isFinite(p)&&(l=!0,o+=p),m>0&&(i+=1),m>c&&(c=m,d=u)}return{totalTokens:n,billableTokens:a,conversationCount:r,totalCostUsd:l?o:null,bucketCount:t.length,activeBuckets:i,peak:d&&c>0?{value:c,label:d.hour||d.day||d.month||""}:null}}function qr(e){return String(e).padStart(2,"0")}function vy(e,t){if(!e)return"";if(t==="hourly"){const n=String(e.hour||e.label||""),a=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2})/.exec(n);if(!a)return n;const[,r,o,l]=a,c=Number(o)*60+Number(l)+30,d=Math.floor(c/60)%24,u=c%60;return`${r} ${o}:${l}–${qr(d)}:${qr(u)}`}return String(t==="monthly"?e.month||e.label||"":e.day||e.label||"")}function _y(e){if(!e||e.activeBuckets===0)return"trend.zoom.insight.empty";const t=e.totalTokens||0;return t<1e7?"trend.zoom.insight.calm":t<5e8?"trend.zoom.insight.steady":t<5e9?"trend.zoom.insight.heavy":"trend.zoom.insight.massive"}function Ny(e,t){if(!e)return"";if(t==="hourly"){const r=/T(\d{2}:\d{2})/.exec(String(e.hour||e.label||""));return r?r[1]:""}if(t==="monthly")return String(e.month||e.label||"");const n=String(e.day||e.label||""),a=/^\d{4}-(\d{2}-\d{2})$/.exec(n);return a?a[1]:n}const Sy=[{period:"day",labelKey:"trend.zoom.gran.30min"},{period:"month",labelKey:"trend.zoom.gran.day"},{period:"total",labelKey:"trend.zoom.gran.month"}],My=24,Bt="#10b981";function Vr(e){return e==="day"?"day":e==="total"?"total":"month"}function wa(e,t){const n=/^(\d{4})-(\d{2})-(\d{2})$/.exec(String(e||""));if(!n)return e;const a=new Date(Date.UTC(Number(n[1]),Number(n[2])-1,Number(n[3])));a.setUTCDate(a.getUTCDate()+t);const r=a.getUTCFullYear(),o=String(a.getUTCMonth()+1).padStart(2,"0"),l=String(a.getUTCDate()).padStart(2,"0");return`${r}-${o}-${l}`}function jy(e,t){const n=/^(\d{4})-(\d{2})-(\d{2})$/.exec(String(e||""));if(!n)return e;const a=new Date(Date.UTC(Number(n[1]),Number(n[2])-1+t,Number(n[3]))),r=a.getUTCFullYear(),o=String(a.getUTCMonth()+1).padStart(2,"0"),l=String(a.getUTCDate()).padStart(2,"0");return`${r}-${o}-${l}`}function Dy(e,t){const n=/^(\d{4})-(\d{2})/.exec(String(e||"")),a=/^(\d{4})-(\d{2})/.exec(String(t||""));if(!n||!a)return My;const r=Number(a[1])*12+Number(a[2])-(Number(n[1])*12+Number(n[2]))+1;return Math.max(1,r)}function Kr(e,t){return t?e==="total"?{from:jy(t,-23),to:t}:{from:wa(t,-29),to:t}:{from:null,to:null}}function Cy(e){const t=/^\d{4}-(\d{2}-\d{2})T(\d{2}:\d{2})/.exec(String(e||""));return t?`${t[1]} ${t[2]}`:e||""}function Mn({label:e,value:t,sub:n}){return s.jsxs("div",{className:"flex flex-col gap-1.5 group",children:[s.jsx("span",{className:"text-[9px] font-bold uppercase tracking-widest font-mono text-zinc-400 dark:text-zinc-500",children:e}),s.jsx("span",{className:"text-xl font-black font-mono text-zinc-900 dark:text-zinc-50 tracking-tight leading-none tabular-nums transition-transform duration-200 group-hover:-translate-y-[1px]",children:t}),n?s.jsx("span",{className:"text-[10px] font-bold text-zinc-400 dark:text-zinc-500 font-mono tabular-nums",children:n}):null]})}function Ty({zoomConfig:e,period:t,from:n,to:a,timeZoneLabel:r,onClose:o,renderChart:l}){const{currency:i,rate:c}=Ct(),d=W.useMemo(()=>sn({timeZone:e?.timeZone,offsetMinutes:e?.tzOffsetMinutes,date:e?.now||new Date})||a||n||null,[e?.timeZone,e?.tzOffsetMinutes,e?.now,a,n]),[u,f]=W.useState(()=>Vr(t)),[m,h]=W.useState(d),[p,b]=W.useState(()=>Kr(Vr(t),d)),[w,v]=W.useState(!1),[k,x]=W.useState(!1),[M,T]=W.useState(!1),j=d,E=C=>{f(C),C!=="day"&&b(Kr(C,d))},N=W.useMemo(()=>u==="day"?{from:m,to:m,months:void 0}:u==="total"?{from:void 0,to:p.to,months:Dy(p.from,p.to)}:{from:p.from,to:p.to,months:void 0},[u,m,p]),{rows:O,from:P,to:A,loading:X}=po({...e,period:u,from:N.from,to:N.to,months:N.months}),L=W.useMemo(()=>wy(O),[O]),F=W.useCallback(()=>T(!0),[]),D=C=>{C.target===C.currentTarget&&M&&o()};if(W.useEffect(()=>{const C=Y=>{Y.key==="Escape"&&F()};return window.addEventListener("keydown",C),()=>window.removeEventListener("keydown",C)},[F]),typeof document>"u")return null;const S=u==="day"&&!!m,I=u==="day"&&!!m&&(!j||m<j),B=L.totalCostUsd!=null?ut(L.totalCostUsd,{currency:i,rate:c}):null;return s.jsxs("div",{onAnimationEnd:D,onClick:C=>{C.target===C.currentTarget&&F()},className:Re("fixed inset-0 z-50 flex items-center justify-center p-3 md:p-6 backdrop-blur-md bg-black/15 dark:bg-black/40",M?"animate-tt-fade-out":"animate-tt-fade-in"),children:[s.jsx("style",{children:`
|
|
2
|
+
@keyframes tt-fade-in { from { opacity: 0; } to { opacity: 1; } }
|
|
3
|
+
@keyframes tt-fade-out { from { opacity: 1; } to { opacity: 0; } }
|
|
4
|
+
@keyframes tt-modal-entrance {
|
|
5
|
+
from { opacity: 0; transform: scale(0.96) translateY(10px); }
|
|
6
|
+
to { opacity: 1; transform: scale(1) translateY(0); }
|
|
7
|
+
}
|
|
8
|
+
@keyframes tt-modal-exit {
|
|
9
|
+
from { opacity: 1; transform: scale(1) translateY(0); }
|
|
10
|
+
to { opacity: 0; transform: scale(0.96) translateY(10px); }
|
|
11
|
+
}
|
|
12
|
+
.animate-tt-fade-in { animation: tt-fade-in 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
|
|
13
|
+
.animate-tt-fade-out { animation: tt-fade-out 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
|
|
14
|
+
.animate-tt-modal { animation: tt-modal-entrance 0.3s cubic-bezier(0.34, 1.3, 0.64, 1) forwards; }
|
|
15
|
+
.animate-tt-modal-exit { animation: tt-modal-exit 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
|
|
16
|
+
@media (prefers-reduced-motion: reduce) {
|
|
17
|
+
.animate-tt-fade-in, .animate-tt-fade-out, .animate-tt-modal, .animate-tt-modal-exit { animation: none; }
|
|
18
|
+
}
|
|
19
|
+
`}),s.jsxs("div",{className:Re("relative w-full max-w-6xl h-[88vh] backdrop-blur-2xl bg-white/90 dark:bg-oai-gray-900/90 border border-oai-gray-200/50 dark:border-white/10 shadow-2xl rounded-2xl flex flex-col md:flex-row overflow-hidden",M?"animate-tt-modal-exit":"animate-tt-modal"),children:[s.jsx("button",{type:"button",onClick:F,"aria-label":g("trend.zoom.close_aria"),className:"absolute top-4 right-4 z-50 p-2 rounded-full border border-oai-gray-200/60 dark:border-oai-gray-800/60 bg-white/50 dark:bg-oai-gray-900/50 text-oai-gray-500 dark:text-oai-gray-400 hover:text-oai-gray-900 dark:hover:text-white hover:rotate-90 hover:scale-105 active:scale-95 transition-all duration-300",children:s.jsx(lo,{size:16})}),s.jsxs("div",{className:"w-full md:w-[320px] shrink-0 border-b md:border-b-0 md:border-r border-zinc-200/50 dark:border-zinc-800/40 p-5 md:p-6 flex flex-col gap-6 overflow-y-auto backdrop-blur-md bg-zinc-50/50 dark:bg-zinc-950/50",children:[s.jsxs("div",{children:[s.jsxs("div",{className:"flex items-center gap-1.5 select-none",children:[s.jsxs("span",{className:"relative flex h-1.5 w-1.5",children:[s.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full opacity-75",style:{backgroundColor:Bt}}),s.jsx("span",{className:"relative inline-flex rounded-full h-1.5 w-1.5",style:{backgroundColor:Bt}})]}),s.jsx("span",{className:"text-[9px] font-extrabold uppercase tracking-widest font-mono text-zinc-400 dark:text-zinc-500",children:g("trend.zoom.badge")})]}),s.jsx("h4",{className:"text-xl font-black text-zinc-900 dark:text-zinc-50 tracking-tight leading-none mt-2 select-none",children:g("trend.monitor.label")}),r?s.jsx("p",{className:"text-[10px] text-zinc-400 dark:text-zinc-500 mt-1.5 font-mono select-none",children:r}):null,s.jsx("p",{className:"text-[11px] leading-relaxed text-zinc-400 dark:text-zinc-500 mt-2 font-normal select-none",children:g("trend.zoom.desc")})]}),s.jsxs("div",{className:"grid grid-cols-2 gap-x-5 gap-y-5 border-y border-zinc-200/50 dark:border-zinc-800/50 py-5 select-none",children:[s.jsx(Mn,{label:g("trend.zoom.stats.tokens"),value:Se(L.totalTokens)}),B?s.jsx(Mn,{label:g("trend.zoom.stats.cost"),value:B}):null,s.jsx(Mn,{label:g("trend.zoom.stats.conversations"),value:L.conversationCount.toLocaleString()}),L.peak?s.jsx(Mn,{label:g("trend.zoom.stats.peak"),value:Se(L.peak.value),sub:Cy(L.peak.label)}):null]}),s.jsxs("div",{className:"flex flex-col gap-2 select-none",children:[s.jsxs("div",{className:"flex items-center gap-1.5",children:[s.jsx(ll,{size:11,style:{color:Bt}}),s.jsx("span",{className:"text-[9px] font-extrabold uppercase tracking-widest font-mono",style:{color:Bt},children:g("trend.zoom.insight_badge")})]}),s.jsxs("div",{className:"pl-3.5 border-l-2 relative",style:{borderColor:Bt},children:[s.jsx("div",{className:"absolute inset-y-0 left-0 w-[3px] blur-[2px] opacity-15 pointer-events-none rounded-full",style:{backgroundColor:Bt}}),s.jsx("p",{className:"text-[11px] leading-relaxed text-zinc-600 dark:text-zinc-400 font-normal",children:g(_y(L),{active:L.activeBuckets,peak:Se(L.peak?.value||0)})})]})]})]}),s.jsxs("div",{className:"flex-1 min-w-0 flex flex-col p-5 md:p-6 overflow-y-auto",children:[s.jsxs("div",{className:"flex items-center justify-between gap-3 mb-6 pr-10",children:[s.jsx("div",{role:"tablist","aria-label":g("trend.zoom.gran.aria"),className:"flex rounded-md border border-oai-gray-200 dark:border-oai-gray-800 p-0.5 text-[11px]",children:Sy.map(C=>s.jsx("button",{type:"button",role:"tab","aria-selected":u===C.period,onClick:()=>E(C.period),className:Re("px-2.5 py-1 rounded transition-colors",u===C.period?"bg-oai-gray-100 text-oai-black dark:bg-oai-gray-800 dark:text-oai-white font-medium":"text-oai-gray-500 dark:text-oai-gray-400 hover:text-oai-gray-700 dark:hover:text-oai-gray-200"),children:g(C.labelKey)},C.period))}),u==="day"?s.jsxs("div",{className:"flex items-center gap-1.5",children:[s.jsx("button",{type:"button",onClick:()=>S&&h(C=>wa(C,-1)),disabled:!S,"aria-label":g("trend.zoom.prev_day"),className:"p-1 rounded-md text-oai-gray-400 hover:text-oai-gray-700 dark:hover:text-oai-gray-200 hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 disabled:opacity-30 disabled:pointer-events-none transition-colors",children:s.jsx(Ki,{size:16})}),s.jsxs(ha,{open:w,onOpenChange:v,children:[s.jsx(ya,{"aria-label":g("trend.zoom.pick_day"),className:"text-[12px] font-medium text-oai-gray-700 dark:text-oai-gray-200 tabular-nums min-w-[100px] text-center px-2 py-0.5 rounded-md border border-oai-gray-200 dark:border-oai-gray-800 hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 transition-colors",children:m||"—"}),s.jsx(ga,{children:s.jsx(pa,{sideOffset:8,side:"bottom",align:"center",className:"!z-[9999]",children:s.jsx(ba,{className:"bg-white dark:bg-oai-gray-900 border border-oai-gray-200 dark:border-oai-gray-700 rounded-xl shadow-lg",children:s.jsx(ka,{from:m,to:m,onApply:C=>{C&&h(C),v(!1)},onCancel:()=>v(!1)})})})})]}),s.jsx("button",{type:"button",onClick:()=>I&&h(C=>wa(C,1)),disabled:!I,"aria-label":g("trend.zoom.next_day"),className:"p-1 rounded-md text-oai-gray-400 hover:text-oai-gray-700 dark:hover:text-oai-gray-200 hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 disabled:opacity-30 disabled:pointer-events-none transition-colors",children:s.jsx(ho,{size:16})})]}):s.jsxs(ha,{open:k,onOpenChange:x,children:[s.jsx(ya,{"aria-label":g("trend.zoom.pick_range"),className:"text-xs font-medium text-oai-gray-600 dark:text-oai-gray-300 tabular-nums px-2.5 py-1 rounded-md border border-oai-gray-200 dark:border-oai-gray-800 hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 transition-colors select-none",children:p.from&&p.to?p.from===p.to?p.from:`${p.from} → ${p.to}`:"—"}),s.jsx(ga,{children:s.jsx(pa,{sideOffset:8,side:"bottom",align:"end",className:"!z-[9999]",children:s.jsx(ba,{className:"bg-white dark:bg-oai-gray-900 border border-oai-gray-200 dark:border-oai-gray-700 rounded-xl shadow-lg",children:s.jsx(ka,{from:p.from,to:p.to,onApply:(C,Y)=>{C&&b({from:C,to:Y||C}),x(!1)},onCancel:()=>x(!1)})})})})]})]}),s.jsx("div",{className:"flex-1 min-h-0 flex flex-col",children:X&&(!O||O.length===0)?s.jsx("div",{className:"flex-1 flex items-center justify-center",children:s.jsx("p",{className:"text-sm text-oai-gray-400 dark:text-oai-gray-400",children:g("trend.zoom.loading")})}):l({rows:O,from:P,to:A,period:u,timeZoneLabel:r})})]})]})]})}function Gr(e,t){if(!Array.isArray(e)||e.length===0)return 0;if(e.length===1)return e[0];const n=(e.length-1)*t,a=Math.floor(n),r=Math.ceil(n);if(a===r)return e[a];const o=n-a;return e[a]+(e[r]-e[a])*o}function Py(e){const t=Array.isArray(e)?e.filter(r=>Number.isFinite(r)&&r>0).sort((r,o)=>r-o):[];if(t.length===0)return{rawMax:0,effectiveMax:1,clippedValues:Array.isArray(e)?e.map(()=>0):[]};const n=t.at(-1)??0;let a=n;if(t.length>=4){const r=Gr(t,.25),o=Gr(t,.75),l=Math.max(o-r,0),i=o+l*1.5;n>i&&(a=Math.max(i,o,1))}return{rawMax:n,effectiveMax:Math.max(a,1),clippedValues:Array.isArray(e)?e.map(r=>!Number.isFinite(r)||r<=0?0:Math.min(r,Math.max(a,1))):[]}}const Xr=["#f472b6","#38bdf8","#34d399","#fbbf24","#a78bfa","#fb7185","#2dd4bf","#f97316","#6366f1","#ec4899","#14b8a6","#f59e0b"],ls={Input:"#38bdf8","Cached Input":"#14b8a6",Output:"#a78bfa","Reasoning Output":"#fb7185"},Oy={codex:"#3b82f6",gpt:"#10b981",openai:"#10b981",claude:"#d97757",anthropic:"#d97757",gemini:"#2196f3",google:"#2196f3",kimi:"#a78bfa",moonshot:"#a78bfa",opencode:"#f59e0b",deepseek:"#f59e0b",droid:"#ef4444",kilo:"#facc15"};function cs(e){const t=e.toLowerCase();for(const[r,o]of Object.entries(Oy))if(t.includes(r))return o;let n=0;for(let r=0;r<e.length;r++)n=e.charCodeAt(r)+((n<<5)-n);const a=Math.abs(n)%Xr.length;return Xr[a]}function Wy(e){if(!e)return[];const t=[];if(e.models&&typeof e.models=="object")for(const[n,a]of Object.entries(e.models)){const r=Number(a);Number.isFinite(r)&&r>0&&t.push({type:"model",name:n,value:r})}if(t.length===0){const n=[{name:"Input",key:"input_tokens"},{name:"Cached Input",key:"cached_input_tokens"},{name:"Output",key:"output_tokens"},{name:"Reasoning Output",key:"reasoning_output_tokens"}];for(const a of n){const r=Number(e[a.key]);Number.isFinite(r)&&r>0&&t.push({type:"token_type",name:a.name,value:r})}}return t.sort((n,a)=>a.value-n.value)}function Ay(e,t){return e?.future?"predicted":e?.missing?"unsynced":t>0?"real":"real_zero"}const Fy=.35,Qr=2,Jr=4;function Ey({value:e,displayValue:t,scale:n,index:a,row:r,totalBars:o,onMouseEnter:l,onMouseLeave:i}){const c=dn(),d=Ay(r,e),u=d==="predicted"||d==="unsynced",f=n.effectiveMax>0?t/n.effectiveMax*100:0;let m,h;d==="real"?(m=`${Math.max(f,2)}%`,h=`${Jr}px`):u&&f>0?(m=`${f}%`,h=`${Jr}px`):(m=`${Qr}px`,h=`${Qr}px`);const p=d==="real"?Wy(r):[],b=p.reduce((v,k)=>v+k.value,0),w=d!=="real"||b<=0;return s.jsxs(Be.div,{className:"group relative flex-1 self-stretch",initial:{opacity:0,scaleY:0},animate:{opacity:1,scaleY:1},transition:{duration:c?0:.3,delay:c?0:.4+a*.008,ease:[.16,1,.3,1]},style:{originY:1},onMouseEnter:v=>l(v,r,e,p,d,t),onMouseLeave:i,children:[s.jsx("div",{className:"absolute inset-x-0 top-0 bottom-0 bg-oai-gray-100/70 dark:bg-white/[0.08] opacity-0 group-hover:opacity-100 transition-opacity duration-150 pointer-events-none"}),s.jsx("div",{className:"absolute inset-x-0 bottom-0 flex flex-col-reverse justify-start overflow-hidden cursor-pointer transition-all duration-200",style:{height:m,minHeight:h},children:w?s.jsx("div",{"data-trend-bar":"true",className:Re("h-full w-full group-hover:brightness-110 transition-all",d==="real"?"":"bg-oai-gray-100 dark:bg-oai-gray-800"),style:{opacity:u?Fy:1,background:d==="real"?"#10b981":void 0}}):p.map((v,k)=>{const x=v.type==="token_type"?ls[v.name]:cs(v.name),M=`${v.value/b*100}%`;return s.jsx("div",{"data-trend-bar":k===0?"true":void 0,className:"w-full group-hover:brightness-110 transition-all",style:{height:M,background:x}},k)})})]})}function $y(e){if(e?.missing||e?.future)return null;const t=e?.billable_total_tokens??e?.total_tokens??e?.value;if(t==null)return null;const n=Number(t);return Number.isFinite(n)&&n>=0?n:null}const Zr=.98;function Iy(e){if(!Array.isArray(e))return[];const t=new Array(e.length);for(let n=0;n<e.length;n++){if(e[n]!==null){t[n]=e[n];continue}let a=null,r=-1;for(let i=n-1;i>=0;i--)if(e[i]!==null){a=e[i],r=i;break}let o=null,l=-1;for(let i=n+1;i<e.length;i++)if(e[i]!==null){o=e[i],l=i;break}if(a!==null&&o!==null){const i=(n-r)/(l-r);t[n]=a+(o-a)*i}else if(a!==null){let i=0,c=0;for(let u=0;u<=r;u++)e[u]!==null&&(i+=e[u],c+=1);const d=c>0?i/c:a;t[n]=d*Math.pow(Zr,n-r)}else if(o!==null){let i=0,c=0;for(let u=l;u<e.length;u++)e[u]!==null&&(i+=e[u],c+=1);const d=c>0?i/c:o;t[n]=d*Math.pow(Zr,l-n)}else t[n]=0}return t}function ds({rows:e,from:t,to:n,period:a,timeZoneLabel:r,showTimeZoneLabel:o=!0,className:l="",embedded:i=!1,chartHeightClass:c="h-40",isZoom:d=!1,zoomConfig:u=null}){const f=W.useMemo(()=>Array.isArray(e)&&e.length?e:[],[e]),{rawValues:m,seriesValues:h,scale:p,interpolatedValues:b}=W.useMemo(()=>{const L=f.map($y),F=L.map(D=>D??0);return{rawValues:L,seriesValues:F,scale:Py(F),interpolatedValues:Iy(L)}},[f]),{currency:w,rate:v}=Ct(),k=py(a),[x,M]=W.useState(null),[T,j]=W.useState({x:0,y:0,shiftX:0,flipDown:!1}),[E,N]=W.useState(!1),O=W.useRef(null),P=W.useRef(null),A=(L,F,D,S,I,B)=>{P.current&&(clearTimeout(P.current),P.current=null);const C=d?vy(F,k):F?.day||F?.hour||F?.month||"";M({row:F,value:D,segments:S,timeLabel:C,kind:I,displayValue:B});const Y=L.currentTarget.querySelector('[data-trend-bar="true"]'),U=Y&&Y.parentElement?Y.parentElement.getBoundingClientRect():L.currentTarget.getBoundingClientRect(),K=O.current;if(!K)return;const R=K.getBoundingClientRect(),H=U.left-R.left+U.width/2,q=U.top-R.top,te=140;let re=0;H<te?re=te-H:H>R.width-te&&(re=R.width-te-H);const ge=96+(d?22:0)+(S.length?Math.min(S.length*30+24,174):0),le=q<ge+12;j({x:H,y:q,shiftX:re,flipDown:le})},X=()=>{P.current&&clearTimeout(P.current),P.current=setTimeout(()=>{M(null)},150)};return s.jsxs("div",{ref:O,className:Re("relative",!i&&"rounded-xl border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-900 p-5",d&&"flex h-full flex-col",l),children:[!i&&s.jsxs("div",{className:"mb-3 flex items-start justify-between gap-2",children:[s.jsxs("div",{children:[s.jsx("h3",{className:"text-sm font-medium text-oai-gray-500 dark:text-oai-gray-300 uppercase tracking-wide",children:g("trend.monitor.label")}),o&&r&&s.jsx("p",{className:"text-xs text-oai-gray-400 dark:text-oai-gray-400 mt-0.5",children:r})]}),u&&s.jsx("button",{type:"button",onClick:()=>N(!0),"aria-label":g("trend.zoom.open_aria"),title:g("trend.zoom.open_aria"),className:"shrink-0 p-1.5 rounded-md text-oai-gray-400 hover:text-oai-gray-700 dark:hover:text-oai-gray-200 hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 transition-colors",children:s.jsx(cl,{size:14})})]}),s.jsxs("div",{className:Re("space-y-3",d&&"flex flex-1 flex-col min-h-0 !space-y-0 gap-3"),children:[s.jsxs("div",{className:Re("relative",d&&"flex-1 min-h-0"),children:[s.jsx("div",{className:"absolute inset-0 flex flex-col justify-between pointer-events-none",children:[0,25,50,75,100].map(L=>s.jsx("div",{className:"w-full border-t border-oai-gray-100 dark:border-oai-gray-800",style:{top:`${100-L}%`}},L))}),s.jsx("div",{className:Re("flex items-end gap-0.5 relative z-0",c),children:h.length>0?h.map((L,F)=>{const D=f[F],I=D?.missing||D?.future?Math.min(b[F]??0,p.effectiveMax):p.clippedValues[F]??0;return s.jsx(Ey,{value:L,displayValue:I,scale:p,index:F,row:D,totalBars:h.length,onMouseEnter:A,onMouseLeave:X},F)}):s.jsx("div",{className:"flex-1 h-full flex items-center justify-center",children:s.jsx("p",{className:"text-sm text-oai-gray-400 dark:text-oai-gray-400",children:"No data yet"})})})]}),d&&h.length>0&&s.jsx("div",{className:"flex gap-0.5 select-none",children:f.map((L,F)=>{const D=h.length-1,S=Math.max(1,Math.ceil(h.length/8)),I=F%S===0||F===D,B=F===0?"justify-start":F===D?"justify-end":"justify-center";return s.jsx("div",{className:Re("flex-1 min-w-0 flex",B),children:I&&s.jsx("span",{className:"text-[9px] text-oai-gray-400 dark:text-oai-gray-500 whitespace-nowrap font-mono",children:Ny(L,k)})},F)})}),t&&n&&s.jsxs("div",{className:"flex justify-between text-xs text-oai-gray-500 dark:text-oai-gray-300 font-medium pt-2 border-t border-oai-gray-100 dark:border-oai-gray-800",children:[s.jsx("span",{children:t===n?`${t} 00:00`:t}),s.jsx("span",{children:t===n?`${n} 24:00`:n})]})]}),x&&s.jsxs("div",{className:"absolute z-[9999] w-0 h-0 transition-all duration-100 ease-out pointer-events-none",style:{left:`${T.x}px`,top:`${T.y}px`},children:[s.jsxs("div",{className:Re("absolute left-0 backdrop-blur-md bg-white/95 dark:bg-oai-gray-900/95 border border-oai-gray-200/50 dark:border-oai-gray-800/50 shadow-xl rounded-xl p-3.5 max-w-[280px] min-w-[220px] flex flex-col gap-2 animate-in fade-in zoom-in-95 duration-100",T.flipDown?"top-[10px]":"bottom-[10px]"),style:{transform:`translateX(calc(-50% + ${T.shiftX}px))`},children:[s.jsxs("div",{className:"flex items-center justify-between border-b border-oai-gray-100 dark:border-oai-gray-800/80 pb-1.5",children:[s.jsx("span",{className:"text-[11px] font-semibold text-oai-gray-500 dark:text-oai-gray-400",children:x.timeLabel}),x.kind==="predicted"&&s.jsx("span",{className:"text-[9px] font-semibold uppercase tracking-wider text-oai-gray-400 dark:text-oai-gray-500",children:"Predicted"}),x.kind==="unsynced"&&s.jsx("span",{className:"text-[9px] font-semibold uppercase tracking-wider text-oai-gray-400 dark:text-oai-gray-500",children:"Unsynced"})]}),s.jsxs("div",{className:"flex flex-col gap-2",children:[s.jsxs("div",{className:"flex items-baseline gap-1",children:[s.jsx("span",{className:"text-lg font-bold text-oai-gray-900 dark:text-white leading-none",children:x.kind==="predicted"||x.kind==="unsynced"?`~${Math.round(x.displayValue??0).toLocaleString()}`:x.value.toLocaleString()}),s.jsx("span",{className:"text-[10px] text-oai-gray-400 uppercase tracking-wider font-semibold",children:"Tokens"})]}),d&&(x.row?.total_cost_usd!=null||Number(x.row?.conversation_count)>0)&&s.jsxs("div",{className:"flex items-center gap-3 text-[11px] text-oai-gray-500 dark:text-oai-gray-400",children:[x.row?.total_cost_usd!=null&&s.jsxs("span",{children:[s.jsx("span",{className:"font-semibold text-oai-gray-700 dark:text-oai-gray-200",children:ut(x.row.total_cost_usd,{currency:w,rate:v})})," ",g("trend.zoom.tooltip.cost")]}),Number(x.row?.conversation_count)>0&&s.jsxs("span",{children:[s.jsx("span",{className:"font-semibold text-oai-gray-700 dark:text-oai-gray-200",children:Number(x.row.conversation_count).toLocaleString()})," ",g("trend.zoom.tooltip.conversations")]})]}),x.segments&&x.segments.length>0?s.jsxs("div",{className:"mt-1.5 border-t border-oai-gray-100 dark:border-oai-gray-800/60 pt-2 flex flex-col gap-1.5",children:[s.jsx("div",{className:"text-[10px] font-semibold text-oai-gray-400 dark:text-oai-gray-500 uppercase tracking-wider",children:x.segments[0].type==="model"?"Model Breakdown":"Token Breakdown"}),s.jsx("div",{className:"flex flex-col gap-2 max-h-[150px] overflow-y-auto pr-1.5 oai-scrollbar",children:x.segments.map(({name:L,value:F,type:D})=>{const S=x.value||1,I=Math.round(F/S*100),B=D==="token_type"?ls[L]:cs(L);return s.jsxs("div",{className:"flex flex-col gap-1",children:[s.jsxs("div",{className:"flex items-center justify-between text-[11px] gap-3",children:[s.jsx("span",{className:"font-medium text-oai-gray-750 dark:text-oai-gray-200 truncate max-w-[130px]",title:L,children:L}),s.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[s.jsx("span",{className:"font-mono text-oai-gray-900 dark:text-oai-gray-100 font-semibold",children:F.toLocaleString()}),s.jsxs("span",{className:"text-[9px] text-oai-gray-450 dark:text-oai-gray-500 min-w-[28px] text-right font-medium",children:[I,"%"]})]})]}),s.jsx("div",{className:"w-full h-1 bg-oai-gray-100 dark:bg-oai-gray-800/85 rounded-full overflow-hidden",children:s.jsx("div",{className:"h-full rounded-full transition-all duration-300",style:{width:`${I}%`,backgroundColor:B,boxShadow:`0 0 4px ${B}55`}})})]},L)})})]}):null]})]}),s.jsx("div",{className:Re("absolute left-0 -translate-x-1/2 w-2.5 h-2.5 rotate-45 bg-white dark:bg-oai-gray-900 border-oai-gray-200/50 dark:border-oai-gray-800/50 shadow-sm",T.flipDown?"top-[6px] border-l border-t":"bottom-[6px] border-r border-b"),style:T.flipDown?{marginTop:"1px"}:{marginBottom:"1px"}})]}),E&&u&&s.jsx(Ty,{zoomConfig:u,period:a,from:t,to:n,timeZoneLabel:r,onClose:()=>N(!1),renderChart:L=>s.jsx(ds,{embedded:!0,isZoom:!0,chartHeightClass:"h-full",...L})})]})}const eo="widgetOnboardingDismissed",to="tokentracker_native_app",Ry=(()=>{try{return new URLSearchParams(window.location.search).get("app")==="1"?(localStorage.setItem(to,"1"),!0):localStorage.getItem(to)==="1"}catch{return!1}})();function Ly({enterDelay:e=0}){const[t,n]=y.useState(()=>{try{return localStorage.getItem(eo)==="1"}catch{return!1}}),a=y.useCallback(()=>{n(!0);try{localStorage.setItem(eo,"1")}catch{}},[]);return!Ry||Gi()?null:s.jsx(Da,{initial:!1,children:!t&&s.jsxs(Be.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:-8,transition:{duration:.2,ease:[.4,0,.2,1]}},transition:{duration:.35,delay:e,ease:[.16,1,.3,1]},className:"relative rounded-xl border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-900 p-4",children:[s.jsx("button",{type:"button",onClick:a,"aria-label":g("dashboard.widgets.dismiss_aria"),className:"absolute top-2.5 right-2.5 z-10 inline-flex items-center justify-center w-7 h-7 rounded-md text-oai-gray-400 hover:text-oai-gray-700 dark:hover:text-oai-gray-200 hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-gray-300 dark:focus-visible:ring-oai-gray-600 transition-colors",children:s.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",children:s.jsx("path",{d:"M4 4l6 6m0-6L4 10",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})})}),s.jsx("div",{className:"rounded-lg overflow-hidden ring-1 ring-black/5 dark:ring-white/10 shadow-sm",children:s.jsx("img",{src:"/widgets-overview.png",alt:g("dashboard.widgets.title"),width:734,height:552,className:"w-full h-auto block",loading:"lazy",decoding:"async"})}),s.jsxs("div",{className:"mt-4",children:[s.jsx("div",{className:"text-sm font-medium tracking-tight text-oai-gray-900 dark:text-oai-white",children:g("dashboard.widgets.title")}),s.jsx("div",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-400 mt-1 leading-snug",children:g("dashboard.widgets.hint")})]})]},"widget-onboarding-card")})}function By(e){const{copy:t,onOpenShare:n,screenshotMode:a,screenshotTitleLine1:r,screenshotTitleLine2:o,identityDisplayName:l,identityStartDate:i,activeDays:c,identitySubscriptions:d,identityScrambleDurationMs:u,projectUsageEntries:f,projectUsageLimit:m,setProjectUsageLimit:h,topModels:p,isLocalMode:b,trendRowsForDisplay:w,trendFromForDisplay:v,trendToForDisplay:k,trendZoomConfig:x,usageFrom:M,usageTo:T,period:j,trendTimeZoneLabel:E,activityHeatmapBlock:N,isCapturing:O,handleShareToX:P,screenshotTwitterButton:A,screenshotTwitterHint:X,periodsForDisplay:L,setSelectedPeriod:F,autoRefreshOptions:D,autoRefreshIntervalMs:S,onAutoRefreshIntervalChange:I,customFrom:B,customTo:C,onCustomRangeApply:Y,customRangeOpen:U,onCustomRangeOpenChange:K,summaryLabel:R,summaryValue:H,summaryUpdatedAtLabel:q,summaryCostValue:te,usageInsights:re,summaryConversationsValue:ge,rollingUsage:le,costInfoEnabled:ue,openCostModal:Xe,costModalOpen:je,closeCostModal:Oe,allowBreakdownToggle:Pt,refreshAll:Ye,usageLoadingState:De,dataHealthMessage:Ot,fleetData:Ne,hasDetailsActual:Ut,dailyEmptyPrefix:qt,installSyncCmd:at,dailyEmptySuffix:ee,detailsColumns:mt,ariaSortFor:ke,toggleSort:we,sortIconFor:Wt,pagedDetails:ht,dailyBreakdownRows:Vt,dailyBreakdownColumns:yt,dailyBreakdownAriaSortFor:gt,dailyBreakdownSortIconFor:Kt,dailyBreakdownDateKey:Qe,detailsDateKey:At,renderDetailDate:We,renderDailyBreakdownDate:xe,renderDetailCell:ze,DETAILS_PAGED_PERIODS:pt,detailsPageCount:bt,detailsPage:Q,setDetailsPage:ne}=e,G=null,ae=null,pe=Array.isArray(Ne)&&Ne.some(J=>Ra(J)&&Fn(J)!==null);return s.jsxs(s.Fragment,{children:[s.jsx(Ml,{bare:!a,hideHeader:a,header:G,footer:a?null:ae,className:a?"screenshot-mode":"",children:a?s.jsxs("div",{className:"flex flex-col gap-4",children:[s.jsx("div",{className:"flex items-start justify-between gap-4",children:s.jsxs("div",{className:"flex flex-col gap-1",children:[s.jsx("span",{className:"text-3xl md:text-4xl font-semibold text-oai-black dark:text-oai-white tracking-tight leading-none",children:r}),s.jsx("span",{className:"text-2xl md:text-3xl font-semibold text-oai-black dark:text-oai-white tracking-tight leading-none",children:o})]})}),s.jsx($r,{period:j,periods:L,onPeriodChange:F,autoRefreshOptions:D,autoRefreshIntervalMs:S,onAutoRefreshIntervalChange:I,summaryLabel:R,summaryValue:H,summaryUpdatedAtLabel:q,summaryCostValue:te,usageInsights:re,onCostInfo:ue?Xe:null,onRefresh:a?null:Ye,loading:De,onOpenShare:a?null:n,customFrom:B,customTo:C,onCustomRangeApply:Y,customRangeOpen:U,onCustomRangeOpenChange:K}),s.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-6 gap-4",children:[s.jsx("div",{className:"lg:col-span-2 min-w-0",children:s.jsx(kr,{title:t("dashboard.identity.title"),subtitle:t("dashboard.identity.subtitle"),period:j,rankLabel:i??t("identity_card.rank_placeholder"),streakDays:c,subscriptions:d,periodConversations:ge,rolling:le,topModels:p})}),N?s.jsx("div",{className:"lg:col-span-4 min-w-0",children:N}):null,s.jsx("div",{className:"lg:col-span-6 min-w-0",children:s.jsx(Ur,{fleetData:Ne,from:M,to:T})})]}),s.jsxs("div",{className:"flex flex-col items-center gap-2","data-screenshot-exclude":"true",style:O?{display:"none"}:void 0,children:[s.jsx(Wn,{type:"button",onClick:P,variant:"primary",size:"lg",disabled:O,children:A}),s.jsx("span",{className:"text-sm text-oai-gray-500 dark:text-oai-gray-300",children:X})]})]}):s.jsxs("div",{className:"flex flex-col gap-4",children:[s.jsx(st,{delay:.05,children:s.jsx($r,{period:j,periods:L,onPeriodChange:F,autoRefreshOptions:D,autoRefreshIntervalMs:S,onAutoRefreshIntervalChange:I,summaryLabel:R,summaryValue:H,summaryUpdatedAtLabel:q,summaryCostValue:te,usageInsights:re,onCostInfo:ue?Xe:null,onRefresh:a?null:Ye,loading:De,onOpenShare:a?null:n,customFrom:B,customTo:C,onCustomRangeApply:Y,customRangeOpen:U,onCustomRangeOpenChange:K})}),Ot?s.jsx(st,{delay:.08,children:s.jsx("div",{className:"rounded-lg border border-oai-gray-200 bg-oai-gray-50 px-4 py-3 text-sm text-oai-gray-700 dark:border-oai-gray-800 dark:bg-oai-gray-900/70 dark:text-oai-gray-300",children:Ot})}):null,s.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-6 gap-4",children:[s.jsx("div",{className:"lg:col-span-2 min-w-0",children:s.jsx(st,{delay:.11,children:s.jsx(kr,{title:t("dashboard.identity.title"),subtitle:t("dashboard.identity.subtitle"),period:j,rankLabel:i??t("identity_card.rank_placeholder"),streakDays:c,subscriptions:d,periodConversations:ge,rolling:le,topModels:p})})}),N?s.jsx("div",{className:"lg:col-span-4 min-w-0",children:s.jsx(st,{delay:.17,children:N})}):null,s.jsx("div",{className:"lg:col-span-6 min-w-0",children:s.jsx(st,{delay:.23,children:s.jsx(Ur,{fleetData:Ne,from:M,to:T})})}),s.jsx("div",{className:pe?"lg:col-span-4 min-w-0":"lg:col-span-6 min-w-0",children:s.jsx(st,{delay:.29,children:s.jsx(ds,{rows:w,from:v,to:k,period:j,timeZoneLabel:E,showTimeZoneLabel:!1,zoomConfig:x})})}),pe?s.jsx("div",{className:"lg:col-span-2 min-w-0",children:s.jsx(st,{delay:.35,children:s.jsx(gy,{fleetData:Ne,from:M,to:T})})}):null,b?s.jsx("div",{className:"lg:col-span-6",children:s.jsx(Ly,{enterDelay:.41})}):null]}),s.jsx(st,{delay:.47,children:s.jsx(Sc,{projectEntries:f,projectLimit:m,onProjectLimitChange:h,copy:t,hasDetailsActual:Ut,dailyEmptyPrefix:qt,installSyncCmd:at,dailyEmptySuffix:ee,detailsColumns:mt,ariaSortFor:ke,toggleSort:we,sortIconFor:Wt,pagedDetails:ht,dailyBreakdownRows:Vt,dailyBreakdownColumns:yt,dailyBreakdownAriaSortFor:gt,dailyBreakdownSortIconFor:Kt,dailyBreakdownDateKey:Qe,detailsDateKey:At,renderDetailDate:We,renderDailyBreakdownDate:xe,renderDetailCell:ze,DETAILS_PAGED_PERIODS:pt,period:j,detailsPageCount:bt,detailsPage:Q,setDetailsPage:ne})})]})}),s.jsx(vc,{isOpen:je,onClose:Oe,fleetData:Ne})]})}function us(){return typeof window>"u"?!1:!!window?.webkit?.messageHandlers?.nativeBridge}const St=new Map,Mt=new Map;function fs(){typeof window>"u"||window.__tokentrackerNativeSaveListener||(window.__tokentrackerNativeSaveListener=!0,window.addEventListener("native:saveImageResult",e=>{const t=e?.detail||{},n=typeof t.requestId=="string"?t.requestId:null;if(!n||!St.has(n))return;const a=St.get(n);St.delete(n),a({ok:!!t.ok,path:typeof t.path=="string"?t.path:void 0,error:typeof t.error=="string"?t.error:void 0})}),window.addEventListener("native:copyImageResult",e=>{const t=e?.detail||{},n=typeof t.requestId=="string"?t.requestId:null;if(!n||!Mt.has(n))return;const a=Mt.get(n);Mt.delete(n),a({ok:!!t.ok,error:typeof t.error=="string"?t.error:void 0})}))}async function Yy(e){if(!us()||typeof window>"u")return{ok:!1,error:"native bridge unavailable"};const t=window?.webkit?.messageHandlers?.nativeBridge;if(!t)return{ok:!1,error:"native bridge unavailable"};fs();const n=`copy_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return new Promise(a=>{const r=window.setTimeout(()=>{Mt.has(n)&&(Mt.delete(n),a({ok:!1,error:"timeout"}))},8e3);Mt.set(n,o=>{window.clearTimeout(r),a(o)});try{t.postMessage({type:"action",name:"copyImageToClipboard",requestId:n,dataUrl:e})}catch(o){Mt.delete(n),window.clearTimeout(r),a({ok:!1,error:o?.message||String(o)})}})}async function no(e,t){if(!us()||typeof window>"u")return{ok:!1,error:"native bridge unavailable"};const n=window?.webkit?.messageHandlers?.nativeBridge;if(!n)return{ok:!1,error:"native bridge unavailable"};fs();const a=`save_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return new Promise(r=>{const o=window.setTimeout(()=>{St.has(a)&&(St.delete(a),r({ok:!1,error:"timeout"}))},8e3);St.set(a,l=>{window.clearTimeout(o),r(l)});try{n.postMessage({type:"action",name:"saveImageToDownloads",requestId:a,filename:t,dataUrl:e})}catch(l){St.delete(a),window.clearTimeout(o),r({ok:!1,error:l?.message||String(l)})}})}const ms=1200,hs=1630,ys={broadsheet:{width:1200,height:1630},"annual-report":{width:1080,height:1865}},zy="https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Inter+Tight:wght@400;500;600;700&family=IBM+Plex+Serif:ital,wght@0,400;0,500;0,600;1,400&family=IBM+Plex+Mono:wght@400;500&family=Space+Grotesk:wght@500;600;700&display=swap";let sa=!1;function Hy(){if(typeof document>"u"||sa)return;if(document.querySelector('link[data-share-card-fonts="true"]')){sa=!0;return}const t=document.createElement("link");t.rel="stylesheet",t.href=zy,t.dataset.shareCardFonts="true",t.crossOrigin="anonymous",document.head.appendChild(t),sa=!0}async function Uy(){if(typeof document>"u")return;const e=document.fonts;if(!(!e||typeof e.ready?.then!="function"))try{await e.ready}catch{}}async function qy(e,t={}){if(typeof window>"u"||!e)return null;Hy(),await Uy(),await new Promise(c=>requestAnimationFrame(()=>c(null)));const{toBlob:n,toPng:a}=await yo(async()=>{const{toBlob:c,toPng:d}=await import("./index-BeoRn2gJ.js");return{toBlob:c,toPng:d}},[]),r=t.pixelRatio??2,o=e.offsetWidth||ms,l=e.offsetHeight||hs,i={pixelRatio:r,cacheBust:!0,width:o,height:l,style:{width:`${o}px`,height:`${l}px`},skipFonts:!1,filter:c=>!(c instanceof HTMLElement)||c.dataset?.screenshotExclude!=="true"};try{const c=await n(e,i);if(c)return c}catch{}try{const c=await a(e,i);return c?await(await fetch(c)).blob():null}catch{return null}}async function ia(e){return new Promise(t=>{const n=new FileReader;n.onload=()=>{const a=typeof n.result=="string"?n.result:null;t(a)},n.onerror=()=>t(null),n.readAsDataURL(e)})}function ao(e,t){if(typeof window>"u"||!e)return!1;try{const n=URL.createObjectURL(e),a=document.createElement("a");return a.href=n,a.download=t,document.body.appendChild(a),a.click(),a.remove(),setTimeout(()=>URL.revokeObjectURL(n),1e3),!0}catch{return!1}}function va(e){const t=_e(e);return Number.isFinite(t)?t:0}function Vy(e){return e?va(e.billable_total_tokens??e.total_tokens):0}function Ky(e){const t=Array.isArray(e?.weeks)?e.weeks:[];if(!t.length)return{weeks:[],totalDays:0,activeDays:0};let n=0,a=0;return{weeks:t.map(o=>(Array.isArray(o)?o:[]).slice(0,7).map(i=>{const c=!!i?.future,d=Number.isFinite(i?.level)?Math.max(0,Math.min(4,Math.round(i.level))):0;i?.day&&!c&&(n+=1,d>0&&(a+=1));const u=i?.billable_total_tokens??i?.total_tokens??i?.value??0,f=Number.isFinite(u)?Math.max(0,u):0;return{day:typeof i?.day=="string"?i.day:"",level:d,value:f,future:c}})),totalDays:n,activeDays:a}}function Gy(e){const{handle:t,startDate:n,activeDays:a,summary:r,topModels:o,rank:l,period:i,periodFrom:c,periodTo:d,heatmap:u,capturedAt:f,currency:m,exchangeRate:h}=e,p=Vy(r),b=va(r?.total_cost_usd),w=Array.isArray(o)?o.slice(0,3).map(k=>({id:k?.id??null,name:typeof k?.name=="string"&&k.name?k.name:"—",tokens:va(k?.tokens),percent:typeof k?.percent=="string"&&k.percent?k.percent:"0.0"})):[],v=Ky(u);return{handle:t||"—",startDate:n||null,activeDays:Number.isFinite(a)&&a>0?Math.floor(a):0,totalTokens:p,totalCost:b,period:i,periodFrom:c,periodTo:d,topModels:w,rank:typeof l=="number"&&Number.isFinite(l)&&l>0?Math.floor(l):null,heatmapWeeks:v.weeks,heatmapTotalDays:v.totalDays,heatmapActiveDays:v.activeDays,capturedAt:f||new Date().toISOString(),currency:typeof m=="string"&&m.length>0?m.toUpperCase():"USD",exchangeRate:Number.isFinite(h)&&h>0?h:1}}const Xy=["share.month_short.jan","share.month_short.feb","share.month_short.mar","share.month_short.apr","share.month_short.may","share.month_short.jun","share.month_short.jul","share.month_short.aug","share.month_short.sep","share.month_short.oct","share.month_short.nov","share.month_short.dec"];function Qy(e){const t=Xy[e];return t?g(t):"—"}function gs(e,t){return g("share.date.month_year",{month:Qy(e),year:t})}function Jy(e){if(!e)return"—";const t=e.split("-");if(t.length!==3)return e;const[n,a]=t,r=Number(a)-1;return r<0||r>11?e:gs(r,n)}function Zy(e){if(e.period==="total")return g("share.issue.all_time");if(e.period==="day"&&e.periodTo)return e.periodTo.replace(/-/g,".");if(e.period==="custom"&&e.periodFrom&&e.periodTo)return`${e.periodFrom.replace(/-/g,".")} — ${e.periodTo.replace(/-/g,".")}`;if(e.periodTo){const t=new Date(`${e.periodTo}T00:00:00Z`);if(!Number.isNaN(t.getTime()))return gs(t.getUTCMonth(),t.getUTCFullYear())}return g(`usage.period.${e.period}`)}function _a(e){return Number.isFinite(e)?Math.round(e).toLocaleString("en-US"):"—"}function ps(e,t={}){const{currency:n="USD",rate:a=1}=t,r=In(n);if(!Number.isFinite(e)||e<=0)return`${r}0.00`;const o=n!=="USD"&&Number.isFinite(a)&&a>0?e*a:e;return o>=1e3?`${r}${Math.round(o).toLocaleString("en-US")}`:`${r}${o.toFixed(2)}`}function eg(e){const t=e.topModels[0];if(t){const n=parseFloat(t.percent);return Number.isFinite(n)&&n>=60?g("share.hook.top_loyal",{percent:Math.round(n),name:t.name}):e.activeDays>=60?g("share.hook.days_record",{days:e.activeDays}):Number.isFinite(n)&&n>=30?g("share.hook.top_led",{name:t.name,percent:Math.round(n)}):e.topModels.length>1?g("share.hook.multi_models",{count:e.topModels.length,days:e.activeDays}):g("share.hook.days_with_model",{days:e.activeDays,name:t.name})}return e.activeDays>0?g("share.hook.days_record",{days:e.activeDays}):g("share.hook.new_chapter")}function tg(e,t){const n=(e||"").length;if(n<=t.baseChars)return t.baseSize;const a=t.baseSize-(n-t.baseChars)*t.shrinkPerChar;return Math.max(t.minSize,a)}function ng(e){if(!e||e.future)return null;const t=typeof e.level=="number"?e.level:0;return t<0?0:t>4?4:Math.round(t)}function ag({weeks:e,palette:t,width:n,gap:a=3,radius:r=2,emptyColor:o}){if(!Array.isArray(e)||e.length===0||!n||n<=0)return null;const l=t||["#eee","#ccc","#999","#666","#333"],i=o||l[0],c=e.length,d=(c-1)*a,u=Math.max(4,(n-d)/c),f=7*u+6*a;return s.jsx("svg",{width:n,height:f,viewBox:`0 0 ${n} ${f}`,xmlns:"http://www.w3.org/2000/svg","aria-hidden":!0,style:{display:"block"},children:e.map((m,h)=>(Array.isArray(m)?m:[]).map((b,w)=>{if(w>=7)return null;const v=ng(b),k=h*(u+a),x=w*(u+a),M=v===null?i:l[v];return s.jsx("rect",{x:k,y:x,width:u,height:u,rx:r,ry:r,fill:M},`${h}-${w}`)}))})}const rg="oklch(0.97 0.01 85)",Ce="oklch(0.18 0.02 85)",lt="oklch(0.38 0.015 85)",ro="oklch(0.55 0.012 85)",kt="oklch(0.55 0.22 25)",wt='"Instrument Serif", "Times New Roman", Georgia, serif',og='"Inter Tight", "Helvetica Neue", Arial, sans-serif',sg=["oklch(0.93 0.013 80)","oklch(0.87 0.04 55)","oklch(0.78 0.09 45)","oklch(0.67 0.16 35)","oklch(0.55 0.22 25)"];function bs({data:e}){const t=Zy(e),n=_a(e.totalTokens),a=ps(e.totalCost,{currency:e.currency,rate:e.exchangeRate}),r=Jy(e.startDate),o=tg(n,{baseSize:188,baseChars:9,shrinkPerChar:14,minSize:104}),l=eg(e),i=Array.isArray(e.heatmapWeeks)&&e.heatmapWeeks.length>0;return s.jsxs("div",{style:{width:"100%",height:"100%",background:rg,color:Ce,fontFamily:og,padding:"80px 88px 68px 88px",boxSizing:"border-box",display:"flex",flexDirection:"column",position:"relative"},children:[s.jsxs("header",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:24,paddingBottom:14,borderBottom:`1px solid ${ro}`},children:[s.jsxs("div",{style:{display:"flex",alignItems:"center",gap:14,fontSize:14,fontWeight:500,letterSpacing:"0.22em",textTransform:"uppercase",color:Ce},children:[s.jsx("div",{style:{width:10,height:10,borderRadius:"50%",background:kt}}),"The Token Tracker"]}),s.jsxs("div",{style:{fontSize:12,letterSpacing:"0.22em",textTransform:"uppercase",color:lt,textAlign:"right"},children:[g("share.card.broadsheet.issue")," № ",t]})]}),s.jsxs("div",{style:{marginTop:24,display:"flex",justifyContent:"space-between",alignItems:"flex-end",gap:24},children:[s.jsxs("div",{children:[s.jsx("div",{style:{fontSize:12,letterSpacing:"0.2em",textTransform:"uppercase",color:lt,marginBottom:6},children:g("share.card.broadsheet.by")}),s.jsx("div",{style:{fontFamily:wt,fontSize:52,fontStyle:"italic",lineHeight:1,color:Ce,letterSpacing:"-0.01em"},children:e.handle})]}),s.jsxs("div",{style:{fontSize:12,letterSpacing:"0.18em",textTransform:"uppercase",color:lt,textAlign:"right",lineHeight:1.6},children:[g("share.card.broadsheet.tracked_since"),s.jsx("br",{}),s.jsx("span",{style:{color:Ce},children:r})]})]}),s.jsxs("div",{style:{marginTop:40,display:"flex",flexDirection:"column"},children:[s.jsx("div",{style:{fontSize:13,letterSpacing:"0.3em",textTransform:"uppercase",color:kt,marginBottom:10},children:g("share.card.broadsheet.total_tokens")}),s.jsx("div",{style:{fontFamily:wt,fontSize:o,fontWeight:400,lineHeight:.86,letterSpacing:"-0.032em",color:Ce,fontFeatureSettings:'"lnum" 1, "tnum" 1',whiteSpace:"nowrap",overflow:"hidden"},children:n}),s.jsxs("div",{style:{marginTop:14,fontFamily:wt,fontStyle:"italic",fontSize:34,lineHeight:1.15,color:Ce,letterSpacing:"-0.005em",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:["“",l,"”"]}),s.jsx("div",{style:{marginTop:14,height:1,background:kt,width:"100%"}}),s.jsxs("div",{style:{marginTop:10,display:"flex",justifyContent:"space-between",fontSize:13,letterSpacing:"0.16em",textTransform:"uppercase",color:lt},children:[s.jsxs("span",{children:[g("share.card.broadsheet.estimated_spend")," · ",a]}),s.jsx("span",{children:g("share.card.broadsheet.billable_days",{days:e.activeDays})})]})]}),i?s.jsxs("section",{style:{marginTop:40},children:[s.jsxs("div",{style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",marginBottom:12},children:[s.jsx("div",{style:{fontSize:12,letterSpacing:"0.3em",textTransform:"uppercase",color:Ce,fontWeight:600},children:g("share.card.broadsheet.heatmap_title")}),s.jsx("div",{style:{fontSize:11,letterSpacing:"0.18em",textTransform:"uppercase",color:lt},children:g("share.card.broadsheet.heatmap_days_on_record",{active:e.heatmapActiveDays,total:e.heatmapTotalDays})})]}),s.jsx(ag,{weeks:e.heatmapWeeks,palette:sg,width:1024,gap:3,radius:2})]}):null,s.jsxs("section",{style:{marginTop:30,flex:1},children:[s.jsxs("div",{style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",borderBottom:`1px solid ${Ce}`,paddingBottom:10,marginBottom:6},children:[s.jsx("div",{style:{fontSize:12,letterSpacing:"0.3em",textTransform:"uppercase",color:Ce,fontWeight:600},children:g("share.card.broadsheet.roster_title")}),s.jsx("div",{style:{fontSize:11,letterSpacing:"0.18em",textTransform:"uppercase",color:lt},children:g("share.card.broadsheet.roster_subtitle")})]}),e.topModels.length===0?s.jsx("div",{style:{fontFamily:wt,fontStyle:"italic",fontSize:26,color:lt,paddingTop:14},children:g("share.card.broadsheet.empty")}):e.topModels.map((c,d)=>s.jsxs("div",{style:{display:"grid",gridTemplateColumns:"52px 1fr auto 68px",alignItems:"baseline",gap:16,padding:"13px 0",borderBottom:`1px solid ${ro}`},children:[s.jsx("div",{style:{fontFamily:wt,fontSize:34,fontStyle:"italic",color:kt,lineHeight:1},children:String(d+1).padStart(2,"0")}),s.jsx("div",{style:{fontFamily:wt,fontSize:32,color:Ce,lineHeight:1.1,letterSpacing:"-0.01em",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:c.name}),s.jsx("div",{style:{fontFamily:wt,fontSize:28,color:Ce,fontFeatureSettings:'"lnum" 1, "tnum" 1',whiteSpace:"nowrap"},children:_a(c.tokens)}),s.jsxs("div",{style:{fontSize:13,letterSpacing:"0.1em",color:lt,textAlign:"right",fontFeatureSettings:'"tnum" 1'},children:[c.percent,"%"]})]},c.id||c.name))]}),s.jsxs("footer",{style:{marginTop:18,paddingTop:12,borderTop:`1px solid ${Ce}`,display:"flex",justifyContent:"space-between",alignItems:"center",fontSize:12,letterSpacing:"0.22em",textTransform:"uppercase",color:Ce},children:[s.jsxs("div",{style:{display:"flex",gap:28},children:[s.jsxs("span",{children:[g("share.card.broadsheet.global_rank")," ",s.jsxs("span",{style:{color:kt},children:["№ ",e.rank!=null?e.rank:"—"]})]}),s.jsxs("span",{children:[g("share.card.broadsheet.active_days")," ",s.jsx("span",{style:{color:kt},children:g("share.card.broadsheet.days_count",{days:e.activeDays})})]})]}),s.jsxs("div",{children:[g("share.card.broadsheet.track_yours")," ",s.jsx("span",{style:{color:kt},children:"→ tokentracker.cc"})]})]})]})}const ig=ys["annual-report"].width,lg="#0a0820",ct="#ffffffee",_t="rgba(255,255,255,0.45)",la="#a78bfa",cg={background:"rgba(20,15,50,0.38)",backdropFilter:"blur(40px)",WebkitBackdropFilter:"blur(40px)",border:"1px solid rgba(255,255,255,0.05)",boxShadow:["0 39px 56px -36px rgba(255,255,255,0.10) inset","0 7px 11px -4px rgba(255,255,255,0.06) inset","0 -82px 68px -64px rgba(101,67,149,0.08) inset","0 98px 100px -48px rgba(208,171,255,0.06) inset","0 4px 18px 0 rgba(156,146,215,0.06) inset","0 1px 40px 0 rgba(228,222,255,0.04) inset"].join(", ")},jn={background:"rgba(20,15,50,0.38)",backdropFilter:"blur(32px)",WebkitBackdropFilter:"blur(32px)",border:"1px solid rgba(255,255,255,0.06)",boxShadow:"0 1px 8px 0 rgba(228,222,255,0.06) inset"},Na='"Space Grotesk", "Inter Tight", sans-serif',ca='"Inter Tight", sans-serif',dg="rgba(255,255,255,0.06)",xs=[dg,"#4a3d8f","#6b5cbe","#9060e0","#d946ef"],ks=48,ws=28,En=4,vs=20,ug=ig-ks*2-ws*2,fg=(ug-vs*2)/3,Sa=Math.min(Math.floor((fg-En*6)/7),40),mg=Sa*7+En*6;function hg(e){if(!Array.isArray(e))return e;const t=[];for(const i of e)if(Array.isArray(i))for(const c of i)c?.day&&!c.future&&c.value>0&&t.push(c.value);if(!t.length)return e;t.sort((i,c)=>i-c);const n=i=>{const c=t.length,d=(c-1)*i,u=Math.floor(d);return Math.round((t[u]??0)+((t[Math.min(c-1,u+1)]??0)-(t[u]??0))*(d-u))},a=n(.5),r=n(.75),o=n(.9),l=i=>!i||i<=0?0:i<=a?1:i<=r?2:i<=o?3:4;return e.map(i=>Array.isArray(i)?i.map(c=>c?.day&&!c.future&&typeof c.value=="number"?{...c,level:l(c.value)}:c):i)}function yg(e){if(!Array.isArray(e))return[];const t={},n=hg(e);for(const a of n)if(Array.isArray(a))for(const r of a){if(!r?.day||r.future)continue;const o=r.day.split("-");if(o.length<2)continue;const l=`${o[0]}-${o[1]}`;(t[l]??=[]).push(r)}return Object.entries(t).sort(([a],[r])=>a.localeCompare(r)).slice(-12).map(([a,r])=>({month:parseInt(a.split("-")[1],10),cells:r}))}function gg(e){if(!e.length)return[];const t=[...e].sort((l,i)=>l.day.localeCompare(i.day));let n=new Date(`${t[0].day}T00:00:00Z`).getUTCDay();const a=Array(n).fill(null).concat(t),r=[];for(let l=0;l<a.length;l+=7)r.push(a.slice(l,l+7));const o=r[r.length-1];for(;o&&o.length<7;)o.push(null);return r.slice(0,6)}const pg=["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function bg(e){if(!Array.isArray(e))return 0;const t=[];for(const r of e)if(Array.isArray(r))for(const o of r)o?.day&&!o.future&&t.push(o);t.sort((r,o)=>r.day.localeCompare(o.day));let n=0,a=0;for(const r of t)(r.level||0)>0?(a++,a>n&&(n=a)):a=0;return n}function oo(e){const[t,n]=y.useState(null);return y.useEffect(()=>{if(!e){n(null);return}let a=!1;const r=new Image;return r.crossOrigin="anonymous",r.onload=()=>{if(!a)try{const o=document.createElement("canvas");o.width=r.naturalWidth,o.height=r.naturalHeight,o.getContext("2d").drawImage(r,0,0),n(o.toDataURL("image/png"))}catch{n(null)}},r.onerror=()=>{a||n(null)},r.src=e,()=>{a=!0}},[e]),t}function xg({data:e}){const t=gg(e.cells);return s.jsxs("div",{children:[s.jsx("div",{style:{fontSize:16,fontWeight:600,color:_t,fontFamily:Na,marginBottom:4},children:pg[e.month]}),s.jsx("div",{style:{display:"flex",flexDirection:"column",gap:En},children:t.map((n,a)=>s.jsx("div",{style:{display:"flex",gap:En},children:n.map((r,o)=>{const l=r?Math.min(4,Math.max(0,r.level||0)):-1;return s.jsx("div",{style:{width:Sa,height:Sa,borderRadius:4,background:l<0?"transparent":xs[l]}},o)})},a))})]})}function kg({data:e}){const t=yg(e.heatmapWeeks),n=bg(e.heatmapWeeks),a=e.topModels[0],r=e.avatarUrl||null,o=oo(r),l=oo("/neon_bg.png"),i=(e.handle||"?")[0].toUpperCase(),c=16;return s.jsxs("div",{style:{width:"100%",height:"100%",background:lg,fontFamily:Na,position:"relative",overflow:"hidden",boxSizing:"border-box"},children:[s.jsx("img",{src:l||"/neon_bg.png",alt:"",style:{position:"absolute",inset:0,width:"100%",height:"100%",objectFit:"cover",pointerEvents:"none"}}),s.jsxs("div",{style:{position:"relative",zIndex:1,display:"flex",flexDirection:"column",height:"100%",padding:ks,boxSizing:"border-box"},children:[s.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:c*3},children:[s.jsxs("div",{style:{display:"flex",alignItems:"center",gap:16},children:[s.jsx("img",{src:"/app-icon.png",alt:"",width:64,height:64,style:{width:64,height:64,borderRadius:16,display:"block"}}),s.jsxs("div",{children:[s.jsx("div",{style:{fontSize:20,fontWeight:500,color:_t,lineHeight:1.2},children:"Token Tracker"}),s.jsx("div",{style:{fontSize:36,fontWeight:700,lineHeight:1.15,color:ct},children:g("share.card.annual.report_title")})]})]}),s.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10},children:[s.jsx("div",{style:{width:48,height:48,borderRadius:"50%",background:"linear-gradient(135deg,#4c1d95,#7c3aed)",display:"flex",alignItems:"center",justifyContent:"center",border:"2px solid rgba(255,255,255,0.15)",overflow:"hidden",flexShrink:0},children:o?s.jsx("img",{src:o,alt:"",width:48,height:48,style:{width:48,height:48,objectFit:"cover",display:"block"},crossOrigin:"anonymous",referrerPolicy:"no-referrer"}):s.jsx("span",{style:{fontSize:20,fontWeight:700,color:ct},children:i})}),s.jsx("div",{style:{fontSize:32,fontWeight:700,color:ct},children:e.handle})]})]}),s.jsxs("div",{style:{...cg,borderRadius:22,padding:ws,marginBottom:c},children:[s.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:12},children:[s.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,fontSize:14,color:_t},children:[s.jsx("span",{children:g("share.card.annual.less")}),xs.map((d,u)=>s.jsx("div",{style:{width:16,height:16,borderRadius:3,background:d}},u)),s.jsx("span",{children:g("share.card.annual.more")})]}),s.jsx("div",{style:{fontSize:16,fontWeight:700,letterSpacing:"0.14em",color:"rgba(255,255,255,0.22)",textTransform:"uppercase"},children:g("share.card.annual.heatmap_title")})]}),s.jsx("div",{style:{display:"grid",gridTemplateColumns:`repeat(3,${mg}px)`,gap:`8px ${vs}px`,justifyContent:"center"},children:t.map(d=>s.jsx(xg,{data:d},d.month))})]}),s.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:c,marginBottom:c},children:[s.jsxs("div",{style:{...jn,borderRadius:22,padding:"28px 16px",textAlign:"center"},children:[s.jsx("div",{style:{fontFamily:ca,fontSize:52,fontWeight:700,color:ct,letterSpacing:"-0.02em",lineHeight:1},children:_a(e.totalTokens)}),s.jsx("div",{style:{fontSize:22,color:_t,marginTop:12},children:g("share.card.annual.total_tokens")})]}),s.jsxs("div",{style:{...jn,borderRadius:22,padding:"28px 16px",textAlign:"center"},children:[s.jsx("div",{style:{fontFamily:ca,fontSize:52,fontWeight:700,color:ct,letterSpacing:"-0.02em",lineHeight:1},children:ps(e.totalCost,{currency:e.currency,rate:e.exchangeRate})}),s.jsx("div",{style:{fontSize:22,color:_t,marginTop:12},children:g("share.card.annual.estimated_cost")})]})]}),s.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:c},children:[s.jsxs("div",{style:{...jn,borderRadius:22,padding:"18px 24px",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[s.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10},children:[s.jsxs("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:la,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M12 2v4m0 12v4M4.93 4.93l2.83 2.83m8.48 8.48 2.83 2.83M2 12h4m12 0h4M4.93 19.07l2.83-2.83m8.48-8.48 2.83-2.83"}),s.jsx("circle",{cx:"12",cy:"12",r:"4"})]}),s.jsx("span",{style:{fontSize:20,color:_t},children:g("share.card.annual.longest_streak")})]}),s.jsx("span",{style:{fontFamily:ca,fontSize:28,fontWeight:700,color:ct},children:g("share.card.annual.days_count",{days:n})})]}),s.jsxs("div",{style:{...jn,borderRadius:22,padding:"18px 24px",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[s.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10},children:[s.jsxs("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:la,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[s.jsx("path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"}),s.jsx("circle",{cx:"12",cy:"12",r:"4"})]}),s.jsx("span",{style:{fontSize:20,color:_t},children:g("share.card.annual.top_model")})]}),s.jsx("span",{style:{fontFamily:Na,fontSize:28,fontWeight:700,color:ct},children:a?a.name:"—"})]})]}),s.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginTop:"auto"},children:[s.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10},children:[s.jsx("img",{src:"/app-icon.png",alt:"",width:44,height:44,style:{width:44,height:44,borderRadius:8,display:"block"}}),s.jsx("span",{style:{fontSize:22,fontWeight:600,color:ct},children:"Token Tracker"})]}),s.jsx("span",{style:{fontSize:22,fontWeight:600,color:la},children:"tokentracker.cc"})]})]})]})}const _s=[{id:"annual-report",labelKey:"share.variant.neon"},{id:"broadsheet",labelKey:"share.variant.broadsheet"}],wg={broadsheet:bs,"annual-report":kg};function Ns(e){return ys[e]||{width:ms,height:hs}}function vg(e){const t=_s.find(n=>n.id===e);return t?.labelKey?g(t.labelKey):e}const so=y.forwardRef(function({data:t,variant:n},a){const r=wg[n]||bs,{width:o,height:l}=Ns(n);return s.jsx("div",{ref:a,"data-share-card":"true",style:{width:o,height:l,position:"relative",overflow:"hidden",boxSizing:"border-box"},children:s.jsx(r,{data:t})})});function Dn(){return typeof window>"u"?!1:!!window?.webkit?.messageHandlers?.nativeBridge}const _g=440;function Ng(){const[e,t]=y.useState(null),n=y.useRef(null),a=y.useCallback((r,o="info")=>{n.current&&window.clearTimeout(n.current),t({id:Date.now(),kind:o,text:r}),n.current=window.setTimeout(()=>t(null),2800)},[]);return y.useEffect(()=>()=>{n.current&&window.clearTimeout(n.current)},[]),{toast:e,push:a}}function da({onClick:e,disabled:t,children:n,emphasis:a,ariaLabel:r}){return s.jsx("button",{type:"button",onClick:e,disabled:t,"aria-label":r,className:["group relative flex items-center justify-between gap-3 w-full px-4 py-3 text-left","rounded-lg border transition-colors",a?"border-oai-black dark:border-oai-white bg-oai-black dark:bg-oai-white text-oai-white dark:text-oai-black hover:opacity-90":"border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-900 text-oai-black dark:text-oai-white hover:border-oai-gray-400 dark:hover:border-oai-gray-600",t?"opacity-60 cursor-not-allowed":"cursor-pointer"].join(" "),children:n})}function Sg({open:e,onClose:t,data:n,twitterText:a}){const[r,o]=y.useState(null),[l,i]=y.useState(""),[c,d]=y.useState("annual-report"),u=y.useRef(null),{toast:f,push:m}=Ng(),h=Xi(),p=y.useMemo(()=>{const N=h?.user;if(!N||typeof N!="object")return null;const O=N.user_metadata||{},P=N.profile||{},A=O.avatar_url||O.picture||P.avatar_url||N.avatar_url;return typeof A=="string"&&A.trim()?A.trim():null},[h?.user]);y.useEffect(()=>{e&&(o(null),i(n?.handle||""))},[e,n?.handle]);const b=n&&{...n,handle:l||n.handle,avatarUrl:p},{width:w,height:v}=Ns(c),k=_g/w;y.useEffect(()=>{if(!e)return;const N=O=>{O.key==="Escape"&&t?.()};return window.addEventListener("keydown",N),()=>window.removeEventListener("keydown",N)},[e,t]);const x=y.useCallback(async()=>{const N=u.current;if(!N)return null;try{return await qy(N)}catch(O){return console.warn("[share] capture failed",O),null}},[]),M=y.useCallback(async()=>{if(r)return;o("copy");const N=await x();if(!N){m(g("share.toast.failed"),"error"),o(null);return}let O=!1;if(Dn()){const P=await ia(N);P&&(O=(await Yy(P)).ok)}else O=await ma(N);m(O?g("share.toast.copied"):g("share.toast.failed"),O?"success":"error"),o(null)},[r,x,m]),T=y.useCallback(()=>`tokentracker-share-${Date.now()}.png`,[]),j=y.useCallback(async()=>{if(r)return;o("download");const N=await x();if(!N){m(g("share.toast.failed"),"error"),o(null);return}if(Dn()){const P=await ia(N);if(P&&(await no(P,T())).ok){m(g("share.toast.downloaded"),"success"),o(null);return}}const O=ao(N,T());m(O?g("share.toast.downloaded"):g("share.toast.failed"),O?"success":"error"),o(null)},[r,x,T,m]),E=y.useCallback(async()=>{if(r)return;o("x");const N=await x();if(!N){m(g("share.toast.failed"),"error"),o(null);return}if(Dn()){const X=await ia(N);X&&(await no(X,T()),m(g("share.toast.downloaded"),"success"))}else await ma(N)?m(g("share.toast.copied"),"success"):ao(N,T());const O=new URL("https://twitter.com/intent/tweet");a&&O.searchParams.set("text",a);const P=h?.user?.id,A=typeof P=="string"&&P?`/u/${P}`:"/";if(O.searchParams.set("url",`https://www.tokentracker.cc${A}?ref=share`),Dn())try{window.webkit?.messageHandlers?.nativeBridge?.postMessage({type:"action",name:"openURL",value:O.toString()})}catch{window.open(O.toString(),"_blank","noopener,noreferrer")}else window.open(O.toString(),"_blank","noopener,noreferrer");o(null)},[r,x,m,a,T,h]);return e?s.jsxs("div",{role:"dialog","aria-modal":"true","aria-label":g("share.modal.title"),"data-screenshot-exclude":"true",className:"fixed inset-0 z-[9999] flex items-center justify-center p-4 sm:p-6",style:{background:"rgba(10,10,10,0.72)"},onClick:N=>{N.target===N.currentTarget&&t?.()},children:[s.jsx("div",{"aria-hidden":!0,style:{position:"fixed",left:0,top:0,width:w,height:v,pointerEvents:"none",opacity:0,zIndex:-1,clip:"rect(0,0,0,0)",overflow:"hidden"},children:s.jsx(so,{ref:u,data:b,variant:c})}),s.jsxs(Be.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},exit:{opacity:0,y:12},transition:{duration:.18,ease:[.2,.8,.2,1]},className:"relative w-full max-w-[1040px] max-h-[92vh] overflow-hidden rounded-2xl border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-black shadow-oai-lg",children:[s.jsxs("div",{className:"flex flex-col lg:flex-row max-h-[92vh]",children:[s.jsx("div",{className:"flex-1 min-w-0 p-4 sm:p-7 bg-oai-gray-50 dark:bg-oai-gray-950 flex items-center justify-center overflow-auto",children:s.jsxs("div",{style:{width:w*k,height:v*k,flexShrink:0,position:"relative"},className:"rounded-xl overflow-hidden shadow-oai-md ring-1 ring-black/5",children:[r?s.jsx("div",{className:"absolute inset-0 z-10 flex items-center justify-center bg-white/70 dark:bg-black/50",children:s.jsxs("svg",{className:"animate-spin h-6 w-6 text-oai-gray-500",viewBox:"0 0 24 24",fill:"none",children:[s.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3"}),s.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]})}):null,s.jsx("div",{style:{width:w,height:v,transform:`scale(${k})`,transformOrigin:"top left"},children:s.jsx(so,{data:b,variant:c})})]})}),s.jsxs("div",{className:"w-full lg:w-[340px] flex-shrink-0 border-t lg:border-t-0 lg:border-l border-oai-gray-200 dark:border-oai-gray-800 p-5 sm:p-6 flex flex-col gap-5 overflow-y-auto",children:[s.jsxs("div",{className:"flex items-start justify-between gap-2",children:[s.jsxs("div",{children:[s.jsx("h2",{className:"text-lg font-semibold text-oai-black dark:text-oai-white",children:g("share.modal.title")}),s.jsx("p",{className:"mt-1 text-xs text-oai-gray-500 dark:text-oai-gray-400",children:g("share.modal.subtitle")})]}),s.jsx("button",{type:"button",onClick:t,"aria-label":g("share.modal.close"),className:"p-1.5 -mt-1 -mr-1 rounded-md text-oai-gray-500 hover:text-oai-black dark:hover:text-oai-white hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 transition-colors",children:s.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:s.jsx("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),s.jsxs("div",{children:[s.jsx("label",{htmlFor:"share-handle",className:"text-[11px] tracking-[0.18em] uppercase text-oai-gray-500 dark:text-oai-gray-400 mb-1.5 block",children:g("share.modal.name_label")}),s.jsx("input",{id:"share-handle",type:"text",value:l,onChange:N=>i(N.target.value),placeholder:g("share.modal.name_placeholder"),className:"w-full px-3 py-2 text-sm rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-900 text-oai-black dark:text-oai-white placeholder:text-oai-gray-400 dark:placeholder:text-oai-gray-600 focus:outline-none focus:ring-1 focus:ring-inset focus:ring-oai-brand transition-colors"})]}),s.jsxs("div",{children:[s.jsx("label",{className:"text-[11px] tracking-[0.18em] uppercase text-oai-gray-500 dark:text-oai-gray-400 mb-1.5 block",children:g("share.modal.style_label")}),s.jsx("div",{className:"flex gap-2",children:_s.map(N=>s.jsx("button",{type:"button",onClick:()=>d(N.id),className:["flex-1 px-3 py-2 text-sm rounded-lg border transition-colors",c===N.id?"border-oai-black dark:border-oai-white bg-white dark:bg-oai-gray-900 text-oai-black dark:text-oai-white font-medium":"border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-900 text-oai-gray-500 dark:text-oai-gray-400 hover:border-oai-gray-400 dark:hover:border-oai-gray-600"].join(" "),children:vg(N.id)},N.id))})]}),s.jsxs("div",{className:"grid grid-cols-1 gap-2",children:[s.jsxs(da,{onClick:E,disabled:!!r,emphasis:!0,children:[s.jsxs("span",{className:"flex items-center gap-3",children:[s.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:s.jsx("path",{d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"})}),s.jsx("span",{className:"font-medium text-sm",children:g("share.modal.action.x")})]}),s.jsx("span",{className:"text-[11px] opacity-70",children:r==="x"?g("share.toast.working"):g("share.modal.hint.x")})]}),s.jsxs(da,{onClick:j,disabled:!!r,children:[s.jsxs("span",{className:"flex items-center gap-3",children:[s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[s.jsx("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),s.jsx("polyline",{points:"7 10 12 15 17 10"}),s.jsx("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]}),s.jsx("span",{className:"font-medium text-sm",children:g("share.modal.action.download")})]}),s.jsx("span",{className:"text-[11px] text-oai-gray-500 dark:text-oai-gray-400",children:"PNG"})]}),s.jsxs(da,{onClick:M,disabled:!!r,children:[s.jsxs("span",{className:"flex items-center gap-3",children:[s.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0,children:[s.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),s.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),s.jsx("span",{className:"font-medium text-sm",children:g("share.modal.action.copy")})]}),s.jsx("span",{className:"text-[11px] text-oai-gray-500 dark:text-oai-gray-400",children:g("share.modal.hint.copy")})]})]}),s.jsx("div",{className:"mt-auto pt-4 border-t border-oai-gray-200 dark:border-oai-gray-800",children:s.jsx("p",{className:"text-[11px] leading-relaxed text-oai-gray-500 dark:text-oai-gray-400",children:g("share.modal.footer")})})]})]}),s.jsx(Da,{children:f?s.jsx(Be.div,{initial:{opacity:0,y:8},animate:{opacity:1,y:0},exit:{opacity:0,y:8},className:"pointer-events-none absolute left-1/2 bottom-4 -translate-x-1/2",children:s.jsx("div",{className:["px-4 py-2 rounded-full text-xs font-medium shadow-oai-md",f.kind==="error"?"bg-red-600 text-white":f.kind==="success"?"bg-oai-black dark:bg-oai-white text-oai-white dark:text-oai-black":"bg-oai-gray-800 text-white"].join(" "),children:f.text})},f.id):null})]})]}):null}function Mg(e){const{enabled:t,handle:n,startDate:a,activeDays:r,summary:o,topModels:l,period:i,periodFrom:c,periodTo:d,heatmap:u,accessToken:f,userId:m,currency:h,exchangeRate:p}=e,[b,w]=y.useState(null),v=p;return y.useEffect(()=>{if(!t||!m&&!Dt())return;let k=!1;return(async()=>{try{const M=await Qi({accessToken:f,userId:m,period:i==="day"||i==="custom"?"week":i,metric:"all",limit:100,offset:0});if(k)return;const j=(Array.isArray(M?.entries)?M.entries:Array.isArray(M)?M:[]).find(N=>N?.is_me===!0),E=typeof j?.rank=="number"?j.rank:null;w(E)}catch{k||w(null)}})(),()=>{k=!0}},[t,f,m,i]),y.useMemo(()=>Gy({handle:n,startDate:a,activeDays:r,summary:o,topModels:l,rank:b,period:i,periodFrom:c,periodTo:d,heatmap:u,currency:h,exchangeRate:typeof v=="number"?v:void 0}),[n,a,r,o,l,b,i,c,d,u,h,v])}const jg=["day","24h","week","month","total","custom"],Ss="tt:dashboard-auto-refresh-ms",on=3e4,Ms=[{value:0,labelKey:"usage.auto_refresh.off"},{value:3e4,labelKey:"usage.auto_refresh.30s"},{value:6e4,labelKey:"usage.auto_refresh.60s"},{value:12e4,labelKey:"usage.auto_refresh.120s"}],Dg=3e4,Cg=6e4,ua=new Set(["day","hour","month"]),nn=new Set(["day","24h","total","custom"]),Tg=new Set(Ms.map(e=>e.value));function js(e){if(e==null||e==="")return on;const t=Number(e);return Number.isFinite(t)&&Tg.has(t)?t:on}function Pg(){if(typeof window>"u")return on;try{return js(window.localStorage?.getItem(Ss))}catch{return on}}function Og(e){const n=(typeof e?.stdout=="string"?e.stdout:"").match(/New 30-min buckets queued:\s*(\d+)/i);return n?Number(n[1])>0:!0}function fa(e,t){if(typeof t=="number"&&t>0)return!0;if(typeof e=="bigint")return e>0n;if(typeof e=="number")return Number.isFinite(e)&&e>0;if(typeof e=="string"){const n=e.trim();if(!n)return!1;if(/^[0-9]+$/.test(n))try{return BigInt(n)>0n}catch{return!1}const a=Number(n);return Number.isFinite(a)&&a>0}return!1}function Cn(e){return e?jt(e,null):null}function io(e){return e?e?.billable_total_tokens??e?.value??e?.total_tokens:null}function Wg(e){if(typeof e!="string"||!e)return null;const t=e.split("-");if(t.length!==3)return null;const n=Number(t[0]),a=Number(t[1])-1,r=Number(t[2]);if(!Number.isFinite(n)||!Number.isFinite(a)||!Number.isFinite(r))return null;const o=new Date(Date.UTC(n,a,r));return Number.isFinite(o.getTime())?o:null}function Ag(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function Gg({baseUrl:e,auth:t,signedIn:n,sessionSoftExpired:a,publicMode:r=!1,publicToken:o=null,onMainContentVisible:l}){const{resolvedLocale:i}=Ji(),{currency:c,rate:d}=Ct(),[u,f]=y.useState(!1),[m,h]=y.useState(null),[p,b]=y.useState(()=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia("(max-width: 640px)").matches),w=y.useMemo(()=>typeof window>"u"?!1:Zi(window.location.search),[]),[v,k]=y.useState(!1),[x,M]=y.useState(!1),T=2200,[j,E]=y.useState(!0),[N,O]=y.useState(!1),[P,A]=y.useState(Pg),[X,L]=y.useState(()=>Date.now()),[F,D]=y.useState(()=>Date.now()),S=y.useRef(!1),I=y.useRef(!1),B=y.useRef(0),C=y.useRef(null),Y=y.useRef(!1),U=Dt(),K=n&&!a,R=y.useMemo(()=>K&&(typeof t=="function"||typeof t=="string"||t&&typeof t=="object")?t:null,[t,K]),H=K?R:null,q=r?el(o):H,te=K&&zt(H),re=n&&a&&!r,ge=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1");y.useEffect(()=>{if(!ge&&(!n||U||r)){h(null);return}if(!ge&&!te){h(null);return}let _=!0;return(async()=>{let $=null;try{$=await Ht(H)}catch{$=null}if(_){if(!$&&!ge){h(null);return}try{const z=await tl({baseUrl:e,accessToken:$});if(!_)return;h(z&&typeof z=="object"?z:null)}catch{if(!_)return;h(null)}}})(),()=>{_=!1}},[te,e,H,U,r,n]),y.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const _=window.matchMedia("(max-width: 640px)"),$=()=>b(_.matches);return $(),_.addEventListener?(_.addEventListener("change",$),()=>_.removeEventListener("change",$)):(_.addListener($),()=>_.removeListener($))},[]);const le=y.useMemo(()=>mo(),[]),ue=y.useMemo(()=>fo(),[]),Xe=y.useMemo(()=>nl(),[]),je=y.useMemo(()=>Xe||new Date(X),[X,Xe]),Oe=r?null:t?.userId||t?.email||"default",[Pt,Ye]=y.useState("day"),[De,Ot]=y.useState(null),[Ne,Ut]=y.useState(null),[qt,at]=y.useState(!1),ee=w?"total":Pt,mt=y.useMemo(()=>ee==="custom"&&De&&Ne?{from:De,to:Ne}:al(ee,{timeZone:le,offsetMinutes:ue,now:je}),[je,ee,le,ue,De,Ne]),ke=mt.from,we=mt.to,Wt=y.useMemo(()=>rl({timeZone:le,offsetMinutes:ue}),[le,ue]),ht=y.useMemo(()=>ol({timeZone:le,offsetMinutes:ue}),[le,ue]),Vt=y.useMemo(()=>`Local time (${ht})`,[ht]),yt=le,gt=ue,Kt=Wt,Qe=y.useMemo(()=>sn({timeZone:le,offsetMinutes:ue,date:je}),[je,le,ue]),At=y.useMemo(()=>{const _=Wg(Qe)||new Date,$=Ag(_,-29);return{from:nt($),to:nt(_)}},[Qe]),{daily:We,summary:xe,rolling:ze,source:pt,loading:bt,error:Q,refresh:ne}=mr({baseUrl:e,accessToken:q,guestAllowed:re,from:ke,to:we,includeDaily:ee!=="total",cacheKey:Oe,timeZone:le,tzOffsetMinutes:ue,now:je}),{daily:G,loading:ae,refresh:pe}=mr({baseUrl:e,accessToken:q,guestAllowed:re,from:At.from,to:At.to,includeDaily:!0,cacheKey:Oe?`${Oe}.daily-breakdown`:"daily-breakdown",timeZone:le,tzOffsetMinutes:ue,now:je}),{breakdown:J,loading:Bn,refresh:pn}=tc({baseUrl:e,accessToken:q,guestAllowed:re,from:ke,to:we,cacheKey:Oe,timeZone:le,tzOffsetMinutes:ue}),[bn,Gt]=y.useState(10),{entries:Xt,loading:Ds,refresh:La}=Il({baseUrl:e,accessToken:q,limit:bn,from:ke,to:we,timeZone:le,tzOffsetMinutes:ue}),Ba=ee==="week"||ee==="month",xn=ee==="week"||ee==="month",Ya=y.useMemo(()=>We.filter(_=>_?.future?!1:!_?.day||!Qe?!0:String(_.day)<=String(Qe)),[We,Qe]),{rows:Je,from:Cs,to:Ts,loading:Ps,refresh:za}=po({baseUrl:e,accessToken:q,guestAllowed:re,period:ee,from:ke,to:we,months:24,cacheKey:Oe,timeZone:yt,tzOffsetMinutes:gt,now:je,sharedRows:Ba?We:null,sharedRange:Ba?{from:ke,to:we}:null}),Os=y.useMemo(()=>({baseUrl:e,accessToken:q,guestAllowed:re,cacheKey:Oe,timeZone:yt,tzOffsetMinutes:gt,now:je}),[e,q,re,Oe,yt,gt,je]),{daily:Ft,heatmap:He,loading:Ws,refresh:Ha}=$l({baseUrl:e,accessToken:q,guestAllowed:re,weeks:52,cacheKey:Oe,timeZone:le,tzOffsetMinutes:ue,now:je}),{data:kn,refresh:Ua}=il();y.useEffect(()=>{kn&&typeof kn=="object"&&sl(kn)},[kn]);const Ee=y.useMemo(()=>ee==="day"||ee==="24h"?"hour":ee==="total"?"month":"day",[ee]),As=y.useMemo(()=>yr(Ee),[Ee]),wn="day",Fs=y.useMemo(()=>[...yr(wn),{key:"total_cost_usd",label:g("daily.sort.cost.label"),title:g("daily.sort.cost.title")},{key:"cost_per_million_tokens",label:g("daily.sort.cost_per_mtok.label"),title:g("daily.sort.cost_per_mtok.title")},{key:"top_model",label:g("daily.sort.top_model.label"),title:g("daily.sort.top_model.title")}],[]),[$e,qa]=y.useState(()=>({key:"day",dir:"desc"}));y.useEffect(()=>{qa(_=>!ua.has(_.key)||_.key===Ee?_:{key:Ee,dir:_.dir})},[Ee]);const Et=y.useMemo(()=>ua.has($e.key)&&$e.key!==Ee?{...$e,key:Ee}:$e,[Ee,$e]),vn=y.useMemo(()=>{if(ee==="day"||ee==="24h")return Array.isArray(Je)?Je.filter(z=>z?.hour&&!z?.future):[];if(ee==="total"){const z=Array.isArray(Je)?Je.filter(Z=>Z?.month&&!Z?.future):[];return mc(z)}const _=Ya;return!_.some(z=>!z?.missing&&!z?.future)&&We.length>0?We.filter(z=>!z?.future).slice(-30).filter(z=>z?.day):_},[ee,Je,Ya,We]),Qt=y.useMemo(()=>gr(vn,Et),[vn,Et]),Es=y.useMemo(()=>vn.some(_=>!_?.missing&&!_?.future),[vn]),Yn=y.useMemo(()=>{if(!nn.has(ee))return 1;const _=Math.ceil(Qt.length/An);return _>0?_:1},[ee,Qt.length]),[zn,_n]=y.useState(0);y.useEffect(()=>{if(!nn.has(ee)){_n(0);return}_n(_=>Math.min(_,Yn-1))},[Yn,ee]),y.useEffect(()=>{nn.has(ee)&&_n(0)},[ee,$e.dir,$e.key]);const $s=y.useMemo(()=>nn.has(ee)?hc(Qt,zn,An):Qt,[zn,ee,Qt]),Va=y.useMemo(()=>xc(G.filter(_=>!_?.future&&_?.day).slice(-30),{fallback:g("shared.placeholder.short")}),[G]),$t=y.useMemo(()=>ua.has($e.key)?{...$e,key:wn}:$e,[$e]),Is=y.useMemo(()=>gr(Va,$t),[Va,$t]),Rs=y.useMemo(()=>xn?We:ee==="day"||ee==="24h"?Array.isArray(Je)?Je.filter(_=>_?.hour):[]:Je,[We,ee,Je,xn]),Ls=xn?ke:Cs,Bs=xn?we:Ts;function Ys(_,$){if(_?.future)return"—";if(_?.missing)return g("shared.status.unsynced");if($==="total_tokens")return Ae(Cn(_));if($==="total_cost_usd")return ut(_?.total_cost_usd,{currency:c,rate:d});if($==="cost_per_million_tokens"){const z=_e(_?.cost_per_million_tokens);return z==null?g("shared.placeholder.short"):ut(z,{currency:c,rate:d})}return $==="top_model"?_?.top_model||g("shared.placeholder.short"):Ae(_?.[$])}function zs(_){const $=_?.[Ee];if($==null)return"";const z=String($);if(Ee==="hour"){const[Z,me]=z.split("T");if(Z&&me)return`${Z} ${me.slice(0,5)}`}return z}function Hs(_){const $=_?.[wn];return $==null?"":String($)}function Us(_){qa($=>$.key===_?{key:_,dir:$.dir==="asc"?"desc":"asc"}:{key:_,dir:"desc"})}function qs(_){return Et.key!==_?null:Et.dir==="asc"?"ascending":"descending"}function Vs(_){return Et.key!==_?"":Et.dir==="asc"?"▲":"▼"}function Ks(_){return $t.key!==_?null:$t.dir==="asc"?"ascending":"descending"}function Gs(_){return $t.key!==_?"":$t.dir==="asc"?"▲":"▼"}const Ka=y.useMemo(()=>{if(!n&&!U&&!r&&!ge)return 0;const _=Number(He?.active_days);if(Number.isFinite(_))return _;let $=0;const z=new Set,Z=(oe,he,be)=>{typeof oe!="string"||!oe||z.has(oe)||fa(he,be)&&(z.add(oe),$+=1)};if(Array.isArray(Ft))for(const oe of Ft)Z(oe?.day,Cn(oe));const me=Array.isArray(He?.weeks)?He.weeks:[];for(const oe of me)for(const he of Array.isArray(oe)?oe:[]){const be=io(he);Z(he?.day,be,he?.level)}return $},[n,U,He?.active_days,He?.weeks,Ft]),[Ga,Xa]=y.useState("month"),Xs=y.useCallback(_=>{_==="custom"?(Xa($=>$==="custom"?"month":$),Ye($=>De&&Ne?"custom":$),at(!0)):(Ye(_),Xa(_),at(!1))},[De,Ne]),Qs=y.useCallback((_,$)=>{Ot(_),Ut($),Ye("custom"),at(!1)},[]),Js=y.useCallback(_=>{at(_),!_&&Pt==="custom"&&!De&&Ye(Ga)},[Pt,De,Ga]),Jt=y.useCallback(async()=>{const _=Date.now();L(_),await Promise.all([ne(),Ha(),za(),pn(),La(),pe(),Ua()]),D(_)},[pe,Ha,pn,La,za,ne,Ua]);y.useEffect(()=>{if(w||Xe||typeof window>"u")return;const _=()=>{const z=new Date,Z=sn({timeZone:le,offsetMinutes:ue,date:z});if(Z){if(C.current==null){C.current=Z;return}C.current!==Z&&(C.current=Z,L(z.getTime()))}};_();const $=window.setInterval(_,Cg);return typeof document<"u"&&document.addEventListener("visibilitychange",_),window.addEventListener("focus",_),()=>{window.clearInterval($),typeof document<"u"&&document.removeEventListener("visibilitychange",_),window.removeEventListener("focus",_)}},[Xe,w,le,ue]);const Zs=y.useCallback(async()=>{O(!0);try{ge&&await fr(),await Jt()}catch(_){console.error("[DashboardPage] Refresh failed:",_)}finally{O(!1)}},[ge,Jt]),Qa=y.useCallback(()=>!ge||I.current?null:(I.current=!0,fr().then(Og).catch(_=>(console.error("[DashboardPage] Auto sync failed:",_),!1)).finally(()=>{I.current=!1})),[ge]),Ja=y.useCallback(async()=>{const _=Qa();try{await Jt(),_&&_.then($=>{if($)return Jt()})}catch($){console.error("[DashboardPage] Auto refresh failed:",$)}},[Jt,Qa]),ei=y.useCallback(_=>{const $=js(_);A($);try{window.localStorage?.setItem(Ss,String($))}catch{}},[]);y.useEffect(()=>{if(w||typeof window>"u"||P<=0)return;const _=()=>typeof document>"u"||document.visibilityState==="visible",$=async({throttle:me=!1}={})=>{if(!_())return;const oe=Date.now();if(!(me&&oe-B.current<Dg)&&!S.current){S.current=!0,B.current=oe;try{await Ja()}finally{S.current=!1}}},z=window.setInterval(()=>{$()},P),Z=()=>{$({throttle:!0})};return typeof document<"u"&&document.addEventListener("visibilitychange",Z),window.addEventListener("focus",Z),()=>{window.clearInterval(z),typeof document<"u"&&document.removeEventListener("visibilitychange",Z),window.removeEventListener("focus",Z)}},[P,Ja,w]);const Hn=N||bt||ae||Ws||Ps||Bn||Ds,ti=y.useMemo(()=>g("shared.data_source",{source:String(pt||"edge").toUpperCase()}),[pt,i]),Nn=y.useMemo(()=>typeof t?.name!="string"?"":t.name.trim(),[t?.name]),ni="",Za=y.useMemo(()=>!Nn||Nn.includes("@")?g("dashboard.identity.fallback"):Nn,[Nn]),er=y.useMemo(()=>Za.replace(/[^a-zA-Z0-9._-]/g,"_"),[Za]),tr=y.useMemo(()=>r?g("dashboard.identity.fallback"):er,[er,ni,r]),nr=y.useMemo(()=>{let _=null;const $=Z=>{typeof Z!="string"||!Z||(!_||Z<_)&&(_=Z)};if(Array.isArray(Ft))for(const Z of Ft)Z?.day&&fa(Cn(Z))&&$(Z.day);const z=Array.isArray(He?.weeks)?He.weeks:[];for(const Z of z)for(const me of Array.isArray(Z)?Z:[]){if(!me?.day)continue;const oe=io(me),he=me?.level;fa(oe,he)&&$(me.day)}return _},[He?.weeks,Ft]),ai=y.useMemo(()=>r?[]:(Array.isArray(m?.subscriptions?.items)?m.subscriptions.items:[]).map(z=>{const Z=typeof z?.tool=="string"?z.tool.trim():"",oe=(typeof z?.plan_type=="string"?z.plan_type:typeof z?.planType=="string"?z.planType:"").trim();return!Z||!oe?null:{tool:Z,planType:oe,provider:typeof z?.provider=="string"?z.provider.trim():"",product:typeof z?.product=="string"?z.product.trim():"",rateLimitTier:typeof z?.rate_limit_tier=="string"?z.rate_limit_tier.trim():typeof z?.rateLimitTier=="string"?z.rateLimitTier.trim():""}}).filter(Boolean).slice(0,6),[r,m]),ri=s.jsx(dl,{heatmap:He,timeZoneLabel:Wt,timeZoneShortLabel:ht,hideLegend:w,defaultToLatestMonth:w}),oi=y.useMemo(()=>`${ke}..${we}`,[ke,ee,we]),si=g("usage.summary.total"),rt=Cn(xe),ar=g("shared.unit.thousand_abbrev"),rr=g("shared.unit.million_abbrev"),or=g("shared.unit.billion_abbrev"),Zt=_e(rt),sr=Zt!=null&&(p&&Math.abs(Zt)>=1e9||Math.abs(Zt)>=1e12),ii=y.useMemo(()=>sr?Se(Zt,{thousandSuffix:ar,millionSuffix:rr,billionSuffix:or,decimals:1}):Ae(rt),[or,rr,rt,Zt,ar,sr]),li=y.useMemo(()=>{const _=new Intl.DateTimeFormat(i||void 0,{timeZone:le,year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"}).format(new Date(F));return g("usage.summary.updated_at",{timestamp:_})},[F,i,le]),ci=g("dashboard.core_index.collapse_label"),di=g("dashboard.core_index.expand_label"),ui=g("dashboard.core_index.collapse_aria"),fi=g("dashboard.core_index.expand_aria"),mi=!w,hi=g("dashboard.screenshot.title_line1"),yi=g("dashboard.screenshot.title_line2"),gi=g("dashboard.screenshot.twitter_label"),pi=g("dashboard.screenshot.twitter_button"),bi=g("dashboard.screenshot.twitter_hint"),It=g("shared.placeholder.short"),Un=y.useMemo(()=>{const _=Array.isArray(J?.sources)?J.sources:[];let $=null,z=0;for(const he of _){const be=jt(he?.totals);!Number.isFinite(be)||be<=0||be>z&&(z=be,$=he)}let Z=It,me=It,oe="0.0";if($&&z>0){Z=$?.source?String($.source).toUpperCase():It;const he=Array.isArray($?.models)?$.models:[];let be=0;for(const ot of he){const en=jt(ot?.totals);!Number.isFinite(en)||en<=0||en>be&&(be=en,me=ot?.model?String(ot.model):It)}be>0&&(oe=(be/z*100).toFixed(1))}return{agentName:Z,modelName:me,modelPercent:oe}},[J,It]),ir=Ae(rt),qn=g("dashboard.screenshot.twitter_text",{total_tokens:ir==="-"?It:ir,agent_name:Un.agentName,model_name:Un.modelName,model_percent:Un.modelPercent}),Vn=y.useMemo(()=>{if(typeof window>"u")return"";const _=new URL("https://twitter.com/intent/tweet");_.searchParams.set("text",qn);const $=t?.userId?`/u/${t.userId}`:"/";return _.searchParams.set("url",`https://www.tokentracker.cc${$}?ref=share`),_.toString()},[qn,t?.userId]),lr=y.useCallback(async()=>{if(typeof window>"u")return null;const _=async()=>{const he=performance.now();for(;performance.now()-he<2e3;){const be=document.querySelector("[data-heatmap-scroll='true']");if(!be||be.dataset.latestMonthReady==="true")return;await new Promise(ot=>requestAnimationFrame(ot))}},$=document.querySelector("#root")||document.body,z=document.documentElement,{scrollWidth:Z,scrollHeight:me}=document.documentElement;z?.classList.add("screenshot-capture"),document.body?.classList.add("screenshot-capture"),await new Promise(oe=>requestAnimationFrame(oe)),await _();try{const{toBlob:oe,toPng:he}=await yo(async()=>{const{toBlob:xt,toPng:Ai}=await import("./index-BeoRn2gJ.js");return{toBlob:xt,toPng:Ai}},[]),be=await oe($,{backgroundColor:"#050505",pixelRatio:2,cacheBust:!0,width:Z,height:me,style:{width:`${Z}px`,height:`${me}px`},filter:xt=>!(xt instanceof HTMLElement)||xt.dataset?.screenshotExclude!=="true"});if(be)return be;const ot=await he($,{backgroundColor:"#050505",pixelRatio:2,cacheBust:!0,width:Z,height:me,style:{width:`${Z}px`,height:`${me}px`},filter:xt=>!(xt instanceof HTMLElement)||xt.dataset?.screenshotExclude!=="true"});return ot?await(await fetch(ot)).blob():null}finally{z?.classList.remove("screenshot-capture"),document.body?.classList.remove("screenshot-capture")}},[]),xi=y.useCallback(async()=>{if(typeof window>"u"||v)return;k(!0);const _=navigator?.userAgent||"",$=/iP(hone|od|ad)/i.test(_),z=/Safari/i.test(_)&&!/Chrome|Chromium|Edg|OPR|CriOS|FxiOS/i.test(_),Z=typeof navigator<"u"&&!!navigator.clipboard?.write&&typeof window<"u"&&!!window.ClipboardItem;let oe=!Z||$||z;try{const he=await lr();he&&Z&&(typeof document<"u"&&!document.hasFocus()&&window.focus?.(),oe=await ma(he))}catch(he){console.error("Failed to capture screenshot",he)}finally{if(k(!1),!oe){console.warn("Failed to write screenshot to clipboard.");return}Vn&&(window.location.href=Vn)}},[lr,v,Vn]),ki=y.useMemo(()=>w?[]:jg,[w]),wi=y.useMemo(()=>[{label:g("usage.metric.total"),value:Ae(rt),valueClassName:"text-white"},{label:g("usage.metric.input"),value:Ae(xe?.input_tokens)},{label:g("usage.metric.output"),value:Ae(xe?.output_tokens)},{label:g("usage.metric.cached_input"),value:Ae(xe?.cached_input_tokens)},{label:g("usage.metric.reasoning_output"),value:Ae(xe?.reasoning_output_tokens)}],[xe?.cached_input_tokens,xe?.input_tokens,xe?.output_tokens,xe?.reasoning_output_tokens,rt]),Kn=y.useMemo(()=>ut(xe?.total_cost_usd,{currency:c,rate:d}),[xe?.total_cost_usd,c,d]),vi=y.useMemo(()=>xe?.conversation_count??null,[xe?.conversation_count]),_i=y.useMemo(()=>{if(Number(rt||0)>0||bt||Q)return null;const $=Number(ze?.current_month?.totals?.billable_total_tokens||0),z=Number(ze?.last_30d?.totals?.billable_total_tokens||0),Z=Number(ze?.last_7d?.totals?.billable_total_tokens||0);return ee==="day"&&Z>0?g("dashboard.data_health.day_empty_has_recent",{tokens:Ae(Z)}):(ee==="week"||ee==="custom")&&z>0?g("dashboard.data_health.period_empty_has_30d",{tokens:Ae(z)}):ee==="month"&&$===0&&z>0?g("dashboard.data_health.month_empty_has_30d",{tokens:Ae(z)}):z===0&&ze?g("dashboard.data_health.no_recent_data"):null},[ee,ze,rt,Q,bt]),cr=y.useMemo(()=>Mo(J,{copyFn:g}),[J]),Ni=y.useMemo(()=>pc(J,{copyFn:g}),[J]),dr=y.useMemo(()=>kc(J,{limit:3,copyFn:g}),[J]),Si=Mg({enabled:x,handle:tr,startDate:nr,activeDays:Ka,summary:xe,topModels:dr,period:ee,periodFrom:ke,periodTo:we,heatmap:He,accessToken:typeof q=="string"?q:null,userId:t?.userId||null,currency:c,exchangeRate:d}),Mi=y.useCallback(()=>M(!0),[]),ji=y.useCallback(()=>M(!1),[]),Di=y.useCallback(()=>f(!0),[]),Ci=y.useCallback(()=>f(!1),[]),Ti=Kn&&Kn!=="-"&&cr.length>0,Pi=g("dashboard.install.cmd.sync"),Gn=y.useMemo(()=>g("dashboard.daily.empty",{cmd:"{{cmd}}"}),[i]),[Oi,Wi]=y.useMemo(()=>{const _=Gn.split("{{cmd}}");return _.length===1?[Gn,""]:[_[0],_.slice(1).join("{{cmd}}")]},[Gn]);return y.useEffect(()=>{Y.current||Hn||(Y.current=!0,l?.())},[l,Hn]),s.jsxs(s.Fragment,{children:[s.jsx(By,{copy:g,onOpenShare:Mi,screenshotMode:w,screenshotTitleLine1:hi,screenshotTitleLine2:yi,identityDisplayName:tr,identityStartDate:nr,activeDays:Ka,identitySubscriptions:ai,identityScrambleDurationMs:T,projectUsageEntries:Xt,projectUsageLimit:bn,setProjectUsageLimit:Gt,topModels:dr,isLocalMode:ge,trendRowsForDisplay:Rs,trendFromForDisplay:Ls,trendToForDisplay:Bs,trendZoomConfig:Os,usageFrom:ke,usageTo:we,period:ee,trendTimeZoneLabel:Kt,activityHeatmapBlock:ri,isCapturing:v,handleShareToX:xi,screenshotTwitterLabel:gi,screenshotTwitterButton:pi,screenshotTwitterHint:bi,periodsForDisplay:ki,setSelectedPeriod:Xs,autoRefreshOptions:Ms,autoRefreshIntervalMs:P,onAutoRefreshIntervalChange:ei,customFrom:De,customTo:Ne,onCustomRangeApply:Qs,customRangeOpen:qt,onCustomRangeOpenChange:Js,metricsRows:wi,summaryLabel:si,summaryValue:ii,summaryUpdatedAtLabel:li,summaryCostValue:Kn,usageInsights:Ni,summaryConversationsValue:vi,rollingUsage:ze,costInfoEnabled:Ti,openCostModal:Di,allowBreakdownToggle:mi,coreIndexCollapsed:j,setCoreIndexCollapsed:E,coreIndexCollapseLabel:ci,coreIndexExpandLabel:di,coreIndexCollapseAria:ui,coreIndexExpandAria:fi,refreshAll:Zs,usageLoadingState:Hn,usageError:Q,dataHealthMessage:_i,rangeLabel:oi,timeZoneRangeLabel:Vt,usageSourceLabel:ti,fleetData:cr,hasDetailsActual:Es,dailyEmptyPrefix:Oi,installSyncCmd:Pi,dailyEmptySuffix:Wi,detailsColumns:As,ariaSortFor:qs,toggleSort:Us,sortIconFor:Vs,pagedDetails:$s,dailyBreakdownRows:Is,dailyBreakdownColumns:Fs,dailyBreakdownAriaSortFor:Ks,dailyBreakdownSortIconFor:Gs,dailyBreakdownDateKey:wn,detailsDateKey:Ee,renderDetailDate:zs,renderDailyBreakdownDate:Hs,renderDetailCell:Ys,DETAILS_PAGED_PERIODS:nn,detailsPageCount:Yn,detailsPage:zn,setDetailsPage:_n,costModalOpen:u,closeCostModal:Ci}),s.jsx(Sg,{open:x,onClose:ji,data:Si,twitterText:qn})]})}export{Gg as DashboardPage};
|