tokentracker-cli 0.42.0 → 0.43.0
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-CImSj13A.js → ActivityHeatmap-0IDxIr7i.js} +1 -1
- package/dashboard/dist/assets/{Card-DpjFlMHF.js → Card-hVCKEGdC.js} +1 -1
- package/dashboard/dist/assets/DashboardPage-C3QvJSI2.js +19 -0
- package/dashboard/dist/assets/{DevicePage-BIBlmBPl.js → DevicePage-UVSutySl.js} +1 -1
- package/dashboard/dist/assets/{DialogTitle-BMKzpys0.js → DialogTitle-D0S8c1BO.js} +1 -1
- package/dashboard/dist/assets/{FadeIn-B5-cy4YN.js → FadeIn-anio8NgI.js} +1 -1
- package/dashboard/dist/assets/{HeaderGithubStar-BM-sbvJG.js → HeaderGithubStar-wRjA_Fvu.js} +1 -1
- package/dashboard/dist/assets/{IpCheckPage-C7-NXbFK.js → IpCheckPage-vl0aIVv0.js} +1 -1
- package/dashboard/dist/assets/{LandingPage-ouOFlABY.js → LandingPage-CJO4q92s.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardAvatar-DMXPtCkx.js → LeaderboardAvatar-CjPVgiDo.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardPage-CC4CFYAe.js → LeaderboardPage-DiQn0DqL.js} +3 -3
- package/dashboard/dist/assets/{LeaderboardProfileModal-D-ncIr24.js → LeaderboardProfileModal-yovVjgnB.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardProfilePage-DtDMfVuQ.js → LeaderboardProfilePage-C0vqt4m5.js} +1 -1
- package/dashboard/dist/assets/{LimitsPage-qaD7Reti.js → LimitsPage-8o294HKr.js} +1 -1
- package/dashboard/dist/assets/{LocalOnlyNotice-BCy18fW4.js → LocalOnlyNotice-BQsPhRvE.js} +1 -1
- package/dashboard/dist/assets/{LoginPage-BLPY2ZI-.js → LoginPage-D8hQf3xT.js} +1 -1
- package/dashboard/dist/assets/{PopoverPopup-CpIlpO0j.js → PopoverPopup-rhSAh0x6.js} +1 -1
- package/dashboard/dist/assets/{Select-BOxMknxo.js → Select-ByLRQqzg.js} +1 -1
- package/dashboard/dist/assets/{SelectItemText-B0SL3Wb5.js → SelectItemText-CHHy8UA1.js} +1 -1
- package/dashboard/dist/assets/{SettingsPage-De7GbtPf.js → SettingsPage-DGyuX3ua.js} +1 -1
- package/dashboard/dist/assets/SkillsPage-CMsfSZar.js +1 -0
- package/dashboard/dist/assets/{WidgetsPage-BaEYiZZH.js → WidgetsPage-DavgYHA1.js} +1 -1
- package/dashboard/dist/assets/{WrappedPage-BYhKuiTb.js → WrappedPage-BARpWxxH.js} +1 -1
- package/dashboard/dist/assets/{agent-logos-DSQgCNll.js → agent-logos-BsEMlmFc.js} +1 -1
- package/dashboard/dist/assets/{arrow-up-right-Brwh94cN.js → arrow-up-right-Nh5NXsRd.js} +1 -1
- package/dashboard/dist/assets/{download-kFiot71R.js → download-Bz-ad2Zi.js} +1 -1
- package/dashboard/dist/assets/{info-CGx4zWQF.js → info-Edlzr0qR.js} +1 -1
- package/dashboard/dist/assets/main-BfK9LoKV.css +1 -0
- package/dashboard/dist/assets/{main-9Ze1SUIZ.js → main-CGYVeoRd.js} +2 -2
- package/dashboard/dist/assets/{use-limits-display-prefs-Ehri95OP.js → use-limits-display-prefs-Cc82ZSkQ.js} +1 -1
- package/dashboard/dist/assets/{use-native-settings-BWqG5RDr.js → use-native-settings-rTdpowec.js} +1 -1
- package/dashboard/dist/assets/{use-usage-limits-2ZxmPfoP.js → use-usage-limits-DFjNciSe.js} +1 -1
- package/dashboard/dist/assets/{useCurrency-DQmyhw3i.js → useCurrency-BY5HnhWy.js} +1 -1
- package/dashboard/dist/assets/{useScrollLock-BcLeWqWK.js → useScrollLock-oNpe5Ufe.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/local-api.js +31 -10
- package/src/lib/pricing/seed-snapshot.json +1 -1
- package/src/lib/skills-manager.js +134 -41
- package/dashboard/dist/assets/DashboardPage-CZkSRYE8.js +0 -19
- package/dashboard/dist/assets/SkillsPage-jpoYzUBQ.js +0 -1
- package/dashboard/dist/assets/main-DMJJVAOH.css +0 -1
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import{c as wo,j as o,L as Zi,r as m,u as el,a as tl,b as nl,d as al,e as Oa,m as Te,g as rl,i as $t,f as Xt,h as et,k as ol,l as sl,n as wr,o as _n,p as Wa,q as Ea,s as Fn,t as il,v as ll,w as cl,x as dl,y as ul,z as An,A as Gt,B as fl,C as ml,D as hl,E as gl,F as Ye,G as y,R as O,X as vo,H as $n,I as Qt,J as We,K as _o,M as On,N as No,O as yl,P as So,Q as Mo,S as Fa,T as pl,U as jo,V as Je,W as bl,Y as Do,Z as xl,_ as vr,$ as Co,a0 as xa,a1 as kl,a2 as wl,a3 as vl,a4 as _l,a5 as Nl,a6 as Sl,a7 as Ml,a8 as jl,a9 as Dl,aa as Cl,ab as Tl,ac as Pl,ad as ct,ae as _r}from"./main-9Ze1SUIZ.js";import{u as Ol}from"./use-usage-limits-2ZxmPfoP.js";import{u as Jt}from"./useCurrency-DQmyhw3i.js";import{T as Wl,M as El,A as Fl}from"./ActivityHeatmap-CImSj13A.js";import{u as Al,D as $l,a as Il,b as Ll,c as Rl,d as Bl,e as Yl}from"./DialogTitle-BMKzpys0.js";import{C as Aa}from"./Card-DpjFlMHF.js";import{S as zl}from"./Select-BOxMknxo.js";import{u as Hl,a as Ul,b as ql,L as Vl,A as Gl}from"./agent-logos-DSQgCNll.js";import{I as To}from"./info-CGx4zWQF.js";import{C as Po,P as ka,a as wa,b as va,c as _a,d as Na,L as Kl}from"./PopoverPopup-CpIlpO0j.js";import{F as Ht}from"./FadeIn-B5-cy4YN.js";import"./useScrollLock-BcLeWqWK.js";import"./SelectItemText-B0SL3Wb5.js";const Xl=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],Ql=wo("chevron-left",Xl);const Jl=[["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"}]],Zl=wo("square-arrow-out-up-right",Jl);function ec(){return o.jsxs(Zi,{to:"/landing",className:"flex items-center gap-2.5 no-underline hover:opacity-80 transition-opacity",children:[o.jsx("img",{src:"/app-icon.png",alt:"Token Tracker",width:28,height:28,className:"rounded-md"}),o.jsx("span",{className:"text-base font-semibold text-oai-black dark:text-oai-white leading-tight",children:"Token Tracker"})]})}function tc({children:e,header:t,footer:n,className:a="",hideHeader:r=!1,hideFooter:s=!1,bare:l=!1}){return l?o.jsxs("div",{className:`flex flex-col flex-1 min-h-0 ${a}`,children:[o.jsx("main",{className:"flex-1 px-6 py-6",children:e}),!s&&n&&o.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})]}):o.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&&o.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:[o.jsx(ec,{}),o.jsx("div",{className:"flex-1 flex justify-center",children:t})]}),o.jsx("main",{className:"flex-1 px-6 py-6",children:e}),!s&&n&&o.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 nc({children:e,variant:t="info",size:n="md",className:a=""}){const r="inline-flex items-center font-medium",s={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} ${s[t]} ${l[n]} ${a}`.trim();return o.jsx("span",{className:i,children:e})}const ac=m.forwardRef(function(t,n){const{render:a,className:r,style:s,disabled:l=!1,nativeButton:i=!0,...c}=t,{store:d}=Al(),u=d.useState("open"),{getButtonProps:f,buttonRef:h}=el({disabled:l,native:i}),g={disabled:l};function p(b){u&&d.setOpen(!1,nl(al,b.nativeEvent))}return tl("button",t,{state:g,ref:[n,h],props:[{onClick:p},c,f]})});var rc={};function oc(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 sc({mv:e,digit:t,height:n}){const a=ql(e,r=>{const s=(r%10+10)%10,l=(10+t-s)%10;let i=l*n;return l>5&&(i-=10*n),i});return o.jsx(Te.span,{style:{position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",y:a},children:t})}function ic(e){const t=Math.round(e),n=1e-9*Math.max(1,Math.abs(e));return Math.abs(e-t)<n?t:e}function lc(e,t){const n=e/t;return Math.floor(ic(n))}function cc(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,s=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 s+=1,10**-s})}function dc({place:e,value:t,height:n,digitStyle:a,shouldReduceMotion:r}){if(typeof e!="number"){const c=oc(e,n);return o.jsx("span",{"data-counter-token":"static",className:"relative inline-flex items-center justify-center",style:{height:n,...c,...a},children:e})}const s=lc(t,e),l=Hl(0),i=Ul(l,{stiffness:220,damping:26,mass:.8});return m.useEffect(()=>{l.set(s)},[l,s]),r?o.jsx("span",{"data-counter-token":"digit",className:"relative inline-flex items-center justify-center overflow-hidden",style:{height:n,position:"relative",width:"0.9ch",fontVariantNumeric:"tabular-nums",...a},children:Math.abs(s)%10}):o.jsx("span",{"data-counter-token":"digit",className:"relative inline-flex overflow-hidden",style:{height:n,position:"relative",width:"0.9ch",fontVariantNumeric:"tabular-nums",...a},children:Array.from({length:10},(c,d)=>o.jsx(sc,{mv:i,digit:d,height:n},d))})}function uc({value:e,displayValue:t,fontSize:n=72,padding:a=0,places:r,gap:s=6,borderRadius:l=4,horizontalPadding:i=0,textColor:c="inherit",fontWeight:d="inherit",containerStyle:u,counterStyle:f,digitStyle:h,gradientHeight:g=14,gradientFrom:p="rgba(255,255,255,0.95)",gradientTo:b="rgba(255,255,255,0)",topGradientStyle:v,bottomGradientStyle:x}){const w=String(t??e??""),k=m.useMemo(()=>Array.isArray(r)&&r.length?r:cc(w),[r,w]),j=typeof navigator<"u"&&/jsdom/i.test(navigator.userAgent||"")||typeof process<"u"&&rc?.VITEST==="true",_=Oa()||j,S=Number.isFinite(Number(e))?Math.abs(Number(e)):0,F=n+a;return _?o.jsx("span",{"data-counter-root":"true",style:{display:"inline-flex",alignItems:"center",color:c,fontSize:n,fontWeight:d,lineHeight:1,...u,...f},children:w}):o.jsxs("span",{"data-counter-root":"true",style:{position:"relative",display:"inline-block",...u},children:[o.jsx("span",{style:{fontSize:n,display:"flex",gap:s,overflow:"hidden",borderRadius:l,paddingLeft:i,paddingRight:i,lineHeight:1,color:c,fontWeight:d,...f},children:k.map((M,C)=>o.jsx(dc,{place:M,value:S,height:F,digitStyle:h,shouldReduceMotion:_},`${String(M)}-${C}`))}),o.jsxs("span",{style:{pointerEvents:"none",position:"absolute",inset:0,display:"flex",flexDirection:"column",justifyContent:"space-between"},children:[o.jsx("span",{style:v??{height:g,background:`linear-gradient(to bottom, ${p}, ${b})`}}),o.jsx("span",{style:x??{height:g,background:`linear-gradient(to top, ${p}, ${b})`}})]})]})}function fc({baseUrl:e,accessToken:t,guestAllowed:n=!1,weeks:a=52,weekStartsOn:r="sun",cacheKey:s,timeZone:l,tzOffsetMinutes:i,now:c,accountView:d=!1,accountAccessToken:u=null,accountRevision:f=0,accountViewResolving:h=!1}={}){const g=!!(d&&u),p=g?"cloud":"local",b=m.useMemo(()=>rl({weeks:a,weekStartsOn:r,now:c}),[c,a,r]),[v,x]=m.useState([]),[w,k]=m.useState(null),[j,_]=m.useState("edge"),[S,F]=m.useState(!1),[M,C]=m.useState(null),$=$t(),R=Xt(t),H=!n,D=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),W=m.useMemo(()=>{if(!s)return null;const A=Fn({timeZone:l,offsetMinutes:i});return`tokentracker.heatmap.${s}.${p}.${a}.${r}.${A}`},[s,p,l,i,a,r]),B=m.useCallback(()=>{if(!W||typeof window>"u")return null;try{const A=window.localStorage.getItem(W);if(!A)return null;const G=JSON.parse(A);return!G||!G.heatmap?null:G}catch{return null}},[W]),T=m.useCallback(A=>{if(!(!W||typeof window>"u"))try{window.localStorage.setItem(W,JSON.stringify(A))}catch{}},[W]),E=m.useCallback(()=>{if(!(!W||typeof window>"u"))try{window.localStorage.removeItem(W)}catch{}},[W]),X=m.useRef(p);m.useEffect(()=>{X.current!==p&&(X.current=p,x([]),k(null),_("edge"),C(null),F(!0))},[p]);const I=m.useCallback(async()=>{const A=await et(t),G=g?await et(u):null;if(!A&&!$&&!D&&!g)return;if(g&&!G){C("Your session expired. Please sign in again to view account data."),F(!1);return}const ae=g?G:A,me=g?ol:sl,re=g?Wa:Ea;F(!0),C(null);try{try{const se=await me({baseUrl:e,accessToken:ae,weeks:a,to:b.to,weekStartsOn:r,timeZone:l,tzOffsetMinutes:i}),K=Array.isArray(se?.weeks)?se.weeks:[];if(!K.length&&H){const te=B();if(te?.heatmap){k(te.heatmap),x(te.daily||[]),_("cache");return}}if(!K.some(te=>(Array.isArray(te)?te:[]).some(xe=>xe&&Number.isFinite(Number(xe.level))))&&K.length){const te=[];for(const ue of K)for(const ce of Array.isArray(ue)?ue:[])ce?.day&&te.push({day:ce.day,total_tokens:ce.total_tokens??ce.value??0,billable_total_tokens:ce.billable_total_tokens??ce.value??ce.total_tokens??0});const xe=wr({dailyRows:te,weeks:a,to:se?.to||b.to,weekStartsOn:r});x(te),k({...xe,week_starts_on:r,active_days:te.filter(ue=>Number(ue?.billable_total_tokens??ue?.total_tokens)>0).length,streak_days:_n({dailyRows:te,to:se?.to||b.to})}),_("client"),H?T({heatmap:{...xe,week_starts_on:r,active_days:te.filter(ue=>Number(ue?.billable_total_tokens??ue?.total_tokens)>0).length,streak_days:_n({dailyRows:te,to:se?.to||b.to})},daily:te,fetchedAt:new Date().toISOString()}):E();return}k(se||null),x([]),_("edge"),se&&H?T({heatmap:se,daily:[],fetchedAt:new Date().toISOString()}):H||E();return}catch(se){const K=se,V=K?.status??K?.statusCode;if(V===401||V===403)throw se}const J=await re({baseUrl:e,accessToken:ae,from:b.from,to:b.to,timeZone:l,tzOffsetMinutes:i}),ee=Array.isArray(J?.data)?J.data:[];x(ee);const be=wr({dailyRows:ee,weeks:a,to:b.to,weekStartsOn:r});k({...be,week_starts_on:r,active_days:ee.filter(se=>Number(se?.billable_total_tokens??se?.total_tokens)>0).length,streak_days:_n({dailyRows:ee,to:b.to})}),_("client"),H?T({heatmap:{...be,week_starts_on:r,active_days:ee.filter(se=>Number(se?.billable_total_tokens??se?.total_tokens)>0).length,streak_days:_n({dailyRows:ee,to:b.to})},daily:ee,fetchedAt:new Date().toISOString()}):E()}catch(J){if(H){const ee=B();if(ee?.heatmap)k(ee.heatmap),x(ee.daily||[]),_("cache"),C(null);else{const be=J;C(be?.message||String(be)),x([]),k(null),_("edge")}}else{const ee=J;C(ee?.message||String(ee)),x([]),k(null),_("edge")}}finally{F(!1)}},[t,e,$,n,H,b.from,b.to,B,R,l,i,r,a,E,T,D,g,u,f]);return m.useEffect(()=>{if(h){F(!0);return}if(!R&&!n&&!$&&!D&&!g){x([]),F(!1),C(null),k(null),_("edge");return}if(!H)E(),x([]),C(null),k(null),_("edge");else{const A=B();A?.heatmap&&(k(A.heatmap),x(A.daily||[]),_("cache"))}I()},[t,$,B,I,R,n,H,E,D,h]),{range:b,daily:v,heatmap:w,source:$?"mock":j==="client"?"edge":j,loading:S,error:M,refresh:I}}function mc({baseUrl:e,accessToken:t,limit:n=3,from:a,to:r,source:s,timeZone:l,tzOffsetMinutes:i}={}){const[c,d]=m.useState([]),[u,f]=m.useState(!1),[h,g]=m.useState(null),p=$t(),b=Xt(t),v=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),x=m.useCallback(async()=>{const w=await et(t);if(!w&&!p&&!v){d([]),g(null),f(!1);return}f(!0),g(null);try{const k=await il({baseUrl:e,accessToken:w,limit:n,from:a,to:r,source:s,timeZone:l,tzOffsetMinutes:i});d(Array.isArray(k?.entries)?k.entries:[])}catch(k){const j=k?.message||String(k);g(j),d([])}finally{f(!1)}},[t,e,a,n,p,s,l,r,i,v]);return m.useEffect(()=>{if(!b&&!p&&!v){d([]),g(null),f(!1);return}x()},[p,x,b,v]),{entries:c,loading:u,error:h,refresh:x}}const hc=24;function Oo({baseUrl:e,accessToken:t,guestAllowed:n=!1,period:a,from:r,to:s,months:l=hc,cacheKey:i,timeZone:c,tzOffsetMinutes:d,now:u,sharedRows:f,sharedRange:h,accountView:g=!1,accountAccessToken:p=null,accountRevision:b=0,accountViewResolving:v=!1}={}){const x=!!(g&&p),w=x?"cloud":"local",[k,j]=m.useState([]),[_,S]=m.useState(()=>({from:r,to:s})),[F,M]=m.useState("edge"),[C,$]=m.useState(null),[R,H]=m.useState(!1),[D,W]=m.useState(null),B=$t(),T=Xt(t),E=!n&&!B,X=Array.isArray(f),I=h?.from||r,P=h?.to||s,A=m.useMemo(()=>a==="day"?"hourly":a==="total"?"monthly":"daily",[a]),G=(()=>{if(!i)return null;const K=gc(e)||"default",V=Fn({timeZone:c,offsetMinutes:d});if(A==="hourly")return`tokentracker.trend.${i}.${w}.${K}.hourly.${s||r||"day"}.${V}`;if(A==="monthly")return`tokentracker.trend.${i}.${w}.${K}.monthly.${l}.${s||"today"}.${V}`;const te=`${r||""}.${s||""}`;return`tokentracker.trend.${i}.${w}.${K}.daily.${te}.${V}`})(),ae=m.useCallback(()=>{if(!G||typeof window>"u")return null;try{const K=window.localStorage.getItem(G);if(!K)return null;const V=JSON.parse(K);return!V||!Array.isArray(V.rows)?null:V}catch{return null}},[G]),me=m.useCallback(K=>{if(!(!G||typeof window>"u"))try{window.localStorage.setItem(G,JSON.stringify(K))}catch{}},[G]),re=m.useCallback(()=>{if(!(!G||typeof window>"u"))try{window.localStorage.removeItem(G)}catch{}},[G]),J=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),ee=m.useRef(w);m.useEffect(()=>{ee.current!==w&&(ee.current=w,j([]),S({from:r,to:s}),M("edge"),$(null),W(null),H(!0))},[w]);const be=m.useCallback(async()=>{if(X){j(Array.isArray(f)?f:[]),S({from:I,to:P}),M("shared"),$(null),H(!1),W(null);return}const K=await et(t),V=x?await et(p):null;if(!K&&!B&&!J&&!x)return;if(x&&!V){W("Your session expired. Please sign in again to view account data."),H(!1);return}const te=x?V:K,xe=x?ll:cl,ue=x?dl:ul,ce=x?Wa:Ea;H(!0),W(null);try{let fe;A==="hourly"?fe=await xe({baseUrl:e,accessToken:te,day:s||r,timeZone:c,tzOffsetMinutes:d}):A==="monthly"?fe=await ue({baseUrl:e,accessToken:te,months:l,to:s,timeZone:c,tzOffsetMinutes:d}):fe=await ce({baseUrl:e,accessToken:te,from:r,to:s,timeZone:c,tzOffsetMinutes:d});const ie=fe?.from||r||fe?.day||null,pe=fe?.to||s||fe?.day||null;let Pe=Array.isArray(fe?.data)?fe.data:[];A==="daily"?Pe=ea(Pe,ie||r,pe||s,{timeZone:c,offsetMinutes:d,now:u}):A==="hourly"?(Pe=ta(Pe,ie||r||fe?.day,{timeZone:c,offsetMinutes:d,now:u}),Pe=na(Pe,{timeZone:c,offsetMinutes:d,now:u})):A==="monthly"&&(Pe=aa(Pe,{timeZone:c,offsetMinutes:d,now:u}));const Fe=new Date().toISOString();j(Pe),S({from:ie,to:pe}),M("edge"),$(Fe),E?me({rows:Pe,from:ie,to:pe,mode:A,fetchedAt:Fe}):re()}catch(fe){if(E){const ie=ae();if(ie?.rows){let pe=A==="daily"?ea(ie.rows||[],ie.from||r,ie.to||s,{timeZone:c,offsetMinutes:d,now:u}):A==="hourly"?ta(ie.rows||[],ie.from||r||ie.day||s,{timeZone:c,offsetMinutes:d,now:u}):Array.isArray(ie.rows)?ie.rows:[];A==="hourly"?pe=na(pe,{timeZone:c,offsetMinutes:d,now:u}):A==="monthly"&&(pe=aa(pe,{timeZone:c,offsetMinutes:d,now:u})),j(pe),S({from:ie.from||r,to:ie.to||s}),M("cache"),$(ie.fetchedAt||null),W(null)}else{j([]),S({from:r,to:s}),M("edge"),$(null);const pe=fe;W(pe?.message||String(pe))}}else{j([]),S({from:r,to:s}),M("edge"),$(null);const ie=fe;W(ie?.message||String(ie))}}finally{H(!1)}},[t,e,r,B,n,E,A,l,ae,T,X,I,f,P,c,s,d,u,re,me,J,x,p,b]);m.useEffect(()=>{if(v){H(!0);return}if(X){j(Array.isArray(f)?f:[]),S({from:I,to:P}),M("shared"),$(null),H(!1),W(null);return}if(!T&&!n&&!B&&!J&&!x){j([]),S({from:r,to:s}),W(null),H(!1),M("edge"),$(null);return}if(!E)re(),j([]),S({from:r,to:s}),W(null),M("edge"),$(null);else{const K=ae();if(K?.rows){let V=A==="daily"?ea(K.rows||[],K.from||r,K.to||s,{timeZone:c,offsetMinutes:d,now:u}):A==="hourly"?ta(K.rows||[],K.from||r||K.day||s,{timeZone:c,offsetMinutes:d,now:u}):Array.isArray(K.rows)?K.rows:[];A==="hourly"?V=na(V,{timeZone:c,offsetMinutes:d,now:u}):A==="monthly"&&(V=aa(V,{timeZone:c,offsetMinutes:d,now:u})),j(V),S({from:K.from||r,to:K.to||s}),M("cache"),$(K.fetchedAt||null)}}be()},[t,B,ae,be,X,I,f,P,T,n,E,re,J,v]);const se=B?"mock":F;return{rows:k,from:_.from||r,to:_.to||s,source:se,fetchedAt:C,loading:R,error:D,refresh:be}}function gc(e){try{return new URL(e).host}catch{return null}}function Cn(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,s=Number(n[2]);if(!Number.isFinite(a)||!Number.isFinite(r)||!Number.isFinite(s))return null;const l=new Date(Date.UTC(a,r,s));return Number.isFinite(l.getTime())&&Gt(l)===t?l:null}function Wo(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}const Eo=["total_tokens","billable_total_tokens","input_tokens","cached_input_tokens","cache_creation_input_tokens","output_tokens","reasoning_output_tokens","conversation_count"];function ea(e,t,n,{timeZone:a,offsetMinutes:r,now:s}={}){const l=Cn(t),i=Cn(n);if(!l||!i||i<l)return Array.isArray(e)?e:[];const c=s instanceof Date&&Number.isFinite(s.getTime())?s:new Date,d=An({timeZone:a,offsetMinutes:r,date:c}),u=Cn(d),f=u?u.getTime():c.getTime(),h=new Map;for(const p of e||[])p?.day&&h.set(p.day,p);const g=[];for(let p=l;p<=i;p=Wo(p,1)){const b=Gt(p),v=h.get(b),x=p.getTime()>f;if(v){g.push({...v,missing:!1,future:x});continue}g.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:!x,future:x})}return g}function yc(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 pc(e){if(!e||typeof e!="object")return!1;const t=e.models;return t&&typeof t=="object"&&Object.keys(t).length>0?!1:Eo.every(n=>e[n]==null)}function bc(e,t,n){const a={...e,hour:t,missing:!1,future:n};if(!n&&pc(e))for(const r of Eo)a[r]=0;return a}function xc(e,t){const n=t===30?48:24,a=[];for(let r=0;r<n;r++){const s=Math.floor(r*t/60),l=r*t%60;a.push(`${e}T${String(s).padStart(2,"0")}:${String(l).padStart(2,"0")}:00`)}return a}function kc(e,t,{timeZone:n,offsetMinutes:a}={}){const r=xc(e,t);if(!n||typeof Intl>"u"||!Intl.DateTimeFormat)return r;const s=Cn(e);if(!s)return r;const l=s.getUTCFullYear()*1e4+(s.getUTCMonth()+1)*100+s.getUTCDate(),i=s.getTime()-2160*60*1e3,c=Wo(s,2).getTime()+2160*60*1e3,d=[],u=new Set;for(let f=i;f<=c;f+=1800*1e3){const h=In({timeZone:n,offsetMinutes:a,now:new Date(f)});if(!h||h.dayNum!==l||t===60&&h.minute!==0||t===30&&h.minute!==0&&h.minute!==30)continue;const g=`${e}T${String(h.hour).padStart(2,"0")}:${String(h.minute).padStart(2,"0")}:00`;u.has(g)||(u.add(g),d.push(g))}return d.length>0?d:r}function ta(e,t,{timeZone:n,offsetMinutes:a,now:r}={}){if(!t)return Array.isArray(e)?e:[];const s=t.trim().slice(0,10),l=In({timeZone:n,offsetMinutes:a,now:r}),i=l?l.dayNum:void 0;let c=!1;for(const g of e||[]){const p=g?.hour||g?.label||"",b=Tn(p,i);if(b&&b.slot%2!==0){c=!0;break}}const d=c?30:60,u=new Map;for(const g of e||[]){const p=g?.hour||g?.label||"",b=Tn(p,i);b&&u.set(b.slot,g)}const f=[],h=kc(s,d,{timeZone:n,offsetMinutes:a});for(let g=0;g<h.length;g++){const p=h[g],b=Tn(p,i),v=b?b.slot:c?g:g*2,x=u.get(v);let w=!1;if(l){const k=l.year*1e4+l.month*100+l.day,j=b?.dayNum??Number(s.replace(/-/g,""));if(j>k)w=!0;else if(j===k){const _=l.hour*2+(l.minute>=30?1:0);w=v>_}}x?f.push(bc(x,p,w)):f.push(yc(p,w))}return f}function na(e,{timeZone:t,offsetMinutes:n,now:a}={}){if(!Array.isArray(e))return[];const r=In({timeZone:t,offsetMinutes:n,now:a});return r?e.map(s=>{const l=s?.hour||s?.label||"",i=Tn(l,r.dayNum);if(!i)return{...s,future:!1};const c=i.dayNum!==null&&i.dayNum>r.dayNum||(i.dayNum===null||i.dayNum===r.dayNum)&&i.slot>r.slot;return{...s,future:!!c}}):e}function aa(e,{timeZone:t,offsetMinutes:n,now:a}={}){if(!Array.isArray(e))return[];const r=In({timeZone:t,offsetMinutes:n,now:a});return r?e.map(s=>{const l=s?.month||s?.label||"",i=wc(l);if(!i)return{...s,future:!1};const c=i.year>r.year||i.year===r.year&&i.month>r.month;return{...s,future:c}}):e}function In({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 h=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((w,k)=>(k.type&&k.value&&(w[k.type]=k.value),w),{}),g=Number(h.year),p=Number(h.month),b=Number(h.day),v=Number(h.hour),x=Number(h.minute);if(Number.isFinite(g)&&Number.isFinite(p)&&Number.isFinite(b)&&Number.isFinite(v)&&Number.isFinite(x)){const w=v*2+(x>=30?1:0);return{year:g,month:p,day:b,hour:v,minute:x,dayNum:g*1e4+p*100+b,slot:w}}}catch{}if(Number.isFinite(t)){const u=new Date(a.getTime()+t*60*1e3),f=u.getUTCFullYear(),h=u.getUTCMonth()+1,g=u.getUTCDate(),p=u.getUTCHours(),b=u.getUTCMinutes(),v=p*2+(b>=30?1:0);return{year:f,month:h,day:g,hour:p,minute:b,dayNum:f*1e4+h*100+g,slot:v}}const r=a.getFullYear(),s=a.getMonth()+1,l=a.getDate(),i=a.getHours(),c=a.getMinutes(),d=i*2+(c>=30?1:0);return{year:r,month:s,day:l,hour:i,minute:c,dayNum:r*1e4+s*100+l,slot:d}}function Tn(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 s=a.split("-");if(s.length!==3)return null;const l=Number(s[0]),i=Number(s[1]),c=Number(s[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 h=u*2+(f>=30?1:0);return{dayNum:l*1e4+i*100+c,slot:h}}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 s=a*2+(r>=30?1:0);return{dayNum:t||null,slot:s}}}function wc(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 Nr({baseUrl:e,accessToken:t,guestAllowed:n=!1,from:a,to:r,includeDaily:s=!0,cacheKey:l,timeZone:i,tzOffsetMinutes:c,now:d,accountView:u=!1,accountAccessToken:f=null,accountRevision:h=0,accountViewResolving:g=!1}={}){const p=!!(u&&f),b=p?"cloud":"local",[v,x]=m.useState([]),[w,k]=m.useState(null),[j,_]=m.useState(null),[S,F]=m.useState("edge"),[M,C]=m.useState(null),[$,R]=m.useState(!1),[H,D]=m.useState(null),W=$t(),B=Xt(t),T=!n&&!W,E=(()=>{if(!l)return null;const re=vc(e)||"default",J=s?"daily":"summary",ee=Fn({timeZone:i,offsetMinutes:c});return`tokentracker.usage.${l}.${b}.${re}.${a}.${r}.${J}.${ee}`})(),X=m.useRef(b);m.useEffect(()=>{X.current!==b&&(X.current=b,x([]),k(null),_(null),F("edge"),C(null),D(null),R(!0))},[b]);const I=m.useCallback(()=>{if(!E||typeof window>"u")return null;try{const re=window.localStorage.getItem(E);if(!re)return null;const J=JSON.parse(re);return!J||!J.summary?null:J}catch{return null}},[E]),P=m.useCallback(re=>{if(!(!E||typeof window>"u"))try{window.localStorage.setItem(E,JSON.stringify(re))}catch{}},[E]),A=m.useCallback(()=>{if(!(!E||typeof window>"u"))try{window.localStorage.removeItem(E)}catch{}},[E]),G=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),ae=m.useCallback(async()=>{const re=await et(t),J=p?await et(f):null;if(!re&&!W&&!G&&!p)return;if(p&&!J){D("Your session expired. Please sign in again to view account data."),R(!1);return}const ee=p?Wa:Ea,be=p?fl:ml,se=p?J:re;R(!0),D(null);try{let K=null,V=null;if(s){const[fe,ie]=await Promise.allSettled([ee({baseUrl:e,accessToken:se,from:a,to:r,timeZone:i,tzOffsetMinutes:c}),be({baseUrl:e,accessToken:se,from:a,to:r,timeZone:i,tzOffsetMinutes:c,rolling:!0})]);if(fe.status==="rejected")throw fe.reason;K=fe.value,V=ie.status==="fulfilled"?ie.value:null}else V=await be({baseUrl:e,accessToken:se,from:a,to:r,timeZone:i,tzOffsetMinutes:c,rolling:!0});let te=s&&Array.isArray(K?.data)?K.data:[];s&&(te=oa(te,a,r,{timeZone:i,offsetMinutes:c,now:d}));let xe=V?.totals||K?.summary?.totals||null,ue=V?.rolling||K?.summary?.rolling||null;if(s&&!xe&&!V)try{const fe=await be({baseUrl:e,accessToken:se,from:a,to:r,timeZone:i,tzOffsetMinutes:c,rolling:!0});xe=fe?.totals||null,ue=fe?.rolling||ue}catch{}const ce=new Date().toISOString();x(te),k(xe),_(ue),F("edge"),C(ce),xe&&T?P({summary:xe,rolling:ue,daily:te,from:a,to:r,includeDaily:s,fetchedAt:ce}):T||A()}catch(K){if(T){const V=I();if(V?.summary){k(V.summary),_(V.rolling||null);const te=Array.isArray(V.daily)?V.daily:[],xe=s?oa(te,V.from||a,V.to||r,{timeZone:i,offsetMinutes:c,now:d}):te;x(xe),F("cache"),C(V.fetchedAt||null),D(null)}else{const te=K;D(te?.message||String(te)),x([]),k(null),_(null),F("edge"),C(null)}}else{const V=K;D(V?.message||String(V)),x([]),k(null),_(null),F("edge"),C(null)}}finally{R(!1)}},[t,e,a,s,W,n,T,d,I,B,i,r,c,A,P,G,p,f,h]);return m.useEffect(()=>{if(g){R(!0);return}const re=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1");if(!B&&!n&&!W&&!re&&!p){x([]),k(null),_(null),D(null),R(!1),F("edge"),C(null);return}if(!T)A(),x([]),k(null),_(null),D(null),F("edge"),C(null);else{const J=I();if(J?.summary){k(J.summary),_(J.rolling||null);const ee=Array.isArray(J.daily)?J.daily:[],be=s?oa(ee,J.from||a,J.to||r,{timeZone:i,offsetMinutes:c,now:d}):ee;x(be),F("cache"),C(J.fetchedAt||null)}}ae()},[t,W,I,ae,B,n,T,A,G,g]),{daily:v,summary:w,rolling:j,source:W?"mock":S,fetchedAt:M,loading:$,error:H,refresh:ae}}function vc(e){try{return new URL(e).host}catch{return null}}function ra(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,s=Number(n[2]);if(!Number.isFinite(a)||!Number.isFinite(r)||!Number.isFinite(s))return null;const l=new Date(Date.UTC(a,r,s));return Number.isFinite(l.getTime())&&Gt(l)===t?l:null}function _c(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function oa(e,t,n,{timeZone:a,offsetMinutes:r,now:s}={}){const l=ra(t),i=ra(n);if(!l||!i||i<l)return Array.isArray(e)?e:[];const c=s instanceof Date&&Number.isFinite(s.getTime())?s:new Date,d=An({timeZone:a,offsetMinutes:r,date:c}),u=ra(d),f=u?u.getTime():c.getTime(),h=new Map;for(const p of e||[])p?.day&&h.set(p.day,p);const g=[];for(let p=l;p<=i;p=_c(p,1)){const b=Gt(p),v=h.get(b),x=p.getTime()>f;if(v){g.push({...v,missing:!1,future:x});continue}g.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:!x,future:x})}return g}function Nc({baseUrl:e,accessToken:t,guestAllowed:n=!1,from:a,to:r,cacheKey:s,timeZone:l,tzOffsetMinutes:i,accountView:c=!1,accountAccessToken:d=null,accountRevision:u=0,accountViewResolving:f=!1}={}){const h=!!(c&&d),g=h?"cloud":"local",[p,b]=m.useState(null),[v,x]=m.useState("edge"),[w,k]=m.useState(!1),[j,_]=m.useState(null),S=$t(),F=Xt(t),M=!n,C=m.useMemo(()=>{if(!s)return null;const E=Sc(e)||"default",X=Fn({timeZone:l,offsetMinutes:i});return`tokentracker.modelBreakdown.${s}.${g}.${E}.${a}.${r}.${X}`},[e,s,a,g,l,r,i]),$=m.useCallback(()=>{if(!C||typeof window>"u")return null;try{const E=window.localStorage.getItem(C);if(!E)return null;const X=JSON.parse(E);return!X||!X.breakdown?null:X}catch{return null}},[C]),R=m.useCallback(E=>{if(!(!C||typeof window>"u"))try{window.localStorage.setItem(C,JSON.stringify(E))}catch{}},[C]),H=m.useCallback(()=>{if(!(!C||typeof window>"u"))try{window.localStorage.removeItem(C)}catch{}},[C]),D=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),W=m.useRef(g);m.useEffect(()=>{W.current!==g&&(W.current=g,b(null),x("edge"),_(null),k(!0))},[g]);const B=m.useCallback(async()=>{const E=await et(t),X=h?await et(d):null;if(!E&&!S&&!D&&!h)return;if(h&&!X){_("Your session expired. Please sign in again to view account data."),k(!1);return}const I=h?X:E,P=h?hl:gl;k(!0),_(null);try{const A=await P({baseUrl:e,accessToken:I,from:a,to:r,timeZone:l,tzOffsetMinutes:i});b(A||null),x("edge"),A&&M?R({breakdown:A,fetchedAt:new Date().toISOString()}):M||H()}catch(A){if(M){const G=$();if(G?.breakdown)b(G.breakdown),x("cache"),_(null);else{b(null),x("edge");const ae=A;_(ae?.message||String(ae))}}else{b(null),x("edge");const G=A;_(G?.message||String(G))}}finally{k(!1)}},[t,e,a,S,n,M,$,l,r,F,i,H,R,D,h,d,u]);return m.useEffect(()=>{if(f){k(!0);return}if(!F&&!n&&!S&&!D&&!h){b(null),x("edge"),_(null),k(!1);return}if(!M)H(),b(null),x("edge"),_(null);else{const E=$();E?.breakdown&&(b(E.breakdown),x("cache"))}B()},[t,S,$,B,F,n,M,H,D,f]),{breakdown:p,source:S?"mock":v,loading:w,error:j,refresh:B}}function Sc(e){try{return new URL(e).host}catch{return null}}const Fo=new Set(["day","hour","month"]);function Mc(e){return Fo.has(e)}function Sr(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 jc(e,t){const n=Sr(e),a=Sr(t);if(n&&a)return n.length!==a.length?n.length<a.length?-1:1:n===a?0:n<a?-1:1;const r=Ye(e),s=Ye(t);return r==null&&s==null?0:r==null?1:s==null?-1:r===s?0:r<s?-1:1}function Dc(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 Cc(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]),s=Number(n[3]);if(!Number.isFinite(a)||!Number.isFinite(r)||!Number.isFinite(s))return null;const l=new Date(Date.UTC(a,r-1,s));return!Number.isFinite(l.getTime())||l.getUTCFullYear()!==a||l.getUTCMonth()+1!==r||l.getUTCDate()!==s?null:l.getTime()}function Tc(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 s=new Date(Date.UTC(a,r-1,1));return Number.isFinite(s.getTime())?s.getTime():null}function Pc(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]),s=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(s)||!Number.isFinite(l)||!Number.isFinite(i)||!Number.isFinite(c)||r<1||r>12||s<1||s>31||l<0||l>23||i<0||i>59||c<0||c>59)return null;const d=new Date(Date.UTC(a,r-1,s,l,i,c));return Number.isFinite(d.getTime())?d.getTime():null}function Oc(e,t,n){const a=n==="hour"?Pc:n==="month"?Tc:Cc,r=a(e),s=a(t);return r!=null&&s!=null?r===s?0:r<s?-1:1:Dc(e,t)}function Ao(e,{key:t,dir:n}){const a=n==="asc"?1:-1,r=Array.isArray(e)?e:[],s=Fo.has(t)?(i,c)=>Oc(i,c,t):jc,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,h=u==null;if(f&&h)return i.index-c.index;if(f)return 1;if(h)return-1;const g=s(d,u);return g!==0?g*a:i.index-c.index}).map(i=>i.row)}function Wc(){return[{key:"day",label:y("daily.sort.date.label"),title:y("daily.sort.date.title")},{key:"total_tokens",label:y("daily.sort.total.label"),title:y("daily.sort.total.title")},{key:"input_tokens",label:y("daily.sort.input.label"),title:y("daily.sort.input.title")},{key:"output_tokens",label:y("daily.sort.output.label"),title:y("daily.sort.output.title")},{key:"cached_input_tokens",label:y("daily.sort.cached.label"),title:y("daily.sort.cached.title")},{key:"reasoning_output_tokens",label:y("daily.sort.reasoning.label"),title:y("daily.sort.reasoning.title")},{key:"conversation_count",label:y("daily.sort.conversations.label"),title:y("daily.sort.conversations.title")}]}function Mr(e){const t=Mc(e)?e:"day";return Wc().map((n,a)=>a===0?{...n,key:t}:n)}function jr(e,{key:t,dir:n}){return Ao(e,{key:t,dir:n})}const Wn=12,Ec=["total_tokens","billable_total_tokens","input_tokens","cached_input_tokens","cache_creation_input_tokens","output_tokens","reasoning_output_tokens"];function Fc(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 Ac(e){return Ec.some(t=>Fc(e?.[t]))}function $c(e){const t=Array.isArray(e)?e:[];if(!t.length)return[];const n=Ao(t,{key:"month",dir:"asc"}),a=n.findIndex(r=>r?.month&&Ac(r));return a===-1?t:n.slice(a)}function Ic(e,t,n=Wn){const a=Array.isArray(e)?e:[],r=Number.isFinite(n)&&n>0?n:Wn,l=(Number.isFinite(t)&&t>=0?Math.floor(t):0)*r;return a.slice(l,l+r)}function Lc({publicMode:e,screenshotMode:t,forceInstall:n,accessEnabled:a,heatmapLoading:r,activeDays:s,hasActiveDeviceToken:l}={}){return e||t?!1:n?!0:a&&!r&&s===0&&!l}function $o(e){if(typeof e!="string")return null;const t=e.trim();return t?t.toLowerCase():null}function Rc(e){const t=$o(e?.model_id);return t||null}function Io(e,t){return e?.model?String(e.model):t}function Kt(e,t=0){const n=Ye(e?.billable_total_tokens),a=Ye(e?.total_tokens);return n!=null&&n>0?n:a!=null&&a>0?a:n??a??t}function Bc(e,{copyFn:t}={}){const n=typeof t=="function"?t:l=>l,r=(Array.isArray(e?.sources)?e.sources:[]).map(l=>{const i=Kt(l?.totals),c=Ye(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 s=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=s>0?l.totalTokens/s*100:0,d=Number.isFinite(c)?c.toFixed(1):"0.0",u=l.models.map(f=>{const h=Kt(f?.totals);if(!Number.isFinite(h)||h<=0)return null;const g=l.totalTokens>0?Math.round(h/l.totalTokens*1e3)/10:0,p=Io(f,n("shared.placeholder.short")),b=Rc(f),v=Ye(f?.totals?.total_cost_usd),x=v??(l.totalCost>0&&l.totalTokens>0?h/l.totalTokens*l.totalCost:null);return{id:b,name:p,share:g,usage:h,cost:x}}).filter(Boolean);return{source:l.source,label:i,totalPercent:String(d),usd:l.totalCost,usage:l.totalTokens,models:u}})}function Yc(e,{limit:t=3,copyFn:n}={}){const a=typeof n=="function"?n:h=>h,r=Array.isArray(e?.sources)?e.sources:[];if(!r.length)return[];const s=new Map,l=new Map,i=new Map;let c=0;for(const h of r){const g=Array.isArray(h?.models)?h.models:[];for(const p of g){const b=Kt(p?.totals);if(!Number.isFinite(b)||b<=0)continue;c+=b;const v=Io(p,a("shared.placeholder.short")),x=$o(v);if(!x)continue;s.set(x,(s.get(x)||0)+b);const w=i.get(x)||0;b>=w&&(i.set(x,b),l.set(x,v))}}if(!s.size)return[];const d=Array.from(s.values()).reduce((h,g)=>h+g,0),u=c>0?c:d,f=Number.isFinite(t)?Math.max(0,Math.floor(t)):3;return Array.from(s.entries()).map(([h,g])=>{const p=u>0?(g/u*100).toFixed(1):"0.0";return{id:h,name:l.get(h)||a("shared.placeholder.short"),tokens:g,percent:String(p)}}).sort((h,g)=>g.tokens!==h.tokens?g.tokens-h.tokens:String(h.name).localeCompare(String(g.name))).slice(0,f)}function zc(e,t,n){if(!Number.isFinite(e))return y("shared.placeholder.short");const a=Qt(e,{decimals:2,currency:t,rate:n});return a==="-"?y("shared.placeholder.short"):a}function Dr(e,t,n){if(!Number.isFinite(e)||e<=0)return null;const a=$n(t);return(t===_o?e:e*n)<.01?`<${a}0.01`:Qt(e,{decimals:2,currency:t,rate:n})}function Cr(e){const t=Number(e);return!Number.isFinite(t)||t<=0?null:We(t,{decimals:1})}const Hc=O.memo(function({isOpen:t,onClose:n,fleetData:a=[]}){const{currency:r,rate:s}=Jt(),l=m.useMemo(()=>(Array.isArray(a)?a:[]).map(c=>{const d=Ye(c?.usd)??0,u=Ye(c?.usage)??0,f=Array.isArray(c?.models)?c.models:[];return{label:c?.label?String(c.label):"",usdValue:d,costLabel:Dr(d,r,s),tokensLabel:Cr(u),models:f.map(h=>{const g=Ye(h?.usage)??0,p=Ye(h?.cost)??0;return{id:h?.id?String(h.id):"",name:h?.name?String(h.name):"",tokensLabel:Cr(g),costLabel:Dr(p,r,s),sortCost:p}}).filter(h=>h.costLabel||h.tokensLabel).sort((h,g)=>g.sortCost-h.sortCost)}}).filter(c=>c.usdValue>0||c.models.length>0).sort((c,d)=>d.usdValue-c.usdValue),[a,r,s]),i=m.useMemo(()=>{const c=l.reduce((d,u)=>d+u.usdValue,0);return zc(c,r,s)},[l,r,s]);return o.jsx($l,{open:t,onOpenChange:c=>{c||n?.()},children:o.jsxs(Il,{children:[o.jsx(Ll,{className:"cost-modal-backdrop","data-cost-analysis-backdrop":"true"}),o.jsx(Rl,{className:"fixed inset-0 z-[101] flex items-center justify-center p-4",children:o.jsxs(Bl,{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:[o.jsx(Yl,{render:o.jsx("h2",{className:"sr-only"}),children:y("dashboard.cost_breakdown.title")}),o.jsx(ac,{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":y("dashboard.cost_breakdown.close"),children:o.jsx(vo,{size:16,strokeWidth:2,"aria-hidden":!0})}),o.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto oai-scrollbar",children:o.jsxs("div",{className:"px-3 py-6",children:[o.jsx("p",{className:"text-label uppercase tracking-[0.12em] text-oai-gray-500 dark:text-oai-gray-400 mb-2",children:y("dashboard.cost_breakdown.total_label")}),o.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?o.jsx("p",{className:"text-body-sm text-oai-gray-500 dark:text-oai-gray-400",children:"No spend recorded."}):o.jsxs("div",{role:"table","aria-label":y("dashboard.cost_breakdown.title"),children:[o.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:[o.jsx("span",{role:"columnheader",children:"Model"}),o.jsx("span",{role:"columnheader",children:"Cost"})]}),l.map((c,d)=>{const u=`fleet-${d}`;return o.jsxs("div",{role:"rowgroup","aria-labelledby":u,className:d>0?"mt-5":"mt-2",children:[o.jsxs("div",{role:"row",className:"flex items-center justify-between gap-4 py-2",children:[o.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}),o.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,h)=>o.jsxs("div",{role:"row",className:"flex items-center justify-between gap-4 py-[5px]",children:[o.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}),o.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}-${h}`))]},`${c.label}-${d}`)})]})]})})]})})]})})});function Uc({projectEntries:e=[],projectLimit:t=3,onProjectLimitChange:n,copy:a,hasDetailsActual:r,dailyEmptyPrefix:s,installSyncCmd:l,dailyEmptySuffix:i,detailsColumns:c,ariaSortFor:d,toggleSort:u,sortIconFor:f,pagedDetails:h,dailyBreakdownRows:g=[],dailyBreakdownColumns:p=[],dailyBreakdownAriaSortFor:b,dailyBreakdownSortIconFor:v,dailyBreakdownDateKey:x="day",detailsDateKey:w,renderDetailDate:k,renderDailyBreakdownDate:j,renderDetailCell:_,DETAILS_PAGED_PERIODS:S,period:F,detailsPageCount:M,detailsPage:C,setDetailsPage:$}){const[R,H]=m.useState("daily");return o.jsxs(Aa,{children:[o.jsxs("div",{className:"flex items-center justify-between gap-3 mb-4",children:[o.jsxs("div",{role:"tablist","aria-label":"Data view",className:"flex gap-1",children:[o.jsx("button",{role:"tab","aria-selected":R==="daily",type:"button",onClick:()=>H("daily"),className:`text-xs font-medium px-3 py-1.5 rounded transition-colors ${R==="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")}),o.jsx("button",{role:"tab","aria-selected":R==="projects",type:"button",onClick:()=>H("projects"),className:`text-xs font-medium px-3 py-1.5 rounded transition-colors ${R==="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")})]}),R==="projects"&&o.jsx(zl,{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"})]}),R==="projects"&&o.jsx("div",{className:"space-y-1",children:e.slice(0,t).map((D,W)=>{const B=typeof D?.project_ref=="string"?D.project_ref:"",T=D?.project_key||B||`entry-${W}`,E=D?.billable_total_tokens??D?.total_tokens,X=Number(E),I=Number.isFinite(X)?X.toLocaleString():"—",P=D?.project_key||B.split("/").pop()||"—";return o.jsxs("div",{className:"flex items-center gap-3 p-2 rounded-lg",children:[o.jsx("div",{className:"w-8 h-8 rounded-md oai-bg-elevated flex items-center justify-center oai-text-caption font-medium text-oai-gray-500 dark:text-oai-gray-300",children:(D?.project_key?.[0]||"?").toUpperCase()}),o.jsx("div",{className:"min-w-0 flex-1",children:o.jsx("div",{className:"oai-text-body-sm font-medium text-oai-black dark:text-oai-white truncate",children:P})}),o.jsx("div",{className:"oai-text-body-sm font-medium text-oai-black dark:text-oai-white tabular-nums",children:I})]},T)})}),R==="daily"&&o.jsxs("div",{children:[g?.length===0?o.jsxs("div",{className:"oai-text-body-sm text-oai-gray-500 dark:text-oai-gray-300 mb-4",children:[s,o.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]}):o.jsx("div",{className:"overflow-auto max-h-[384px] -mx-4 oai-scrollbar",children:o.jsxs("table",{className:"w-full border-collapse",children:[o.jsx("thead",{className:"sticky top-0 z-10",children:o.jsx("tr",{className:"border-b border-oai-gray-200 dark:border-oai-gray-700",children:p.map(D=>o.jsx("th",{"aria-sort":b?.(D.key)||"none",className:"text-left p-0 bg-white dark:bg-oai-gray-900",children:o.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:o.jsxs("span",{className:"inline-flex items-center gap-1",children:[o.jsx("span",{children:D.label}),o.jsx("span",{className:"text-oai-gray-400 dark:text-oai-gray-400",children:v?.(D.key)||""})]})})},D.key))})}),o.jsx("tbody",{children:g.map(D=>o.jsxs("tr",{className:`border-b border-oai-gray-100 dark:border-oai-gray-800 last:border-b-0 hover:bg-oai-gray-50/50 dark:hover:bg-oai-gray-800/50 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:[o.jsx("td",{className:"px-2.5 sm:px-4 py-2 oai-text-body-sm text-oai-gray-500 dark:text-oai-gray-300 whitespace-nowrap",children:j?j(D):k(D)}),o.jsx("td",{className:"px-2.5 sm:px-4 py-2 oai-text-body-sm font-medium text-oai-black dark:text-oai-white tabular-nums",children:_(D,"total_tokens")}),o.jsx("td",{className:"px-2.5 sm:px-4 py-2 oai-text-body-sm text-oai-gray-600 dark:text-oai-gray-300 tabular-nums",children:_(D,"input_tokens")}),o.jsx("td",{className:"px-2.5 sm:px-4 py-2 oai-text-body-sm text-oai-gray-600 dark:text-oai-gray-300 tabular-nums",children:_(D,"output_tokens")}),o.jsx("td",{className:"px-2.5 sm:px-4 py-2 oai-text-body-sm text-oai-gray-600 dark:text-oai-gray-300 tabular-nums",children:_(D,"cached_input_tokens")}),o.jsx("td",{className:"px-2.5 sm:px-4 py-2 oai-text-body-sm text-oai-gray-600 dark:text-oai-gray-300 tabular-nums",children:_(D,"reasoning_output_tokens")}),o.jsx("td",{className:"px-2.5 sm:px-4 py-2 oai-text-body-sm text-oai-gray-600 dark:text-oai-gray-300 tabular-nums",children:_(D,"conversation_count")})]},String(D?.[x]||D?.day||D?.hour||D?.month||"")))})]})}),R!=="daily"&&S.has(F)&&M>1?o.jsxs("div",{className:"mt-3 flex items-center justify-between oai-text-caption",children:[o.jsx("button",{type:"button",onClick:()=>$(D=>Math.max(0,D-1)),disabled:C===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")}),o.jsxs("span",{className:"oai-text-muted",children:[C+1," / ",M]}),o.jsx("button",{type:"button",onClick:()=>$(D=>Math.min(M-1,D+1)),disabled:C+1>=M,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 Pn(e){return typeof e!="string"?"":e.trim()}function Tr(e){const t=Pn(e);return t?t.split(/[_\-\s]+/).filter(Boolean).map(n=>n.slice(0,1).toUpperCase()+n.slice(1).toLowerCase()).join(" "):""}function qc(e){if(!Array.isArray(e))return[];const t=new Map;for(const n of e){if(!n||typeof n!="object")continue;const a=Pn(n.tool),r=Pn(n.planType)||Pn(n.plan_type);if(!a||!r)continue;const s=Tr(a)||a,l=Tr(r)||r;t.set(`${a.toLowerCase()}::${r.toLowerCase()}`,{tool:s,plan:l})}return Array.from(t.values())}function Vc({period:e="month",rankLabel:t,streakDays:n,subscriptions:a=[],periodConversations:r,rolling:s,topModels:l=[],className:i=""}){const c=y("shared.placeholder.short"),d=y("shared.unit.percent"),u=t??y("identity_card.rank_placeholder"),f=Number.isFinite(Number(n))?Number(n):0,h=f?y("identity_card.streak_value",{days:f}):y("identity_card.rank_placeholder"),g=qc(a),p={thousandSuffix:y("shared.unit.thousand_abbrev"),millionSuffix:y("shared.unit.million_abbrev"),billionSuffix:y("shared.unit.billion_abbrev")},b=w=>{if(w==null)return c;const k=We(w,p);return k==="-"?c:k},v=(()=>{switch(e){case"day":return y("stats.period.today");case"week":return y("stats.period.week");case"month":return y("stats.period.month");case"total":return y("stats.period.all");default:return y("stats.period.convs")}})(),x=l.slice(0,3);return o.jsxs(Aa,{className:`h-full ${i}`,children:[o.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-2",children:[o.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:[o.jsx("span",{className:"text-sm font-semibold text-oai-black dark:text-oai-white tabular-nums",children:b(s?.last_7d?.totals?.billable_total_tokens)}),o.jsx("span",{className:"text-[10px] text-oai-gray-400 dark:text-oai-gray-400 mt-0.5 whitespace-nowrap",children:"7d"})]}),o.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:[o.jsx("span",{className:"text-sm font-semibold text-oai-black dark:text-oai-white tabular-nums",children:b(s?.last_30d?.totals?.billable_total_tokens)}),o.jsx("span",{className:"text-[10px] text-oai-gray-400 dark:text-oai-gray-400 mt-0.5 whitespace-nowrap",children:"30d"})]}),o.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:[o.jsx("span",{className:"text-sm font-semibold text-oai-black dark:text-oai-white tabular-nums",children:b(s?.last_30d?.avg_per_active_day)}),o.jsx("span",{className:"text-[10px] text-oai-gray-400 dark:text-oai-gray-400 mt-0.5 whitespace-nowrap",children:"avg"})]}),o.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:[o.jsx("span",{className:"text-sm font-semibold text-oai-black dark:text-oai-white tabular-nums",children:b(r)}),o.jsx("span",{className:"text-[10px] text-oai-gray-400 dark:text-oai-gray-400 mt-0.5 whitespace-nowrap",children:v})]})]}),x.length>0&&o.jsx("div",{className:"mt-4 pt-3 border-t border-oai-gray-100 dark:border-oai-gray-800",children:x.map((w,k)=>{const j=w?.name?String(w.name):c,_=w?.percent?String(w.percent):"",S=k===x.length-1,F=k+1;return o.jsxs("div",{className:`flex items-center py-2 ${S?"":"border-b border-oai-gray-50 dark:border-oai-gray-800"}`,children:[o.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:F}),o.jsx("span",{className:"flex-1 text-sm text-oai-gray-700 dark:text-oai-gray-300 truncate px-2.5",title:j,children:j}),o.jsxs("span",{className:"text-sm font-semibold text-oai-black dark:text-oai-white tabular-nums flex-shrink-0",children:[_,d]})]},w.id||j)})}),g.length>0&&o.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:g.map((w,k)=>o.jsxs(nc,{variant:"secondary",size:"sm",children:[w.tool," ",w.plan]},`${w.tool}:${w.plan}:${k}`))}),o.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:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("span",{children:y("identity_card.rank_label")}),o.jsx("span",{className:"text-oai-gray-500 dark:text-oai-gray-300 tabular-nums",children:u})]}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("span",{children:y("identity_card.streak_label")}),o.jsx("span",{className:"text-oai-gray-500 dark:text-oai-gray-300 tabular-nums",children:h})]})]})]})}function Gc(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 Kc={},ln={};function Et(e,t){try{const a=(Kc[e]||=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"longOffset"}).format)(t).split("GMT")[1];return a in ln?ln[a]:Pr(a,a.split(":"))}catch{if(e in ln)return ln[e];const n=e?.match(Xc);return n?Pr(e,n.slice(1)):NaN}}const Xc=/([+-]\d\d):?(\d\d)?/;function Pr(e,t){const n=+(t[0]||0),a=+(t[1]||0),r=+(t[2]||0)/60;return ln[e]=n*60+a>0?n*60+a+r:n*60-a-r}class ot extends Date{constructor(...t){super(),t.length>1&&typeof t[t.length-1]=="string"&&(this.timeZone=t.pop()),this.internal=new Date,isNaN(Et(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)),Lo(this),Sa(this)):this.setTime(Date.now())}static tz(t,...n){return n.length?new ot(...n,t):new ot(Date.now(),t)}withTimeZone(t){return new ot(+this,t)}getTimezoneOffset(){const t=-Et(this.timeZone,this);return t>0?Math.floor(t):Math.ceil(t)}setTime(t){return Date.prototype.setTime.apply(this,arguments),Sa(this),+this}[Symbol.for("constructDateFrom")](t){return new ot(+new Date(t),this.timeZone)}}const Or=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!Or.test(e))return;const t=e.replace(Or,"$1UTC");ot.prototype[t]&&(e.startsWith("get")?ot.prototype[e]=function(){return this.internal[t]()}:(ot.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),Qc(this),+this},ot.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),Sa(this),+this}))});function Sa(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-Et(e.timeZone,e)*60))}function Qc(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()),Lo(e)}function Lo(e){const t=Et(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(),s=-new Date(+a).getTimezoneOffset(),l=r-s,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(-(Et(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 h=Et(e.timeZone,e),g=h>0?Math.floor(h):Math.ceil(h),b=-new Date(+e).getTimezoneOffset()-g,v=g!==n,x=b-c;if(v&&x){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+x);const w=Et(e.timeZone,e),k=w>0?Math.floor(w):Math.ceil(w),j=g-k;j&&(e.internal.setUTCMinutes(e.internal.getUTCMinutes()+j),Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+j))}}class Ce extends ot{static tz(t,...n){return n.length?new Ce(...n,t):new Ce(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} (${Gc(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 Ce(+this,t)}[Symbol.for("constructDateFrom")](t){return new Ce(+new Date(t),this.timeZone)}}const Ro=6048e5,Jc=864e5,Wr=Symbol.for("constructDateFrom");function ve(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&Wr in e?e[Wr](t):e instanceof Date?new e.constructor(t):new Date(t)}function de(e,t){return ve(t||e,e)}function Bo(e,t,n){const a=de(e,n?.in);return isNaN(t)?ve(e,NaN):(t&&a.setDate(a.getDate()+t),a)}function Yo(e,t,n){const a=de(e,n?.in);if(isNaN(t))return ve(e,NaN);if(!t)return a;const r=a.getDate(),s=ve(e,a.getTime());s.setMonth(a.getMonth()+t+1,0);const l=s.getDate();return r>=l?s:(a.setFullYear(s.getFullYear(),s.getMonth(),r),a)}let Zc={};function un(){return Zc}function wt(e,t){const n=un(),a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,r=de(e,t?.in),s=r.getDay(),l=(s<a?7:0)+s-a;return r.setDate(r.getDate()-l),r.setHours(0,0,0,0),r}function cn(e,t){return wt(e,{...t,weekStartsOn:1})}function zo(e,t){const n=de(e,t?.in),a=n.getFullYear(),r=ve(n,0);r.setFullYear(a+1,0,4),r.setHours(0,0,0,0);const s=cn(r),l=ve(n,0);l.setFullYear(a,0,4),l.setHours(0,0,0,0);const i=cn(l);return n.getTime()>=s.getTime()?a+1:n.getTime()>=i.getTime()?a:a-1}function Er(e){const t=de(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 It(e,...t){const n=ve.bind(null,e||t.find(a=>typeof a=="object"));return t.map(n)}function dn(e,t){const n=de(e,t?.in);return n.setHours(0,0,0,0),n}function $a(e,t,n){const[a,r]=It(n?.in,e,t),s=dn(a),l=dn(r),i=+s-Er(s),c=+l-Er(l);return Math.round((i-c)/Jc)}function ed(e,t){const n=zo(e,t),a=ve(e,0);return a.setFullYear(n,0,4),a.setHours(0,0,0,0),cn(a)}function td(e,t,n){return Bo(e,t*7,n)}function nd(e,t,n){return Yo(e,t*12,n)}function ad(e,t){let n,a=t?.in;return e.forEach(r=>{!a&&typeof r=="object"&&(a=ve.bind(null,r));const s=de(r,a);(!n||n<s||isNaN(+s))&&(n=s)}),ve(a,n||NaN)}function rd(e,t){let n,a=t?.in;return e.forEach(r=>{!a&&typeof r=="object"&&(a=ve.bind(null,r));const s=de(r,a);(!n||n>s||isNaN(+s))&&(n=s)}),ve(a,n||NaN)}function od(e,t,n){const[a,r]=It(n?.in,e,t);return+dn(a)==+dn(r)}function Ho(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function sd(e){return!(!Ho(e)&&typeof e!="number"||isNaN(+de(e)))}function Uo(e,t,n){const[a,r]=It(n?.in,e,t),s=a.getFullYear()-r.getFullYear(),l=a.getMonth()-r.getMonth();return s*12+l}function id(e,t){const n=de(e,t?.in),a=n.getMonth();return n.setFullYear(n.getFullYear(),a+1,0),n.setHours(23,59,59,999),n}function qo(e,t){const[n,a]=It(e,t.start,t.end);return{start:n,end:a}}function ld(e,t){const{start:n,end:a}=qo(t?.in,e);let r=+n>+a;const s=r?+n:+a,l=r?a:n;l.setHours(0,0,0,0),l.setDate(1);let i=1;const c=[];for(;+l<=s;)c.push(ve(n,l)),l.setMonth(l.getMonth()+i);return r?c.reverse():c}function cd(e,t){const n=de(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function dd(e,t){const n=de(e,t?.in),a=n.getFullYear();return n.setFullYear(a+1,0,0),n.setHours(23,59,59,999),n}function Vo(e,t){const n=de(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function ud(e,t){const{start:n,end:a}=qo(t?.in,e);let r=+n>+a;const s=r?+n:+a,l=r?a:n;l.setHours(0,0,0,0),l.setMonth(0,1);let i=1;const c=[];for(;+l<=s;)c.push(ve(n,l)),l.setFullYear(l.getFullYear()+i);return r?c.reverse():c}function Go(e,t){const n=un(),a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,r=de(e,t?.in),s=r.getDay(),l=(s<a?-7:0)+6-(s-a);return r.setDate(r.getDate()+l),r.setHours(23,59,59,999),r}function fd(e,t){return Go(e,{...t,weekStartsOn:1})}const md={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"}},hd=(e,t,n)=>{let a;const r=md[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 Ee(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const gd={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},yd={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},pd={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},bd={date:Ee({formats:gd,defaultWidth:"full"}),time:Ee({formats:yd,defaultWidth:"full"}),dateTime:Ee({formats:pd,defaultWidth:"full"})},xd={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},kd=(e,t,n,a)=>xd[e];function ge(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 s=e.argumentCallback?e.argumentCallback(t):t;return r[s]}}const wd={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},vd={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},_d={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"]},Nd={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"]},Sd={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"}},Md={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"}},jd=(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"},Dd={ordinalNumber:jd,era:ge({values:wd,defaultWidth:"wide"}),quarter:ge({values:vd,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ge({values:_d,defaultWidth:"wide"}),day:ge({values:Nd,defaultWidth:"wide"}),dayPeriod:ge({values:Sd,defaultWidth:"wide",formattingValues:Md,defaultFormattingWidth:"wide"})};function ye(e){return(t,n={})=>{const a=n.width,r=a&&e.matchPatterns[a]||e.matchPatterns[e.defaultMatchWidth],s=t.match(r);if(!s)return null;const l=s[0],i=a&&e.parsePatterns[a]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(i)?Td(i,f=>f.test(l)):Cd(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 Cd(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function Td(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function fn(e){return(t,n={})=>{const a=t.match(e.matchPattern);if(!a)return null;const r=a[0],s=t.match(e.parsePattern);if(!s)return null;let l=e.valueCallback?e.valueCallback(s[0]):s[0];l=n.valueCallback?n.valueCallback(l):l;const i=t.slice(r.length);return{value:l,rest:i}}}const Pd=/^(\d+)(th|st|nd|rd)?/i,Od=/\d+/i,Wd={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},Ed={any:[/^b/i,/^(a|c)/i]},Fd={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},Ad={any:[/1/i,/2/i,/3/i,/4/i]},$d={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},Id={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]},Ld={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},Rd={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]},Bd={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},Yd={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}},zd={ordinalNumber:fn({matchPattern:Pd,parsePattern:Od,valueCallback:e=>parseInt(e,10)}),era:ye({matchPatterns:Wd,defaultMatchWidth:"wide",parsePatterns:Ed,defaultParseWidth:"any"}),quarter:ye({matchPatterns:Fd,defaultMatchWidth:"wide",parsePatterns:Ad,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ye({matchPatterns:$d,defaultMatchWidth:"wide",parsePatterns:Id,defaultParseWidth:"any"}),day:ye({matchPatterns:Ld,defaultMatchWidth:"wide",parsePatterns:Rd,defaultParseWidth:"any"}),dayPeriod:ye({matchPatterns:Bd,defaultMatchWidth:"any",parsePatterns:Yd,defaultParseWidth:"any"})},kt={code:"en-US",formatDistance:hd,formatLong:bd,formatRelative:kd,localize:Dd,match:zd,options:{weekStartsOn:0,firstWeekContainsDate:1}};function Hd(e,t){const n=de(e,t?.in);return $a(n,Vo(n))+1}function Ia(e,t){const n=de(e,t?.in),a=+cn(n)-+ed(n);return Math.round(a/Ro)+1}function Ko(e,t){const n=de(e,t?.in),a=n.getFullYear(),r=un(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,l=ve(t?.in||e,0);l.setFullYear(a+1,0,s),l.setHours(0,0,0,0);const i=wt(l,t),c=ve(t?.in||e,0);c.setFullYear(a,0,s),c.setHours(0,0,0,0);const d=wt(c,t);return+n>=+i?a+1:+n>=+d?a:a-1}function Ud(e,t){const n=un(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,r=Ko(e,t),s=ve(t?.in||e,0);return s.setFullYear(r,0,a),s.setHours(0,0,0,0),wt(s,t)}function La(e,t){const n=de(e,t?.in),a=+wt(n,t)-+Ud(n,t);return Math.round(a/Ro)+1}function le(e,t){const n=e<0?"-":"",a=Math.abs(e).toString().padStart(t,"0");return n+a}const pt={y(e,t){const n=e.getFullYear(),a=n>0?n:1-n;return le(t==="yy"?a%100:a,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):le(n+1,2)},d(e,t){return le(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 le(e.getHours()%12||12,t.length)},H(e,t){return le(e.getHours(),t.length)},m(e,t){return le(e.getMinutes(),t.length)},s(e,t){return le(e.getSeconds(),t.length)},S(e,t){const n=t.length,a=e.getMilliseconds(),r=Math.trunc(a*Math.pow(10,n-3));return le(r,t.length)}},Ut={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Fr={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 pt.y(e,t)},Y:function(e,t,n,a){const r=Ko(e,a),s=r>0?r:1-r;if(t==="YY"){const l=s%100;return le(l,2)}return t==="Yo"?n.ordinalNumber(s,{unit:"year"}):le(s,t.length)},R:function(e,t){const n=zo(e);return le(n,t.length)},u:function(e,t){const n=e.getFullYear();return le(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 le(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 le(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 pt.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 le(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=La(e,a);return t==="wo"?n.ordinalNumber(r,{unit:"week"}):le(r,t.length)},I:function(e,t,n){const a=Ia(e);return t==="Io"?n.ordinalNumber(a,{unit:"week"}):le(a,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):pt.d(e,t)},D:function(e,t,n){const a=Hd(e);return t==="Do"?n.ordinalNumber(a,{unit:"dayOfYear"}):le(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(),s=(r-a.weekStartsOn+8)%7||7;switch(t){case"e":return String(s);case"ee":return le(s,2);case"eo":return n.ordinalNumber(s,{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(),s=(r-a.weekStartsOn+8)%7||7;switch(t){case"c":return String(s);case"cc":return le(s,t.length);case"co":return n.ordinalNumber(s,{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 le(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=Ut.noon:a===0?r=Ut.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=Ut.evening:a>=12?r=Ut.afternoon:a>=4?r=Ut.morning:r=Ut.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 pt.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):pt.H(e,t)},K:function(e,t,n){const a=e.getHours()%12;return t==="Ko"?n.ordinalNumber(a,{unit:"hour"}):le(a,t.length)},k:function(e,t,n){let a=e.getHours();return a===0&&(a=24),t==="ko"?n.ordinalNumber(a,{unit:"hour"}):le(a,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):pt.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):pt.s(e,t)},S:function(e,t){return pt.S(e,t)},X:function(e,t,n){const a=e.getTimezoneOffset();if(a===0)return"Z";switch(t){case"X":return $r(a);case"XXXX":case"XX":return Ot(a);default:return Ot(a,":")}},x:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"x":return $r(a);case"xxxx":case"xx":return Ot(a);default:return Ot(a,":")}},O:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+Ar(a,":");default:return"GMT"+Ot(a,":")}},z:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+Ar(a,":");default:return"GMT"+Ot(a,":")}},t:function(e,t,n){const a=Math.trunc(+e/1e3);return le(a,t.length)},T:function(e,t,n){return le(+e,t.length)}};function Ar(e,t=""){const n=e>0?"-":"+",a=Math.abs(e),r=Math.trunc(a/60),s=a%60;return s===0?n+String(r):n+String(r)+t+le(s,2)}function $r(e,t){return e%60===0?(e>0?"-":"+")+le(Math.abs(e)/60,2):Ot(e,t)}function Ot(e,t=""){const n=e>0?"-":"+",a=Math.abs(e),r=le(Math.trunc(a/60),2),s=le(a%60,2);return n+r+t+s}const Ir=(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"})}},Xo=(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"})}},qd=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],a=n[1],r=n[2];if(!r)return Ir(e,t);let s;switch(a){case"P":s=t.dateTime({width:"short"});break;case"PP":s=t.dateTime({width:"medium"});break;case"PPP":s=t.dateTime({width:"long"});break;default:s=t.dateTime({width:"full"});break}return s.replace("{{date}}",Ir(a,t)).replace("{{time}}",Xo(r,t))},Vd={p:Xo,P:qd},Gd=/^D+$/,Kd=/^Y+$/,Xd=["D","DD","YY","YYYY"];function Qd(e){return Gd.test(e)}function Jd(e){return Kd.test(e)}function Zd(e,t,n){const a=eu(e,t,n);if(console.warn(a),Xd.includes(e))throw new RangeError(a)}function eu(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 tu=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,nu=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,au=/^'([^]*?)'?$/,ru=/''/g,ou=/[a-zA-Z]/;function st(e,t,n){const a=un(),r=n?.locale??a.locale??kt,s=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=de(e,n?.in);if(!sd(i))throw new RangeError("Invalid time value");let c=t.match(nu).map(u=>{const f=u[0];if(f==="p"||f==="P"){const h=Vd[f];return h(u,r.formatLong)}return u}).join("").match(tu).map(u=>{if(u==="''")return{isToken:!1,value:"'"};const f=u[0];if(f==="'")return{isToken:!1,value:su(u)};if(Fr[f])return{isToken:!0,value:u};if(f.match(ou))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:s,weekStartsOn:l,locale:r};return c.map(u=>{if(!u.isToken)return u.value;const f=u.value;(!n?.useAdditionalWeekYearTokens&&Jd(f)||!n?.useAdditionalDayOfYearTokens&&Qd(f))&&Zd(f,t,String(e));const h=Fr[f[0]];return h(i,f,r.localize,d)}).join("")}function su(e){const t=e.match(au);return t?t[1].replace(ru,"'"):e}function iu(e,t){const n=de(e,t?.in),a=n.getFullYear(),r=n.getMonth(),s=ve(n,0);return s.setFullYear(a,r+1,0),s.setHours(0,0,0,0),s.getDate()}function lu(e,t){return de(e,t?.in).getMonth()}function cu(e,t){return de(e,t?.in).getFullYear()}function du(e,t){return+de(e)>+de(t)}function uu(e,t){return+de(e)<+de(t)}function fu(e,t,n){const[a,r]=It(n?.in,e,t);return+wt(a,n)==+wt(r,n)}function mu(e,t,n){const[a,r]=It(n?.in,e,t);return a.getFullYear()===r.getFullYear()&&a.getMonth()===r.getMonth()}function hu(e,t,n){const[a,r]=It(n?.in,e,t);return a.getFullYear()===r.getFullYear()}function gu(e,t,n){const a=de(e,n?.in),r=a.getFullYear(),s=a.getDate(),l=ve(e,0);l.setFullYear(r,t,15),l.setHours(0,0,0,0);const i=iu(l);return a.setMonth(t,Math.min(s,i)),a}function yu(e,t,n){const a=de(e,n?.in);return isNaN(+a)?ve(e,NaN):(a.setFullYear(t),a)}const Lr=5,pu=4;function bu(e,t){const n=t.startOfMonth(e),a=n.getDay()>0?n.getDay():7,r=t.addDays(e,-a+1),s=t.addDays(r,Lr*7-1);return t.getMonth(e)===t.getMonth(s)?Lr:pu}function Qo(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 xu(e,t){const n=Qo(e,t),a=bu(e,t);return t.addDays(n,a*7-1)}const ku={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}}年近く"}},wu=(e,t,n)=>{n=n||{};let a;const r=ku[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},vu={full:"y年M月d日EEEE",long:"y年M月d日",medium:"y/MM/dd",short:"y/MM/dd"},_u={full:"H時mm分ss秒 zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},Nu={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},Su={date:Ee({formats:vu,defaultWidth:"full"}),time:Ee({formats:_u,defaultWidth:"full"}),dateTime:Ee({formats:Nu,defaultWidth:"full"})},Mu={lastWeek:"先週のeeeeのp",yesterday:"昨日のp",today:"今日のp",tomorrow:"明日のp",nextWeek:"翌週のeeeeのp",other:"P"},ju=(e,t,n,a)=>Mu[e],Du={narrow:["BC","AC"],abbreviated:["紀元前","西暦"],wide:["紀元前","西暦"]},Cu={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["第1四半期","第2四半期","第3四半期","第4四半期"]},Tu={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月"]},Pu={narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],abbreviated:["日","月","火","水","木","金","土"],wide:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},Ou={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:"深夜"}},Wu={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:"深夜"}},Eu=(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}`}},Fu={ordinalNumber:Eu,era:ge({values:Du,defaultWidth:"wide"}),quarter:ge({values:Cu,defaultWidth:"wide",argumentCallback:e=>Number(e)-1}),month:ge({values:Tu,defaultWidth:"wide"}),day:ge({values:Pu,defaultWidth:"wide"}),dayPeriod:ge({values:Ou,defaultWidth:"wide",formattingValues:Wu,defaultFormattingWidth:"wide"})},Au=/^第?\d+(年|四半期|月|週|日|時|分|秒)?/i,$u=/\d+/i,Iu={narrow:/^(B\.?C\.?|A\.?D\.?)/i,abbreviated:/^(紀元[前後]|西暦)/i,wide:/^(紀元[前後]|西暦)/i},Lu={narrow:[/^B/i,/^A/i],any:[/^(紀元前)/i,/^(西暦|紀元後)/i]},Ru={narrow:/^[1234]/i,abbreviated:/^Q[1234]/i,wide:/^第[1234一二三四1234]四半期/i},Bu={any:[/(1|一|1)/i,/(2|二|2)/i,/(3|三|3)/i,/(4|四|4)/i]},Yu={narrow:/^([123456789]|1[012])/,abbreviated:/^([123456789]|1[012])月/i,wide:/^([123456789]|1[012])月/i},zu={any:[/^1\D/,/^2/,/^3/,/^4/,/^5/,/^6/,/^7/,/^8/,/^9/,/^10/,/^11/,/^12/]},Hu={narrow:/^[日月火水木金土]/,short:/^[日月火水木金土]/,abbreviated:/^[日月火水木金土]/,wide:/^[日月火水木金土]曜日/},Uu={any:[/^日/,/^月/,/^火/,/^水/,/^木/,/^金/,/^土/]},qu={any:/^(AM|PM|午前|午後|正午|深夜|真夜中|夜|朝)/i},Vu={any:{am:/^(A|午前)/i,pm:/^(P|午後)/i,midnight:/^深夜|真夜中/i,noon:/^正午/i,morning:/^朝/i,afternoon:/^午後/i,evening:/^夜/i,night:/^深夜/i}},Gu={ordinalNumber:fn({matchPattern:Au,parsePattern:$u,valueCallback:function(e){return parseInt(e,10)}}),era:ye({matchPatterns:Iu,defaultMatchWidth:"wide",parsePatterns:Lu,defaultParseWidth:"any"}),quarter:ye({matchPatterns:Ru,defaultMatchWidth:"wide",parsePatterns:Bu,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ye({matchPatterns:Yu,defaultMatchWidth:"wide",parsePatterns:zu,defaultParseWidth:"any"}),day:ye({matchPatterns:Hu,defaultMatchWidth:"wide",parsePatterns:Uu,defaultParseWidth:"any"}),dayPeriod:ye({matchPatterns:qu,defaultMatchWidth:"any",parsePatterns:Vu,defaultParseWidth:"any"})},Ku={code:"ja",formatDistance:wu,formatLong:Su,formatRelative:ju,localize:Fu,match:Gu,options:{weekStartsOn:0,firstWeekContainsDate:1}},Xu={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}}년"}},Qu=(e,t,n)=>{let a;const r=Xu[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},Ju={full:"y년 M월 d일 EEEE",long:"y년 M월 d일",medium:"y.MM.dd",short:"y.MM.dd"},Zu={full:"a H시 mm분 ss초 zzzz",long:"a H:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},ef={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},tf={date:Ee({formats:Ju,defaultWidth:"full"}),time:Ee({formats:Zu,defaultWidth:"full"}),dateTime:Ee({formats:ef,defaultWidth:"full"})},nf={lastWeek:"'지난' eeee p",yesterday:"'어제' p",today:"'오늘' p",tomorrow:"'내일' p",nextWeek:"'다음' eeee p",other:"P"},af=(e,t,n,a)=>nf[e],rf={narrow:["BC","AD"],abbreviated:["BC","AD"],wide:["기원전","서기"]},of={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1분기","2분기","3분기","4분기"]},sf={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월"]},lf={narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],abbreviated:["일","월","화","수","목","금","토"],wide:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},cf={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:"밤"}},df={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:"밤"}},uf=(e,t)=>{const n=Number(e);switch(String(t?.unit)){case"minute":case"second":return String(n);case"date":return n+"일";default:return n+"번째"}},ff={ordinalNumber:uf,era:ge({values:rf,defaultWidth:"wide"}),quarter:ge({values:of,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ge({values:sf,defaultWidth:"wide"}),day:ge({values:lf,defaultWidth:"wide"}),dayPeriod:ge({values:cf,defaultWidth:"wide",formattingValues:df,defaultFormattingWidth:"wide"})},mf=/^(\d+)(일|번째)?/i,hf=/\d+/i,gf={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},yf={any:[/^(bc|기원전)/i,/^(ad|서기)/i]},pf={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234]사?분기/i},bf={any:[/1/i,/2/i,/3/i,/4/i]},xf={narrow:/^(1[012]|[123456789])/,abbreviated:/^(1[012]|[123456789])월/i,wide:/^(1[012]|[123456789])월/i},kf={any:[/^1월?$/,/^2/,/^3/,/^4/,/^5/,/^6/,/^7/,/^8/,/^9/,/^10/,/^11/,/^12/]},wf={narrow:/^[일월화수목금토]/,short:/^[일월화수목금토]/,abbreviated:/^[일월화수목금토]/,wide:/^[일월화수목금토]요일/},vf={any:[/^일/,/^월/,/^화/,/^수/,/^목/,/^금/,/^토/]},_f={any:/^(am|pm|오전|오후|자정|정오|아침|저녁|밤)/i},Nf={any:{am:/^(am|오전)/i,pm:/^(pm|오후)/i,midnight:/^자정/i,noon:/^정오/i,morning:/^아침/i,afternoon:/^오후/i,evening:/^저녁/i,night:/^밤/i}},Sf={ordinalNumber:fn({matchPattern:mf,parsePattern:hf,valueCallback:e=>parseInt(e,10)}),era:ye({matchPatterns:gf,defaultMatchWidth:"wide",parsePatterns:yf,defaultParseWidth:"any"}),quarter:ye({matchPatterns:pf,defaultMatchWidth:"wide",parsePatterns:bf,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ye({matchPatterns:xf,defaultMatchWidth:"wide",parsePatterns:kf,defaultParseWidth:"any"}),day:ye({matchPatterns:wf,defaultMatchWidth:"wide",parsePatterns:vf,defaultParseWidth:"any"}),dayPeriod:ye({matchPatterns:_f,defaultMatchWidth:"any",parsePatterns:Nf,defaultParseWidth:"any"})},Mf={code:"ko",formatDistance:Qu,formatLong:tf,formatRelative:af,localize:ff,match:Sf,options:{weekStartsOn:0,firstWeekContainsDate:1}},jf={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}} 年"}},Df=(e,t,n)=>{let a;const r=jf[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},Cf={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},Tf={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},Pf={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},Of={date:Ee({formats:Cf,defaultWidth:"full"}),time:Ee({formats:Tf,defaultWidth:"full"}),dateTime:Ee({formats:Pf,defaultWidth:"full"})};function Rr(e,t,n){const a="eeee p";return fu(e,t,n)?a:e.getTime()>t.getTime()?"'下个'"+a:"'上个'"+a}const Wf={lastWeek:Rr,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:Rr,other:"PP p"},Ef=(e,t,n,a)=>{const r=Wf[e];return typeof r=="function"?r(t,n,a):r},Ff={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},Af={narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},$f={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},If={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},Lf={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:"夜间"}},Rf={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:"夜间"}},Bf=(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()}},Yf={ordinalNumber:Bf,era:ge({values:Ff,defaultWidth:"wide"}),quarter:ge({values:Af,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ge({values:$f,defaultWidth:"wide"}),day:ge({values:If,defaultWidth:"wide"}),dayPeriod:ge({values:Lf,defaultWidth:"wide",formattingValues:Rf,defaultFormattingWidth:"wide"})},zf=/^(第\s*)?\d+(日|时|分|秒)?/i,Hf=/\d+/i,Uf={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},qf={any:[/^(前)/i,/^(公元)/i]},Vf={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},Gf={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},Kf={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一]?)/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]?|\d|1[0-2])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一]?)月/i},Xf={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^(一|1(?!\d))/i,/^(二|2)/i,/^(三|3)/i,/^(四|4)/i,/^(五|5)/i,/^(六|6)/i,/^(七|7)/i,/^(八|8)/i,/^(九|9)/i,/^(十(?!(一|二))|10)/i,/^(十一|11)/i,/^(十二|12)/i]},Qf={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},Jf={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},Zf={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},em={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},tm={ordinalNumber:fn({matchPattern:zf,parsePattern:Hf,valueCallback:e=>parseInt(e,10)}),era:ye({matchPatterns:Uf,defaultMatchWidth:"wide",parsePatterns:qf,defaultParseWidth:"any"}),quarter:ye({matchPatterns:Vf,defaultMatchWidth:"wide",parsePatterns:Gf,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ye({matchPatterns:Kf,defaultMatchWidth:"wide",parsePatterns:Xf,defaultParseWidth:"any"}),day:ye({matchPatterns:Qf,defaultMatchWidth:"wide",parsePatterns:Jf,defaultParseWidth:"any"}),dayPeriod:ye({matchPatterns:Zf,defaultMatchWidth:"any",parsePatterns:em,defaultParseWidth:"any"})},nm={code:"zh-CN",formatDistance:Df,formatLong:Of,formatRelative:Ef,localize:Yf,match:tm,options:{weekStartsOn:1,firstWeekContainsDate:4}},am={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}} 年"}},rm=(e,t,n)=>{let a;const r=am[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},om={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},sm={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},im={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},lm={date:Ee({formats:om,defaultWidth:"full"}),time:Ee({formats:sm,defaultWidth:"full"}),dateTime:Ee({formats:im,defaultWidth:"full"})},cm={lastWeek:"'上個'eeee p",yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:"'下個'eeee p",other:"P"},dm=(e,t,n,a)=>cm[e],um={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},fm={narrow:["1","2","3","4"],abbreviated:["第一刻","第二刻","第三刻","第四刻"],wide:["第一刻鐘","第二刻鐘","第三刻鐘","第四刻鐘"]},mm={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},hm={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["週日","週一","週二","週三","週四","週五","週六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},gm={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:"夜間"}},ym={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:"夜間"}},pm=(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}},bm={ordinalNumber:pm,era:ge({values:um,defaultWidth:"wide"}),quarter:ge({values:fm,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ge({values:mm,defaultWidth:"wide"}),day:ge({values:hm,defaultWidth:"wide"}),dayPeriod:ge({values:gm,defaultWidth:"wide",formattingValues:ym,defaultFormattingWidth:"wide"})},xm=/^(第\s*)?\d+(日|時|分|秒)?/i,km=/\d+/i,wm={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},vm={any:[/^(前)/i,/^(公元)/i]},_m={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻鐘/i},Nm={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},Sm={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一]?)/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]?|\d|1[0-2])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一]?)月/i},Mm={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^(一|1(?!\d))/i,/^(二|2)/i,/^(三|3)/i,/^(四|4)/i,/^(五|5)/i,/^(六|6)/i,/^(七|7)/i,/^(八|8)/i,/^(九|9)/i,/^(十(?!(一|二))|10)/i,/^(十一|11)/i,/^(十二|12)/i]},jm={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^週[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},Dm={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},Cm={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨)/i},Tm={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},Pm={ordinalNumber:fn({matchPattern:xm,parsePattern:km,valueCallback:e=>parseInt(e,10)}),era:ye({matchPatterns:wm,defaultMatchWidth:"wide",parsePatterns:vm,defaultParseWidth:"any"}),quarter:ye({matchPatterns:_m,defaultMatchWidth:"wide",parsePatterns:Nm,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ye({matchPatterns:Sm,defaultMatchWidth:"wide",parsePatterns:Mm,defaultParseWidth:"any"}),day:ye({matchPatterns:jm,defaultMatchWidth:"wide",parsePatterns:Dm,defaultParseWidth:"any"}),dayPeriod:ye({matchPatterns:Cm,defaultMatchWidth:"any",parsePatterns:Tm,defaultParseWidth:"any"})},Om={code:"zh-TW",formatDistance:rm,formatLong:lm,formatRelative:dm,localize:bm,match:Pm,options:{weekStartsOn:1,firstWeekContainsDate:4}},Jo={...kt,labels:{labelDayButton:(e,t,n,a)=>{let r;a&&typeof a.format=="function"?r=a.format.bind(a):r=(l,i)=>st(l,i,{locale:kt,...n});let s=r(e,"PPPP");return t.today&&(s=`Today, ${s}`),t.selected&&(s=`${s}, selected`),s},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,s)=>st(r,s,{locale:kt,...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)=>st(l,i,{locale:kt,...n});let s=r(e,"PPPP");return t?.today&&(s=`Today, ${s}`),s},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,s)=>st(r,s,{locale:kt,...t}),a(e,"cccc")}}};class ze{constructor(t,n){this.Date=Date,this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?Ce.tz(this.options.timeZone):new this.Date,this.newDate=(a,r,s)=>this.overrides?.newDate?this.overrides.newDate(a,r,s):this.options.timeZone?new Ce(a,r,s,this.options.timeZone):new Date(a,r,s),this.addDays=(a,r)=>this.overrides?.addDays?this.overrides.addDays(a,r):Bo(a,r),this.addMonths=(a,r)=>this.overrides?.addMonths?this.overrides.addMonths(a,r):Yo(a,r),this.addWeeks=(a,r)=>this.overrides?.addWeeks?this.overrides.addWeeks(a,r):td(a,r),this.addYears=(a,r)=>this.overrides?.addYears?this.overrides.addYears(a,r):nd(a,r),this.differenceInCalendarDays=(a,r)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(a,r):$a(a,r),this.differenceInCalendarMonths=(a,r)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(a,r):Uo(a,r),this.eachMonthOfInterval=a=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(a):ld(a),this.eachYearOfInterval=a=>{const r=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(a):ud(a),s=new Set(r.map(i=>this.getYear(i)));if(s.size===r.length)return r;const l=[];return s.forEach(i=>{l.push(new Date(i,0,1))}),l},this.endOfBroadcastWeek=a=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(a):xu(a,this),this.endOfISOWeek=a=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(a):fd(a),this.endOfMonth=a=>this.overrides?.endOfMonth?this.overrides.endOfMonth(a):id(a),this.endOfWeek=(a,r)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(a,r):Go(a,this.options),this.endOfYear=a=>this.overrides?.endOfYear?this.overrides.endOfYear(a):dd(a),this.format=(a,r,s)=>{const l=this.overrides?.format?this.overrides.format(a,r,this.options):st(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):Ia(a),this.getMonth=(a,r)=>this.overrides?.getMonth?this.overrides.getMonth(a,this.options):lu(a,this.options),this.getYear=(a,r)=>this.overrides?.getYear?this.overrides.getYear(a,this.options):cu(a,this.options),this.getWeek=(a,r)=>this.overrides?.getWeek?this.overrides.getWeek(a,this.options):La(a,this.options),this.isAfter=(a,r)=>this.overrides?.isAfter?this.overrides.isAfter(a,r):du(a,r),this.isBefore=(a,r)=>this.overrides?.isBefore?this.overrides.isBefore(a,r):uu(a,r),this.isDate=a=>this.overrides?.isDate?this.overrides.isDate(a):Ho(a),this.isSameDay=(a,r)=>this.overrides?.isSameDay?this.overrides.isSameDay(a,r):od(a,r),this.isSameMonth=(a,r)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(a,r):mu(a,r),this.isSameYear=(a,r)=>this.overrides?.isSameYear?this.overrides.isSameYear(a,r):hu(a,r),this.max=a=>this.overrides?.max?this.overrides.max(a):ad(a),this.min=a=>this.overrides?.min?this.overrides.min(a):rd(a),this.setMonth=(a,r)=>this.overrides?.setMonth?this.overrides.setMonth(a,r):gu(a,r),this.setYear=(a,r)=>this.overrides?.setYear?this.overrides.setYear(a,r):yu(a,r),this.startOfBroadcastWeek=(a,r)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(a,this):Qo(a,this),this.startOfDay=a=>this.overrides?.startOfDay?this.overrides.startOfDay(a):dn(a),this.startOfISOWeek=a=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(a):cn(a),this.startOfMonth=a=>this.overrides?.startOfMonth?this.overrides.startOfMonth(a):cd(a),this.startOfWeek=(a,r)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(a,this.options):wt(a,this.options),this.startOfYear=a=>this.overrides?.startOfYear?this.overrides.startOfYear(a):Vo(a),this.options={locale:Jo,...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&&ze.yearFirstLocales.has(t)?"year-first":"month-first"}formatMonthYear(t){const{locale:n,timeZone:a,numerals:r}=this.options,s=n?.code;if(s&&ze.yearFirstLocales.has(s))try{return new Intl.DateTimeFormat(s,{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)}}ze.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 it=new ze;class Zo{constructor(t,n,a=it){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 Wm{constructor(t,n){this.date=t,this.weeks=n}}class Em{constructor(t,n){this.days=n,this.weekNumber=t}}function Fm(e){return O.createElement("button",{...e})}function Am(e){return O.createElement("span",{...e})}function $m(e){const{size:t=24,orientation:n="left",className:a}=e;return O.createElement("svg",{className:a,width:t,height:t,viewBox:"0 0 24 24"},n==="up"&&O.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),n==="down"&&O.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),n==="left"&&O.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),n==="right"&&O.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function Im(e){const{day:t,modifiers:n,...a}=e;return O.createElement("td",{...a})}function Lm(e){const{day:t,modifiers:n,...a}=e,r=O.useRef(null);return O.useEffect(()=>{n.focused&&r.current?.focus()},[n.focused]),O.createElement("button",{ref:r,...a})}var q;(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"})(q||(q={}));var ke;(function(e){e.disabled="disabled",e.hidden="hidden",e.outside="outside",e.focused="focused",e.today="today"})(ke||(ke={}));var Ze;(function(e){e.range_end="range_end",e.range_middle="range_middle",e.range_start="range_start",e.selected="selected"})(Ze||(Ze={}));var Be;(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"})(Be||(Be={}));function Rm(e){const{options:t,className:n,components:a,classNames:r,...s}=e,l=[r[q.Dropdown],n].join(" "),i=t?.find(({value:c})=>c===s.value);return O.createElement("span",{"data-disabled":s.disabled,className:r[q.DropdownRoot]},O.createElement(a.Select,{className:l,...s},t?.map(({value:c,label:d,disabled:u})=>O.createElement(a.Option,{key:c,value:c,disabled:u},d))),O.createElement("span",{className:r[q.CaptionLabel],"aria-hidden":!0},i?.label,O.createElement(a.Chevron,{orientation:"down",size:18,className:r[q.Chevron]})))}function Bm(e){return O.createElement("div",{...e})}function Ym(e){return O.createElement("div",{...e})}function zm(e){const{calendarMonth:t,displayIndex:n,...a}=e;return O.createElement("div",{...a},e.children)}function Hm(e){const{calendarMonth:t,displayIndex:n,...a}=e;return O.createElement("div",{...a})}function Um(e){return O.createElement("table",{...e})}function qm(e){return O.createElement("div",{...e})}const es=m.createContext(void 0);function mn(){const e=m.useContext(es);if(e===void 0)throw new Error("useDayPicker() must be used within a custom component.");return e}function Vm(e){const{components:t}=mn();return O.createElement(t.Dropdown,{...e})}function Gm(e){const{onPreviousClick:t,onNextClick:n,previousMonth:a,nextMonth:r,...s}=e,{components:l,classNames:i,labels:{labelPrevious:c,labelNext:d}}=mn(),u=m.useCallback(h=>{r&&n?.(h)},[r,n]),f=m.useCallback(h=>{a&&t?.(h)},[a,t]);return O.createElement("nav",{...s},O.createElement(l.PreviousMonthButton,{type:"button",className:i[q.PreviousMonthButton],tabIndex:a?void 0:-1,"aria-disabled":a?void 0:!0,"aria-label":c(a),onClick:f},O.createElement(l.Chevron,{disabled:a?void 0:!0,className:i[q.Chevron],orientation:"left"})),O.createElement(l.NextMonthButton,{type:"button",className:i[q.NextMonthButton],tabIndex:r?void 0:-1,"aria-disabled":r?void 0:!0,"aria-label":d(r),onClick:u},O.createElement(l.Chevron,{disabled:r?void 0:!0,orientation:"right",className:i[q.Chevron]})))}function Km(e){const{components:t}=mn();return O.createElement(t.Button,{...e})}function Xm(e){return O.createElement("option",{...e})}function Qm(e){const{components:t}=mn();return O.createElement(t.Button,{...e})}function Jm(e){const{rootRef:t,...n}=e;return O.createElement("div",{...n,ref:t})}function Zm(e){return O.createElement("select",{...e})}function eh(e){const{week:t,...n}=e;return O.createElement("tr",{...n})}function th(e){return O.createElement("th",{...e})}function nh(e){return O.createElement("thead",{"aria-hidden":!0},O.createElement("tr",{...e}))}function ah(e){const{week:t,...n}=e;return O.createElement("th",{...n})}function rh(e){return O.createElement("th",{...e})}function oh(e){return O.createElement("tbody",{...e})}function sh(e){const{components:t}=mn();return O.createElement(t.Dropdown,{...e})}const ih=Object.freeze(Object.defineProperty({__proto__:null,Button:Fm,CaptionLabel:Am,Chevron:$m,Day:Im,DayButton:Lm,Dropdown:Rm,DropdownNav:Bm,Footer:Ym,Month:zm,MonthCaption:Hm,MonthGrid:Um,Months:qm,MonthsDropdown:Vm,Nav:Gm,NextMonthButton:Km,Option:Xm,PreviousMonthButton:Qm,Root:Jm,Select:Zm,Week:eh,WeekNumber:ah,WeekNumberHeader:rh,Weekday:th,Weekdays:nh,Weeks:oh,YearsDropdown:sh},Symbol.toStringTag,{value:"Module"}));function ut(e,t,n=!1,a=it){let{from:r,to:s}=e;const{differenceInCalendarDays:l,isSameDay:i}=a;return r&&s?(l(s,r)<0&&([r,s]=[s,r]),l(t,r)>=(n?1:0)&&l(s,t)>=(n?1:0)):!n&&s?i(s,t):!n&&r?i(r,t):!1}function Ra(e){return!!(e&&typeof e=="object"&&"before"in e&&"after"in e)}function Ln(e){return!!(e&&typeof e=="object"&&"from"in e)}function Ba(e){return!!(e&&typeof e=="object"&&"after"in e)}function Ya(e){return!!(e&&typeof e=="object"&&"before"in e)}function ts(e){return!!(e&&typeof e=="object"&&"dayOfWeek"in e)}function ns(e,t){return Array.isArray(e)&&e.every(t.isDate)}function ft(e,t,n=it){const a=Array.isArray(t)?t:[t],{isSameDay:r,differenceInCalendarDays:s,isAfter:l}=n;return a.some(i=>{if(typeof i=="boolean")return i;if(n.isDate(i))return r(e,i);if(ns(i,n))return i.some(c=>r(e,c));if(Ln(i))return ut(i,e,!1,n);if(ts(i))return Array.isArray(i.dayOfWeek)?i.dayOfWeek.includes(e.getDay()):i.dayOfWeek===e.getDay();if(Ra(i)){const c=s(i.before,e),d=s(i.after,e),u=c>0,f=d<0;return l(i.before,i.after)?f&&u:u||f}return Ba(i)?s(e,i.after)>0:Ya(i)?s(i.before,e)>0:typeof i=="function"?i(e):!1})}function lh(e,t,n,a,r){const{disabled:s,hidden:l,modifiers:i,showOutsideDays:c,broadcastCalendar:d,today:u=r.today()}=t,{isSameDay:f,isSameMonth:h,startOfMonth:g,isBefore:p,endOfMonth:b,isAfter:v}=r,x=n&&g(n),w=a&&b(a),k={[ke.focused]:[],[ke.outside]:[],[ke.disabled]:[],[ke.hidden]:[],[ke.today]:[]},j={};for(const _ of e){const{date:S,displayMonth:F}=_,M=!!(F&&!h(S,F)),C=!!(x&&p(S,x)),$=!!(w&&v(S,w)),R=!!(s&&ft(S,s,r)),H=!!(l&&ft(S,l,r))||C||$||!d&&!c&&M||d&&c===!1&&M,D=f(S,u);M&&k.outside.push(_),R&&k.disabled.push(_),H&&k.hidden.push(_),D&&k.today.push(_),i&&Object.keys(i).forEach(W=>{const B=i?.[W];B&&ft(S,B,r)&&(j[W]?j[W].push(_):j[W]=[_])})}return _=>{const S={[ke.focused]:!1,[ke.disabled]:!1,[ke.hidden]:!1,[ke.outside]:!1,[ke.today]:!1},F={};for(const M in k){const C=k[M];S[M]=C.some($=>$===_)}for(const M in j)F[M]=j[M].some(C=>C===_);return{...S,...F}}}function ch(e,t,n={}){return Object.entries(e).filter(([,r])=>r===!0).reduce((r,[s])=>(n[s]?r.push(n[s]):t[ke[s]]?r.push(t[ke[s]]):t[Ze[s]]&&r.push(t[Ze[s]]),r),[t[q.Day]])}function dh(e){return{...ih,...e}}function uh(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 fh(){const e={};for(const t in q)e[q[t]]=`rdp-${q[t]}`;for(const t in ke)e[ke[t]]=`rdp-${ke[t]}`;for(const t in Ze)e[Ze[t]]=`rdp-${Ze[t]}`;for(const t in Be)e[Be[t]]=`rdp-${Be[t]}`;return e}function as(e,t,n){return(n??new ze(t)).formatMonthYear(e)}const mh=as;function hh(e,t,n){return(n??new ze(t)).format(e,"d")}function gh(e,t=it){return t.format(e,"LLLL")}function yh(e,t,n){return(n??new ze(t)).format(e,"cccccc")}function ph(e,t=it){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function bh(){return""}function rs(e,t=it){return t.format(e,"yyyy")}const xh=rs,kh=Object.freeze(Object.defineProperty({__proto__:null,formatCaption:as,formatDay:hh,formatMonthCaption:mh,formatMonthDropdown:gh,formatWeekNumber:ph,formatWeekNumberHeader:bh,formatWeekdayName:yh,formatYearCaption:xh,formatYearDropdown:rs},Symbol.toStringTag,{value:"Module"}));function wh(e){return e?.formatMonthCaption&&!e.formatCaption&&(e.formatCaption=e.formatMonthCaption),e?.formatYearCaption&&!e.formatYearDropdown&&(e.formatYearDropdown=e.formatYearCaption),{...kh,...e}}function za(e,t,n,a){let r=(a??new ze(n)).format(e,"PPPP");return t.today&&(r=`Today, ${r}`),t.selected&&(r=`${r}, selected`),r}const vh=za;function Ha(e,t,n){return(n??new ze(t)).formatMonthYear(e)}const _h=Ha;function os(e,t,n,a){let r=(a??new ze(n)).format(e,"PPPP");return t?.today&&(r=`Today, ${r}`),r}function ss(e){return"Choose the Month"}function is(){return""}const Nh="Go to the Next Month";function ls(e,t){return Nh}function cs(e){return"Go to the Previous Month"}function ds(e,t,n){return(n??new ze(t)).format(e,"cccc")}function us(e,t){return`Week ${e}`}function fs(e){return"Week Number"}function ms(e){return"Choose the Year"}const Sh=Object.freeze(Object.defineProperty({__proto__:null,labelCaption:_h,labelDay:vh,labelDayButton:za,labelGrid:Ha,labelGridcell:os,labelMonthDropdown:ss,labelNav:is,labelNext:ls,labelPrevious:cs,labelWeekNumber:us,labelWeekNumberHeader:fs,labelWeekday:ds,labelYearDropdown:ms},Symbol.toStringTag,{value:"Module"})),Qe=(e,t,n)=>t||(n?typeof n=="function"?n:(...a)=>n:e);function Mh(e,t){const n=t.locale?.labels??{};return{...Sh,...e??{},labelDayButton:Qe(za,e?.labelDayButton,n.labelDayButton),labelMonthDropdown:Qe(ss,e?.labelMonthDropdown,n.labelMonthDropdown),labelNext:Qe(ls,e?.labelNext,n.labelNext),labelPrevious:Qe(cs,e?.labelPrevious,n.labelPrevious),labelWeekNumber:Qe(us,e?.labelWeekNumber,n.labelWeekNumber),labelYearDropdown:Qe(ms,e?.labelYearDropdown,n.labelYearDropdown),labelGrid:Qe(Ha,e?.labelGrid,n.labelGrid),labelGridcell:Qe(os,e?.labelGridcell,n.labelGridcell),labelNav:Qe(is,e?.labelNav,n.labelNav),labelWeekNumberHeader:Qe(fs,e?.labelWeekNumberHeader,n.labelWeekNumberHeader),labelWeekday:Qe(ds,e?.labelWeekday,n.labelWeekday)}}function jh(e,t,n,a,r){const{startOfMonth:s,startOfYear:l,endOfYear:i,eachMonthOfInterval:c,getMonth:d}=r;return c({start:l(e),end:i(e)}).map(h=>{const g=a.formatMonthDropdown(h,r),p=d(h),b=t&&h<s(t)||n&&h>s(n)||!1;return{value:p,label:g,disabled:b}})}function Dh(e,t={},n={}){let a={...t?.[q.Day]};return Object.entries(e).filter(([,r])=>r===!0).forEach(([r])=>{a={...a,...n?.[r]}}),a}function Ch(e,t,n,a){const r=a??e.today(),s=n?e.startOfBroadcastWeek(r,e):t?e.startOfISOWeek(r):e.startOfWeek(r),l=[];for(let i=0;i<7;i++){const c=e.addDays(s,i);l.push(c)}return l}function Th(e,t,n,a,r=!1){if(!e||!t)return;const{startOfYear:s,endOfYear:l,eachYearOfInterval:i,getYear:c}=a,d=s(e),u=l(t),f=i({start:d,end:u});return r&&f.reverse(),f.map(h=>{const g=n.formatYearDropdown(h,a);return{value:c(h),label:g,disabled:!1}})}function Ph(e,t={}){const{weekStartsOn:n,locale:a}=t,r=n??a?.options?.weekStartsOn??0,s=i=>{const c=typeof i=="number"||typeof i=="string"?new Date(i):i;return new Ce(c.getFullYear(),c.getMonth(),c.getDate(),12,0,0,e)},l=i=>{const c=s(i);return new Date(c.getFullYear(),c.getMonth(),c.getDate(),0,0,0,0)};return{today:()=>s(Ce.tz(e)),newDate:(i,c,d)=>new Ce(i,c,d,12,0,0,e),startOfDay:i=>s(i),startOfWeek:(i,c)=>{const d=s(i),u=c?.weekStartsOn??r,f=(d.getDay()-u+7)%7;return d.setDate(d.getDate()-f),d},startOfISOWeek:i=>{const c=s(i),d=(c.getDay()-1+7)%7;return c.setDate(c.getDate()-d),c},startOfMonth:i=>{const c=s(i);return c.setDate(1),c},startOfYear:i=>{const c=s(i);return c.setMonth(0,1),c},endOfWeek:(i,c)=>{const d=s(i),h=(((c?.weekStartsOn??r)+6)%7-d.getDay()+7)%7;return d.setDate(d.getDate()+h),d},endOfISOWeek:i=>{const c=s(i),d=(7-c.getDay())%7;return c.setDate(c.getDate()+d),c},endOfMonth:i=>{const c=s(i);return c.setMonth(c.getMonth()+1,0),c},endOfYear:i=>{const c=s(i);return c.setMonth(11,31),c},eachMonthOfInterval:i=>{const c=s(i.start),d=s(i.end),u=[],f=new Ce(c.getFullYear(),c.getMonth(),1,12,0,0,e),h=d.getFullYear()*12+d.getMonth();for(;f.getFullYear()*12+f.getMonth()<=h;)u.push(new Ce(f,e)),f.setMonth(f.getMonth()+1,1);return u},addDays:(i,c)=>{const d=s(i);return d.setDate(d.getDate()+c),d},addWeeks:(i,c)=>{const d=s(i);return d.setDate(d.getDate()+c*7),d},addMonths:(i,c)=>{const d=s(i);return d.setMonth(d.getMonth()+c),d},addYears:(i,c)=>{const d=s(i);return d.setFullYear(d.getFullYear()+c),d},eachYearOfInterval:i=>{const c=s(i.start),d=s(i.end),u=[],f=new Ce(c.getFullYear(),0,1,12,0,0,e);for(;f.getFullYear()<=d.getFullYear();)u.push(new Ce(f,e)),f.setFullYear(f.getFullYear()+1,0,1);return u},getWeek:(i,c)=>{const d=l(i);return La(d,{weekStartsOn:c?.weekStartsOn??r,firstWeekContainsDate:c?.firstWeekContainsDate??a?.options?.firstWeekContainsDate??1})},getISOWeek:i=>{const c=l(i);return Ia(c)},differenceInCalendarDays:(i,c)=>{const d=l(i),u=l(c);return $a(d,u)},differenceInCalendarMonths:(i,c)=>{const d=l(i),u=l(c);return Uo(d,u)}}}const hn=e=>e instanceof HTMLElement?e:null,sa=e=>[...e.querySelectorAll("[data-animated-month]")??[]],Oh=e=>hn(e.querySelector("[data-animated-month]")),ia=e=>hn(e.querySelector("[data-animated-caption]")),la=e=>hn(e.querySelector("[data-animated-weeks]")),Wh=e=>hn(e.querySelector("[data-animated-nav]")),Eh=e=>hn(e.querySelector("[data-animated-weekdays]"));function Fh(e,t,{classNames:n,months:a,focused:r,dateLib:s}){const l=m.useRef(null),i=m.useRef(a),c=m.useRef(!1);m.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=s.isSameMonth(a[0].date,d[0].date),f=s.isAfter(a[0].date,d[0].date),h=f?n[Be.caption_after_enter]:n[Be.caption_before_enter],g=f?n[Be.weeks_after_enter]:n[Be.weeks_before_enter],p=l.current,b=e.current.cloneNode(!0);if(b instanceof HTMLElement?(sa(b).forEach(k=>{if(!(k instanceof HTMLElement))return;const j=Oh(k);j&&k.contains(j)&&k.removeChild(j);const _=ia(k);_&&_.classList.remove(h);const S=la(k);S&&S.classList.remove(g)}),l.current=b):l.current=null,c.current||u||r)return;const v=p instanceof HTMLElement?sa(p):[],x=sa(e.current);if(x?.every(w=>w instanceof HTMLElement)&&v&&v.every(w=>w instanceof HTMLElement)){c.current=!0,e.current.style.isolation="isolate";const w=Wh(e.current);w&&(w.style.zIndex="1"),x.forEach((k,j)=>{const _=v[j];if(!_)return;k.style.position="relative",k.style.overflow="hidden";const S=ia(k);S&&S.classList.add(h);const F=la(k);F&&F.classList.add(g);const M=()=>{c.current=!1,e.current&&(e.current.style.isolation=""),w&&(w.style.zIndex=""),S&&S.classList.remove(h),F&&F.classList.remove(g),k.style.position="",k.style.overflow="",k.contains(_)&&k.removeChild(_)};_.style.pointerEvents="none",_.style.position="absolute",_.style.overflow="hidden",_.setAttribute("aria-hidden","true");const C=Eh(_);C&&(C.style.opacity="0");const $=ia(_);$&&($.classList.add(f?n[Be.caption_before_exit]:n[Be.caption_after_exit]),$.addEventListener("animationend",M));const R=la(_);R&&R.classList.add(f?n[Be.weeks_before_exit]:n[Be.weeks_after_exit]),k.insertBefore(_,k.firstChild)})}})}function Ah(e,t,n,a){const r=e[0],s=e[e.length-1],{ISOWeek:l,fixedWeeks:i,broadcastCalendar:c}=n??{},{addDays:d,differenceInCalendarDays:u,differenceInCalendarMonths:f,endOfBroadcastWeek:h,endOfISOWeek:g,endOfMonth:p,endOfWeek:b,isAfter:v,startOfBroadcastWeek:x,startOfISOWeek:w,startOfWeek:k}=a,j=c?x(r,a):l?w(r):k(r),_=c?h(s):l?g(p(s)):b(p(s)),S=t&&(c?h(t):l?g(t):b(t)),F=S&&v(_,S)?S:_,M=u(F,j),C=f(s,r)+1,$=[];for(let D=0;D<=M;D++){const W=d(j,D);$.push(W)}const H=(c?35:42)*C;if(i&&$.length<H){const D=H-$.length;for(let W=0;W<D;W++){const B=d($[$.length-1],1);$.push(B)}}return $}function $h(e){const t=[];return e.reduce((n,a)=>{const r=a.weeks.reduce((s,l)=>s.concat(l.days.slice()),t.slice());return n.concat(r.slice())},t.slice())}function Ih(e,t,n,a){const{numberOfMonths:r=1}=n,s=[];for(let l=0;l<r;l++){const i=a.addMonths(e,l);if(t&&i>t)break;s.push(i)}return s}function Br(e,t,n,a){const{month:r,defaultMonth:s,today:l=a.today(),numberOfMonths:i=1}=e;let c=r||s||l;const{differenceInCalendarMonths:d,addMonths:u,startOfMonth:f}=a;if(n&&d(n,c)<i-1){const h=-1*(i-1);c=u(n,h)}return t&&d(c,t)<0&&(c=t),f(c)}function Lh(e,t,n,a){const{addDays:r,endOfBroadcastWeek:s,endOfISOWeek:l,endOfMonth:i,endOfWeek:c,getISOWeek:d,getWeek:u,startOfBroadcastWeek:f,startOfISOWeek:h,startOfWeek:g}=a,p=e.reduce((b,v)=>{const x=n.broadcastCalendar?f(v,a):n.ISOWeek?h(v):g(v),w=n.broadcastCalendar?s(v):n.ISOWeek?l(i(v)):c(i(v)),k=t.filter(F=>F>=x&&F<=w),j=n.broadcastCalendar?35:42;if(n.fixedWeeks&&k.length<j){const F=t.filter(M=>{const C=j-k.length;return M>w&&M<=r(w,C)});k.push(...F)}const _=k.reduce((F,M)=>{const C=n.ISOWeek?d(M):u(M),$=F.find(H=>H.weekNumber===C),R=new Zo(M,v,a);return $?$.days.push(R):F.push(new Em(C,[R])),F},[]),S=new Wm(v,_);return b.push(S),b},[]);return n.reverseMonths?p.reverse():p}function Rh(e,t){let{startMonth:n,endMonth:a}=e;const{startOfYear:r,startOfDay:s,startOfMonth:l,endOfMonth:i,addYears:c,endOfYear:d,newDate:u,today:f}=t,{fromYear:h,toYear:g,fromMonth:p,toMonth:b}=e;!n&&p&&(n=p),!n&&h&&(n=t.newDate(h,0,1)),!a&&b&&(a=b),!a&&g&&(a=u(g,11,31));const v=e.captionLayout==="dropdown"||e.captionLayout==="dropdown-years";return n?n=l(n):h?n=u(h,0,1):!n&&v&&(n=r(c(e.today??f(),-100))),a?a=i(a):g?a=u(g,11,31):!a&&v&&(a=d(e.today??f())),[n&&s(n),a&&s(a)]}function Bh(e,t,n,a){if(n.disableNavigation)return;const{pagedNavigation:r,numberOfMonths:s=1}=n,{startOfMonth:l,addMonths:i,differenceInCalendarMonths:c}=a,d=r?s:1,u=l(e);if(!t)return i(u,d);if(!(c(t,e)<s))return i(u,d)}function Yh(e,t,n,a){if(n.disableNavigation)return;const{pagedNavigation:r,numberOfMonths:s}=n,{startOfMonth:l,addMonths:i,differenceInCalendarMonths:c}=a,d=r?s??1:1,u=l(e);if(!t)return i(u,-d);if(!(c(u,t)<=0))return i(u,-d)}function zh(e){const t=[];return e.reduce((n,a)=>n.concat(a.weeks.slice()),t.slice())}function Rn(e,t){const[n,a]=m.useState(e);return[t===void 0?n:t,a]}function Hh(e,t){const[n,a]=Rh(e,t),{startOfMonth:r,endOfMonth:s}=t,l=Br(e,n,a,t),[i,c]=Rn(l,e.month?l:void 0);m.useEffect(()=>{const j=Br(e,n,a,t);c(j)},[e.timeZone]);const{months:d,weeks:u,days:f,previousMonth:h,nextMonth:g}=m.useMemo(()=>{const j=Ih(i,a,{numberOfMonths:e.numberOfMonths},t),_=Ah(j,e.endMonth?s(e.endMonth):void 0,{ISOWeek:e.ISOWeek,fixedWeeks:e.fixedWeeks,broadcastCalendar:e.broadcastCalendar},t),S=Lh(j,_,{broadcastCalendar:e.broadcastCalendar,fixedWeeks:e.fixedWeeks,ISOWeek:e.ISOWeek,reverseMonths:e.reverseMonths},t),F=zh(S),M=$h(S),C=Yh(i,n,e,t),$=Bh(i,a,e,t);return{months:S,weeks:F,days:M,previousMonth:C,nextMonth:$}},[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,v=j=>u.some(_=>_.days.some(S=>S.isEqualTo(j))),x=j=>{if(p)return;let _=r(j);n&&_<r(n)&&(_=r(n)),a&&_>r(a)&&(_=r(a)),c(_),b?.(_)};return{months:d,weeks:u,days:f,navStart:n,navEnd:a,previousMonth:h,nextMonth:g,goToMonth:x,goToDay:j=>{v(j)||x(j.date)}}}var at;(function(e){e[e.Today=0]="Today",e[e.Selected=1]="Selected",e[e.LastFocused=2]="LastFocused",e[e.FocusedModifier=3]="FocusedModifier"})(at||(at={}));function Yr(e){return!e[ke.disabled]&&!e[ke.hidden]&&!e[ke.outside]}function Uh(e,t,n,a){let r,s=-1;for(const l of e){const i=t(l);Yr(i)&&(i[ke.focused]&&s<at.FocusedModifier?(r=l,s=at.FocusedModifier):a?.isEqualTo(l)&&s<at.LastFocused?(r=l,s=at.LastFocused):n(l.date)&&s<at.Selected?(r=l,s=at.Selected):i[ke.today]&&s<at.Today&&(r=l,s=at.Today))}return r||(r=e.find(l=>Yr(t(l)))),r}function qh(e,t,n,a,r,s,l){const{ISOWeek:i,broadcastCalendar:c}=s,{addDays:d,addMonths:u,addWeeks:f,addYears:h,endOfBroadcastWeek:g,endOfISOWeek:p,endOfWeek:b,max:v,min:x,startOfBroadcastWeek:w,startOfISOWeek:k,startOfWeek:j}=l;let S={day:d,week:f,month:u,year:h,startOfWeek:F=>c?w(F,l):i?k(F):j(F),endOfWeek:F=>c?g(F):i?p(F):b(F)}[e](n,t==="after"?1:-1);return t==="before"&&a?S=v([a,S]):t==="after"&&r&&(S=x([r,S])),S}function hs(e,t,n,a,r,s,l,i=0){if(i>365)return;const c=qh(e,t,n.date,a,r,s,l),d=!!(s.disabled&&ft(c,s.disabled,l)),u=!!(s.hidden&&ft(c,s.hidden,l)),f=c,h=new Zo(c,f,l);return!d&&!u?h:hs(e,t,h,a,r,s,l,i+1)}function Vh(e,t,n,a,r){const{autoFocus:s}=e,[l,i]=m.useState(),c=Uh(t.days,n,a||(()=>!1),l),[d,u]=m.useState(s?c:void 0);return{isFocusTarget:b=>!!c?.isEqualTo(b),setFocused:u,focused:d,blur:()=>{i(d),u(void 0)},moveFocus:(b,v)=>{if(!d)return;const x=hs(b,v,d,t.navStart,t.navEnd,e,r);x&&(e.disableNavigation&&!t.days.some(k=>k.isEqualTo(x))||(t.goToDay(x),u(x)))}}}function Gh(e,t){const{selected:n,required:a,onSelect:r}=e,[s,l]=Rn(n,r?n:void 0),i=r?n:s,{isSameDay:c}=t,d=g=>i?.some(p=>c(p,g))??!1,{min:u,max:f}=e;return{selected:i,select:(g,p,b)=>{let v=[...i??[]];if(d(g)){if(i?.length===u||a&&i?.length===1)return;v=i?.filter(x=>!c(x,g))}else i?.length===f?v=[g]:v=[...v,g];return r||l(v),r?.(v,g,p,b),v},isSelected:d}}function Kh(e,t,n=0,a=0,r=!1,s=it){const{from:l,to:i}=t||{},{isSameDay:c,isAfter:d,isBefore:u}=s;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 h=s.differenceInCalendarDays(f.to,f.from);a>0&&h>a?f={from:e,to:void 0}:n>1&&h<n&&(f={from:e,to:void 0})}return f}function Xh(e,t,n=it){const a=Array.isArray(t)?t:[t];let r=e.from;const s=n.differenceInCalendarDays(e.to,e.from),l=Math.min(s,6);for(let i=0;i<=l;i++){if(a.includes(r.getDay()))return!0;r=n.addDays(r,1)}return!1}function zr(e,t,n=it){return ut(e,t.from,!1,n)||ut(e,t.to,!1,n)||ut(t,e.from,!1,n)||ut(t,e.to,!1,n)}function Qh(e,t,n=it){const a=Array.isArray(t)?t:[t];if(a.filter(i=>typeof i!="function").some(i=>typeof i=="boolean"?i:n.isDate(i)?ut(e,i,!1,n):ns(i,n)?i.some(c=>ut(e,c,!1,n)):Ln(i)?i.from&&i.to?zr(e,{from:i.from,to:i.to},n):!1:ts(i)?Xh(e,i.dayOfWeek,n):Ra(i)?n.isAfter(i.before,i.after)?zr(e,{from:n.addDays(i.after,1),to:n.addDays(i.before,-1)},n):ft(e.from,i,n)||ft(e.to,i,n):Ba(i)||Ya(i)?ft(e.from,i,n)||ft(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 Jh(e,t){const{disabled:n,excludeDisabled:a,resetOnSelect:r,selected:s,required:l,onSelect:i}=e,[c,d]=Rn(s,i?s:void 0),u=i?s:c;return{selected:u,select:(g,p,b)=>{const{min:v,max:x}=e;let w;if(g){const k=u?.from,j=u?.to,_=!!k&&!!j,S=!!k&&!!j&&t.isSameDay(k,j)&&t.isSameDay(g,k);r&&(_||!u?.from)?!l&&S?w=void 0:w={from:g,to:void 0}:w=Kh(g,u,v,x,l,t)}return a&&n&&w?.from&&w.to&&Qh({from:w.from,to:w.to},n,t)&&(w.from=g,w.to=void 0),i||d(w),i?.(w,g,p,b),w},isSelected:g=>u&&ut(u,g,!1,t)}}function Zh(e,t){const{selected:n,required:a,onSelect:r}=e,[s,l]=Rn(n,r?n:void 0),i=r?n:s,{isSameDay:c}=t;return{selected:i,select:(f,h,g)=>{let p=f;return!a&&i&&i&&c(f,i)&&(p=void 0),r||l(p),r?.(p,f,h,g),p},isSelected:f=>i?c(i,f):!1}}function eg(e,t){const n=Zh(e,t),a=Gh(e,t),r=Jh(e,t);switch(e.mode){case"single":return n;case"multiple":return a;case"range":return r;default:return}}function Ge(e,t){return e instanceof Ce&&e.timeZone===t?e:new Ce(e,t)}function qt(e,t,n){return Ge(e,t)}function Hr(e,t,n){return typeof e=="boolean"||typeof e=="function"?e:e instanceof Date?qt(e,t):Array.isArray(e)?e.map(a=>a instanceof Date?qt(a,t):a):Ln(e)?{...e,from:e.from?Ge(e.from,t):e.from,to:e.to?Ge(e.to,t):e.to}:Ra(e)?{before:qt(e.before,t),after:qt(e.after,t)}:Ba(e)?{after:qt(e.after,t)}:Ya(e)?{before:qt(e.before,t)}:e}function ca(e,t,n){return e&&(Array.isArray(e)?e.map(a=>Hr(a,t)):Hr(e,t))}function tg(e){let t=e;const n=t.timeZone;if(n&&(t={...e,timeZone:n},t.today&&(t.today=Ge(t.today,n)),t.month&&(t.month=Ge(t.month,n)),t.defaultMonth&&(t.defaultMonth=Ge(t.defaultMonth,n)),t.startMonth&&(t.startMonth=Ge(t.startMonth,n)),t.endMonth&&(t.endMonth=Ge(t.endMonth,n)),t.mode==="single"&&t.selected?t.selected=Ge(t.selected,n):t.mode==="multiple"&&t.selected?t.selected=t.selected?.map(L=>Ge(L,n)):t.mode==="range"&&t.selected&&(t.selected={from:t.selected.from?Ge(t.selected.from,n):t.selected.from,to:t.selected.to?Ge(t.selected.to,n):t.selected.to}),t.disabled!==void 0&&(t.disabled=ca(t.disabled,n)),t.hidden!==void 0&&(t.hidden=ca(t.hidden,n)),t.modifiers)){const L={};Object.keys(t.modifiers).forEach(oe=>{L[oe]=ca(t.modifiers?.[oe],n)}),t.modifiers=L}const{components:a,formatters:r,labels:s,dateLib:l,locale:i,classNames:c}=m.useMemo(()=>{const L={...Jo,...t.locale},oe=t.broadcastCalendar?1:t.weekStartsOn,z=t.noonSafe&&t.timeZone?Ph(t.timeZone,{weekStartsOn:oe,locale:L}):void 0,Z=t.dateLib&&z?{...z,...t.dateLib}:t.dateLib??z,je=new ze({locale:L,weekStartsOn:oe,firstWeekContainsDate:t.firstWeekContainsDate,useAdditionalWeekYearTokens:t.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:t.useAdditionalDayOfYearTokens,timeZone:t.timeZone,numerals:t.numerals},Z);return{dateLib:je,components:dh(t.components),formatters:wh(t.formatters),labels:Mh(t.labels,je.options),locale:L,classNames:{...fh(),...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:h=1,onDayBlur:g,onDayClick:p,onDayFocus:b,onDayKeyDown:v,onDayMouseEnter:x,onDayMouseLeave:w,onNextClick:k,onPrevClick:j,showWeekNumber:_,styles:S}=t,{formatCaption:F,formatDay:M,formatMonthDropdown:C,formatWeekNumber:$,formatWeekNumberHeader:R,formatWeekdayName:H,formatYearDropdown:D}=r,W=Hh(t,l),{days:B,months:T,navStart:E,navEnd:X,previousMonth:I,nextMonth:P,goToMonth:A}=W,G=lh(B,t,E,X,l),{isSelected:ae,select:me,selected:re}=eg(t,l)??{},{blur:J,focused:ee,isFocusTarget:be,moveFocus:se,setFocused:K}=Vh(t,W,G,ae??(()=>!1),l),{labelDayButton:V,labelGridcell:te,labelGrid:xe,labelMonthDropdown:ue,labelNav:ce,labelPrevious:fe,labelNext:ie,labelWeekday:pe,labelWeekNumber:Pe,labelWeekNumberHeader:Fe,labelYearDropdown:vt}=s,Ie=m.useMemo(()=>Ch(l,t.ISOWeek,t.broadcastCalendar,t.today),[l,t.ISOWeek,t.broadcastCalendar,t.today]),He=u!==void 0||p!==void 0,Le=m.useCallback(()=>{I&&(A(I),j?.(I))},[I,A,j]),Ae=m.useCallback(()=>{P&&(A(P),k?.(P))},[A,P,k]),_t=m.useCallback((L,oe)=>z=>{z.preventDefault(),z.stopPropagation(),K(L),!oe.disabled&&(me?.(L.date,oe,z),p?.(L.date,oe,z))},[me,p,K]),Se=m.useCallback((L,oe)=>z=>{K(L),b?.(L.date,oe,z)},[b,K]),Me=m.useCallback((L,oe)=>z=>{J(),g?.(L.date,oe,z)},[J,g]),$e=m.useCallback((L,oe)=>z=>{const Z={ArrowLeft:[z.shiftKey?"month":"day",t.dir==="rtl"?"after":"before"],ArrowRight:[z.shiftKey?"month":"day",t.dir==="rtl"?"before":"after"],ArrowDown:[z.shiftKey?"year":"week","after"],ArrowUp:[z.shiftKey?"year":"week","before"],PageUp:[z.shiftKey?"year":"month","before"],PageDown:[z.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(Z[z.key]){z.preventDefault(),z.stopPropagation();const[je,ne]=Z[z.key];se(je,ne)}v?.(L.date,oe,z)},[se,v,t.dir]),Ue=m.useCallback((L,oe)=>z=>{x?.(L.date,oe,z)},[x]),Nt=m.useCallback((L,oe)=>z=>{w?.(L.date,oe,z)},[w]),mt=m.useCallback(L=>oe=>{const z=Number(oe.target.value),Z=l.setMonth(l.startOfMonth(L),z);A(Z)},[l,A]),qe=m.useCallback(L=>oe=>{const z=Number(oe.target.value),Z=l.setYear(l.startOfMonth(L),z);A(Z)},[l,A]),{className:Zt,style:tt}=m.useMemo(()=>({className:[c[q.Root],t.className].filter(Boolean).join(" "),style:{...S?.[q.Root],...t.style}}),[c,t.className,t.style,S]),en=uh(t),Lt=m.useRef(null);Fh(Lt,!!t.animate,{classNames:c,months:T,focused:ee,dateLib:l});const ht={dayPickerProps:t,selected:re,select:me,isSelected:ae,months:T,nextMonth:P,previousMonth:I,goToMonth:A,getModifiers:G,components:a,classNames:c,styles:S,labels:s,formatters:r};return O.createElement(es.Provider,{value:ht},O.createElement(a.Root,{rootRef:t.animate?Lt:void 0,className:Zt,style:tt,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"],...en},O.createElement(a.Months,{className:c[q.Months],style:S?.[q.Months]},!t.hideNavigation&&!f&&O.createElement(a.Nav,{"data-animated-nav":t.animate?"true":void 0,className:c[q.Nav],style:S?.[q.Nav],"aria-label":ce(),onPreviousClick:Le,onNextClick:Ae,previousMonth:I,nextMonth:P}),T.map((L,oe)=>O.createElement(a.Month,{"data-animated-month":t.animate?"true":void 0,className:c[q.Month],style:S?.[q.Month],key:oe,displayIndex:oe,calendarMonth:L},f==="around"&&!t.hideNavigation&&oe===0&&O.createElement(a.PreviousMonthButton,{type:"button",className:c[q.PreviousMonthButton],tabIndex:I?void 0:-1,"aria-disabled":I?void 0:!0,"aria-label":fe(I),onClick:Le,"data-animated-button":t.animate?"true":void 0},O.createElement(a.Chevron,{disabled:I?void 0:!0,className:c[q.Chevron],orientation:t.dir==="rtl"?"right":"left"})),O.createElement(a.MonthCaption,{"data-animated-caption":t.animate?"true":void 0,className:c[q.MonthCaption],style:S?.[q.MonthCaption],calendarMonth:L,displayIndex:oe},d?.startsWith("dropdown")?O.createElement(a.DropdownNav,{className:c[q.Dropdowns],style:S?.[q.Dropdowns]},(()=>{const z=d==="dropdown"||d==="dropdown-months"?O.createElement(a.MonthsDropdown,{key:"month",className:c[q.MonthsDropdown],"aria-label":ue(),classNames:c,components:a,disabled:!!t.disableNavigation,onChange:mt(L.date),options:jh(L.date,E,X,r,l),style:S?.[q.Dropdown],value:l.getMonth(L.date)}):O.createElement("span",{key:"month"},C(L.date,l)),Z=d==="dropdown"||d==="dropdown-years"?O.createElement(a.YearsDropdown,{key:"year",className:c[q.YearsDropdown],"aria-label":vt(l.options),classNames:c,components:a,disabled:!!t.disableNavigation,onChange:qe(L.date),options:Th(E,X,r,l,!!t.reverseYears),style:S?.[q.Dropdown],value:l.getYear(L.date)}):O.createElement("span",{key:"year"},D(L.date,l));return l.getMonthYearOrder()==="year-first"?[Z,z]:[z,Z]})(),O.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"}},F(L.date,l.options,l))):O.createElement(a.CaptionLabel,{className:c[q.CaptionLabel],role:"status","aria-live":"polite"},F(L.date,l.options,l))),f==="around"&&!t.hideNavigation&&oe===h-1&&O.createElement(a.NextMonthButton,{type:"button",className:c[q.NextMonthButton],tabIndex:P?void 0:-1,"aria-disabled":P?void 0:!0,"aria-label":ie(P),onClick:Ae,"data-animated-button":t.animate?"true":void 0},O.createElement(a.Chevron,{disabled:P?void 0:!0,className:c[q.Chevron],orientation:t.dir==="rtl"?"left":"right"})),oe===h-1&&f==="after"&&!t.hideNavigation&&O.createElement(a.Nav,{"data-animated-nav":t.animate?"true":void 0,className:c[q.Nav],style:S?.[q.Nav],"aria-label":ce(),onPreviousClick:Le,onNextClick:Ae,previousMonth:I,nextMonth:P}),O.createElement(a.MonthGrid,{role:"grid","aria-multiselectable":u==="multiple"||u==="range","aria-label":xe(L.date,l.options,l)||void 0,className:c[q.MonthGrid],style:S?.[q.MonthGrid]},!t.hideWeekdays&&O.createElement(a.Weekdays,{"data-animated-weekdays":t.animate?"true":void 0,className:c[q.Weekdays],style:S?.[q.Weekdays]},_&&O.createElement(a.WeekNumberHeader,{"aria-label":Fe(l.options),className:c[q.WeekNumberHeader],style:S?.[q.WeekNumberHeader],scope:"col"},R()),Ie.map(z=>O.createElement(a.Weekday,{"aria-label":pe(z,l.options,l),className:c[q.Weekday],key:String(z),style:S?.[q.Weekday],scope:"col"},H(z,l.options,l)))),O.createElement(a.Weeks,{"data-animated-weeks":t.animate?"true":void 0,className:c[q.Weeks],style:S?.[q.Weeks]},L.weeks.map(z=>O.createElement(a.Week,{className:c[q.Week],key:z.weekNumber,style:S?.[q.Week],week:z},_&&O.createElement(a.WeekNumber,{week:z,style:S?.[q.WeekNumber],"aria-label":Pe(z.weekNumber,{locale:i}),className:c[q.WeekNumber],scope:"row",role:"rowheader"},$(z.weekNumber,l)),z.days.map(Z=>{const{date:je}=Z,ne=G(Z);if(ne[ke.focused]=!ne.hidden&&!!ee?.isEqualTo(Z),ne[Ze.selected]=ae?.(je)||ne.selected,Ln(re)){const{from:Mt,to:Ve}=re;ne[Ze.range_start]=!!(Mt&&Ve&&l.isSameDay(je,Mt)),ne[Ze.range_end]=!!(Mt&&Ve&&l.isSameDay(je,Ve)),ne[Ze.range_middle]=ut(re,je,!0,l)}const tn=Dh(ne,S,t.modifiersStyles),St=ch(ne,c,t.modifiersClassNames),gt=!He&&!ne.hidden?te(je,ne,l.options,l):void 0;return O.createElement(a.Day,{key:`${Z.isoDate}_${Z.displayMonthId}`,day:Z,modifiers:ne,className:St.join(" "),style:tn,role:"gridcell","aria-selected":ne.selected||void 0,"aria-label":gt,"data-day":Z.isoDate,"data-month":Z.outside?Z.dateMonthId:void 0,"data-selected":ne.selected||void 0,"data-disabled":ne.disabled||void 0,"data-hidden":ne.hidden||void 0,"data-outside":Z.outside||void 0,"data-focused":ne.focused||void 0,"data-today":ne.today||void 0},!ne.hidden&&He?O.createElement(a.DayButton,{className:c[q.DayButton],style:S?.[q.DayButton],type:"button",day:Z,modifiers:ne,disabled:!ne.focused&&ne.disabled||void 0,"aria-disabled":ne.focused&&ne.disabled||void 0,tabIndex:be(Z)?0:-1,"aria-label":V(je,ne,l.options,l),onClick:_t(Z,ne),onBlur:Me(Z,ne),onFocus:Se(Z,ne),onKeyDown:$e(Z,ne),onMouseEnter:Ue(Z,ne),onMouseLeave:Nt(Z,ne)},M(je,l.options,l)):!ne.hidden&&M(Z.date,l.options,l))})))))))),t.footer&&O.createElement(a.Footer,{className:c[q.Footer],style:S?.[q.Footer],role:"status","aria-live":"polite"},t.footer)))}const ng={en:kt,"zh-CN":nm,"zh-TW":Om,ja:Ku,ko:Mf};function gs(e){return ng[e]||kt}function Ur(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())?st(a,"MMM d",t?{locale:t}:void 0):e}function Ma({from:e,to:t,onApply:n,onCancel:a}){const r=m.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]),[s,l]=m.useState(r),i=gs(No()),c=()=>{if(!s?.from)return;const u=st(s.from,"yyyy-MM-dd"),f=s.to?st(s.to,"yyyy-MM-dd"):u;n?.(u,f)},d=!!s?.from;return o.jsxs("div",{className:"p-4",children:[o.jsx(tg,{mode:"range",locale:i,selected:s,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"}}}),o.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&&s.from&&o.jsxs("span",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-400 mr-auto",children:[st(s.from,"MMM d, yyyy",{locale:i}),s.to&&s.to.getTime()!==s.from.getTime()?` — ${st(s.to,"MMM d, yyyy",{locale:i})}`:""]}),o.jsx(On,{variant:"secondary",size:"sm",onClick:a,children:y("shared.action.cancel")}),o.jsx(On,{variant:"primary",size:"sm",onClick:c,disabled:!d,children:y("shared.action.apply")})]})]})}const qr={claude:35,codex:250},Vr={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 ag(e,t){const n=qr[t]??qr.claude,a=Vr[e]||Vr.system_prompt;return`oklch(${a.l} ${a.c} ${n})`}const rg=[{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"]}],og=[["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"]],sg={duration:.18,ease:[.4,0,.2,1]},ig={height:0,opacity:0},lg={height:"auto",opacity:1},cg={height:0,opacity:0};function dg(e){const t=Number(e||0);return Number.isFinite(t)&&t>0?t:0}function ug(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 ys(e,t=null){const n=e.reduce((l,i)=>l+Number(i.totals.total_tokens||0),0),a=dg(t),r=a||n,s=a&&n>0?a/n:1;return e.map(l=>{const i=s===1?l.totals:ug(l.totals,s);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 fg(e,t=null){const n=new Map;for(const r of e||[])n.set(r.key,r);const a=rg.map(r=>{const s={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||{};s.input_tokens+=c.input_tokens||0,s.cached_input_tokens+=c.cached_input_tokens||0,s.cache_creation_input_tokens+=c.cache_creation_input_tokens||0,s.output_tokens+=c.output_tokens||0,s.reasoning_output_tokens+=c.reasoning_output_tokens||0,s.total_tokens+=c.total_tokens||0}return{key:r.key,totals:s}});return ys(a,t)}function mg(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),s=Number(n.total_tokens||0),l=Math.min(Math.max(0,r),Math.max(0,s-a)),c=[{key:"messages",totals:{total_tokens:Math.max(0,s-a-l)}},{key:"tool_calls",totals:{total_tokens:l}},{key:"reasoning",totals:{total_tokens:a}}];return ys(c,t)}const Gr="MCP: ";function hg(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 s=String(r?.name||"");s.startsWith(Gr)?(t.push({...r,name:s.slice(Gr.length)}),a+=Number(r?.totals?.total_tokens||0)):n.push(r)}return t.length===0?{mcpSet:null,residualSet:e,mcpTotalTokens:0}:(t.sort((r,s)=>(s.totals?.total_tokens||0)-(r.totals?.total_tokens||0)),{mcpSet:{...e,categories:t},residualSet:{...e,categories:n},mcpTotalTokens:a})}function Kr(e){return y(`dashboard.context_breakdown.category.${e}`)}function rt(e){return!Number.isFinite(Number(e))||Number(e)<=0?"0":We(Number(e),{decimals:1})}function gg(e){return typeof e!="string"?"":e.startsWith("mcp__")?e.split("__").slice(2).join("__")||e:e.includes("/")&&e.split("/").pop()||e}function yg(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),s=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:gg(t?.name?String(t.name):""),calls:Number(t?.calls||0),input_tokens:a,output_tokens:r,cache_read:s,cache_creation:l,total_tokens:Number(i||0)}}).filter(t=>t.name).sort((t,n)=>(n.total_tokens||0)-(t.total_tokens||0))}function pg(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),s=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:s,cached_input_tokens:l,cache_creation_input_tokens:i,total_tokens:Number(n.total_tokens||r+s)},tools:yg(a),toolCount:a.length}}).filter(t=>t.name).sort((t,n)=>(n.totals.total_tokens||0)-(t.totals.total_tokens||0))}function bg(e){return(Array.isArray(e)?e:[]).map(t=>{const n=t?.totals||{},a=Number(n.input_tokens||0),r=Number(n.output_tokens||0),s=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:s,cache_creation_input_tokens:l,total_tokens:Number(n.total_tokens||a+r+s+l)}}}).filter(t=>t.key||t.name).sort((t,n)=>(n.totals.total_tokens||0)-(t.totals.total_tokens||0))}function xg(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 kg(e){if(e?.key){const t=y(`dashboard.context_breakdown.message_details.${e.key}`);if(t&&!t.includes("dashboard.context_breakdown"))return t}return e?.name||""}function wg(e){return(Array.isArray(e)?e:[]).map(t=>{const n=t?.totals||{},a=Number(n.input_tokens||0),r=Number(n.output_tokens||0),s=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:s,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 Xr(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 vg(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 Qr(e){return e==="exec_command"||e==="Bash"}function ps(e){return e==="codex"?"dashboard.context_breakdown.empty_codex":"dashboard.context_breakdown.empty"}function _g(e){return e==="codex"?"dashboard.context_breakdown.error_codex":"dashboard.context_breakdown.error"}function Ng(e){return e==="codex"?"dashboard.context_breakdown.footnote_codex":"dashboard.context_breakdown.footnote"}const Sg=10;function dt({level:e=0,colorSquare:t=null,label:n,labelSuffix:a=null,labelTone:r="default",hasChevron:s=!1,open:l=!1,onToggle:i,tokens:c,percent:d=null,children:u,share:f=null,fillColor:h=null}){const g=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=o.jsx("span",{className:"shrink-0 flex items-center justify-start",style:{width:Sg},"aria-hidden":!t,children:t}),b=o.jsxs(o.Fragment,{children:[p,o.jsx("span",{className:g,children:n}),a,s&&o.jsx(Te.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:o.jsx(Po,{size:11})})]}),v=h&&f!=null&&f>0,x=v?Math.max(0,Math.min(100,f)):0;return o.jsxs("li",{className:"min-w-0 group/row",children:[o.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:v?{backgroundImage:`linear-gradient(to right, ${h.replace(/\)\s*$/," / 0.10)")} 0%, ${h.replace(/\)\s*$/," / 0.10)")} ${x}%, transparent ${x}%)`}:void 0,children:[s?o.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}):o.jsx("div",{className:"relative flex items-center gap-1.5 min-w-0",children:b}),o.jsx("span",{className:"relative text-right tabular-nums text-oai-gray-500 dark:text-oai-gray-400",children:c||""}),o.jsx("span",{className:"relative text-right tabular-nums text-[10px] text-oai-gray-400 dark:text-oai-gray-500 font-normal",children:d||""})]}),s&&u?o.jsx(Fa,{initial:!1,children:l&&o.jsx(Te.div,{initial:ig,animate:lg,exit:cg,transition:sg,style:{overflow:"hidden"},children:u},"content")}):null]})}function Jr({execDetails:e,source:t="claude"}){const[n,a]=m.useState("by_type"),r=wg(vg(e,n)),s=t==="codex",l=s?"grid-cols-[minmax(0,1fr)_48px_48px_72px_72px_60px_60px]":"grid-cols-[minmax(0,1fr)_56px_60px]";return o.jsxs("div",{className:"mt-2 ml-4",children:[o.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:og.map(([i,c])=>o.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:y(c)},i))}),r.length===0?o.jsx("p",{className:"mt-2 text-[10px] text-oai-gray-400 dark:text-oai-gray-500",children:"—"}):o.jsx("div",{className:"mt-2 overflow-x-auto",children:o.jsxs("div",{role:"table","aria-label":y("dashboard.context_breakdown.exec_details.title"),className:s?"min-w-[420px]":"min-w-[260px]",children:[o.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:[o.jsx("span",{role:"columnheader",children:y("dashboard.context_breakdown.exec_details.kind_column")}),o.jsx("span",{role:"columnheader",className:"text-right",children:y("dashboard.context_breakdown.exec_details.calls_column")}),s&&o.jsxs(o.Fragment,{children:[o.jsx("span",{role:"columnheader",className:"text-right",children:y("dashboard.context_breakdown.exec_details.failures_column")}),o.jsx("span",{role:"columnheader",className:"text-right",children:y("dashboard.context_breakdown.exec_details.duration_column")}),o.jsx("span",{role:"columnheader",className:"text-right",children:y("dashboard.context_breakdown.exec_details.max_duration_column")})]}),o.jsx("span",{role:"columnheader",className:"text-right",children:y("dashboard.context_breakdown.tool_details.total_column")}),s&&o.jsx("span",{role:"columnheader",className:"text-right",children:y("dashboard.context_breakdown.exec_details.output_column")})]}),r.map((i,c)=>o.jsxs(Te.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:[o.jsx("span",{role:"cell",className:"min-w-0 text-body-sm font-medium text-oai-black dark:text-oai-white truncate",children:i.name}),o.jsx("span",{role:"cell",className:"text-right text-body-sm tabular-nums text-oai-gray-700 dark:text-oai-gray-300",children:We(i.calls||0)}),s&&o.jsxs(o.Fragment,{children:[o.jsx("span",{role:"cell",className:"text-right text-body-sm tabular-nums text-oai-gray-700 dark:text-oai-gray-300",children:We(i.failures||0)}),o.jsx("span",{role:"cell",className:"text-right text-body-sm tabular-nums text-oai-gray-700 dark:text-oai-gray-300",children:Xr(i.duration_ms||0)}),o.jsx("span",{role:"cell",className:"text-right text-body-sm tabular-nums text-oai-gray-700 dark:text-oai-gray-300",children:Xr(i.max_duration_ms||0)})]}),o.jsx("span",{role:"cell",className:"text-right text-body-sm tabular-nums text-oai-gray-700 dark:text-oai-gray-300",children:rt(i.totals.total_tokens||0)}),s&&o.jsx("span",{role:"cell",className:"text-right text-body-sm tabular-nums text-oai-gray-700 dark:text-oai-gray-300",children:We(i.output_lines||0)})]},i.name))]})})]})}function on({toolSet:e,execDetails:t,source:n,codexQueueFallback:a}){const[r,s]=m.useState({}),[l,i]=m.useState(!1),c=pg(e?.categories||[]);function d(u){s(f=>({...f,[u]:!f[u]}))}return c.length===0?o.jsx("p",{className:"text-[11px] text-oai-gray-400 dark:text-oai-gray-500 py-0.5",children:n==="codex"&&a?y("dashboard.context_breakdown.tool_details.unavailable_codex"):y(ps(n))}):o.jsx("ul",{className:"mt-0.5 mb-0.5 space-y-0.5",children:c.map(u=>{const f=u.toolCount>0,h=u.name==="Execution"&&t,g=h&&u.tools.some(b=>Qr(b.name)),p=!!r[u.name];return o.jsxs(dt,{level:1,label:u.name,labelTone:"strong",hasChevron:f||h&&!g,open:p||h&&!g&&l,onToggle:()=>{f?d(u.name):h&&!g&&i(b=>!b)},tokens:rt(u.totals.total_tokens||0),percent:null,children:[f&&o.jsx("ul",{className:"space-y-0.5",children:u.tools.map(b=>{const v=h&&Qr(b.name);return o.jsx(dt,{level:2,label:b.name,labelTone:v?"accent":"default",hasChevron:v,open:l,onToggle:()=>i(x=>!x),tokens:rt(b.total_tokens||0),percent:null,children:v&&o.jsx(Jr,{execDetails:t,source:n})},b.name)})}),h&&!g&&o.jsx(Jr,{execDetails:t,source:n})]},u.name)})})}function Mg({from:e,to:t,source:n="claude",referenceTotalTokens:a=null,onLoadingChange:r=null}){const[s,l]=m.useState(null),[i,c]=m.useState(!1),[d,u]=m.useState(null),[f,h]=m.useState({});function g(T){h(E=>({...E,[T]:!E[T]}))}if(m.useEffect(()=>{let T=!1;return c(!0),r?.(!0),u(null),yl({from:e,to:t,source:n,timeZone:Mo(),tzOffsetMinutes:So()}).then(E=>{T||l(E)}).catch(E=>{T||u(E?.message||String(E))}).finally(()=>{T||(c(!1),r?.(!1))}),()=>{T=!0}},[e,t,n]),i&&!s)return o.jsxs("div",{children:[o.jsx("div",{className:"h-1 w-full bg-oai-gray-100 dark:bg-oai-gray-800 rounded-full overflow-hidden animate-pulse"}),o.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(T=>o.jsx("div",{className:"h-3 rounded bg-oai-gray-100 dark:bg-oai-gray-800 animate-pulse",style:{animationDelay:`${T*80}ms`}},T))}),o.jsx("p",{className:"mt-3 text-[11px] text-oai-gray-500 dark:text-oai-gray-400",children:y("dashboard.context_breakdown.loading_hint")})]});if(d)return o.jsx("p",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-400",children:y(_g(n))});if(!s||s.scope!=="supported"||!s.totals?.total_tokens)return o.jsx("p",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-400",children:y(ps(n))});const p=n==="claude"?fg(s.categories||[],a):mg(s,a),b=s.tool_calls_breakdown||null,v=s.skills_breakdown||null,x=s.message_breakdown||null,w=s.configured_resources||null,k=s.exec_command_breakdown||null,j=xg(v?.skills||[]),_=bg(x?.categories||[]),S=n==="codex"&&(s?.breakdown_status==="queue_fallback"||s?.fallback==="queue_totals"),F=n==="claude"?b?.tool_calls||null:b||null,{mcpSet:M,residualSet:C,mcpTotalTokens:$}=hg(F),R=n==="claude"&&b?.subagents||null,H=R?.categories?.length>0||(w?.custom_agents_count||0)>0,D=n==="claude"?(C?.categories||[]).reduce((T,E)=>T+Number(E?.totals?.total_tokens||0),0):0,W=n==="claude"?(R?.categories||[]).reduce((T,E)=>T+Number(E?.totals?.total_tokens||0),0):0,B=[...p].sort((T,E)=>(E.totals?.total_tokens||0)-(T.totals?.total_tokens||0));return o.jsxs("div",{role:"region","aria-label":y("dashboard.context_breakdown.bar_aria",{summary:p.filter(T=>T.percent>0).filter(T=>!(n==="claude"&&(T.key==="tool_calls"||T.key==="custom_agents"))).map(T=>`${Kr(T.key)} ${T.percent}%`).join(",")}),children:[o.jsxs("ul",{className:"space-y-0.5",children:[B.map(T=>{const E=T.key==="system_prompt",X=T.key==="messages",I=T.key==="tool_calls",P=T.key==="custom_agents";if(T.key,n==="claude"&&(I||P))return null;const A=X&&_.length>0||I&&(C?.categories?.length>0||S)||P&&H&&R,G=!!f[T.key],ae=ag(T.key,n),me=o.jsx("span",{className:"h-2 w-2 rounded-sm shrink-0",style:{backgroundColor:ae},"aria-hidden":"true"}),re=E?o.jsxs("span",{className:"relative inline-flex shrink-0 group",children:[o.jsx(To,{size:11,className:"text-oai-gray-400 dark:text-oai-gray-500 cursor-help","aria-hidden":"true"}),o.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:y("dashboard.context_breakdown.system_prefix_tooltip")})]}):null,J=T.percent>0?`${T.percent.toFixed(T.percent<.1&&T.percent>0?2:1)}%`:"0.0%";return o.jsxs(dt,{level:0,colorSquare:me,label:Kr(T.key),labelSuffix:re,tokens:rt(T.totals?.total_tokens||0),percent:J,hasChevron:A,open:G,onToggle:()=>g(T.key),share:T.percent,fillColor:ae,children:[X&&o.jsx("ul",{className:"space-y-0.5",children:_.map(ee=>o.jsx(dt,{level:1,label:kg(ee),tokens:rt(ee.totals.total_tokens||0),percent:null},ee.key||ee.name))}),I&&C&&o.jsx(on,{toolSet:C,execDetails:k,source:n,codexQueueFallback:S}),I&&S&&!C&&o.jsx("p",{className:"text-[11px] text-oai-gray-400 dark:text-oai-gray-500 py-0.5",children:y("dashboard.context_breakdown.tool_details.unavailable_codex")}),P&&R&&o.jsx(on,{toolSet:R,execDetails:null,source:n,codexQueueFallback:!1})]},T.key)}),n==="claude"&&C?.categories?.length>0&&o.jsx(dt,{level:0,colorSquare:o.jsx("span",{className:"h-2 w-2 rounded-sm shrink-0 bg-oai-gray-300 dark:bg-oai-gray-600","aria-hidden":"true"}),label:y("dashboard.context_breakdown.category.tool_calls"),tokens:rt(D),percent:null,hasChevron:!0,open:!!f.tool_calls_aux,onToggle:()=>g("tool_calls_aux"),children:o.jsx(on,{toolSet:C,execDetails:k,source:n,codexQueueFallback:!1})}),n==="claude"&&R?.categories?.length>0&&o.jsx(dt,{level:0,colorSquare:o.jsx("span",{className:"h-2 w-2 rounded-sm shrink-0 bg-oai-gray-300 dark:bg-oai-gray-600","aria-hidden":"true"}),label:y("dashboard.context_breakdown.category.custom_agents"),tokens:rt(W),percent:null,hasChevron:!0,open:!!f.custom_agents_aux,onToggle:()=>g("custom_agents_aux"),children:o.jsx(on,{toolSet:R,execDetails:null,source:n,codexQueueFallback:!1})}),M?.categories?.length>0&&o.jsx(dt,{level:0,colorSquare:o.jsx("span",{className:"h-2 w-2 rounded-sm shrink-0 bg-oai-gray-300 dark:bg-oai-gray-600","aria-hidden":"true"}),label:y("dashboard.context_breakdown.category.mcp_servers"),tokens:rt($),percent:null,hasChevron:!0,open:!!f.mcp_servers,onToggle:()=>g("mcp_servers"),children:o.jsx(on,{toolSet:M,execDetails:null,source:n,codexQueueFallback:!1})}),j.length>0&&o.jsx(dt,{level:0,colorSquare:o.jsx("span",{className:"h-2 w-2 rounded-sm shrink-0 bg-oai-gray-300 dark:bg-oai-gray-600","aria-hidden":"true"}),label:y("dashboard.context_breakdown.category.skills"),tokens:rt(j.reduce((T,E)=>T+(E.total_tokens||0),0)),percent:null,hasChevron:!0,open:!!f.skills,onToggle:()=>g("skills"),children:o.jsx("ul",{className:"space-y-0.5",children:j.slice(0,12).map(T=>o.jsx(dt,{level:1,label:T.name,tokens:rt(T.total_tokens),percent:null},T.name))})})]}),o.jsx("p",{className:"mt-2 text-[10px] text-oai-gray-400 dark:text-oai-gray-500",children:y(Ng(n))}),S?o.jsx("p",{className:"mt-2 text-[11px] text-oai-gray-500 dark:text-oai-gray-400",children:y("dashboard.context_breakdown.tool_details.unavailable_codex")}):null,w?o.jsxs("p",{className:"mt-2 text-[10px] text-oai-gray-400 dark:text-oai-gray-500",children:[We(w.skills_count||0)," skills ·"," ",We(w.mcp_servers_count||0)," MCP servers ·"," ",We(w.custom_agents_count||0)," agents ·"," ",We(w.memory_files_count||0)," memory files"]}):null]})}function bs(e){if(!Number.isFinite(Number(e)))return null;const t=Number(e);return t<=0?null:We(t,{decimals:1})}function xs(e,t,n){const a=Number(e);if(!Number.isFinite(a)||a<=0)return null;const r=$n(t);return(t===_o?a:a*n)<.01?`<${r}0.01`:Qt(a,{decimals:2,currency:t,rate:n})}function jg(e){return Array.isArray(e)?e.map(t=>typeof t=="string"?{key:t,label:Zr(t)}:{key:t.key,label:t.label||Zr(t.key)}):[]}function Dg(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 Cg={CODEX:"#3b82f6",CLAUDE:"#d97757",OPENCODE:"#f59e0b",GEMINI:"#2196f3",KIMI:"#a78bfa","KILO-CLI":"#facc15","KILO-CODE":"#facc15",DROID:"#ef4444"};function da(e,t){const n=e?.toUpperCase?.()||"";return Cg[n]||`hsl(${150+t*40}, 60%, 45%)`}function Tg(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}const Pg={day:"usage.period.day",week:"usage.period.week",month:"usage.period.month",total:"usage.period.total",custom:"usage.period.custom"};function Zr(e){const t=Pg[e];return t?y(t):String(e).toUpperCase()}function Og({loading:e,onClick:t}){const n=Oa();return o.jsx(On,{variant:"secondary",size:"sm",disabled:e,onClick:t,"aria-label":y("usage.button.refresh"),className:"w-8 p-0",children:o.jsx(Te.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 Wg({period:e,periods:t,onPeriodChange:n,summaryValue:a,summaryLabel:r,summaryCostValue:s,onCostInfo:l,fleetData:i=[],onRefresh:c,loading:d,className:u="",customFrom:f,customTo:h,onCustomRangeApply:g,customRangeOpen:p,onCustomRangeOpenChange:b,onOpenShare:v,from:x,to:w}){const k=jg(t),j=gs(No()),_=Dg(String(a??"")),S=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(max-width: 639px)").matches,[F,M]=m.useState(S);m.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const P=window.matchMedia("(max-width: 639px)"),A=G=>M(G.matches);return P.addEventListener("change",A),()=>P.removeEventListener("change",A)},[]);const C=_!=null&&!F,$=m.useRef(null);m.useEffect(()=>{const P=$.current?.querySelector('[aria-selected="true"]');P&&typeof P.scrollIntoView=="function"&&P.scrollIntoView({block:"nearest",inline:"center"})},[e]);const[R,H]=m.useState(null),{resolvedTheme:D}=pl(),{currency:W,rate:B}=Jt(),T=D==="dark",E=T?"rgba(10,10,10,0.98)":"rgba(255,255,255,0.96)",X=T?"rgba(10,10,10,0)":"rgba(255,255,255,0)",I=i.filter(P=>P.models?.length>0);return o.jsxs(Aa,{className:u,children:[o.jsxs("div",{className:"flex items-center gap-2 mb-6",children:[o.jsx("div",{ref:$,role:"tablist","aria-label":y("usage.overview.tablist_aria"),className:"flex flex-1 min-w-0 gap-1 overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:k.map(P=>{const A=e===P.key,G=`shrink-0 whitespace-nowrap text-xs font-medium px-3 py-1.5 rounded-md transition-colors ${A?"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(P.key==="custom"){const ae=A&&f&&h?`${Ur(f,j)} — ${Ur(h,j)}`:P.label;return o.jsxs(ka,{open:p,onOpenChange:me=>{me?n?.("custom"):b?.(me)},children:[o.jsx(wa,{render:o.jsx("button",{role:"tab","aria-selected":A,type:"button",className:G}),children:ae}),o.jsx(va,{children:o.jsx(_a,{sideOffset:8,side:"bottom",align:"start",className:"!z-[9999]",children:o.jsx(Na,{className:"bg-white dark:bg-oai-gray-900 border border-oai-gray-200 dark:border-oai-gray-700 rounded-xl shadow-lg",children:o.jsx(Ma,{from:f,to:h,onApply:g,onCancel:()=>b?.(!1)})})})})]},"custom")}return o.jsx("button",{role:"tab","aria-selected":A,type:"button",className:G,onClick:()=>n?.(P.key),children:P.label},P.key)})}),o.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[v?o.jsxs("button",{type:"button",onClick:v,"aria-label":y("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:[o.jsx(Zl,{className:"h-3.5 w-3.5",strokeWidth:2}),y("share.button.label")]}):null,c&&o.jsx(Og,{loading:d,onClick:c})]})]}),o.jsxs("div",{className:"text-center mb-8",children:[o.jsx("div",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-300 uppercase tracking-wider mb-3",children:r}),o.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:C?o.jsx(uc,{value:_,displayValue:a,fontSize:72,padding:6,gap:1,textColor:"var(--oai-black, #111827)",fontWeight:700,gradientHeight:T?0:8,gradientFrom:E,gradientTo:X,counterStyle:{paddingLeft:0,paddingRight:0,gap:0},digitStyle:{width:"0.88ch"}}):a}),s&&o.jsx("div",{className:"flex items-center justify-center gap-2 mt-4",children:l?o.jsxs("button",{type:"button",onClick:l,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":y("usage.overview.cost_breakdown_aria"),children:[s,o.jsx(To,{size:16,strokeWidth:2,className:"opacity-80"})]}):o.jsx("span",{className:"text-xl font-bold text-oai-brand",children:s})})]}),I.length>0&&o.jsxs("div",{className:"space-y-6",children:[o.jsx("div",{role:"img","aria-label":y("usage.overview.distribution_aria",{items:I.map(P=>y("usage.overview.distribution_item",{label:P.label,percent:P.totalPercent})).join(",")}),className:"h-1.5 w-full bg-oai-gray-100 dark:bg-oai-gray-800 rounded-full overflow-hidden flex",children:I.map((P,A)=>{const G=da(P.label,A);return o.jsx(Te.div,{initial:{width:0},animate:{width:`${P.totalPercent}%`},transition:{duration:.5,delay:.45+A*.04,ease:[.16,1,.3,1]},className:"h-full",style:{backgroundColor:G},title:`${P.label}: ${P.totalPercent}%`},P.label)})}),o.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 xl:grid-cols-5 gap-3",children:I.map((P,A)=>{const G=da(P.label,A),ae=R===P.label;return o.jsxs("button",{"aria-expanded":ae,"aria-controls":`provider-details-${P.label}`,"aria-label":y("usage.overview.provider_card_aria",{provider:P.label,percent:P.totalPercent,tokens:bs(P.usage)||"0",cost:xs(P.usd,W,B)||`${$n(W)}0`,action:y(ae?"usage.overview.collapse":"usage.overview.expand")}),onClick:()=>H(ae?null:P.label),className:`min-w-0 text-left p-3 rounded-lg border transition-colors duration-200 ${ae?"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:[o.jsxs("div",{className:"flex items-center gap-1.5 mb-1",children:[o.jsx(jo,{provider:P.label,size:15,color:G,className:"text-oai-gray-700 dark:text-oai-gray-300 shrink-0"}),o.jsx("span",{className:"text-sm font-medium text-oai-black dark:text-oai-white",children:P.label})]}),o.jsxs("div",{className:"text-lg font-semibold text-oai-black dark:text-oai-white tabular-nums",children:[P.totalPercent,"%"]}),o.jsx("div",{className:"mt-0.5 text-[11px] text-oai-gray-400 dark:text-oai-gray-400 tabular-nums",children:y("usage.overview.model_count",{count:P.models.length})})]},P.label)})}),R&&o.jsx("div",{id:`provider-details-${R}`,role:"region","aria-label":y("usage.overview.model_details_aria",{provider:R}),className:"mt-2",children:I.filter(P=>P.label===R).map(P=>{const A=da(P.label,0),G=Tg(P),ae=[...P.models].sort((re,J)=>(J.share||0)-(re.share||0)),me=G?`${G==="claude"?"Claude":"Codex"} Context Breakdown`:P.label;return o.jsx(Eg,{provider:P,color:A,providerHeading:me,contextSource:G,from:x,to:w,sortedModels:ae},P.label)})})]})]})}function Eg({provider:e,color:t,providerHeading:n,contextSource:a,from:r,to:s,sortedModels:l}){const{currency:i,rate:c}=Jt(),[d,u]=m.useState(!1),f=String(e?.source||e?.label||"").trim().toLowerCase()==="antigravity";return o.jsxs("div",{children:[o.jsxs("div",{className:"flex items-center gap-1.5 mb-3",children:[o.jsx(jo,{provider:e.label,size:14,color:t,className:"shrink-0"}),o.jsx("span",{className:"text-sm font-medium text-oai-black dark:text-oai-white",children:n}),a&&d&&o.jsx(Kl,{size:12,className:"text-oai-gray-400 dark:text-oai-gray-500 animate-spin shrink-0","aria-label":y("dashboard.context_breakdown.loading_aria")})]}),f&&o.jsxs("p",{className:"mb-3 text-[10px] leading-snug text-oai-gray-400 dark:text-oai-gray-500",children:[o.jsxs("span",{className:"font-medium text-oai-gray-500 dark:text-oai-gray-400",children:[y("usage.overview.antigravity_notice_title"),"."]})," ",y("usage.overview.antigravity_notice_body")]}),a?o.jsx("div",{className:"mb-4 pb-4 border-b border-oai-gray-200 dark:border-oai-gray-700",children:o.jsx(Mg,{from:r,to:s,source:a,referenceTotalTokens:e.usage,onLoadingChange:u})}):null,o.jsx("div",{className:"space-y-3",children:l.map(h=>{const g=bs(h.usage),p=xs(h.cost,i,c),b=Math.max(0,Math.min(100,Number(h.share)||0));return o.jsxs("div",{children:[o.jsxs("div",{className:"flex items-baseline gap-4 mb-1.5",children:[o.jsx("span",{className:"flex-1 min-w-0 text-sm text-oai-gray-700 dark:text-oai-gray-300 truncate",title:h.name,children:h.name}),o.jsx("span",{className:"shrink-0 w-16 text-right text-sm text-oai-gray-500 dark:text-oai-gray-400 tabular-nums",children:g}),o.jsx("span",{className:"shrink-0 w-16 text-right text-sm text-oai-gray-500 dark:text-oai-gray-400 tabular-nums",children:p}),o.jsxs("span",{className:"shrink-0 w-12 text-right text-sm text-oai-black dark:text-oai-white tabular-nums",children:[h.share,"%"]})]}),o.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:o.jsx("div",{className:"h-full transition-[width] duration-500 ease-out",style:{width:`${b}%`,backgroundColor:t,opacity:.45}})})]},h.id||h.name)})})]})}function Fg(e){return e==="day"?"hourly":e==="total"?"monthly":"daily"}function Ag(e){return!!e&&!e.missing&&!e.future}function $g(e){const t=e?.billable_total_tokens??e?.total_tokens??e?.value,n=Number(t);return Number.isFinite(n)&&n>=0?n:0}function Ig(e){const t=e?.total_tokens??e?.billable_total_tokens??e?.value,n=Number(t);return Number.isFinite(n)&&n>=0?n:0}function Lg(e){const t=Array.isArray(e)?e.filter(Ag):[];let n=0,a=0,r=0,s=0,l=!1,i=0,c=-1,d=null;for(const u of t){const f=Ig(u),h=$g(u);n+=f,a+=h;const g=Number(u?.conversation_count);Number.isFinite(g)&&g>0&&(r+=g);const p=Number(u?.total_cost_usd);Number.isFinite(p)&&(l=!0,s+=p),h>0&&(i+=1),h>c&&(c=h,d=u)}return{totalTokens:n,billableTokens:a,conversationCount:r,totalCostUsd:l?s:null,bucketCount:t.length,activeBuckets:i,peak:d&&c>0?{value:c,label:d.hour||d.day||d.month||""}:null}}function eo(e){return String(e).padStart(2,"0")}function Rg(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,s,l]=a,c=Number(s)*60+Number(l)+30,d=Math.floor(c/60)%24,u=c%60;return`${r} ${s}:${l}–${eo(d)}:${eo(u)}`}return String(t==="monthly"?e.month||e.label||"":e.day||e.label||"")}function Bg(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 Yg(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 zg=[{period:"day",labelKey:"trend.zoom.gran.30min"},{period:"month",labelKey:"trend.zoom.gran.day"},{period:"total",labelKey:"trend.zoom.gran.month"}],Hg=24,Vt="#10b981";function to(e){return e==="day"?"day":e==="total"?"total":"month"}function ja(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(),s=String(a.getUTCMonth()+1).padStart(2,"0"),l=String(a.getUTCDate()).padStart(2,"0");return`${r}-${s}-${l}`}function Ug(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(),s=String(a.getUTCMonth()+1).padStart(2,"0"),l=String(a.getUTCDate()).padStart(2,"0");return`${r}-${s}-${l}`}function qg(e,t){const n=/^(\d{4})-(\d{2})/.exec(String(e||"")),a=/^(\d{4})-(\d{2})/.exec(String(t||""));if(!n||!a)return Hg;const r=Number(a[1])*12+Number(a[2])-(Number(n[1])*12+Number(n[2]))+1;return Math.max(1,r)}function no(e,t){return t?e==="total"?{from:Ug(t,-23),to:t}:{from:ja(t,-29),to:t}:{from:null,to:null}}function Vg(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 Nn({label:e,value:t,sub:n}){return o.jsxs("div",{className:"flex flex-col gap-1.5 group",children:[o.jsx("span",{className:"text-[9px] font-bold uppercase tracking-widest font-mono text-zinc-400 dark:text-zinc-500",children:e}),o.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?o.jsx("span",{className:"text-[10px] font-bold text-zinc-400 dark:text-zinc-500 font-mono tabular-nums",children:n}):null]})}function Gg({zoomConfig:e,period:t,from:n,to:a,timeZoneLabel:r,onClose:s,renderChart:l}){const{currency:i,rate:c}=Jt(),d=O.useMemo(()=>An({timeZone:e?.timeZone,offsetMinutes:e?.tzOffsetMinutes,date:e?.now||new Date})||a||n||null,[e?.timeZone,e?.tzOffsetMinutes,e?.now,a,n]),[u,f]=O.useState(()=>to(t)),[h,g]=O.useState(d),[p,b]=O.useState(()=>no(to(t),d)),[v,x]=O.useState(!1),[w,k]=O.useState(!1),[j,_]=O.useState(!1),S=d,F=I=>{f(I),I!=="day"&&b(no(I,d))},M=O.useMemo(()=>u==="day"?{from:h,to:h,months:void 0}:u==="total"?{from:void 0,to:p.to,months:qg(p.from,p.to)}:{from:p.from,to:p.to,months:void 0},[u,h,p]),{rows:C,from:$,to:R,loading:H}=Oo({...e,period:u,from:M.from,to:M.to,months:M.months}),D=O.useMemo(()=>Lg(C),[C]),W=O.useCallback(()=>_(!0),[]),B=I=>{I.target===I.currentTarget&&j&&s()};if(O.useEffect(()=>{const I=P=>{P.key==="Escape"&&W()};return window.addEventListener("keydown",I),()=>window.removeEventListener("keydown",I)},[W]),typeof document>"u")return null;const T=u==="day"&&!!h,E=u==="day"&&!!h&&(!S||h<S),X=D.totalCostUsd!=null?Qt(D.totalCostUsd,{currency:i,rate:c}):null;return o.jsxs("div",{onAnimationEnd:B,onClick:I=>{I.target===I.currentTarget&&W()},className:Je("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",j?"animate-tt-fade-out":"animate-tt-fade-in"),children:[o.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
|
-
`}),o.jsxs("div",{className:Je("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",j?"animate-tt-modal-exit":"animate-tt-modal"),children:[o.jsx("button",{type:"button",onClick:W,"aria-label":y("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:o.jsx(vo,{size:16})}),o.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:[o.jsxs("div",{children:[o.jsxs("div",{className:"flex items-center gap-1.5 select-none",children:[o.jsxs("span",{className:"relative flex h-1.5 w-1.5",children:[o.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full opacity-75",style:{backgroundColor:Vt}}),o.jsx("span",{className:"relative inline-flex rounded-full h-1.5 w-1.5",style:{backgroundColor:Vt}})]}),o.jsx("span",{className:"text-[9px] font-extrabold uppercase tracking-widest font-mono text-zinc-400 dark:text-zinc-500",children:y("trend.zoom.badge")})]}),o.jsx("h4",{className:"text-xl font-black text-zinc-900 dark:text-zinc-50 tracking-tight leading-none mt-2 select-none",children:y("trend.monitor.label")}),r?o.jsx("p",{className:"text-[10px] text-zinc-400 dark:text-zinc-500 mt-1.5 font-mono select-none",children:r}):null,o.jsx("p",{className:"text-[11px] leading-relaxed text-zinc-400 dark:text-zinc-500 mt-2 font-normal select-none",children:y("trend.zoom.desc")})]}),o.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:[o.jsx(Nn,{label:y("trend.zoom.stats.tokens"),value:We(D.totalTokens)}),X?o.jsx(Nn,{label:y("trend.zoom.stats.cost"),value:X}):null,o.jsx(Nn,{label:y("trend.zoom.stats.conversations"),value:D.conversationCount.toLocaleString()}),D.peak?o.jsx(Nn,{label:y("trend.zoom.stats.peak"),value:We(D.peak.value),sub:Vg(D.peak.label)}):null]}),o.jsxs("div",{className:"flex flex-col gap-2 select-none",children:[o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx(Wl,{size:11,style:{color:Vt}}),o.jsx("span",{className:"text-[9px] font-extrabold uppercase tracking-widest font-mono",style:{color:Vt},children:y("trend.zoom.insight_badge")})]}),o.jsxs("div",{className:"pl-3.5 border-l-2 relative",style:{borderColor:Vt},children:[o.jsx("div",{className:"absolute inset-y-0 left-0 w-[3px] blur-[2px] opacity-15 pointer-events-none rounded-full",style:{backgroundColor:Vt}}),o.jsx("p",{className:"text-[11px] leading-relaxed text-zinc-600 dark:text-zinc-400 font-normal",children:y(Bg(D),{active:D.activeBuckets,peak:We(D.peak?.value||0)})})]})]})]}),o.jsxs("div",{className:"flex-1 min-w-0 flex flex-col p-5 md:p-6 overflow-y-auto",children:[o.jsxs("div",{className:"flex items-center justify-between gap-3 mb-6 pr-10",children:[o.jsx("div",{role:"tablist","aria-label":y("trend.zoom.gran.aria"),className:"flex rounded-md border border-oai-gray-200 dark:border-oai-gray-800 p-0.5 text-[11px]",children:zg.map(I=>o.jsx("button",{type:"button",role:"tab","aria-selected":u===I.period,onClick:()=>F(I.period),className:Je("px-2.5 py-1 rounded transition-colors",u===I.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:y(I.labelKey)},I.period))}),u==="day"?o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("button",{type:"button",onClick:()=>T&&g(I=>ja(I,-1)),disabled:!T,"aria-label":y("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:o.jsx(Ql,{size:16})}),o.jsxs(ka,{open:v,onOpenChange:x,children:[o.jsx(wa,{"aria-label":y("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:h||"—"}),o.jsx(va,{children:o.jsx(_a,{sideOffset:8,side:"bottom",align:"center",className:"!z-[9999]",children:o.jsx(Na,{className:"bg-white dark:bg-oai-gray-900 border border-oai-gray-200 dark:border-oai-gray-700 rounded-xl shadow-lg",children:o.jsx(Ma,{from:h,to:h,onApply:I=>{I&&g(I),x(!1)},onCancel:()=>x(!1)})})})})]}),o.jsx("button",{type:"button",onClick:()=>E&&g(I=>ja(I,1)),disabled:!E,"aria-label":y("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:o.jsx(Po,{size:16})})]}):o.jsxs(ka,{open:w,onOpenChange:k,children:[o.jsx(wa,{"aria-label":y("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}`:"—"}),o.jsx(va,{children:o.jsx(_a,{sideOffset:8,side:"bottom",align:"end",className:"!z-[9999]",children:o.jsx(Na,{className:"bg-white dark:bg-oai-gray-900 border border-oai-gray-200 dark:border-oai-gray-700 rounded-xl shadow-lg",children:o.jsx(Ma,{from:p.from,to:p.to,onApply:(I,P)=>{I&&b({from:I,to:P||I}),k(!1)},onCancel:()=>k(!1)})})})})]})]}),o.jsx("div",{className:"flex-1 min-h-0 flex flex-col",children:H&&(!C||C.length===0)?o.jsx("div",{className:"flex-1 flex items-center justify-center",children:o.jsx("p",{className:"text-sm text-oai-gray-400 dark:text-oai-gray-400",children:y("trend.zoom.loading")})}):l({rows:C,from:$,to:R,period:u,timeZoneLabel:r})})]})]})]})}function ao(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 s=n-a;return e[a]+(e[r]-e[a])*s}function Kg(e){const t=Array.isArray(e)?e.filter(r=>Number.isFinite(r)&&r>0).sort((r,s)=>r-s):[];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=ao(t,.25),s=ao(t,.75),l=Math.max(s-r,0),i=s+l*1.5;n>i&&(a=Math.max(i,s,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 ro=["#f472b6","#38bdf8","#34d399","#fbbf24","#a78bfa","#fb7185","#2dd4bf","#f97316","#6366f1","#ec4899","#14b8a6","#f59e0b"],ks={Input:"#38bdf8","Cached Input":"#14b8a6",Output:"#a78bfa","Reasoning Output":"#fb7185"},Xg={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 ws(e){const t=e.toLowerCase();for(const[r,s]of Object.entries(Xg))if(t.includes(r))return s;let n=0;for(let r=0;r<e.length;r++)n=e.charCodeAt(r)+((n<<5)-n);const a=Math.abs(n)%ro.length;return ro[a]}function Qg(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 Jg(e,t){return e?.future?"predicted":e?.missing?"unsynced":t>0?"real":"real_zero"}const Zg=.35,oo=2,so=4;function ey({value:e,displayValue:t,scale:n,index:a,row:r,totalBars:s,onMouseEnter:l,onMouseLeave:i}){const c=Oa(),d=Jg(r,e),u=d==="predicted"||d==="unsynced",f=n.effectiveMax>0?t/n.effectiveMax*100:0;let h,g;d==="real"?(h=`${Math.max(f,2)}%`,g=`${so}px`):u&&f>0?(h=`${f}%`,g=`${so}px`):(h=`${oo}px`,g=`${oo}px`);const p=d==="real"?Qg(r):[],b=p.reduce((x,w)=>x+w.value,0),v=d!=="real"||b<=0;return o.jsxs(Te.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:x=>l(x,r,e,p,d,t),onMouseLeave:i,children:[o.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"}),o.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:h,minHeight:g},children:v?o.jsx("div",{"data-trend-bar":"true",className:Je("h-full w-full group-hover:brightness-110 transition-all",d==="real"?"":"bg-oai-gray-100 dark:bg-oai-gray-800"),style:{opacity:u?Zg:1,background:d==="real"?"#10b981":void 0}}):p.map((x,w)=>{const k=x.type==="token_type"?ks[x.name]:ws(x.name),j=`${x.value/b*100}%`;return o.jsx("div",{"data-trend-bar":w===0?"true":void 0,className:"w-full group-hover:brightness-110 transition-all",style:{height:j,background:k}},w)})})]})}function ty(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 io=.98;function ny(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 s=null,l=-1;for(let i=n+1;i<e.length;i++)if(e[i]!==null){s=e[i],l=i;break}if(a!==null&&s!==null){const i=(n-r)/(l-r);t[n]=a+(s-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(io,n-r)}else if(s!==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:s;t[n]=d*Math.pow(io,l-n)}else t[n]=0}return t}function vs({rows:e,from:t,to:n,period:a,timeZoneLabel:r,showTimeZoneLabel:s=!0,className:l="",embedded:i=!1,chartHeightClass:c="h-40",isZoom:d=!1,zoomConfig:u=null}){const f=O.useMemo(()=>Array.isArray(e)&&e.length?e:[],[e]),{rawValues:h,seriesValues:g,scale:p,interpolatedValues:b}=O.useMemo(()=>{const D=f.map(ty),W=D.map(B=>B??0);return{rawValues:D,seriesValues:W,scale:Kg(W),interpolatedValues:ny(D)}},[f]),{currency:v,rate:x}=Jt(),w=Fg(a),[k,j]=O.useState(null),[_,S]=O.useState({x:0,y:0,shiftX:0,flipDown:!1}),[F,M]=O.useState(!1),C=O.useRef(null),$=O.useRef(null),R=(D,W,B,T,E,X)=>{$.current&&(clearTimeout($.current),$.current=null);const I=d?Rg(W,w):W?.day||W?.hour||W?.month||"";j({row:W,value:B,segments:T,timeLabel:I,kind:E,displayValue:X});const P=D.currentTarget.querySelector('[data-trend-bar="true"]'),A=P&&P.parentElement?P.parentElement.getBoundingClientRect():D.currentTarget.getBoundingClientRect(),G=C.current;if(!G)return;const ae=G.getBoundingClientRect(),me=A.left-ae.left+A.width/2,re=A.top-ae.top,J=140;let ee=0;me<J?ee=J-me:me>ae.width-J&&(ee=ae.width-J-me);const be=96+(d?22:0)+(T.length?Math.min(T.length*30+24,174):0),se=re<be+12;S({x:me,y:re,shiftX:ee,flipDown:se})},H=()=>{$.current&&clearTimeout($.current),$.current=setTimeout(()=>{j(null)},150)};return o.jsxs("div",{ref:C,className:Je("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&&o.jsxs("div",{className:"mb-3 flex items-start justify-between gap-2",children:[o.jsxs("div",{children:[o.jsx("h3",{className:"text-sm font-medium text-oai-gray-500 dark:text-oai-gray-300 uppercase tracking-wide",children:y("trend.monitor.label")}),s&&r&&o.jsx("p",{className:"text-xs text-oai-gray-400 dark:text-oai-gray-400 mt-0.5",children:r})]}),u&&o.jsx("button",{type:"button",onClick:()=>M(!0),"aria-label":y("trend.zoom.open_aria"),title:y("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:o.jsx(El,{size:14})})]}),o.jsxs("div",{className:Je("space-y-3",d&&"flex flex-1 flex-col min-h-0 !space-y-0 gap-3"),children:[o.jsxs("div",{className:Je("relative",d&&"flex-1 min-h-0"),children:[o.jsx("div",{className:"absolute inset-0 flex flex-col justify-between pointer-events-none",children:[0,25,50,75,100].map(D=>o.jsx("div",{className:"w-full border-t border-oai-gray-100 dark:border-oai-gray-800",style:{top:`${100-D}%`}},D))}),o.jsx("div",{className:Je("flex items-end gap-0.5 relative z-0",c),children:g.length>0?g.map((D,W)=>{const B=f[W],E=B?.missing||B?.future?Math.min(b[W]??0,p.effectiveMax):p.clippedValues[W]??0;return o.jsx(ey,{value:D,displayValue:E,scale:p,index:W,row:B,totalBars:g.length,onMouseEnter:R,onMouseLeave:H},W)}):o.jsx("div",{className:"flex-1 h-full flex items-center justify-center",children:o.jsx("p",{className:"text-sm text-oai-gray-400 dark:text-oai-gray-400",children:"No data yet"})})})]}),d&&g.length>0&&o.jsx("div",{className:"flex gap-0.5 select-none",children:f.map((D,W)=>{const B=g.length-1,T=Math.max(1,Math.ceil(g.length/8)),E=W%T===0||W===B,X=W===0?"justify-start":W===B?"justify-end":"justify-center";return o.jsx("div",{className:Je("flex-1 min-w-0 flex",X),children:E&&o.jsx("span",{className:"text-[9px] text-oai-gray-400 dark:text-oai-gray-500 whitespace-nowrap font-mono",children:Yg(D,w)})},W)})}),t&&n&&o.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:[o.jsx("span",{children:t===n?`${t} 00:00`:t}),o.jsx("span",{children:t===n?`${n} 24:00`:n})]})]}),k&&o.jsxs("div",{className:"absolute z-[9999] w-0 h-0 transition-all duration-100 ease-out pointer-events-none",style:{left:`${_.x}px`,top:`${_.y}px`},children:[o.jsxs("div",{className:Je("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",_.flipDown?"top-[10px]":"bottom-[10px]"),style:{transform:`translateX(calc(-50% + ${_.shiftX}px))`},children:[o.jsxs("div",{className:"flex items-center justify-between border-b border-oai-gray-100 dark:border-oai-gray-800/80 pb-1.5",children:[o.jsx("span",{className:"text-[11px] font-semibold text-oai-gray-500 dark:text-oai-gray-400",children:k.timeLabel}),k.kind==="predicted"&&o.jsx("span",{className:"text-[9px] font-semibold uppercase tracking-wider text-oai-gray-400 dark:text-oai-gray-500",children:"Predicted"}),k.kind==="unsynced"&&o.jsx("span",{className:"text-[9px] font-semibold uppercase tracking-wider text-oai-gray-400 dark:text-oai-gray-500",children:"Unsynced"})]}),o.jsxs("div",{className:"flex flex-col gap-2",children:[o.jsxs("div",{className:"flex items-baseline gap-1",children:[o.jsx("span",{className:"text-lg font-bold text-oai-gray-900 dark:text-white leading-none",children:k.kind==="predicted"||k.kind==="unsynced"?`~${Math.round(k.displayValue??0).toLocaleString()}`:k.value.toLocaleString()}),o.jsx("span",{className:"text-[10px] text-oai-gray-400 uppercase tracking-wider font-semibold",children:"Tokens"})]}),d&&(k.row?.total_cost_usd!=null||Number(k.row?.conversation_count)>0)&&o.jsxs("div",{className:"flex items-center gap-3 text-[11px] text-oai-gray-500 dark:text-oai-gray-400",children:[k.row?.total_cost_usd!=null&&o.jsxs("span",{children:[o.jsx("span",{className:"font-semibold text-oai-gray-700 dark:text-oai-gray-200",children:Qt(k.row.total_cost_usd,{currency:v,rate:x})})," ",y("trend.zoom.tooltip.cost")]}),Number(k.row?.conversation_count)>0&&o.jsxs("span",{children:[o.jsx("span",{className:"font-semibold text-oai-gray-700 dark:text-oai-gray-200",children:Number(k.row.conversation_count).toLocaleString()})," ",y("trend.zoom.tooltip.conversations")]})]}),k.segments&&k.segments.length>0?o.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:[o.jsx("div",{className:"text-[10px] font-semibold text-oai-gray-400 dark:text-oai-gray-500 uppercase tracking-wider",children:k.segments[0].type==="model"?"Model Breakdown":"Token Breakdown"}),o.jsx("div",{className:"flex flex-col gap-2 max-h-[150px] overflow-y-auto pr-1.5 oai-scrollbar",children:k.segments.map(({name:D,value:W,type:B})=>{const T=k.value||1,E=Math.round(W/T*100),X=B==="token_type"?ks[D]:ws(D);return o.jsxs("div",{className:"flex flex-col gap-1",children:[o.jsxs("div",{className:"flex items-center justify-between text-[11px] gap-3",children:[o.jsx("span",{className:"font-medium text-oai-gray-750 dark:text-oai-gray-200 truncate max-w-[130px]",title:D,children:D}),o.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[o.jsx("span",{className:"font-mono text-oai-gray-900 dark:text-oai-gray-100 font-semibold",children:W.toLocaleString()}),o.jsxs("span",{className:"text-[9px] text-oai-gray-450 dark:text-oai-gray-500 min-w-[28px] text-right font-medium",children:[E,"%"]})]})]}),o.jsx("div",{className:"w-full h-1 bg-oai-gray-100 dark:bg-oai-gray-800/85 rounded-full overflow-hidden",children:o.jsx("div",{className:"h-full rounded-full transition-all duration-300",style:{width:`${E}%`,backgroundColor:X,boxShadow:`0 0 4px ${X}55`}})})]},D)})})]}):null]})]}),o.jsx("div",{className:Je("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",_.flipDown?"top-[6px] border-l border-t":"bottom-[6px] border-r border-b"),style:_.flipDown?{marginTop:"1px"}:{marginBottom:"1px"}})]}),F&&u&&o.jsx(Gg,{zoomConfig:u,period:a,from:t,to:n,timeZoneLabel:r,onClose:()=>M(!1),renderChart:D=>o.jsx(vs,{embedded:!0,isZoom:!0,chartHeightClass:"h-full",...D})})]})}const lo={"idle-living":"idle/living.svg","idle-doze":"idle/doze.svg","idle-follow":"idle/follow.svg","idle-look":"idle/look.svg","idle-yawn":"idle/yawn.svg","idle-collapse":"idle/collapse.svg","working-building":"working/building.svg","working-carrying":"working/carrying.svg","working-conducting":"working/conducting.svg","working-confused":"working/confused.svg","working-debugger":"working/debugger.svg","working-juggling":"working/juggling.svg","working-overheated":"working/overheated.svg","working-pushing":"working/pushing.svg","working-sweeping":"working/sweeping.svg","working-thinking":"working/thinking.svg","working-typing":"working/typing.svg","working-ultrathink":"working/ultrathink.svg","working-wizard":"working/wizard.svg","mini-alert":"mini/alert.svg","mini-crabwalk":"mini/crabwalk.svg","mini-enter":"mini/enter.svg","mini-enter-sleep":"mini/enter-sleep.svg","mini-happy":"mini/happy.svg","mini-idle":"mini/idle.svg","mini-peek":"mini/peek.svg","mini-sleep":"mini/sleep.svg","react-double":"react/double.svg","react-drag":"react/drag.svg","react-left":"react/left.svg","react-right":"react/right.svg","collapse-sleep":"sleep/collapse-sleep.svg",sleeping:"sleep/sleeping.svg",wake:"sleep/wake.svg",disconnected:"status/disconnected.svg",error:"status/error.svg",notification:"status/notification.svg",happy:"happy.svg","static-base":"static-base.svg"},ua=new Map;async function ay(e){if(ua.has(e))return ua.get(e);const t=await fetch(`/clawd/${e}`);if(!t.ok)return null;const a=(await t.text()).replace(/<svg([^>]*)>/,(r,s)=>`<svg${s.replace(/\s+width="[^"]*"/g,"").replace(/\s+height="[^"]*"/g,"")} width="100%" height="100%">`);return ua.set(e,a),a}function ry({state:e="idle-living",size:t=48,className:n=""}){const[a,r]=m.useState(""),s=m.useRef(null),i=oy()?"static-base":e,c=lo[i]||lo["static-base"];return m.useEffect(()=>{let d=!1;return ay(c).then(u=>{!d&&u&&r(u)}),()=>{d=!0}},[c]),m.useEffect(()=>{const d=s.current?.querySelector("svg");if(d)try{const u=d.getBBox();u.width>0&&u.height>0&&d.setAttribute("viewBox",`${u.x-2} ${u.y-2} ${u.width+4} ${u.height+4}`)}catch{}},[a]),o.jsx("div",{ref:s,className:`clawd-animated ${n}`,style:{width:t,height:t,display:"inline-flex",alignItems:"center",justifyContent:"center",overflow:"hidden"},dangerouslySetInnerHTML:{__html:a}})}function oy(){const[e,t]=m.useState(()=>typeof window>"u"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches);return m.useEffect(()=>{const n=window.matchMedia("(prefers-reduced-motion: reduce)"),a=r=>t(r.matches);return n.addEventListener("change",a),()=>n.removeEventListener("change",a)},[]),e}function sy({todayTokens:e=0,isSyncing:t=!1,hasError:n=!1,isDisconnected:a=!1}={}){return m.useMemo(()=>n?"error":a?"disconnected":t?"working-typing":e===0?"sleeping":e<5e4?"idle-living":e<2e5?"idle-look":e<5e5?"working-ultrathink":e<2e6?"working-typing":"working-ultrathink",[e,t,n,a])}const co="macAppBannerDismissed",iy="leaderboardBannerDismissed",ly="https://github.com/mm7894215/TokenTracker/releases/latest",uo="tokentracker_native_app",Sn=(()=>{try{return new URLSearchParams(window.location.search).get("app")==="1"?(localStorage.setItem(uo,"1"),!0):localStorage.getItem(uo)==="1"}catch{return!1}})();function cy({todayTokens:e=0,isSyncing:t=!1,enterDelay:n=0}){const{openLoginModal:a}=bl(),{signedIn:r}=Do(),s=sy({todayTokens:e,isSyncing:t}),l=Sn?iy:co,[i,c]=m.useState(()=>{try{return localStorage.getItem(l)==="1"?!0:!Sn&&new URLSearchParams(window.location.search).get("from")==="menubar"?(localStorage.setItem(co,"1"),!0):!1}catch{return!1}}),d=m.useCallback(()=>{c(!0);try{localStorage.setItem(l,"1")}catch{}},[l]);if(i)return null;let u,f,h,g,p,b;Sn&&r?(u="View the Leaderboard",f="Compare your usage globally",h="Leaderboard",g=o.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"opacity-70",children:o.jsx("path",{d:"M2 8.5V10h8V8.5M6 1.5v6m0 0L3.5 5M6 7.5l2.5-2.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",transform:"rotate(180 6 6)"})}),p=()=>{window.location.pathname="/leaderboard"}):Sn?(u="Join the Leaderboard",f="Log in to compare your usage with others",h="Log In",g=o.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"opacity-70",children:o.jsx("path",{d:"M6.5 1.5h3a1 1 0 011 1v7a1 1 0 01-1 1h-3M5 8.5L7.5 6 5 3.5M7.5 6H1.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round"})}),p=a):(u="Try the Menu Bar App",f="Always-on stats with Clawd companion",h="Download",g=o.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"opacity-70",children:o.jsx("path",{d:"M6 2v6m0 0L3.5 5.5M6 8l2.5-2.5M2 10h8",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round"})}),b=ly);const v=b?Te.a:Te.button,x=b?{href:b,target:"_blank",rel:"noopener noreferrer"}:{onClick:p};return o.jsx(Te.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{duration:.35,delay:n,ease:[.16,1,.3,1]},className:"rounded-xl border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-900 p-4",children:o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("div",{className:"flex-shrink-0",children:o.jsx(ry,{state:s,size:56})}),o.jsxs("div",{className:"flex-1 min-w-0",children:[o.jsx("div",{className:"text-sm font-medium text-oai-gray-900 dark:text-oai-white",children:u}),o.jsx("div",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-400 mt-0.5",children:f})]}),o.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[o.jsxs(v,{...x,whileHover:{scale:1.03},whileTap:{scale:.97},className:"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium text-white bg-oai-gray-900 dark:bg-oai-white dark:text-oai-gray-900 rounded-md hover:opacity-90 transition-opacity",children:[h,g]}),o.jsx("button",{onClick:d,className:"p-1 text-oai-gray-400 hover:text-oai-gray-600 dark:hover:text-oai-gray-300 transition-colors","aria-label":"Dismiss",children:o.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:o.jsx("path",{d:"M4 4l6 6m0-6L4 10",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})})})]})]})})}const fo="widgetOnboardingDismissed",mo="tokentracker_native_app",dy=(()=>{try{return new URLSearchParams(window.location.search).get("app")==="1"?(localStorage.setItem(mo,"1"),!0):localStorage.getItem(mo)==="1"}catch{return!1}})();function uy({enterDelay:e=0}){const[t,n]=m.useState(()=>{try{return localStorage.getItem(fo)==="1"}catch{return!1}}),a=m.useCallback(()=>{n(!0);try{localStorage.setItem(fo,"1")}catch{}},[]);return!dy||xl()?null:o.jsx(Fa,{initial:!1,children:!t&&o.jsxs(Te.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:[o.jsx("button",{type:"button",onClick:a,"aria-label":y("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:o.jsx("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none","aria-hidden":"true",children:o.jsx("path",{d:"M4 4l6 6m0-6L4 10",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round"})})}),o.jsx("div",{className:"rounded-lg overflow-hidden ring-1 ring-black/5 dark:ring-white/10 shadow-sm",children:o.jsx("img",{src:"/widgets-overview.png",alt:y("dashboard.widgets.title"),width:734,height:552,className:"w-full h-auto block",loading:"lazy",decoding:"async"})}),o.jsxs("div",{className:"mt-4",children:[o.jsx("div",{className:"text-sm font-medium tracking-tight text-oai-gray-900 dark:text-oai-white",children:y("dashboard.widgets.title")}),o.jsx("div",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-400 mt-1 leading-snug",children:y("dashboard.widgets.hint")})]})]},"widget-onboarding-card")})}const fy=Gl.slice(0,10);function ho({title:e,subtitle:t,desc:n,loginCard:a,copy:r}){return o.jsxs("div",{className:"min-h-[85vh] w-full flex items-center justify-center text-oai-black dark:text-white relative overflow-hidden px-4 md:px-8 py-8 md:py-16 transition-colors duration-200 bg-[linear-gradient(to_right,#80808007_1px,transparent_1px),linear-gradient(to_bottom,#80808007_1px,transparent_1px)] bg-[size:40px_40px]",children:[o.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(circle_at_50%_0%,rgba(59,130,246,0.03),transparent_50%)] dark:bg-[radial-gradient(circle_at_50%_0%,rgba(99,102,241,0.05),transparent_50%)] pointer-events-none"}),o.jsxs("div",{className:"w-full max-w-5xl grid grid-cols-1 lg:grid-cols-12 gap-8 lg:gap-16 items-start relative z-10",children:[o.jsxs("div",{className:"lg:col-span-7 flex flex-col justify-center space-y-8 text-left pr-0 lg:pr-6",children:[o.jsxs("div",{className:"flex items-center gap-2.5",children:[o.jsx("img",{src:"/app-icon.png",alt:"",width:32,height:32,className:"rounded-md shadow-md border border-oai-gray-200/50 dark:border-oai-gray-800 shadow-black/10 dark:shadow-black/30"}),o.jsx("span",{className:"text-xl font-bold tracking-tight bg-gradient-to-r from-oai-black to-oai-gray-600 dark:from-white dark:to-oai-gray-400 bg-clip-text text-transparent font-oai",children:r("shared.app_name")})]}),o.jsxs("div",{className:"space-y-5",children:[o.jsxs("div",{className:"space-y-4",children:[o.jsx("h1",{className:"text-3xl md:text-4xl lg:text-4.5xl font-black tracking-tight leading-[1.15] text-oai-black dark:text-white",children:e}),o.jsx("p",{className:"text-oai-gray-500 dark:text-oai-gray-400 text-sm md:text-base max-w-xl leading-relaxed",children:n})]}),o.jsx("div",{className:"w-full max-w-[280px] sm:max-w-md opacity-85 hover:opacity-100 transition-opacity duration-200",children:o.jsx("div",{className:"flex justify-start",children:o.jsx(Vl,{logos:fy,columnCount:6})})})]})]}),o.jsx("div",{className:"lg:col-span-5 flex justify-center",children:o.jsxs(Te.div,{initial:{opacity:0,x:20},animate:{opacity:1,x:0},transition:{duration:.3},className:"w-full max-w-[400px] rounded-2xl border border-oai-gray-200/80 dark:border-oai-gray-800 bg-white/70 dark:bg-oai-gray-950/40 backdrop-blur-md shadow-2xl p-1 relative overflow-hidden",children:[o.jsx("div",{className:"absolute -inset-px bg-gradient-to-b from-white/10 dark:from-white/5 to-transparent pointer-events-none rounded-2xl"}),a]})})]})]})}function my(e){const{copy:t,onOpenShare:n,screenshotMode:a,showExpiredGate:r,showAuthGate:s,screenshotTitleLine1:l,screenshotTitleLine2:i,identityDisplayName:c,identityStartDate:d,activeDays:u,identitySubscriptions:f,identityScrambleDurationMs:h,projectUsageEntries:g,projectUsageLimit:p,setProjectUsageLimit:b,topModels:v,signedIn:x,publicMode:w,isLocalMode:k,shouldShowInstall:j,installPrompt:_,handleCopyInstall:S,installCopied:F,installInitCmdDisplay:M,trendRowsForDisplay:C,trendFromForDisplay:$,trendToForDisplay:R,trendZoomConfig:H,usageFrom:D,usageTo:W,period:B,trendTimeZoneLabel:T,activityHeatmapBlock:E,isCapturing:X,handleShareToX:I,screenshotTwitterButton:P,screenshotTwitterHint:A,periodsForDisplay:G,setSelectedPeriod:ae,customFrom:me,customTo:re,onCustomRangeApply:J,customRangeOpen:ee,onCustomRangeOpenChange:be,summaryLabel:se,summaryValue:K,summaryTotalTokensRaw:V,summaryCostValue:te,summaryConversationsValue:xe,rollingUsage:ue,costInfoEnabled:ce,openCostModal:fe,costModalOpen:ie,closeCostModal:pe,allowBreakdownToggle:Pe,refreshAll:Fe,usageLoadingState:vt,fleetData:Ie,hasDetailsActual:He,dailyEmptyPrefix:Le,installSyncCmd:Ae,dailyEmptySuffix:_t,detailsColumns:Se,ariaSortFor:Me,toggleSort:$e,sortIconFor:Ue,pagedDetails:Nt,dailyBreakdownRows:mt,dailyBreakdownColumns:qe,dailyBreakdownAriaSortFor:Zt,dailyBreakdownSortIconFor:tt,dailyBreakdownDateKey:en,detailsDateKey:Lt,renderDetailDate:ht,renderDailyBreakdownDate:L,renderDetailCell:oe,DETAILS_PAGED_PERIODS:z,detailsPageCount:Z,detailsPage:je,setDetailsPage:ne}=e,tn=null,St=null,gt=.06,Mt=.05,Ve=.11;let gn=0;const Oe=()=>Ve+gt*gn++,De=Ve+gt*5;return o.jsxs(o.Fragment,{children:[o.jsxs(tc,{bare:!a,hideHeader:a,header:tn,footer:a?null:St,className:a?"screenshot-mode":"",children:[s&&o.jsx(ho,{title:t("dashboard.auth_gate.hero_title"),desc:t("dashboard.auth_gate.desc"),copy:t,loginCard:o.jsx(vr,{title:t("dashboard.auth_gate.title"),subtitle:t("dashboard.auth_gate.subtitle"),hideLogo:!0,className:"bg-transparent rounded-xl"})}),r&&o.jsx(ho,{title:t("dashboard.expired_gate.hero_title"),desc:t("dashboard.expired_gate.desc"),copy:t,loginCard:o.jsx(vr,{title:t("dashboard.expired_gate.title"),subtitle:t("dashboard.expired_gate.subtitle"),hideLogo:!0,className:"bg-transparent rounded-xl"})}),!s&&!r&&o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-12 gap-4",children:[o.jsxs("div",{className:"lg:col-span-4 flex flex-col gap-4 min-w-0 order-2 lg:order-1",children:[a?o.jsx("div",{className:"flex items-start justify-between gap-4",children:o.jsxs("div",{className:"flex flex-col gap-1",children:[o.jsx("span",{className:"text-3xl md:text-4xl font-semibold text-oai-black dark:text-oai-white tracking-tight leading-none",children:l}),o.jsx("span",{className:"text-2xl md:text-3xl font-semibold text-oai-black dark:text-oai-white tracking-tight leading-none",children:i})]})}):null,k?o.jsx(cy,{todayTokens:V,isSyncing:vt,enterDelay:Oe()}):null,o.jsx(Ht,{delay:Oe(),children:o.jsx(Vc,{title:t("dashboard.identity.title"),subtitle:t("dashboard.identity.subtitle"),period:B,rankLabel:d??t("identity_card.rank_placeholder"),streakDays:u,subscriptions:f,periodConversations:xe,rolling:ue,topModels:v})}),k?o.jsx(uy,{enterDelay:Oe()}):null,j?o.jsx(Ht,{delay:Oe(),children:o.jsxs("div",{className:"rounded-xl border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-900 p-3",children:[o.jsx("div",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-300 mb-1.5",children:_}),o.jsxs(Te.button,{onClick:S,whileHover:{scale:1.01},whileTap:{scale:.99},className:"w-full flex items-center justify-between px-3 py-2 bg-oai-gray-50 dark:bg-oai-gray-800 hover:bg-oai-gray-100 dark:hover:bg-oai-gray-700 rounded-lg transition-colors",children:[o.jsx("code",{className:"text-xs font-mono text-oai-gray-700 dark:text-oai-gray-300",children:M}),o.jsx(Te.span,{initial:{opacity:0,y:-5},animate:{opacity:1,y:0},className:"text-xs text-oai-brand",children:F?"Copied ✓":"Copy"},F?"copied":"copy")]})]})}):null,E&&o.jsx(Ht,{delay:Oe(),children:E}),a?null:o.jsx(Ht,{delay:Oe(),children:o.jsx(vs,{rows:C,from:$,to:R,period:B,timeZoneLabel:T,showTimeZoneLabel:!1,zoomConfig:H})}),a?o.jsxs("div",{className:"mt-4 flex flex-col items-center gap-2","data-screenshot-exclude":"true",style:X?{display:"none"}:void 0,children:[o.jsx(On,{type:"button",onClick:I,variant:"primary",size:"lg",disabled:X,children:P}),o.jsx("span",{className:"text-sm text-oai-gray-500 dark:text-oai-gray-300",children:A})]}):null]}),o.jsxs("div",{className:"lg:col-span-8 flex flex-col gap-4 min-w-0 order-1 lg:order-2",children:[o.jsx(Ht,{delay:Mt,children:o.jsx(Wg,{period:B,periods:G,onPeriodChange:ae,summaryLabel:se,summaryValue:K,summaryCostValue:te,onCostInfo:ce?fe:null,fleetData:Ie,onRefresh:a?null:Fe,loading:vt,onOpenShare:a?null:n,customFrom:me,customTo:re,onCustomRangeApply:J,customRangeOpen:ee,onCustomRangeOpenChange:be,from:D,to:W})}),a?null:o.jsx(Ht,{delay:De,children:o.jsx(Uc,{projectEntries:g,projectLimit:p,onProjectLimitChange:b,copy:t,hasDetailsActual:He,dailyEmptyPrefix:Le,installSyncCmd:Ae,dailyEmptySuffix:_t,detailsColumns:Se,ariaSortFor:Me,toggleSort:$e,sortIconFor:Ue,pagedDetails:Nt,dailyBreakdownRows:mt,dailyBreakdownColumns:qe,dailyBreakdownAriaSortFor:Zt,dailyBreakdownSortIconFor:tt,dailyBreakdownDateKey:en,detailsDateKey:Lt,renderDetailDate:ht,renderDailyBreakdownDate:L,renderDetailCell:oe,DETAILS_PAGED_PERIODS:z,period:B,detailsPageCount:Z,detailsPage:je,setDetailsPage:ne})})]})]})]}),o.jsx(Hc,{isOpen:ie,onClose:pe,fleetData:Ie})]})}function _s(){return typeof window>"u"?!1:!!window?.webkit?.messageHandlers?.nativeBridge}const Ft=new Map,At=new Map;function Ns(){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||!Ft.has(n))return;const a=Ft.get(n);Ft.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||!At.has(n))return;const a=At.get(n);At.delete(n),a({ok:!!t.ok,error:typeof t.error=="string"?t.error:void 0})}))}async function hy(e){if(!_s()||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"};Ns();const n=`copy_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return new Promise(a=>{const r=window.setTimeout(()=>{At.has(n)&&(At.delete(n),a({ok:!1,error:"timeout"}))},8e3);At.set(n,s=>{window.clearTimeout(r),a(s)});try{t.postMessage({type:"action",name:"copyImageToClipboard",requestId:n,dataUrl:e})}catch(s){At.delete(n),window.clearTimeout(r),a({ok:!1,error:s?.message||String(s)})}})}async function go(e,t){if(!_s()||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"};Ns();const a=`save_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;return new Promise(r=>{const s=window.setTimeout(()=>{Ft.has(a)&&(Ft.delete(a),r({ok:!1,error:"timeout"}))},8e3);Ft.set(a,l=>{window.clearTimeout(s),r(l)});try{n.postMessage({type:"action",name:"saveImageToDownloads",requestId:a,filename:t,dataUrl:e})}catch(l){Ft.delete(a),window.clearTimeout(s),r({ok:!1,error:l?.message||String(l)})}})}const Ss=1200,Ms=1630,js={broadsheet:{width:1200,height:1630},"annual-report":{width:1080,height:1865}},gy="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 fa=!1;function yy(){if(typeof document>"u"||fa)return;if(document.querySelector('link[data-share-card-fonts="true"]')){fa=!0;return}const t=document.createElement("link");t.rel="stylesheet",t.href=gy,t.dataset.shareCardFonts="true",t.crossOrigin="anonymous",document.head.appendChild(t),fa=!0}async function py(){if(typeof document>"u")return;const e=document.fonts;if(!(!e||typeof e.ready?.then!="function"))try{await e.ready}catch{}}async function by(e,t={}){if(typeof window>"u"||!e)return null;yy(),await py(),await new Promise(c=>requestAnimationFrame(()=>c(null)));const{toBlob:n,toPng:a}=await Co(async()=>{const{toBlob:c,toPng:d}=await import("./index-BeoRn2gJ.js");return{toBlob:c,toPng:d}},[]),r=t.pixelRatio??2,s=e.offsetWidth||Ss,l=e.offsetHeight||Ms,i={pixelRatio:r,cacheBust:!0,width:s,height:l,style:{width:`${s}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 ma(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 yo(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 Da(e){const t=Ye(e);return Number.isFinite(t)?t:0}function xy(e){return e?Da(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(s=>(Array.isArray(s)?s:[]).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 wy(e){const{handle:t,startDate:n,activeDays:a,summary:r,topModels:s,rank:l,period:i,periodFrom:c,periodTo:d,heatmap:u,capturedAt:f,currency:h,exchangeRate:g}=e,p=xy(r),b=Da(r?.total_cost_usd),v=Array.isArray(s)?s.slice(0,3).map(w=>({id:w?.id??null,name:typeof w?.name=="string"&&w.name?w.name:"—",tokens:Da(w?.tokens),percent:typeof w?.percent=="string"&&w.percent?w.percent:"0.0"})):[],x=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:v,rank:typeof l=="number"&&Number.isFinite(l)&&l>0?Math.floor(l):null,heatmapWeeks:x.weeks,heatmapTotalDays:x.totalDays,heatmapActiveDays:x.activeDays,capturedAt:f||new Date().toISOString(),currency:typeof h=="string"&&h.length>0?h.toUpperCase():"USD",exchangeRate:Number.isFinite(g)&&g>0?g:1}}const vy=["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 _y(e){const t=vy[e];return t?y(t):"—"}function Ds(e,t){return y("share.date.month_year",{month:_y(e),year:t})}function Ny(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:Ds(r,n)}function Sy(e){if(e.period==="total")return y("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 Ds(t.getUTCMonth(),t.getUTCFullYear())}return y(`usage.period.${e.period}`)}function Ca(e){return Number.isFinite(e)?Math.round(e).toLocaleString("en-US"):"—"}function Cs(e,t={}){const{currency:n="USD",rate:a=1}=t,r=$n(n);if(!Number.isFinite(e)||e<=0)return`${r}0.00`;const s=n!=="USD"&&Number.isFinite(a)&&a>0?e*a:e;return s>=1e3?`${r}${Math.round(s).toLocaleString("en-US")}`:`${r}${s.toFixed(2)}`}function My(e){const t=e.topModels[0];if(t){const n=parseFloat(t.percent);return Number.isFinite(n)&&n>=60?y("share.hook.top_loyal",{percent:Math.round(n),name:t.name}):e.activeDays>=60?y("share.hook.days_record",{days:e.activeDays}):Number.isFinite(n)&&n>=30?y("share.hook.top_led",{name:t.name,percent:Math.round(n)}):e.topModels.length>1?y("share.hook.multi_models",{count:e.topModels.length,days:e.activeDays}):y("share.hook.days_with_model",{days:e.activeDays,name:t.name})}return e.activeDays>0?y("share.hook.days_record",{days:e.activeDays}):y("share.hook.new_chapter")}function jy(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 Dy(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 Cy({weeks:e,palette:t,width:n,gap:a=3,radius:r=2,emptyColor:s}){if(!Array.isArray(e)||e.length===0||!n||n<=0)return null;const l=t||["#eee","#ccc","#999","#666","#333"],i=s||l[0],c=e.length,d=(c-1)*a,u=Math.max(4,(n-d)/c),f=7*u+6*a;return o.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((h,g)=>(Array.isArray(h)?h:[]).map((b,v)=>{if(v>=7)return null;const x=Dy(b),w=g*(u+a),k=v*(u+a),j=x===null?i:l[x];return o.jsx("rect",{x:w,y:k,width:u,height:u,rx:r,ry:r,fill:j},`${g}-${v}`)}))})}const Ty="oklch(0.97 0.01 85)",Re="oklch(0.18 0.02 85)",bt="oklch(0.38 0.015 85)",po="oklch(0.55 0.012 85)",Tt="oklch(0.55 0.22 25)",Pt='"Instrument Serif", "Times New Roman", Georgia, serif',Py='"Inter Tight", "Helvetica Neue", Arial, sans-serif',Oy=["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 Ts({data:e}){const t=Sy(e),n=Ca(e.totalTokens),a=Cs(e.totalCost,{currency:e.currency,rate:e.exchangeRate}),r=Ny(e.startDate),s=jy(n,{baseSize:188,baseChars:9,shrinkPerChar:14,minSize:104}),l=My(e),i=Array.isArray(e.heatmapWeeks)&&e.heatmapWeeks.length>0;return o.jsxs("div",{style:{width:"100%",height:"100%",background:Ty,color:Re,fontFamily:Py,padding:"80px 88px 68px 88px",boxSizing:"border-box",display:"flex",flexDirection:"column",position:"relative"},children:[o.jsxs("header",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:24,paddingBottom:14,borderBottom:`1px solid ${po}`},children:[o.jsxs("div",{style:{display:"flex",alignItems:"center",gap:14,fontSize:14,fontWeight:500,letterSpacing:"0.22em",textTransform:"uppercase",color:Re},children:[o.jsx("div",{style:{width:10,height:10,borderRadius:"50%",background:Tt}}),"The Token Tracker"]}),o.jsxs("div",{style:{fontSize:12,letterSpacing:"0.22em",textTransform:"uppercase",color:bt,textAlign:"right"},children:[y("share.card.broadsheet.issue")," № ",t]})]}),o.jsxs("div",{style:{marginTop:24,display:"flex",justifyContent:"space-between",alignItems:"flex-end",gap:24},children:[o.jsxs("div",{children:[o.jsx("div",{style:{fontSize:12,letterSpacing:"0.2em",textTransform:"uppercase",color:bt,marginBottom:6},children:y("share.card.broadsheet.by")}),o.jsx("div",{style:{fontFamily:Pt,fontSize:52,fontStyle:"italic",lineHeight:1,color:Re,letterSpacing:"-0.01em"},children:e.handle})]}),o.jsxs("div",{style:{fontSize:12,letterSpacing:"0.18em",textTransform:"uppercase",color:bt,textAlign:"right",lineHeight:1.6},children:[y("share.card.broadsheet.tracked_since"),o.jsx("br",{}),o.jsx("span",{style:{color:Re},children:r})]})]}),o.jsxs("div",{style:{marginTop:40,display:"flex",flexDirection:"column"},children:[o.jsx("div",{style:{fontSize:13,letterSpacing:"0.3em",textTransform:"uppercase",color:Tt,marginBottom:10},children:y("share.card.broadsheet.total_tokens")}),o.jsx("div",{style:{fontFamily:Pt,fontSize:s,fontWeight:400,lineHeight:.86,letterSpacing:"-0.032em",color:Re,fontFeatureSettings:'"lnum" 1, "tnum" 1',whiteSpace:"nowrap",overflow:"hidden"},children:n}),o.jsxs("div",{style:{marginTop:14,fontFamily:Pt,fontStyle:"italic",fontSize:34,lineHeight:1.15,color:Re,letterSpacing:"-0.005em",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:["“",l,"”"]}),o.jsx("div",{style:{marginTop:14,height:1,background:Tt,width:"100%"}}),o.jsxs("div",{style:{marginTop:10,display:"flex",justifyContent:"space-between",fontSize:13,letterSpacing:"0.16em",textTransform:"uppercase",color:bt},children:[o.jsxs("span",{children:[y("share.card.broadsheet.estimated_spend")," · ",a]}),o.jsx("span",{children:y("share.card.broadsheet.billable_days",{days:e.activeDays})})]})]}),i?o.jsxs("section",{style:{marginTop:40},children:[o.jsxs("div",{style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",marginBottom:12},children:[o.jsx("div",{style:{fontSize:12,letterSpacing:"0.3em",textTransform:"uppercase",color:Re,fontWeight:600},children:y("share.card.broadsheet.heatmap_title")}),o.jsx("div",{style:{fontSize:11,letterSpacing:"0.18em",textTransform:"uppercase",color:bt},children:y("share.card.broadsheet.heatmap_days_on_record",{active:e.heatmapActiveDays,total:e.heatmapTotalDays})})]}),o.jsx(Cy,{weeks:e.heatmapWeeks,palette:Oy,width:1024,gap:3,radius:2})]}):null,o.jsxs("section",{style:{marginTop:30,flex:1},children:[o.jsxs("div",{style:{display:"flex",alignItems:"baseline",justifyContent:"space-between",borderBottom:`1px solid ${Re}`,paddingBottom:10,marginBottom:6},children:[o.jsx("div",{style:{fontSize:12,letterSpacing:"0.3em",textTransform:"uppercase",color:Re,fontWeight:600},children:y("share.card.broadsheet.roster_title")}),o.jsx("div",{style:{fontSize:11,letterSpacing:"0.18em",textTransform:"uppercase",color:bt},children:y("share.card.broadsheet.roster_subtitle")})]}),e.topModels.length===0?o.jsx("div",{style:{fontFamily:Pt,fontStyle:"italic",fontSize:26,color:bt,paddingTop:14},children:y("share.card.broadsheet.empty")}):e.topModels.map((c,d)=>o.jsxs("div",{style:{display:"grid",gridTemplateColumns:"52px 1fr auto 68px",alignItems:"baseline",gap:16,padding:"13px 0",borderBottom:`1px solid ${po}`},children:[o.jsx("div",{style:{fontFamily:Pt,fontSize:34,fontStyle:"italic",color:Tt,lineHeight:1},children:String(d+1).padStart(2,"0")}),o.jsx("div",{style:{fontFamily:Pt,fontSize:32,color:Re,lineHeight:1.1,letterSpacing:"-0.01em",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:c.name}),o.jsx("div",{style:{fontFamily:Pt,fontSize:28,color:Re,fontFeatureSettings:'"lnum" 1, "tnum" 1',whiteSpace:"nowrap"},children:Ca(c.tokens)}),o.jsxs("div",{style:{fontSize:13,letterSpacing:"0.1em",color:bt,textAlign:"right",fontFeatureSettings:'"tnum" 1'},children:[c.percent,"%"]})]},c.id||c.name))]}),o.jsxs("footer",{style:{marginTop:18,paddingTop:12,borderTop:`1px solid ${Re}`,display:"flex",justifyContent:"space-between",alignItems:"center",fontSize:12,letterSpacing:"0.22em",textTransform:"uppercase",color:Re},children:[o.jsxs("div",{style:{display:"flex",gap:28},children:[o.jsxs("span",{children:[y("share.card.broadsheet.global_rank")," ",o.jsxs("span",{style:{color:Tt},children:["№ ",e.rank!=null?e.rank:"—"]})]}),o.jsxs("span",{children:[y("share.card.broadsheet.active_days")," ",o.jsx("span",{style:{color:Tt},children:y("share.card.broadsheet.days_count",{days:e.activeDays})})]})]}),o.jsxs("div",{children:[y("share.card.broadsheet.track_yours")," ",o.jsx("span",{style:{color:Tt},children:"→ tokentracker.cc"})]})]})]})}const Wy=js["annual-report"].width,Ey="#0a0820",xt="#ffffffee",Wt="rgba(255,255,255,0.45)",ha="#a78bfa",Fy={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(", ")},Mn={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"},Ta='"Space Grotesk", "Inter Tight", sans-serif',ga='"Inter Tight", sans-serif',Ay="rgba(255,255,255,0.06)",Ps=[Ay,"#4a3d8f","#6b5cbe","#9060e0","#d946ef"],Os=48,Ws=28,En=4,Es=20,$y=Wy-Os*2-Ws*2,Iy=($y-Es*2)/3,Pa=Math.min(Math.floor((Iy-En*6)/7),40),Ly=Pa*7+En*6;function Ry(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),s=n(.9),l=i=>!i||i<=0?0:i<=a?1:i<=r?2:i<=s?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 By(e){if(!Array.isArray(e))return[];const t={},n=Ry(e);for(const a of n)if(Array.isArray(a))for(const r of a){if(!r?.day||r.future)continue;const s=r.day.split("-");if(s.length<2)continue;const l=`${s[0]}-${s[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 Yy(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 s=r[r.length-1];for(;s&&s.length<7;)s.push(null);return r.slice(0,6)}const zy=["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Hy(e){if(!Array.isArray(e))return 0;const t=[];for(const r of e)if(Array.isArray(r))for(const s of r)s?.day&&!s.future&&t.push(s);t.sort((r,s)=>r.day.localeCompare(s.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 bo(e){const[t,n]=m.useState(null);return m.useEffect(()=>{if(!e){n(null);return}let a=!1;const r=new Image;return r.crossOrigin="anonymous",r.onload=()=>{if(!a)try{const s=document.createElement("canvas");s.width=r.naturalWidth,s.height=r.naturalHeight,s.getContext("2d").drawImage(r,0,0),n(s.toDataURL("image/png"))}catch{n(null)}},r.onerror=()=>{a||n(null)},r.src=e,()=>{a=!0}},[e]),t}function Uy({data:e}){const t=Yy(e.cells);return o.jsxs("div",{children:[o.jsx("div",{style:{fontSize:16,fontWeight:600,color:Wt,fontFamily:Ta,marginBottom:4},children:zy[e.month]}),o.jsx("div",{style:{display:"flex",flexDirection:"column",gap:En},children:t.map((n,a)=>o.jsx("div",{style:{display:"flex",gap:En},children:n.map((r,s)=>{const l=r?Math.min(4,Math.max(0,r.level||0)):-1;return o.jsx("div",{style:{width:Pa,height:Pa,borderRadius:4,background:l<0?"transparent":Ps[l]}},s)})},a))})]})}function qy({data:e}){const t=By(e.heatmapWeeks),n=Hy(e.heatmapWeeks),a=e.topModels[0],r=e.avatarUrl||null,s=bo(r),l=bo("/neon_bg.png"),i=(e.handle||"?")[0].toUpperCase(),c=16;return o.jsxs("div",{style:{width:"100%",height:"100%",background:Ey,fontFamily:Ta,position:"relative",overflow:"hidden",boxSizing:"border-box"},children:[o.jsx("img",{src:l||"/neon_bg.png",alt:"",style:{position:"absolute",inset:0,width:"100%",height:"100%",objectFit:"cover",pointerEvents:"none"}}),o.jsxs("div",{style:{position:"relative",zIndex:1,display:"flex",flexDirection:"column",height:"100%",padding:Os,boxSizing:"border-box"},children:[o.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:c*3},children:[o.jsxs("div",{style:{display:"flex",alignItems:"center",gap:16},children:[o.jsx("img",{src:"/app-icon.png",alt:"",width:64,height:64,style:{width:64,height:64,borderRadius:16,display:"block"}}),o.jsxs("div",{children:[o.jsx("div",{style:{fontSize:20,fontWeight:500,color:Wt,lineHeight:1.2},children:"Token Tracker"}),o.jsx("div",{style:{fontSize:36,fontWeight:700,lineHeight:1.15,color:xt},children:y("share.card.annual.report_title")})]})]}),o.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10},children:[o.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:s?o.jsx("img",{src:s,alt:"",width:48,height:48,style:{width:48,height:48,objectFit:"cover",display:"block"},crossOrigin:"anonymous",referrerPolicy:"no-referrer"}):o.jsx("span",{style:{fontSize:20,fontWeight:700,color:xt},children:i})}),o.jsx("div",{style:{fontSize:32,fontWeight:700,color:xt},children:e.handle})]})]}),o.jsxs("div",{style:{...Fy,borderRadius:22,padding:Ws,marginBottom:c},children:[o.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:12},children:[o.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,fontSize:14,color:Wt},children:[o.jsx("span",{children:y("share.card.annual.less")}),Ps.map((d,u)=>o.jsx("div",{style:{width:16,height:16,borderRadius:3,background:d}},u)),o.jsx("span",{children:y("share.card.annual.more")})]}),o.jsx("div",{style:{fontSize:16,fontWeight:700,letterSpacing:"0.14em",color:"rgba(255,255,255,0.22)",textTransform:"uppercase"},children:y("share.card.annual.heatmap_title")})]}),o.jsx("div",{style:{display:"grid",gridTemplateColumns:`repeat(3,${Ly}px)`,gap:`8px ${Es}px`,justifyContent:"center"},children:t.map(d=>o.jsx(Uy,{data:d},d.month))})]}),o.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:c,marginBottom:c},children:[o.jsxs("div",{style:{...Mn,borderRadius:22,padding:"28px 16px",textAlign:"center"},children:[o.jsx("div",{style:{fontFamily:ga,fontSize:52,fontWeight:700,color:xt,letterSpacing:"-0.02em",lineHeight:1},children:Ca(e.totalTokens)}),o.jsx("div",{style:{fontSize:22,color:Wt,marginTop:12},children:y("share.card.annual.total_tokens")})]}),o.jsxs("div",{style:{...Mn,borderRadius:22,padding:"28px 16px",textAlign:"center"},children:[o.jsx("div",{style:{fontFamily:ga,fontSize:52,fontWeight:700,color:xt,letterSpacing:"-0.02em",lineHeight:1},children:Cs(e.totalCost,{currency:e.currency,rate:e.exchangeRate})}),o.jsx("div",{style:{fontSize:22,color:Wt,marginTop:12},children:y("share.card.annual.estimated_cost")})]})]}),o.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:c},children:[o.jsxs("div",{style:{...Mn,borderRadius:22,padding:"18px 24px",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[o.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10},children:[o.jsxs("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:ha,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[o.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"}),o.jsx("circle",{cx:"12",cy:"12",r:"4"})]}),o.jsx("span",{style:{fontSize:20,color:Wt},children:y("share.card.annual.longest_streak")})]}),o.jsx("span",{style:{fontFamily:ga,fontSize:28,fontWeight:700,color:xt},children:y("share.card.annual.days_count",{days:n})})]}),o.jsxs("div",{style:{...Mn,borderRadius:22,padding:"18px 24px",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[o.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10},children:[o.jsxs("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:ha,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[o.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"}),o.jsx("circle",{cx:"12",cy:"12",r:"4"})]}),o.jsx("span",{style:{fontSize:20,color:Wt},children:y("share.card.annual.top_model")})]}),o.jsx("span",{style:{fontFamily:Ta,fontSize:28,fontWeight:700,color:xt},children:a?a.name:"—"})]})]}),o.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginTop:"auto"},children:[o.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10},children:[o.jsx("img",{src:"/app-icon.png",alt:"",width:44,height:44,style:{width:44,height:44,borderRadius:8,display:"block"}}),o.jsx("span",{style:{fontSize:22,fontWeight:600,color:xt},children:"Token Tracker"})]}),o.jsx("span",{style:{fontSize:22,fontWeight:600,color:ha},children:"tokentracker.cc"})]})]})]})}const Fs=[{id:"annual-report",labelKey:"share.variant.neon"},{id:"broadsheet",labelKey:"share.variant.broadsheet"}],Vy={broadsheet:Ts,"annual-report":qy};function As(e){return js[e]||{width:Ss,height:Ms}}function Gy(e){const t=Fs.find(n=>n.id===e);return t?.labelKey?y(t.labelKey):e}const xo=m.forwardRef(function({data:t,variant:n},a){const r=Vy[n]||Ts,{width:s,height:l}=As(n);return o.jsx("div",{ref:a,"data-share-card":"true",style:{width:s,height:l,position:"relative",overflow:"hidden",boxSizing:"border-box"},children:o.jsx(r,{data:t})})});function jn(){return typeof window>"u"?!1:!!window?.webkit?.messageHandlers?.nativeBridge}const Ky=440;function Xy(){const[e,t]=m.useState(null),n=m.useRef(null),a=m.useCallback((r,s="info")=>{n.current&&window.clearTimeout(n.current),t({id:Date.now(),kind:s,text:r}),n.current=window.setTimeout(()=>t(null),2800)},[]);return m.useEffect(()=>()=>{n.current&&window.clearTimeout(n.current)},[]),{toast:e,push:a}}function ya({onClick:e,disabled:t,children:n,emphasis:a,ariaLabel:r}){return o.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 Qy({open:e,onClose:t,data:n,twitterText:a}){const[r,s]=m.useState(null),[l,i]=m.useState(""),[c,d]=m.useState("annual-report"),u=m.useRef(null),{toast:f,push:h}=Xy(),g=Do(),p=m.useMemo(()=>{const M=g?.user;if(!M||typeof M!="object")return null;const C=M.user_metadata||{},$=M.profile||{},R=C.avatar_url||C.picture||$.avatar_url||M.avatar_url;return typeof R=="string"&&R.trim()?R.trim():null},[g?.user]);m.useEffect(()=>{e&&(s(null),i(n?.handle||""))},[e,n?.handle]);const b=n&&{...n,handle:l||n.handle,avatarUrl:p},{width:v,height:x}=As(c),w=Ky/v;m.useEffect(()=>{if(!e)return;const M=C=>{C.key==="Escape"&&t?.()};return window.addEventListener("keydown",M),()=>window.removeEventListener("keydown",M)},[e,t]);const k=m.useCallback(async()=>{const M=u.current;if(!M)return null;try{return await by(M)}catch(C){return console.warn("[share] capture failed",C),null}},[]),j=m.useCallback(async()=>{if(r)return;s("copy");const M=await k();if(!M){h(y("share.toast.failed"),"error"),s(null);return}let C=!1;if(jn()){const $=await ma(M);$&&(C=(await hy($)).ok)}else C=await xa(M);h(C?y("share.toast.copied"):y("share.toast.failed"),C?"success":"error"),s(null)},[r,k,h]),_=m.useCallback(()=>`tokentracker-share-${Date.now()}.png`,[]),S=m.useCallback(async()=>{if(r)return;s("download");const M=await k();if(!M){h(y("share.toast.failed"),"error"),s(null);return}if(jn()){const $=await ma(M);if($&&(await go($,_())).ok){h(y("share.toast.downloaded"),"success"),s(null);return}}const C=yo(M,_());h(C?y("share.toast.downloaded"):y("share.toast.failed"),C?"success":"error"),s(null)},[r,k,_,h]),F=m.useCallback(async()=>{if(r)return;s("x");const M=await k();if(!M){h(y("share.toast.failed"),"error"),s(null);return}if(jn()){const H=await ma(M);H&&(await go(H,_()),h(y("share.toast.downloaded"),"success"))}else await xa(M)?h(y("share.toast.copied"),"success"):yo(M,_());const C=new URL("https://twitter.com/intent/tweet");a&&C.searchParams.set("text",a);const $=g?.user?.id,R=typeof $=="string"&&$?`/u/${$}`:"/";if(C.searchParams.set("url",`https://www.tokentracker.cc${R}?ref=share`),jn())try{window.webkit?.messageHandlers?.nativeBridge?.postMessage({type:"action",name:"openURL",value:C.toString()})}catch{window.open(C.toString(),"_blank","noopener,noreferrer")}else window.open(C.toString(),"_blank","noopener,noreferrer");s(null)},[r,k,h,a,_,g]);return e?o.jsxs("div",{role:"dialog","aria-modal":"true","aria-label":y("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:M=>{M.target===M.currentTarget&&t?.()},children:[o.jsx("div",{"aria-hidden":!0,style:{position:"fixed",left:0,top:0,width:v,height:x,pointerEvents:"none",opacity:0,zIndex:-1,clip:"rect(0,0,0,0)",overflow:"hidden"},children:o.jsx(xo,{ref:u,data:b,variant:c})}),o.jsxs(Te.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:[o.jsxs("div",{className:"flex flex-col lg:flex-row max-h-[92vh]",children:[o.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:o.jsxs("div",{style:{width:v*w,height:x*w,flexShrink:0,position:"relative"},className:"rounded-xl overflow-hidden shadow-oai-md ring-1 ring-black/5",children:[r?o.jsx("div",{className:"absolute inset-0 z-10 flex items-center justify-center bg-white/70 dark:bg-black/50",children:o.jsxs("svg",{className:"animate-spin h-6 w-6 text-oai-gray-500",viewBox:"0 0 24 24",fill:"none",children:[o.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3"}),o.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]})}):null,o.jsx("div",{style:{width:v,height:x,transform:`scale(${w})`,transformOrigin:"top left"},children:o.jsx(xo,{data:b,variant:c})})]})}),o.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:[o.jsxs("div",{className:"flex items-start justify-between gap-2",children:[o.jsxs("div",{children:[o.jsx("h2",{className:"text-lg font-semibold text-oai-black dark:text-oai-white",children:y("share.modal.title")}),o.jsx("p",{className:"mt-1 text-xs text-oai-gray-500 dark:text-oai-gray-400",children:y("share.modal.subtitle")})]}),o.jsx("button",{type:"button",onClick:t,"aria-label":y("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:o.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:o.jsx("path",{d:"M18 6L6 18M6 6l12 12"})})})]}),o.jsxs("div",{children:[o.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:y("share.modal.name_label")}),o.jsx("input",{id:"share-handle",type:"text",value:l,onChange:M=>i(M.target.value),placeholder:y("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"})]}),o.jsxs("div",{children:[o.jsx("label",{className:"text-[11px] tracking-[0.18em] uppercase text-oai-gray-500 dark:text-oai-gray-400 mb-1.5 block",children:y("share.modal.style_label")}),o.jsx("div",{className:"flex gap-2",children:Fs.map(M=>o.jsx("button",{type:"button",onClick:()=>d(M.id),className:["flex-1 px-3 py-2 text-sm rounded-lg border transition-colors",c===M.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:Gy(M.id)},M.id))})]}),o.jsxs("div",{className:"grid grid-cols-1 gap-2",children:[o.jsxs(ya,{onClick:F,disabled:!!r,emphasis:!0,children:[o.jsxs("span",{className:"flex items-center gap-3",children:[o.jsx("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:o.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"})}),o.jsx("span",{className:"font-medium text-sm",children:y("share.modal.action.x")})]}),o.jsx("span",{className:"text-[11px] opacity-70",children:r==="x"?y("share.toast.working"):y("share.modal.hint.x")})]}),o.jsxs(ya,{onClick:S,disabled:!!r,children:[o.jsxs("span",{className:"flex items-center gap-3",children:[o.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:[o.jsx("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),o.jsx("polyline",{points:"7 10 12 15 17 10"}),o.jsx("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]}),o.jsx("span",{className:"font-medium text-sm",children:y("share.modal.action.download")})]}),o.jsx("span",{className:"text-[11px] text-oai-gray-500 dark:text-oai-gray-400",children:"PNG"})]}),o.jsxs(ya,{onClick:j,disabled:!!r,children:[o.jsxs("span",{className:"flex items-center gap-3",children:[o.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:[o.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),o.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),o.jsx("span",{className:"font-medium text-sm",children:y("share.modal.action.copy")})]}),o.jsx("span",{className:"text-[11px] text-oai-gray-500 dark:text-oai-gray-400",children:y("share.modal.hint.copy")})]})]}),o.jsx("div",{className:"mt-auto pt-4 border-t border-oai-gray-200 dark:border-oai-gray-800",children:o.jsx("p",{className:"text-[11px] leading-relaxed text-oai-gray-500 dark:text-oai-gray-400",children:y("share.modal.footer")})})]})]}),o.jsx(Fa,{children:f?o.jsx(Te.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:o.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 Jy(e){const{enabled:t,handle:n,startDate:a,activeDays:r,summary:s,topModels:l,period:i,periodFrom:c,periodTo:d,heatmap:u,accessToken:f,userId:h,currency:g,exchangeRate:p}=e,[b,v]=m.useState(null),x=p;return m.useEffect(()=>{if(!t||!h&&!$t())return;let w=!1;return(async()=>{try{const j=await kl({accessToken:f,userId:h,period:i==="day"||i==="custom"?"week":i,metric:"all",limit:100,offset:0});if(w)return;const S=(Array.isArray(j?.entries)?j.entries:Array.isArray(j)?j:[]).find(M=>M?.is_me===!0),F=typeof S?.rank=="number"?S.rank:null;v(F)}catch{w||v(null)}})(),()=>{w=!0}},[t,f,h,i]),m.useMemo(()=>wy({handle:n,startDate:a,activeDays:r,summary:s,topModels:l,rank:b,period:i,periodFrom:c,periodTo:d,heatmap:u,currency:g,exchangeRate:typeof x=="number"?x:void 0}),[n,a,r,s,l,b,i,c,d,u,g,x])}const Zy=["day","week","month","total","custom"],pa=new Set(["day","hour","month"]),sn=new Set(["day","total","custom"]);function ba(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 Dn(e){return e?Kt(e,null):null}function ko(e){return e?e?.billable_total_tokens??e?.value??e?.total_tokens:null}function e0(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 s=new Date(Date.UTC(n,a,r));return Number.isFinite(s.getTime())?s:null}function t0(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function n0(e){return e?e==="www.tokentracker.cc"||e==="tokentracker.cc":!1}function a0(){if(typeof window>"u")return!1;const e=new URLSearchParams(window.location.search),t=String(e.get("force_install")||"").toLowerCase();return t!=="1"&&t!=="true"?!1:!n0(window.location.hostname)}function x0({baseUrl:e,auth:t,signedIn:n,sessionSoftExpired:a,signOut:r,publicMode:s=!1,publicToken:l=null,signInUrl:i="/sign-in",signUpUrl:c="/sign-up",onMainContentVisible:d}){const{resolvedLocale:u}=wl(),{currency:f,rate:h}=Jt(),[g,p]=m.useState(!1),[b,v]=m.useState(null),[x,w]=m.useState(null),[k,j]=m.useState(!1),[_,S]=m.useState(null),[F,M]=m.useState(0),[C,$]=m.useState(0),[R,H]=m.useState(null),[D,W]=m.useState(()=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia("(max-width: 640px)").matches),B=m.useMemo(()=>typeof window>"u"?!1:vl(window.location.search),[]),T=m.useMemo(()=>a0(),[]),[E,X]=m.useState(!1),[I,P]=m.useState(!1),A=2200,[G,ae]=m.useState(!0),[me,re]=m.useState(!1),[J,ee]=m.useState(!1),[be,se]=m.useState(!1),K=m.useRef(!1),V=$t(),te=n&&!a,xe=m.useMemo(()=>te&&(typeof t=="function"||typeof t=="string"||t&&typeof t=="object")?t:null,[t,te]),ue=te?xe:null,ce=s?_l(l):ue,fe=n||V||s,ie=te&&Xt(ue),pe=n&&a&&!s,{accountView:Pe,revision:Fe,resolving:vt}=Nl(),Ie=Pe&&!s,He=Ie?ue:null,Le=vt&&!s;m.useEffect(()=>{if(!n||V){v(null),w(null),j(!1),S(null);return}if(s)return;if(!ie){v(null),w(null),j(!1),S(null);return}let N=!0;const Y=()=>{v(null),w(null),j(!1),S(null)};return j(!0),S(null),(async()=>{let U=null;try{U=await et(ue)}catch{U=null}if(N){if(!U){Y();return}try{const Q={link_code:null,expires_at:null};if(!N)return;v(typeof Q?.link_code=="string"?Q.link_code:null),w(typeof Q?.expires_at=="string"?Q.expires_at:null)}catch(Q){if(!N)return;v(null),w(null),S(Q?.message||"Failed to load link code")}finally{if(!N)return;j(!1)}}})(),()=>{N=!1}},[e,V,n,s,ie,ue,C]);const Ae=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1");m.useEffect(()=>{if(!Ae&&(!n||V||s)){H(null);return}if(!Ae&&!ie){H(null);return}let N=!0;return(async()=>{let Y=null;try{Y=await et(ue)}catch{Y=null}if(N){if(!Y&&!Ae){H(null);return}try{const U=await Sl({baseUrl:e,accessToken:Y});if(!N)return;H(U&&typeof U=="object"?U:null)}catch{if(!N)return;H(null)}}})(),()=>{N=!1}},[ie,e,ue,V,s,n]);const _t=m.useMemo(()=>{if(!x)return!1;const N=Date.parse(x);if(!Number.isFinite(N))return!1;const Y=F||Date.now();return N<=Y},[x,F]);m.useEffect(()=>{!n||V||s||!x||!_t||k||(v(null),w(null),S(null),$(N=>N+1))},[_t,x,k,V,n]),m.useEffect(()=>{if(!x||s)return;const N=Date.parse(x);if(!Number.isFinite(N))return;const Y=Date.now();if(M(Y),N<=Y)return;const U=window.setTimeout(()=>M(Date.now()),N-Y),Q=()=>{typeof document>"u"||document.visibilityState==="visible"&&M(Date.now())};return typeof document<"u"&&document.addEventListener("visibilitychange",Q),window.addEventListener("focus",Q),()=>{window.clearTimeout(U),typeof document<"u"&&document.removeEventListener("visibilitychange",Q),window.removeEventListener("focus",Q)}},[x]),m.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const N=window.matchMedia("(max-width: 640px)"),Y=()=>W(N.matches);return Y(),N.addEventListener?(N.addEventListener("change",Y),()=>N.removeEventListener("change",Y)):(N.addListener(Y),()=>N.removeListener(Y))},[]);const Se=m.useMemo(()=>Mo(),[]),Me=m.useMemo(()=>So(),[]),$e=m.useMemo(()=>Ml(),[]),Ue=s?null:t?.userId||t?.email||"default",[Nt,mt]=m.useState("month"),[qe,Zt]=m.useState(null),[tt,en]=m.useState(null),[Lt,ht]=m.useState(!1),L=B?"total":Nt,oe=m.useMemo(()=>L==="custom"&&qe&&tt?{from:qe,to:tt}:jl(L,{timeZone:Se,offsetMinutes:Me,now:$e}),[$e,L,Se,Me,qe,tt]),z=oe.from,Z=oe.to,je=m.useMemo(()=>Dl({timeZone:Se,offsetMinutes:Me}),[Se,Me]),ne=m.useMemo(()=>Cl({timeZone:Se,offsetMinutes:Me}),[Se,Me]),tn=m.useMemo(()=>`Local time (${ne})`,[ne]),St=Se,gt=Me,Mt=je,Ve=m.useMemo(()=>An({timeZone:Se,offsetMinutes:Me,date:$e||new Date}),[$e,Se,Me]),gn=m.useMemo(()=>{const N=e0(Ve)||new Date,Y=t0(N,-29);return{from:Gt(Y),to:Gt(N)}},[Ve]),{daily:Oe,summary:De,rolling:$s,source:Ua,loading:Is,error:Ls,refresh:qa}=Nr({baseUrl:e,accessToken:ce,guestAllowed:pe,from:z,to:Z,includeDaily:L!=="total",cacheKey:Ue,timeZone:Se,tzOffsetMinutes:Me,now:$e,accountView:Ie,accountAccessToken:He,accountRevision:Fe,accountViewResolving:Le}),{daily:Va,loading:Rs,refresh:Ga}=Nr({baseUrl:e,accessToken:ce,guestAllowed:pe,from:gn.from,to:gn.to,includeDaily:!0,cacheKey:Ue?`${Ue}.daily-breakdown`:"daily-breakdown",timeZone:Se,tzOffsetMinutes:Me,now:$e,accountView:Ie,accountAccessToken:He,accountRevision:Fe,accountViewResolving:Le}),{breakdown:jt,loading:Bs,refresh:Ka}=Nc({baseUrl:e,accessToken:ce,guestAllowed:pe,from:z,to:Z,cacheKey:Ue,timeZone:Se,tzOffsetMinutes:Me,accountView:Ie,accountAccessToken:He,accountRevision:Fe,accountViewResolving:Le}),[Xa,Ys]=m.useState(3),{entries:zs,loading:Hs,refresh:Qa}=mc({baseUrl:e,accessToken:ce,limit:Xa,from:z,to:Z,timeZone:Se,tzOffsetMinutes:Me}),Ja=L==="week"||L==="month",yn=L==="week"||L==="month",Za=m.useMemo(()=>Oe.filter(N=>N?.future?!1:!N?.day||!Ve?!0:String(N.day)<=String(Ve)),[Oe,Ve]),{rows:lt,from:Us,to:qs,loading:Vs,refresh:er}=Oo({baseUrl:e,accessToken:ce,guestAllowed:pe,period:L,from:z,to:Z,months:24,cacheKey:Ue,timeZone:St,tzOffsetMinutes:gt,now:$e,sharedRows:Ja?Oe:null,sharedRange:Ja?{from:z,to:Z}:null,accountView:Ie,accountAccessToken:He,accountRevision:Fe,accountViewResolving:Le}),Gs=m.useMemo(()=>({baseUrl:e,accessToken:ce,guestAllowed:pe,cacheKey:Ue,timeZone:St,tzOffsetMinutes:gt,now:$e,accountView:Ie,accountAccessToken:He,accountRevision:Fe,accountViewResolving:Le}),[e,ce,pe,Ue,St,gt,$e,Ie,He,Fe,Le]),{daily:Rt,heatmap:nt,loading:tr,refresh:nr}=fc({baseUrl:e,accessToken:ce,guestAllowed:pe,weeks:52,cacheKey:Ue,timeZone:Se,tzOffsetMinutes:Me,now:$e,accountView:Ie,accountAccessToken:He,accountRevision:Fe,accountViewResolving:Le}),{data:pn,refresh:ar}=Ol();m.useEffect(()=>{pn&&typeof pn=="object"&&Tl(pn)},[pn]);const Ke=m.useMemo(()=>L==="day"?"hour":L==="total"?"month":"day",[L]),Ks=m.useMemo(()=>Mr(Ke),[Ke]),bn="day",Xs=m.useMemo(()=>Mr(bn),[]),[Xe,rr]=m.useState(()=>({key:"day",dir:"desc"}));m.useEffect(()=>{rr(N=>!pa.has(N.key)||N.key===Ke?N:{key:Ke,dir:N.dir})},[Ke]);const Bt=m.useMemo(()=>pa.has(Xe.key)&&Xe.key!==Ke?{...Xe,key:Ke}:Xe,[Ke,Xe]),xn=m.useMemo(()=>{if(L==="day")return Array.isArray(lt)?lt.filter(U=>U?.hour&&!U?.future):[];if(L==="total"){const U=Array.isArray(lt)?lt.filter(Q=>Q?.month&&!Q?.future):[];return $c(U)}const N=Za;return!N.some(U=>!U?.missing&&!U?.future)&&Oe.length>0?Oe.filter(U=>!U?.future).slice(-30).filter(U=>U?.day):N},[L,lt,Za,Oe]),nn=m.useMemo(()=>jr(xn,Bt),[xn,Bt]),Qs=m.useMemo(()=>xn.some(N=>!N?.missing&&!N?.future),[xn]),Bn=m.useMemo(()=>{if(!sn.has(L))return 1;const N=Math.ceil(nn.length/Wn);return N>0?N:1},[L,nn.length]),[Yn,kn]=m.useState(0);m.useEffect(()=>{if(!sn.has(L)){kn(0);return}kn(N=>Math.min(N,Bn-1))},[Bn,L]),m.useEffect(()=>{sn.has(L)&&kn(0)},[L,Xe.dir,Xe.key]);const Js=m.useMemo(()=>sn.has(L)?Ic(nn,Yn,Wn):nn,[Yn,L,nn]),or=m.useMemo(()=>Va.filter(N=>!N?.future&&N?.day).slice(-30),[Va]),Yt=m.useMemo(()=>pa.has(Xe.key)?{...Xe,key:bn}:Xe,[Xe]),Zs=m.useMemo(()=>jr(or,Yt),[or,Yt]),ei=m.useMemo(()=>yn?Oe:L==="day"?Array.isArray(lt)?lt.filter(N=>N?.hour):[]:lt,[Oe,L,lt,yn]),ti=yn?z:Us,ni=yn?Z:qs;function ai(N,Y){return N?.future?"—":N?.missing?y("shared.status.unsynced"):Y==="total_tokens"?ct(Dn(N)):ct(N?.[Y])}function ri(N){const Y=N?.[Ke];if(Y==null)return"";const U=String(Y);if(Ke==="hour"){const[Q,_e]=U.split("T");if(Q&&_e)return`${Q} ${_e.slice(0,5)}`}return U}function oi(N){const Y=N?.[bn];return Y==null?"":String(Y)}function si(N){rr(Y=>Y.key===N?{key:N,dir:Y.dir==="asc"?"desc":"asc"}:{key:N,dir:"desc"})}function ii(N){return Bt.key!==N?"none":Bt.dir==="asc"?"ascending":"descending"}function li(N){return Bt.key!==N?"":Bt.dir==="asc"?"▲":"▼"}function ci(N){return Yt.key!==N?"none":Yt.dir==="asc"?"ascending":"descending"}function di(N){return Yt.key!==N?"":Yt.dir==="asc"?"▲":"▼"}const zn=m.useMemo(()=>{if(!n&&!V&&!s&&!Ae)return 0;const N=Number(nt?.active_days);if(Number.isFinite(N))return N;let Y=0;const U=new Set,Q=(he,we,Ne)=>{typeof he!="string"||!he||U.has(he)||ba(we,Ne)&&(U.add(he),Y+=1)};if(Array.isArray(Rt))for(const he of Rt)Q(he?.day,Dn(he));const _e=Array.isArray(nt?.weeks)?nt.weeks:[];for(const he of _e)for(const we of Array.isArray(he)?he:[]){const Ne=ko(we);Q(we?.day,Ne,we?.level)}return Y},[n,V,nt?.active_days,nt?.weeks,Rt]),[sr,ir]=m.useState("month"),ui=m.useCallback(N=>{N==="custom"?(ir(Y=>Y==="custom"?"month":Y),mt(Y=>qe&&tt?"custom":Y),ht(!0)):(mt(N),ir(N),ht(!1))},[qe,tt]),fi=m.useCallback((N,Y)=>{Zt(N),en(Y),mt("custom"),ht(!1)},[]),mi=m.useCallback(N=>{ht(N),!N&&Nt==="custom"&&!qe&&mt(sr)},[Nt,qe,sr]),lr=m.useCallback(async()=>{await Promise.all([qa(),nr(),er(),Ka(),Qa(),Ga(),ar()])},[Ga,nr,Ka,Qa,er,qa,ar]),hi=m.useCallback(async()=>{se(!0);try{Ae&&await Pl(),await lr()}catch(N){console.error("[DashboardPage] Refresh failed:",N)}finally{se(!1)}},[Ae,lr]),Hn=be||Is||Rs||tr||Vs||Bs||Hs,gi=m.useMemo(()=>y("shared.data_source",{source:String(Ua||"edge").toUpperCase()}),[Ua,u]),wn=m.useMemo(()=>typeof t?.name!="string"?"":t.name.trim(),[t?.name]),yi="",cr=m.useMemo(()=>!wn||wn.includes("@")?y("dashboard.identity.fallback"):wn,[wn]),dr=m.useMemo(()=>cr.replace(/[^a-zA-Z0-9._-]/g,"_"),[cr]),ur=m.useMemo(()=>s?y("dashboard.identity.fallback"):dr,[dr,yi,s]),fr=m.useMemo(()=>{let N=null;const Y=Q=>{typeof Q!="string"||!Q||(!N||Q<N)&&(N=Q)};if(Array.isArray(Rt))for(const Q of Rt)Q?.day&&ba(Dn(Q))&&Y(Q.day);const U=Array.isArray(nt?.weeks)?nt.weeks:[];for(const Q of U)for(const _e of Array.isArray(Q)?Q:[]){if(!_e?.day)continue;const he=ko(_e),we=_e?.level;ba(he,we)&&Y(_e.day)}return N},[nt?.weeks,Rt]),pi=m.useMemo(()=>s?[]:(Array.isArray(R?.subscriptions?.items)?R.subscriptions.items:[]).map(U=>{const Q=typeof U?.tool=="string"?U.tool.trim():"",he=(typeof U?.plan_type=="string"?U.plan_type:typeof U?.planType=="string"?U.planType:"").trim();return!Q||!he?null:{tool:Q,planType:he,provider:typeof U?.provider=="string"?U.provider.trim():"",product:typeof U?.product=="string"?U.product.trim():"",rateLimitTier:typeof U?.rate_limit_tier=="string"?U.rate_limit_tier.trim():typeof U?.rateLimitTier=="string"?U.rateLimitTier.trim():""}}).filter(Boolean).slice(0,6),[s,R]),bi=o.jsx(Fl,{heatmap:nt,timeZoneLabel:je,timeZoneShortLabel:ne,hideLegend:B,defaultToLatestMonth:B}),xi=m.useMemo(()=>`${z}..${Z}`,[z,L,Z]),ki=y("usage.summary.total"),Dt=Dn(De),mr=y("shared.unit.thousand_abbrev"),hr=y("shared.unit.million_abbrev"),gr=y("shared.unit.billion_abbrev"),vn=Ye(Dt),yr=D&&vn!=null&&Math.abs(vn)>=1e9,wi=m.useMemo(()=>yr?We(vn,{thousandSuffix:mr,millionSuffix:hr,billionSuffix:gr,decimals:1}):ct(Dt),[gr,hr,Dt,vn,mr,yr]),vi=y("dashboard.core_index.collapse_label"),_i=y("dashboard.core_index.expand_label"),Ni=y("dashboard.core_index.collapse_aria"),Si=y("dashboard.core_index.expand_aria"),Mi=!B,ji=y("dashboard.screenshot.title_line1"),Di=y("dashboard.screenshot.title_line2"),Ci=y("dashboard.screenshot.twitter_label"),Ti=y("dashboard.screenshot.twitter_button"),Pi=y("dashboard.screenshot.twitter_hint"),zt=y("shared.placeholder.short"),Un=m.useMemo(()=>{const N=Array.isArray(jt?.sources)?jt.sources:[];let Y=null,U=0;for(const we of N){const Ne=Kt(we?.totals);!Number.isFinite(Ne)||Ne<=0||Ne>U&&(U=Ne,Y=we)}let Q=zt,_e=zt,he="0.0";if(Y&&U>0){Q=Y?.source?String(Y.source).toUpperCase():zt;const we=Array.isArray(Y?.models)?Y.models:[];let Ne=0;for(const yt of we){const rn=Kt(yt?.totals);!Number.isFinite(rn)||rn<=0||rn>Ne&&(Ne=rn,_e=yt?.model?String(yt.model):zt)}Ne>0&&(he=(Ne/U*100).toFixed(1))}return{agentName:Q,modelName:_e,modelPercent:he}},[jt,zt]),pr=ct(Dt),qn=y("dashboard.screenshot.twitter_text",{total_tokens:pr==="-"?zt:pr,agent_name:Un.agentName,model_name:Un.modelName,model_percent:Un.modelPercent}),Vn=m.useMemo(()=>{if(typeof window>"u")return"";const N=new URL("https://twitter.com/intent/tweet");N.searchParams.set("text",qn);const Y=t?.userId?`/u/${t.userId}`:"/";return N.searchParams.set("url",`https://www.tokentracker.cc${Y}?ref=share`),N.toString()},[qn,t?.userId]),br=m.useCallback(async()=>{if(typeof window>"u")return null;const N=async()=>{const we=performance.now();for(;performance.now()-we<2e3;){const Ne=document.querySelector("[data-heatmap-scroll='true']");if(!Ne||Ne.dataset.latestMonthReady==="true")return;await new Promise(yt=>requestAnimationFrame(yt))}},Y=document.querySelector("#root")||document.body,U=document.documentElement,{scrollWidth:Q,scrollHeight:_e}=document.documentElement;U?.classList.add("screenshot-capture"),document.body?.classList.add("screenshot-capture"),await new Promise(he=>requestAnimationFrame(he)),await N();try{const{toBlob:he,toPng:we}=await Co(async()=>{const{toBlob:Ct,toPng:Ji}=await import("./index-BeoRn2gJ.js");return{toBlob:Ct,toPng:Ji}},[]),Ne=await he(Y,{backgroundColor:"#050505",pixelRatio:2,cacheBust:!0,width:Q,height:_e,style:{width:`${Q}px`,height:`${_e}px`},filter:Ct=>!(Ct instanceof HTMLElement)||Ct.dataset?.screenshotExclude!=="true"});if(Ne)return Ne;const yt=await we(Y,{backgroundColor:"#050505",pixelRatio:2,cacheBust:!0,width:Q,height:_e,style:{width:`${Q}px`,height:`${_e}px`},filter:Ct=>!(Ct instanceof HTMLElement)||Ct.dataset?.screenshotExclude!=="true"});return yt?await(await fetch(yt)).blob():null}finally{U?.classList.remove("screenshot-capture"),document.body?.classList.remove("screenshot-capture")}},[]),Oi=m.useCallback(async()=>{if(typeof window>"u"||E)return;X(!0);const N=navigator?.userAgent||"",Y=/iP(hone|od|ad)/i.test(N),U=/Safari/i.test(N)&&!/Chrome|Chromium|Edg|OPR|CriOS|FxiOS/i.test(N),Q=typeof navigator<"u"&&!!navigator.clipboard?.write&&typeof window<"u"&&!!window.ClipboardItem;let he=!Q||Y||U;try{const we=await br();we&&Q&&(typeof document<"u"&&!document.hasFocus()&&window.focus?.(),he=await xa(we))}catch(we){console.error("Failed to capture screenshot",we)}finally{if(X(!1),!he){console.warn("Failed to write screenshot to clipboard.");return}Vn&&(window.location.href=Vn)}},[br,E,Vn]),Wi=m.useMemo(()=>B?[]:Zy,[B]),Ei=m.useMemo(()=>[{label:y("usage.metric.total"),value:ct(Dt),valueClassName:"text-white"},{label:y("usage.metric.input"),value:ct(De?.input_tokens)},{label:y("usage.metric.output"),value:ct(De?.output_tokens)},{label:y("usage.metric.cached_input"),value:ct(De?.cached_input_tokens)},{label:y("usage.metric.reasoning_output"),value:ct(De?.reasoning_output_tokens)}],[De?.cached_input_tokens,De?.input_tokens,De?.output_tokens,De?.reasoning_output_tokens,Dt]),Gn=m.useMemo(()=>Qt(De?.total_cost_usd,{currency:f,rate:h}),[De?.total_cost_usd,f,h]),Fi=m.useMemo(()=>De?.conversation_count??null,[De?.conversation_count]),xr=m.useMemo(()=>Bc(jt,{copyFn:y}),[jt]),kr=m.useMemo(()=>Yc(jt,{limit:3,copyFn:y}),[jt]),Ai=Jy({enabled:I,handle:ur,startDate:fr,activeDays:zn,summary:De,topModels:kr,period:L,periodFrom:z,periodTo:Z,heatmap:nt,accessToken:typeof ce=="string"?ce:null,userId:t?.userId||null,currency:f,exchangeRate:h}),$i=m.useCallback(()=>P(!0),[]),Ii=m.useCallback(()=>P(!1),[]),Li=m.useCallback(()=>p(!0),[]),Ri=m.useCallback(()=>p(!1),[]),Bi=Gn&&Gn!=="-"&&xr.length>0,an=y("dashboard.install.cmd.init"),Kn=_t?null:b,Xn=Kn?y("dashboard.install.cmd.init_link_code",{link_code:Kn}):an,Yi=an,zi=y("dashboard.install.cmd.sync"),Hi=Kn?y("dashboard.install.copy"):y("dashboard.install.copy_base"),Ui=y("dashboard.install.copied");y("dashboard.session_expired.copy_label"),y("dashboard.session_expired.copied");const qi=!!(R?.install?.has_active_device_token??R?.install?.hasActiveDeviceToken),Vi=Lc({publicMode:s,screenshotMode:B,forceInstall:T,accessEnabled:fe,heatmapLoading:tr,activeDays:zn,hasActiveDeviceToken:qi}),Gi=y("dashboard.install.prompt"),Ki=m.useCallback(async()=>{!Xn||!await _r(Xn)||(re(!0),window.setTimeout(()=>re(!1),2e3))},[Xn]);m.useCallback(async()=>{!an||!await _r(an)||(ee(!0),window.setTimeout(()=>ee(!1),2e3))},[an]);const Qn=m.useMemo(()=>y("dashboard.daily.empty",{cmd:"{{cmd}}"}),[u]),[Xi,Qi]=m.useMemo(()=>{const N=Qn.split("{{cmd}}");return N.length===1?[Qn,""]:[N[0],N.slice(1).join("{{cmd}}")]},[Qn]),Jn=a&&!s,Zn=!n&&!V&&!a&&!Ae&&!s;return m.useEffect(()=>{K.current||Jn||Zn||Hn||(K.current=!0,d?.())},[d,Zn,Jn,Hn]),o.jsxs(o.Fragment,{children:[o.jsx(my,{copy:y,onOpenShare:$i,screenshotMode:B,showExpiredGate:Jn,showAuthGate:Zn,screenshotTitleLine1:ji,screenshotTitleLine2:Di,identityDisplayName:ur,identityStartDate:fr,activeDays:zn,identitySubscriptions:pi,identityScrambleDurationMs:A,projectUsageEntries:zs,projectUsageLimit:Xa,setProjectUsageLimit:Ys,topModels:kr,signedIn:n,publicMode:s,isLocalMode:Ae,shouldShowInstall:Vi,installPrompt:Gi,handleCopyInstall:Ki,installCopied:me,installCopiedLabel:Ui,installCopyLabel:Hi,installInitCmdDisplay:Yi,linkCodeLoading:k,linkCodeError:_,trendRowsForDisplay:ei,trendFromForDisplay:ti,trendToForDisplay:ni,trendZoomConfig:Gs,usageFrom:z,usageTo:Z,period:L,trendTimeZoneLabel:Mt,activityHeatmapBlock:bi,isCapturing:E,handleShareToX:Oi,screenshotTwitterLabel:Ci,screenshotTwitterButton:Ti,screenshotTwitterHint:Pi,periodsForDisplay:Wi,setSelectedPeriod:ui,customFrom:qe,customTo:tt,onCustomRangeApply:fi,customRangeOpen:Lt,onCustomRangeOpenChange:mi,metricsRows:Ei,summaryLabel:ki,summaryValue:wi,summaryTotalTokensRaw:Ye(Dt)||0,summaryCostValue:Gn,summaryConversationsValue:Fi,rollingUsage:$s,costInfoEnabled:Bi,openCostModal:Li,allowBreakdownToggle:Mi,coreIndexCollapsed:G,setCoreIndexCollapsed:ae,coreIndexCollapseLabel:vi,coreIndexExpandLabel:_i,coreIndexCollapseAria:Ni,coreIndexExpandAria:Si,refreshAll:hi,usageLoadingState:Hn,usageError:Ls,rangeLabel:xi,timeZoneRangeLabel:tn,usageSourceLabel:gi,fleetData:xr,hasDetailsActual:Qs,dailyEmptyPrefix:Xi,installSyncCmd:zi,dailyEmptySuffix:Qi,detailsColumns:Ks,ariaSortFor:ii,toggleSort:si,sortIconFor:li,pagedDetails:Js,dailyBreakdownRows:Zs,dailyBreakdownColumns:Xs,dailyBreakdownAriaSortFor:ci,dailyBreakdownSortIconFor:di,dailyBreakdownDateKey:bn,detailsDateKey:Ke,renderDetailDate:ri,renderDailyBreakdownDate:oi,renderDetailCell:ai,DETAILS_PAGED_PERIODS:sn,detailsPageCount:Bn,detailsPage:Yn,setDetailsPage:kn,costModalOpen:g,closeCostModal:Ri}),o.jsx(Qy,{open:I,onClose:Ii,data:Ai,twitterText:qn})]})}export{x0 as DashboardPage};
|