@ipv9/tokentracker-cli 0.39.39 → 0.39.41
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/README.md +6 -6
- package/dashboard/dist/assets/{Card-BbRYRVXf.js → Card-BwY_Qv6N.js} +1 -1
- package/dashboard/dist/assets/DashboardPage-C7b_GjA-.js +60 -0
- package/dashboard/dist/assets/{FadeIn-CjAacJ5t.js → FadeIn-DiAafUDN.js} +1 -1
- package/dashboard/dist/assets/{IpCheckPage-BGALK8Vy.js → IpCheckPage-CYgWVZJr.js} +1 -1
- package/dashboard/dist/assets/LimitsPage-C1y75ftN.js +2 -0
- package/dashboard/dist/assets/{LocalOnlyNotice-Dxo2vFMQ.js → LocalOnlyNotice-B5_-ydeu.js} +1 -1
- package/dashboard/dist/assets/{PopoverPopup-DP9fwdtl.js → PopoverPopup-DDjjQ5CG.js} +1 -1
- package/dashboard/dist/assets/{Select-DPE53NmM.js → Select-BPspkl9p.js} +1 -1
- package/dashboard/dist/assets/{SelectItemText-D69v77is.js → SelectItemText-CX0dWYB1.js} +1 -1
- package/dashboard/dist/assets/{SettingsPage-Dxzqpi02.js → SettingsPage-9K5ST4D_.js} +1 -1
- package/dashboard/dist/assets/{SkillsPage-Bo7e39AB.js → SkillsPage-BpCSS7ls.js} +1 -1
- package/dashboard/dist/assets/{WidgetsPage-HHcIr_Eq.js → WidgetsPage-aBisLWrM.js} +1 -1
- package/dashboard/dist/assets/{WrappedPage-C-_jLXXU.js → WrappedPage-BgkuBG_j.js} +1 -1
- package/dashboard/dist/assets/{arrow-up-right-BJvJHUGj.js → arrow-up-right-DPb2FRSP.js} +1 -1
- package/dashboard/dist/assets/{download-CnzY_EgN.js → download-CbZ8YL8m.js} +1 -1
- package/dashboard/dist/assets/{format-1w-q5n2f.js → format-aRaCvnht.js} +1 -1
- package/dashboard/dist/assets/limitDisplay-1O9-AdgI.js +1 -0
- package/dashboard/dist/assets/{main-3gBEI6Jl.js → main-DRcFJLLD.js} +5 -3
- package/dashboard/dist/assets/main-ZrWkoMlr.css +1 -0
- package/dashboard/dist/assets/mock-data-sZ3-GZV0.js +1 -0
- package/dashboard/dist/assets/{use-limits-display-prefs-D1nT9-mr.js → use-limits-display-prefs-2-qYvffB.js} +1 -1
- package/dashboard/dist/assets/{use-native-settings-Dh6NzqjY.js → use-native-settings-C1uhDKdL.js} +1 -1
- package/dashboard/dist/assets/{useCurrency-Hhs5jbWw.js → useCurrency-BPCF4zUv.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/package.json +3 -2
- package/src/commands/serve.js +121 -38
- package/src/lib/fs.js +149 -25
- package/src/lib/local-api.js +20 -2
- package/src/lib/pricing/curated-overrides.json +10 -3
- package/src/lib/pricing/index.js +197 -18
- package/src/lib/pricing/litellm-fetcher.js +6 -1
- package/src/lib/pricing/seed-snapshot.json +1 -1
- package/dashboard/dist/assets/DashboardPage-DYKHv0m3.js +0 -60
- package/dashboard/dist/assets/LimitsPage-LkZGPYvg.js +0 -2
- package/dashboard/dist/assets/main-1kxAVM3m.css +0 -1
- package/dashboard/dist/assets/mock-data-CJOMGcL9.js +0 -1
- package/dashboard/dist/assets/use-usage-limits-BXR6lzGf.js +0 -1
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import{c as an,i as qs,f as Ar,a as Fr,J as Xs,u as Rr,m as Gs,r as h,M as Ir,b as Ks,d as Qs,e as Wn,j as o,L as Js,g as Zs,h as ei,k as ti,l as ni,n as Lt,o as ht,p,q as Lr,X as sa,s as ai,R,t as ia,C as zr,P as la,B as Gn,v as Yr,w as Br,A as Hr,x as Xe,y as ri,z as oi,D as si,E as ii,F as li}from"./main-DRcFJLLD.js";import{g as ci,i as zt,b as Kn,c as gn,a as rn,d as en,f as mt,e as Ur,h as Vr,j as di,k as ui,l as fi,m as mi}from"./mock-data-sZ3-GZV0.js";import{g as hi,a as Mn,b as gi,c as yi,d as qr,e as En,f as pi,h as bi,L as xi,i as ki,u as wi,t as Fa}from"./limitDisplay-1O9-AdgI.js";import{u as vi}from"./use-limits-display-prefs-2-qYvffB.js";import{u as Nt,I as ca}from"./useCurrency-BPCF4zUv.js";import{t as Le,f as et,a as Ae,b as Qe}from"./format-aRaCvnht.js";import{u as Ni,D as _i,a as Mi,b as ji,c as Si,d as Ci,e as Di,P as Qn,f as Jn,g as Zn,h as ea,i as ta,L as Ti}from"./PopoverPopup-DDjjQ5CG.js";import{C as on}from"./Card-BwY_Qv6N.js";import{S as Pi}from"./Select-BPspkl9p.js";import{F as bt}from"./FadeIn-DiAafUDN.js";import"./SelectItemText-CX0dWYB1.js";const Oi=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]],Xr=an("maximize-2",Oi);const $i=[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]],Wi=an("pause",$i);const Ei=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],Ai=an("play",Ei);const Fi=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],Ri=an("rotate-ccw",Fi);const Ii=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],Gr=an("terminal",Ii);function Li(...e){const t=!Array.isArray(e[0]),n=t?0:-1,a=e[0+n],r=e[1+n],s=e[2+n],l=e[3+n],i=qs(r,s,l);return t?i(a):i}function zi(e,t,n={}){const a=e.get();let r=null,s=a,l;const i=typeof a=="string"?a.replace(/[\d.-]/g,""):void 0,c=()=>{r&&(r.stop(),r=null),e.animation=void 0},u=()=>{const d=Ra(e.get()),m=Ra(s);if(d===m){c();return}const g=r?r.getGeneratorVelocity():e.getVelocity();c(),r=new Xs({keyframes:[d,m],velocity:g,type:"spring",restDelta:.001,restSpeed:.01,...n,onUpdate:l})},f=()=>{u(),e.animation=r??void 0,e.events.animationStart?.notify(),r?.then(()=>{e.animation=void 0,e.events.animationComplete?.notify()})};if(e.attach((d,m)=>{s=d,l=g=>m(An(g,i)),Ar.postRender(f)},c),Fr(t)){let d=n.skipInitialAnimation===!0;const m=t.on("change",y=>{d?(d=!1,e.jump(An(y,i),!1)):e.set(An(y,i))}),g=e.on("destroy",m);return()=>{m(),g()}}return c}function An(e,t){return t?e+t:e}function Ra(e){return typeof e=="number"?e:parseFloat(e)}function da(e){const t=Rr(()=>Gs(e)),{isStatic:n}=h.useContext(Ir);if(n){const[,a]=h.useState(e);h.useEffect(()=>t.on("change",a),[])}return t}function Kr(e,t){const n=da(t()),a=()=>n.set(t());return a(),Ks(()=>{const r=()=>Ar.preRender(a,!1,!0),s=e.map(l=>l.on("change",r));return()=>{s.forEach(l=>l()),Qs(a)}}),n}function Yi(e){Wn.current=[],e();const t=Kr(Wn.current,e);return Wn.current=void 0,t}function Qr(e,t,n,a){if(typeof e=="function")return Yi(e);const s=typeof t=="function"?t:Li(t,n,a),l=Array.isArray(e)?Ia(e,s):Ia([e],([c])=>s(c)),i=Array.isArray(e)?void 0:e.accelerate;return i&&!i.isTransformed&&typeof t!="function"&&Array.isArray(n)&&a?.clamp!==!1&&(l.accelerate={...i,times:t,keyframes:n,isTransformed:!0}),l}function Ia(e,t){const n=Rr(()=>[]);return Kr(e,()=>{n.length=0;const a=e.length;for(let r=0;r<a;r++)n[r]=e[r].get();return t(n)})}function Bi(e,t={}){const{isStatic:n}=h.useContext(Ir),a=()=>Fr(e)?e.get():e;if(n)return Qr(a);const r=da(a());return h.useInsertionEffect(()=>zi(r,e,t),[r,JSON.stringify(t)]),r}function Hi(e,t={}){return Bi(e,{type:"spring",...t})}function Ui(){return o.jsxs(Js,{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 Vi({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(Ui,{}),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 qi({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 Xi=h.forwardRef(function(t,n){const{render:a,className:r,disabled:s=!1,nativeButton:l=!0,...i}=t,{store:c}=Ni(),u=c.useState("open");function f(y){u&&c.setOpen(!1,ti(ni,y.nativeEvent))}const{getButtonProps:d,buttonRef:m}=Zs({disabled:s,native:l}),g=h.useMemo(()=>({disabled:s}),[s]);return ei("button",t,{state:g,ref:[n,m],props:[{onClick:f},i,d]})});var Gi={};function Ki(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 Qi({mv:e,digit:t,height:n}){const a=Qr(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(ht.span,{style:{position:"absolute",inset:0,display:"flex",alignItems:"center",justifyContent:"center",y:a},children:t})}function Ji(e){const t=Math.round(e),n=1e-9*Math.max(1,Math.abs(e));return Math.abs(e-t)<n?t:e}function Zi(e,t){const n=e/t;return Math.floor(Ji(n))}function el(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 tl({place:e,value:t,height:n,digitStyle:a,shouldReduceMotion:r,isLed:s}){if(typeof e!="number"){const u=Ki(e,n);return o.jsx("span",{"data-counter-token":"static",className:`relative inline-flex items-center justify-center${s?" tt-lcd-sep":""}`,style:{height:n,...u,...a},children:e})}const l=Zi(t,e),i=da(0),c=Hi(i,{stiffness:220,damping:26,mass:.8});return h.useEffect(()=>{i.set(l)},[i,l]),r?o.jsx("span",{"data-counter-token":"digit",className:`relative inline-flex items-center justify-center overflow-hidden${s?" tt-lcd-cell":""}`,style:{height:n,position:"relative",width:"0.9ch",fontVariantNumeric:"tabular-nums",...a},children:Math.abs(l)%10}):o.jsx("span",{"data-counter-token":"digit",className:`relative inline-flex overflow-hidden${s?" tt-lcd-cell":""}`,style:{height:n,position:"relative",width:"0.9ch",fontVariantNumeric:"tabular-nums",...a},children:Array.from({length:10},(u,f)=>o.jsx(Qi,{mv:c,digit:f,height:n},f))})}function nl({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:u="inherit",containerStyle:f,counterStyle:d,digitStyle:m,gradientHeight:g=14,gradientFrom:y="rgba(255,255,255,0.95)",gradientTo:b="rgba(255,255,255,0)",topGradientStyle:v,bottomGradientStyle:w,variant:M="default"}){const k=M==="led",N=String(t??e??""),_=h.useMemo(()=>Array.isArray(r)&&r.length?r:el(N),[r,N]),j=typeof navigator<"u"&&/jsdom/i.test(navigator.userAgent||"")||typeof process<"u"&&Gi?.VITEST==="true",L=Lt()||j,P=Number.isFinite(Number(e))?Math.abs(Number(e)):0,D=n+a;return L?o.jsx("span",{"data-counter-root":"true",className:k?"tt-lcd":void 0,style:{display:"inline-flex",alignItems:"center",color:c,fontSize:n,fontWeight:u,lineHeight:1,...f,...d},children:k?o.jsx("span",{className:"tt-lcd-cell tt-lcd-cell--static",children:N}):N}):o.jsxs("span",{"data-counter-root":"true",style:{position:"relative",display:"inline-block",...f},children:[o.jsx("span",{className:k?"tt-lcd":void 0,style:{fontSize:n,...k?null:{display:"flex",gap:s,borderRadius:l,paddingLeft:i,paddingRight:i,color:c},overflow:"hidden",lineHeight:1,fontWeight:u,...d},children:_.map((I,G)=>o.jsx(tl,{place:I,value:P,height:D,digitStyle:m,shouldReduceMotion:L,isLed:k},`${String(I)}-${G}`))}),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, ${y}, ${b})`}}),o.jsx("span",{style:w??{height:g,background:`linear-gradient(to top, ${y}, ${b})`}})]})]})}var al={};const rl=new Set([",","."," "]),ol=typeof navigator<"u"&&/jsdom/i.test(navigator.userAgent||"")||typeof process<"u"&&al?.VITEST==="true";function sl({char:e,reduceMotion:t,index:n}){const[a,r]=h.useState(t?e:""),[s,l]=h.useState(!1),i=h.useRef(e),c=h.useRef(!1);return h.useEffect(()=>{if(!c.current){if(c.current=!0,i.current=e,t){r(e);return}const d=Math.min(n*45,520),m=setTimeout(()=>l(!0),d),g=setTimeout(()=>r(e),d+130),y=setTimeout(()=>l(!1),d+300);return()=>{clearTimeout(m),clearTimeout(g),clearTimeout(y)}}if(e===i.current)return;if(i.current=e,t){r(e);return}l(!0);const u=setTimeout(()=>r(e),130),f=setTimeout(()=>l(!1),300);return()=>{clearTimeout(u),clearTimeout(f)}},[e,t,n]),o.jsx("span",{className:`tt-flap${s?" tt-flap--flip":""}`,"aria-hidden":"true",children:o.jsx("span",{className:"tt-flap__glyph",children:a})})}function il({value:e,fontSize:t=56,className:n=""}){const a=Lt()||ol,r=String(e??""),s=Array.from(r);return o.jsx("span",{className:`tt-flaprow ${n}`,style:{fontSize:`clamp(30px, 9cqi, ${t}px)`},role:"text","aria-label":r,children:s.map((l,i)=>rl.has(l)?o.jsx("span",{className:"tt-flap-sep","aria-hidden":"true",children:l},i):o.jsx(sl,{char:l,reduceMotion:a,index:i},i))})}function ll({baseUrl:e,accessToken:t,guestAllowed:n=!1,weeks:a=52,weekStartsOn:r="sun",cacheKey:s,timeZone:l,tzOffsetMinutes:i,now:c}={}){const u=h.useMemo(()=>ci({weeks:a,weekStartsOn:r,now:c}),[c,a,r]),[f,d]=h.useState([]),[m,g]=h.useState(null),[y,b]=h.useState("edge"),[v,w]=h.useState(!1),[M,k]=h.useState(null),N=zt(),_=!n,j=h.useMemo(()=>{if(!s)return null;const V=rn({timeZone:l,offsetMinutes:i});return`tokentracker.heatmap.${s}.${a}.${r}.${V}`},[s,l,i,a,r]),L=h.useCallback(()=>{if(!j||typeof window>"u")return null;try{const V=window.localStorage.getItem(j);if(!V)return null;const $=JSON.parse(V);return!$||!$.heatmap?null:$}catch{return null}},[j]),P=h.useCallback(V=>{if(!(!j||typeof window>"u"))try{window.localStorage.setItem(j,JSON.stringify(V))}catch{}},[j]),D=h.useCallback(()=>{if(!(!j||typeof window>"u"))try{window.localStorage.removeItem(j)}catch{}},[j]),I=h.useCallback(async()=>{w(!0),k(null);try{try{const T=await hi({baseUrl:e,accessToken:t,weeks:a,to:u.to,weekStartsOn:r,timeZone:l,tzOffsetMinutes:i}),x=Array.isArray(T?.weeks)?T.weeks:[];if(!x.length&&_){const H=L();if(H?.heatmap){g(H.heatmap),d(H.daily||[]),b("cache");return}}if(!x.some(H=>(Array.isArray(H)?H:[]).some(C=>C&&Number.isFinite(Number(C.level))))&&x.length){const H=[];for(const X of x)for(const F of Array.isArray(X)?X:[])F?.day&&H.push({day:F.day,conversation_count:F.conversation_count??0,total_tokens:F.total_tokens??F.value??0,billable_total_tokens:F.billable_total_tokens??F.value??F.total_tokens??0});const C=Kn({dailyRows:H,weeks:a,to:T?.to||u.to,weekStartsOn:r});d(H),g({...C,week_starts_on:r,active_days:H.filter(X=>Number(X?.billable_total_tokens??X?.total_tokens)>0).length,streak_days:gn({dailyRows:H,to:T?.to||u.to})}),b("client"),_?P({heatmap:{...C,week_starts_on:r,active_days:H.filter(X=>Number(X?.billable_total_tokens??X?.total_tokens)>0).length,streak_days:gn({dailyRows:H,to:T?.to||u.to})},daily:H,fetchedAt:new Date().toISOString()}):D();return}g(T||null),d([]),b("edge"),T&&_?P({heatmap:T,daily:[],fetchedAt:new Date().toISOString()}):_||D();return}catch(T){const x=T,S=x?.status??x?.statusCode;if(S===401||S===403)throw T}const V=await Mn({baseUrl:e,accessToken:t,from:u.from,to:u.to,timeZone:l,tzOffsetMinutes:i}),$=Array.isArray(V?.data)?V.data:[];d($);const E=Kn({dailyRows:$,weeks:a,to:u.to,weekStartsOn:r});g({...E,week_starts_on:r,active_days:$.filter(T=>Number(T?.billable_total_tokens??T?.total_tokens)>0).length,streak_days:gn({dailyRows:$,to:u.to})}),b("client"),_?P({heatmap:{...E,week_starts_on:r,active_days:$.filter(T=>Number(T?.billable_total_tokens??T?.total_tokens)>0).length,streak_days:gn({dailyRows:$,to:u.to})},daily:$,fetchedAt:new Date().toISOString()}):D()}catch(V){if(_){const $=L();if($?.heatmap)g($.heatmap),d($.daily||[]),b("cache"),k(null);else{const E=V;k(E?.message||String(E)),d([]),g(null),b("edge")}}else{const $=V;k($?.message||String($)),d([]),g(null),b("edge")}}finally{w(!1)}},[t,e,N,n,_,u.from,u.to,L,l,i,r,a,D,P]);return h.useEffect(()=>{if(!_)D(),d([]),k(null),g(null),b("edge");else{const V=L();V?.heatmap&&(g(V.heatmap),d(V.daily||[]),b("cache"))}I()},[t,N,L,I,n,_,D]),{range:u,daily:f,heatmap:m,source:N?"mock":y==="client"?"edge":y,loading:v,error:M,refresh:I}}function cl({baseUrl:e,accessToken:t,limit:n=3,from:a,to:r,source:s,timeZone:l,tzOffsetMinutes:i}={}){const[c,u]=h.useState([]),[f,d]=h.useState(!1),[m,g]=h.useState(null),y=h.useCallback(async()=>{d(!0),g(null);try{const b=await gi({baseUrl:e,accessToken:t,limit:n,from:a,to:r,source:s,timeZone:l,tzOffsetMinutes:i});u(Array.isArray(b?.entries)?b.entries:[])}catch(b){const v=b?.message||String(b);g(v),u([])}finally{d(!1)}},[t,e,a,n,s,l,r,i]);return h.useEffect(()=>{y()},[y]),{entries:c,loading:f,error:m,refresh:y}}const dl=24;function Jr({baseUrl:e,accessToken:t,guestAllowed:n=!1,period:a,from:r,to:s,months:l=dl,cacheKey:i,timeZone:c,tzOffsetMinutes:u,now:f,sharedRows:d,sharedRange:m}={}){const[g,y]=h.useState([]),[b,v]=h.useState(()=>({from:r,to:s})),[w,M]=h.useState("edge"),[k,N]=h.useState(null),[_,j]=h.useState(!1),[L,P]=h.useState(null),D=zt(),I=!n&&!D,G=Array.isArray(d),V=m?.from||r,$=m?.to||s,E=h.useMemo(()=>a==="day"||a==="24h"?"hourly":a==="total"?"monthly":"daily",[a]),T=(()=>{if(!i)return null;const F=ul(e)||"default",Y=rn({timeZone:c,offsetMinutes:u});if(E==="hourly"){const Z=a==="24h"?`${r||""}.${s||""}`:s||r||"day";return`tokentracker.trend.${i}.${F}.hourly.${Z}.${Y}`}if(E==="monthly")return`tokentracker.trend.${i}.${F}.monthly.${l}.${s||"today"}.${Y}`;const B=`${r||""}.${s||""}`;return`tokentracker.trend.${i}.${F}.daily.${B}.${Y}`})(),x=h.useCallback(()=>{if(!T||typeof window>"u")return null;try{const F=window.localStorage.getItem(T);if(!F)return null;const Y=JSON.parse(F);return!Y||!Array.isArray(Y.rows)?null:Y}catch{return null}},[T]),S=h.useCallback(F=>{if(!(!T||typeof window>"u"))try{window.localStorage.setItem(T,JSON.stringify(F))}catch{}},[T]),H=h.useCallback(()=>{if(!(!T||typeof window>"u"))try{window.localStorage.removeItem(T)}catch{}},[T]),C=h.useCallback(async()=>{if(G){y(Array.isArray(d)?d:[]),v({from:V,to:$}),M("shared"),N(null),j(!1),P(null);return}j(!0),P(null);try{let F;E==="hourly"?F=await fl({baseUrl:e,accessToken:t,from:r,to:s,period:a,timeZone:c,tzOffsetMinutes:u,now:f}):E==="monthly"?F=await yi({baseUrl:e,accessToken:t,months:l,to:s,timeZone:c,tzOffsetMinutes:u}):F=await Mn({baseUrl:e,accessToken:t,from:r,to:s,timeZone:c,tzOffsetMinutes:u});const Y=F?.from||r||F?.day||null,B=F?.to||s||F?.day||null;let Z=Array.isArray(F?.data)?F.data:[];E==="daily"?Z=Fn(Z,Y||r,B||s,{timeZone:c,offsetMinutes:u,now:f}):E==="hourly"?Z=bn(Z,Y||r||F?.day,B||s,{period:a,timeZone:c,offsetMinutes:u,now:f}):E==="monthly"&&(Z=Rn(Z,{timeZone:c,offsetMinutes:u,now:f}));const xe=new Date().toISOString();y(Z),v({from:Y,to:B}),M("edge"),N(xe),I?S({rows:Z,from:Y,to:B,mode:E,fetchedAt:xe}):H()}catch(F){if(I){const Y=x();if(Y?.rows){let B=E==="daily"?Fn(Y.rows||[],Y.from||r,Y.to||s,{timeZone:c,offsetMinutes:u,now:f}):E==="hourly"?bn(Y.rows||[],Y.from||r||Y.day||s,Y.to||s,{period:a,timeZone:c,offsetMinutes:u,now:f}):Array.isArray(Y.rows)?Y.rows:[];E==="monthly"&&(B=Rn(B,{timeZone:c,offsetMinutes:u,now:f})),y(B),v({from:Y.from||r,to:Y.to||s}),M("cache"),N(Y.fetchedAt||null),P(null)}else{y([]),v({from:r,to:s}),M("edge"),N(null);const B=F;P(B?.message||String(B))}}else{y([]),v({from:r,to:s}),M("edge"),N(null);const Y=F;P(Y?.message||String(Y))}}finally{j(!1)}},[t,e,r,D,n,I,E,l,a,x,G,V,d,$,c,s,u,f,H,S]);h.useEffect(()=>{if(G){y(Array.isArray(d)?d:[]),v({from:V,to:$}),M("shared"),N(null),j(!1),P(null);return}if(!I)H(),y([]),v({from:r,to:s}),P(null),M("edge"),N(null);else{const F=x();if(F?.rows){let Y=E==="daily"?Fn(F.rows||[],F.from||r,F.to||s,{timeZone:c,offsetMinutes:u,now:f}):E==="hourly"?bn(F.rows||[],F.from||r||F.day||s,F.to||s,{period:a,timeZone:c,offsetMinutes:u,now:f}):Array.isArray(F.rows)?F.rows:[];E==="monthly"&&(Y=Rn(Y,{timeZone:c,offsetMinutes:u,now:f})),y(Y),v({from:F.from||r,to:F.to||s}),M("cache"),N(F.fetchedAt||null)}}C()},[t,D,x,C,G,V,d,$,n,I,H,E,r,s,c,u,f,a]);const X=D?"mock":w;return{rows:g,from:b.from||r,to:b.to||s,source:X,fetchedAt:k,loading:_,error:L,refresh:C}}function ul(e){try{return new URL(e).host}catch{return null}}async function fl({baseUrl:e,accessToken:t,from:n,to:a,period:r,timeZone:s,tzOffsetMinutes:l,now:i}){const c=r==="24h"?Zr(n,a):[a||n].filter(Boolean),u=Array.from(new Set(c)),f=await Promise.all(u.map(y=>qr({accessToken:t,day:y,timeZone:s,tzOffsetMinutes:l}))),d=f.flatMap(y=>Array.isArray(y?.data)?y.data:[]),m=r==="24h"?u[0]||n||a:f[0]?.day||n||a,g=r==="24h"?u[u.length-1]||a||n:f[0]?.day||a||n;return{day:g,from:m,to:g,data:bn(d,m,g,{period:r,timeZone:s,offsetMinutes:l,now:i})}}function It(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())&&mt(l)===t?l:null}function ua(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function Zr(e,t){const n=It(e||t),a=It(t||e);if(!n||!a)return[e||t].filter(Boolean).map(String);if(a<n)return[mt(a),mt(n)];const r=[];for(let s=n;s<=a;s=ua(s,1))r.push(mt(s));return r}const eo=["total_tokens","billable_total_tokens","input_tokens","cached_input_tokens","cache_creation_input_tokens","output_tokens","reasoning_output_tokens","conversation_count"];function Fn(e,t,n,{timeZone:a,offsetMinutes:r,now:s}={}){const l=It(t),i=It(n);if(!l||!i||i<l)return Array.isArray(e)?e:[];const c=s instanceof Date&&Number.isFinite(s.getTime())?s:new Date,u=en({timeZone:a,offsetMinutes:r,date:c}),f=It(u),d=f?f.getTime():c.getTime(),m=new Map;for(const y of e||[])y?.day&&m.set(y.day,y);const g=[];for(let y=l;y<=i;y=ua(y,1)){const b=mt(y),v=m.get(b),w=y.getTime()>d;if(v){g.push({...v,missing:!1,future:w});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:!w,future:w})}return g}function ml(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 hl(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 gl(e,t,n){const a={...e,hour:t,missing:!1,future:n};if(!n&&hl(e))for(const r of eo)a[r]=0;return a}function yl(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 pl(e,t,{timeZone:n,offsetMinutes:a}={}){const r=yl(e,t);if(!n||typeof Intl>"u"||!Intl.DateTimeFormat)return r;const s=It(e);if(!s)return r;const l=s.getUTCFullYear()*1e4+(s.getUTCMonth()+1)*100+s.getUTCDate(),i=s.getTime()-2160*60*1e3,c=ua(s,2).getTime()+2160*60*1e3,u=[],f=new Set;for(let d=i;d<=c;d+=1800*1e3){const m=sn({timeZone:n,offsetMinutes:a,now:new Date(d)});if(!m||m.dayNum!==l||t===60&&m.minute!==0||t===30&&m.minute!==0&&m.minute!==30)continue;const g=`${e}T${String(m.hour).padStart(2,"0")}:${String(m.minute).padStart(2,"0")}:00`;f.has(g)||(f.add(g),u.push(g))}return u.length>0?u:r}function bl(e,t,{timeZone:n,offsetMinutes:a,now:r}={}){if(!t)return Array.isArray(e)?e:[];const s=t.trim().slice(0,10),l=sn({timeZone:n,offsetMinutes:a,now:r}),i=l?l.dayNum:void 0;let c=!1;for(const g of e||[]){const y=g?.hour||g?.label||"",b=xn(y,i);if(b&&b.slot%2!==0){c=!0;break}}const u=c?30:60,f=new Map;for(const g of e||[]){const y=g?.hour||g?.label||"",b=xn(y,i);b&&f.set(b.slot,g)}const d=[],m=pl(s,u,{timeZone:n,offsetMinutes:a});for(let g=0;g<m.length;g++){const y=m[g],b=xn(y,i),v=b?b.slot:c?g:g*2,w=f.get(v);let M=!1;if(l){const k=l.year*1e4+l.month*100+l.day,N=b?.dayNum??Number(s.replace(/-/g,""));if(N>k)M=!0;else if(N===k){const _=l.hour*2+(l.minute>=30?1:0);M=v>_}}w?d.push(gl(w,y,M)):d.push(ml(y,M))}return d}function bn(e,t,n,{period:a,timeZone:r,offsetMinutes:s,now:l}={}){const i=a==="24h"?Zr(t,n):[n||t].filter(Boolean).map(String),u=Array.from(new Set(i)).flatMap(d=>bl(xl(e||[],d),d,{timeZone:r,offsetMinutes:s,now:l})),f=kl(u,{timeZone:r,offsetMinutes:s,now:l});return a!=="24h"?f:wl(f,{timeZone:r,offsetMinutes:s,now:l})}function xl(e,t){return e.filter(n=>{const a=n?.hour||n?.label||"",r=String(a).trim();return r.includes("T")?r.slice(0,10)===t:!0})}function kl(e,{timeZone:t,offsetMinutes:n,now:a}={}){if(!Array.isArray(e))return[];const r=sn({timeZone:t,offsetMinutes:n,now:a});return r?e.map(s=>{const l=s?.hour||s?.label||"",i=xn(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 wl(e,{timeZone:t,offsetMinutes:n,now:a}={}){if(!Array.isArray(e))return[];const r=sn({timeZone:t,offsetMinutes:n,now:a});if(!r)return e.filter(i=>!i?.future);const s=to({year:r.year,month:r.month,day:r.day,hour:r.hour,minute:r.minute}),l=s-1440*60*1e3;return e.filter(i=>{if(i?.future)return!1;const c=vl(i?.hour||i?.label);return c!=null&&c>=l&&c<=s})}function Rn(e,{timeZone:t,offsetMinutes:n,now:a}={}){if(!Array.isArray(e))return[];const r=sn({timeZone:t,offsetMinutes:n,now:a});return r?e.map(s=>{const l=s?.month||s?.label||"",i=Nl(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 sn({timeZone:e,offsetMinutes:t,now:n}={}){const a=n instanceof Date&&Number.isFinite(n.getTime())?n:new Date;if(e&&typeof Intl<"u"&&Intl.DateTimeFormat)try{const m=new Intl.DateTimeFormat("en-CA",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).formatToParts(a).reduce((M,k)=>(k.type&&k.value&&(M[k.type]=k.value),M),{}),g=Number(m.year),y=Number(m.month),b=Number(m.day),v=Number(m.hour),w=Number(m.minute);if(Number.isFinite(g)&&Number.isFinite(y)&&Number.isFinite(b)&&Number.isFinite(v)&&Number.isFinite(w)){const M=v*2+(w>=30?1:0);return{year:g,month:y,day:b,hour:v,minute:w,dayNum:g*1e4+y*100+b,slot:M}}}catch{}if(Number.isFinite(t)){const f=new Date(a.getTime()+t*60*1e3),d=f.getUTCFullYear(),m=f.getUTCMonth()+1,g=f.getUTCDate(),y=f.getUTCHours(),b=f.getUTCMinutes(),v=y*2+(b>=30?1:0);return{year:d,month:m,day:g,hour:y,minute:b,dayNum:d*1e4+m*100+g,slot:v}}const r=a.getFullYear(),s=a.getMonth()+1,l=a.getDate(),i=a.getHours(),c=a.getMinutes(),u=i*2+(c>=30?1:0);return{year:r,month:s,day:l,hour:i,minute:c,dayNum:r*1e4+s*100+l,slot:u}}function xn(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 u=r.split(":"),f=Number(u[0]),d=Number(u[1]);if(!Number.isFinite(f)||f<0||f>23||!Number.isFinite(d)||d<0||d>59)return null;const m=f*2+(d>=30?1:0);return{dayNum:l*1e4+i*100+c,slot:m}}else{let a=NaN,r=0;if(/^\d{1,2}$/.test(n))a=Number(n);else if(/^\d{1,2}:\d{2}(:\d{2})?$/.test(n)){const l=n.split(":");a=Number(l[0]),r=Number(l[1])}if(!Number.isFinite(a)||a<0||a>23||!Number.isFinite(r)||r<0||r>59)return null;const s=a*2+(r>=30?1:0);return{dayNum:t||null,slot:s}}}function to({year:e,month:t,day:n,hour:a=0,minute:r=0}){return Date.UTC(Number(e),Number(t)-1,Number(n),Number(a),Number(r),0,0)}function vl(e){if(!e)return null;const t=String(e).trim();if(!t.includes("T"))return null;const[n,a]=t.split("T");if(!n||!a)return null;const r=n.split("-"),s=a.split(":");if(r.length!==3||s.length<2)return null;const[l,i,c]=r.map(Number),[u,f]=s.map(Number);return!Number.isFinite(l)||!Number.isFinite(i)||!Number.isFinite(c)||!Number.isFinite(u)||!Number.isFinite(f)?null:to({year:l,month:i,day:c,hour:u,minute:f})}function Nl(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 La({baseUrl:e,accessToken:t,guestAllowed:n=!1,from:a,to:r,includeDaily:s=!0,cacheKey:l,timeZone:i,tzOffsetMinutes:c,now:u}={}){const[f,d]=h.useState([]),[m,g]=h.useState(null),[y,b]=h.useState(null),[v,w]=h.useState("edge"),[M,k]=h.useState(null),[N,_]=h.useState(!1),[j,L]=h.useState(null),P=zt(),D=!n&&!P,I=(()=>{if(!l)return null;const x=_l(e)||"default",S=s?"daily":"summary",H=rn({timeZone:i,offsetMinutes:c});return`tokentracker.usage.${l}.${x}.${a}.${r}.${S}.${H}`})(),G=h.useCallback(()=>{if(!I||typeof window>"u")return null;try{const x=window.localStorage.getItem(I);if(!x)return null;const S=JSON.parse(x);return!S||!S.summary?null:S}catch{return null}},[I]),V=h.useCallback(x=>{if(!(!I||typeof window>"u"))try{window.localStorage.setItem(I,JSON.stringify(x))}catch{}},[I]),$=h.useCallback(()=>{if(!(!I||typeof window>"u"))try{window.localStorage.removeItem(I)}catch{}},[I]),E=h.useCallback(async()=>{_(!0),L(null);try{let x=null,S=null;if(s){const[Y,B]=await Promise.allSettled([Mn({baseUrl:e,accessToken:t,from:a,to:r,timeZone:i,tzOffsetMinutes:c}),En({baseUrl:e,accessToken:t,from:a,to:r,timeZone:i,tzOffsetMinutes:c,rolling:!0})]);if(Y.status==="rejected")throw Y.reason;x=Y.value,S=B.status==="fulfilled"?B.value:null}else S=await En({baseUrl:e,accessToken:t,from:a,to:r,timeZone:i,tzOffsetMinutes:c,rolling:!0});let H=s&&Array.isArray(x?.data)?x.data:[];s&&(H=Ln(H,a,r,{timeZone:i,offsetMinutes:c,now:u}));let C=S?.totals||x?.summary?.totals||null,X=S?.rolling||x?.summary?.rolling||null;if(s&&!C&&!S)try{const Y=await En({baseUrl:e,accessToken:t,from:a,to:r,timeZone:i,tzOffsetMinutes:c,rolling:!0});C=Y?.totals||null,X=Y?.rolling||X}catch{}const F=new Date().toISOString();d(H),g(C),b(X),w("edge"),k(F),C&&D?V({summary:C,rolling:X,daily:H,from:a,to:r,includeDaily:s,fetchedAt:F}):D||$()}catch(x){if(D){const S=G();if(S?.summary){g(S.summary),b(S.rolling||null);const H=Array.isArray(S.daily)?S.daily:[],C=s?Ln(H,S.from||a,S.to||r,{timeZone:i,offsetMinutes:c,now:u}):H;d(C),w("cache"),k(S.fetchedAt||null),L(null)}else{const H=x;L(H?.message||String(H)),d([]),g(null),b(null),w("edge"),k(null)}}else{const S=x;L(S?.message||String(S)),d([]),g(null),b(null),w("edge"),k(null)}}finally{_(!1)}},[t,e,a,s,P,n,D,u,G,i,r,c,$,V]);return h.useEffect(()=>{if(!D)$(),d([]),g(null),b(null),L(null),w("edge"),k(null);else{const x=G();if(x?.summary){g(x.summary),b(x.rolling||null);const S=Array.isArray(x.daily)?x.daily:[],H=s?Ln(S,x.from||a,x.to||r,{timeZone:i,offsetMinutes:c,now:u}):S;d(H),w("cache"),k(x.fetchedAt||null)}}E()},[t,P,G,E,n,D,$]),{daily:f,summary:m,rolling:y,source:P?"mock":v,fetchedAt:M,loading:N,error:j,refresh:E}}function _l(e){try{return new URL(e).host}catch{return null}}function In(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())&&mt(l)===t?l:null}function Ml(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function Ln(e,t,n,{timeZone:a,offsetMinutes:r,now:s}={}){const l=In(t),i=In(n);if(!l||!i||i<l)return Array.isArray(e)?e:[];const c=s instanceof Date&&Number.isFinite(s.getTime())?s:new Date,u=en({timeZone:a,offsetMinutes:r,date:c}),f=In(u),d=f?f.getTime():c.getTime(),m=new Map;for(const y of e||[])y?.day&&m.set(y.day,y);const g=[];for(let y=l;y<=i;y=Ml(y,1)){const b=mt(y),v=m.get(b),w=y.getTime()>d;if(v){g.push({...v,missing:!1,future:w});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:!w,future:w})}return g}function jl({baseUrl:e,accessToken:t,guestAllowed:n=!1,from:a,to:r,cacheKey:s,timeZone:l,tzOffsetMinutes:i}={}){const[c,u]=h.useState(null),[f,d]=h.useState("edge"),[m,g]=h.useState(!1),[y,b]=h.useState(null),v=zt(),w=!n,M=h.useMemo(()=>{if(!s)return null;const P=Sl(e)||"default",D=rn({timeZone:l,offsetMinutes:i});return`tokentracker.modelBreakdown.${s}.${P}.${a}.${r}.${D}`},[e,s,a,l,r,i]),k=h.useCallback(()=>{if(!M||typeof window>"u")return null;try{const P=window.localStorage.getItem(M);if(!P)return null;const D=JSON.parse(P);return!D||!D.breakdown?null:D}catch{return null}},[M]),N=h.useCallback(P=>{if(!(!M||typeof window>"u"))try{window.localStorage.setItem(M,JSON.stringify(P))}catch{}},[M]),_=h.useCallback(()=>{if(!(!M||typeof window>"u"))try{window.localStorage.removeItem(M)}catch{}},[M]),j=h.useCallback(async()=>{g(!0),b(null);try{const P=await pi({baseUrl:e,accessToken:t,from:a,to:r,timeZone:l,tzOffsetMinutes:i});u(P||null),d("edge"),P&&w?N({breakdown:P,fetchedAt:new Date().toISOString()}):w||_()}catch(P){if(w){const D=k();if(D?.breakdown)u(D.breakdown),d("cache"),b(null);else{u(null),d("edge");const I=P;b(I?.message||String(I))}}else{u(null),d("edge");const D=P;b(D?.message||String(D))}}finally{g(!1)}},[t,e,a,v,n,w,k,l,r,i,_,N]);return h.useEffect(()=>{if(!w)_(),u(null),d("edge"),b(null);else{const P=k();P?.breakdown&&(u(P.breakdown),d("cache"))}j()},[t,v,k,j,n,w,_]),{breakdown:c,source:v?"mock":f,loading:m,error:y,refresh:j}}function Sl(e){try{return new URL(e).host}catch{return null}}function Re(e){const t=typeof e=="number"?e:Number(e);return Number.isFinite(t)?t:0}function Cl(e){const t=String(e?.hour??""),n=t.indexOf("T");if(n<0)return null;const a=Number(t.slice(n+1,n+3));return Number.isFinite(a)?a:null}function Rt(e,t){let n=0,a=0;if(Array.isArray(e))for(const r of e){const s=Cl(r);s==null||s>t||(n+=Re(r.total_tokens),a+=Re(r.total_cost_usd))}return{tokens:n,cost:a}}function wn(...e){return e.reduce((t,n)=>({tokens:t.tokens+Re(n?.tokens),cost:t.cost+Re(n?.cost)}),{tokens:0,cost:0})}function za(e){if(!Array.isArray(e)||e.length===0)return null;const t=wn(...e);return{tokens:t.tokens/e.length,cost:t.cost/e.length}}function zn(e){if(!e)return null;const t=Re(e.tokens);return t<=0?null:Re(e.cost)/(t/1e6)}function Ya(e,t){return e==null||t==null||!Number.isFinite(e)||!Number.isFinite(t)||t===0?null:(e-t)/t}function Dl({current:e,prev:t=null,trailingAvg:n=null,trailingFull:a=null,period:r}){if(r==="total"||!e)return null;const s=(i,c)=>c==null||!(c>0)?null:i/c,l=(i,c,u,f)=>({value:i,deltaVsPrev:Ya(i,c),deltaVsAvg:n?Ya(i,u):null,progress:f});return{period:r,tokens:l(Re(e.tokens),t?Re(t.tokens):null,n?Re(n.tokens):null,a?s(Re(e.tokens),Re(a.tokens)):null),cost:l(Re(e.cost),t?Re(t.cost):null,n?Re(n.cost):null,a?s(Re(e.cost),Re(a.cost)):null),perMTok:l(zn(e),zn(t),zn(n),null)}}const no=864e5;function na(e){const t=String(e).split("-").map(Number);return t.length!==3||t.some(n=>!Number.isFinite(n))?null:Date.UTC(t[0],t[1]-1,t[2])}function vn(e){const t=new Date(e),n=t.getUTCFullYear(),a=String(t.getUTCMonth()+1).padStart(2,"0"),r=String(t.getUTCDate()).padStart(2,"0");return`${n}-${a}-${r}`}function kt(e,t){const n=na(e);return n==null?null:vn(n+t*no)}function Tl(e,{timeZone:t,offsetMinutes:n}){const a=e instanceof Date?e:new Date(e);if(t&&typeof Intl<"u"&&Intl.DateTimeFormat)try{const r=new Intl.DateTimeFormat("en-GB",{timeZone:t,hour:"2-digit",hour12:!1});let s=Number(r.format(a).slice(0,2));if(s===24&&(s=0),Number.isFinite(s))return Math.min(23,Math.max(0,s))}catch{}return typeof n=="number"&&Number.isFinite(n)?new Date(a.getTime()+n*6e4).getUTCHours():a.getHours()}function Pl(e,{timeZone:t,offsetMinutes:n}){const a=e instanceof Date?e:new Date(e);if(t&&typeof Intl<"u"&&Intl.DateTimeFormat)try{const s=new Intl.DateTimeFormat("en-CA",{timeZone:t,year:"numeric",month:"2-digit",day:"2-digit"}).format(a);if(/^\d{4}-\d{2}-\d{2}$/.test(s))return s}catch{}return typeof n=="number"&&Number.isFinite(n)?vn(a.getTime()+n*6e4):vn(a.getTime())}const Ol=e=>Number(e?.total_tokens??0)||0,$l=e=>Number(e?.total_cost_usd??0)||0;function Ba(e,t,n){let a={tokens:0,cost:0};const r=t?na(t):null,s=n?na(n):null;if(r==null||s==null||r>s)return a;for(let l=r;l<=s;l+=no){const i=e.get(vn(l));i&&(a=wn(a,i))}return a}function Wl(e,t){if(!t||e==="total")return null;if(e==="day"||e==="24h"){const s=[];for(let l=1;l<=7;l++){const i=kt(t,-l);i&&s.push(i)}return{kind:"day",hourlyDays:[t,...s],dailyFrom:null,dailyTo:null,todayKey:t,prevKey:kt(t,-1),trailingKeys:s}}const n=e==="week"?6:e==="month"?29:null;if(n==null)return null;const a=n+1,r=kt(t,-a);return{kind:"window",hourlyDays:[t,r].filter(Boolean),dailyFrom:kt(t,-(a*2-1)),dailyTo:t,todayKey:t,curStartKey:kt(t,-n),prevBoundaryKey:r,prevStartKey:kt(t,-(a*2-1))}}function El(e,t){const n=new Map;return e.forEach((a,r)=>{n.set(a,Array.isArray(t[r]?.data)?t[r].data:[])}),n}function Al(e){const t=new Map;for(const n of Array.isArray(e?.data)?e.data:[])n?.day&&t.set(String(n.day),{tokens:Ol(n),cost:$l(n)});return t}function Fl(e,t,n){return{current:Rt(t.get(e.todayKey),n),prev:e.prevKey?Rt(t.get(e.prevKey),n):null,trailingAvg:za(e.trailingKeys.map(a=>Rt(t.get(a),n))),trailingFull:za(e.trailingKeys.map(a=>Rt(t.get(a),23)))}}function Rl(e,t,n,a){const r=wn(Ba(n,e.curStartKey,kt(e.todayKey,-1)),Rt(t.get(e.todayKey),a)),s=wn(Ba(n,e.prevStartKey,e.prevBoundaryKey?kt(e.prevBoundaryKey,-1):null),e.prevBoundaryKey?Rt(t.get(e.prevBoundaryKey),a):{tokens:0,cost:0});return{current:r,prev:s,trailingAvg:null}}function Il(e){try{return new URL(e).host}catch{return null}}function Ll({baseUrl:e,accessToken:t,guestAllowed:n=!1,period:a,timeZone:r,tzOffsetMinutes:s,now:l,cacheKey:i}={}){const[c,u]=h.useState(null),[f,d]=h.useState(!1),[m,g]=h.useState(null),y=h.useRef(0),b=l instanceof Date?l:new Date(l||Date.now()),v=Pl(b,{timeZone:r,offsetMinutes:s}),w=Tl(b,{timeZone:r,offsetMinutes:s}),M=zt(),k=!n&&!M,N=(()=>{if(!i)return null;const D=Il(e)||"default",I=rn({timeZone:r,offsetMinutes:s});return`tokentracker.pulse.${i}.${D}.${a}.${v}.${I}`})(),_=h.useCallback(()=>{if(!N||typeof window>"u")return null;try{const D=window.localStorage.getItem(N);return D?JSON.parse(D):null}catch{return null}},[N]),j=h.useCallback(D=>{if(!(!N||typeof window>"u"))try{window.localStorage.setItem(N,JSON.stringify(D))}catch{}},[N]),L=h.useCallback(()=>{const D=_();return D&&D.cutoffHour===w?D:null},[_,w]),P=h.useCallback(async()=>{const D=Wl(a,v);if(!D){u(null),g(null);return}const I=++y.current;d(!0),g(null);try{const G=await Promise.all(D.hourlyDays.map(T=>qr({baseUrl:e,accessToken:t,day:T,timeZone:r,tzOffsetMinutes:s}))),V=El(D.hourlyDays,G);let $;if(D.kind==="day")$=Fl(D,V,w);else{const T=await Mn({baseUrl:e,accessToken:t,from:D.dailyFrom,to:D.dailyTo,timeZone:r,tzOffsetMinutes:s});$=Rl(D,V,Al(T),w)}const E=Dl({...$,period:a});if(I!==y.current)return;u(E),k&&E&&j({pulse:E,todayKey:v,cutoffHour:w,fetchedAt:new Date().toISOString()})}catch(G){if(I!==y.current)return;const V=L();V?.pulse&&u(V.pulse),g(G?.message?String(G.message):"Failed to load pulse")}finally{I===y.current&&d(!1)}},[e,t,n,a,r,s,v,w,k,M,L,j]);return h.useEffect(()=>{if(a==="total"||a==="custom"){u(null);return}const D=L();D?.pulse&&u(D.pulse)},[N,a,w]),h.useEffect(()=>{P()},[P]),{pulse:c,loading:f,error:m,refresh:P}}const ao=new Set(["day","hour","month"]);function zl(e){return ao.has(e)}function Ha(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 Yl(e,t){const n=Ha(e),a=Ha(t);if(n&&a)return n.length!==a.length?n.length<a.length?-1:1:n===a?0:n<a?-1:1;const r=Le(e),s=Le(t);return r==null&&s==null?0:r==null?1:s==null?-1:r===s?0:r<s?-1:1}function ro(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 Bl(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 Hl(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 Ul(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 u=new Date(Date.UTC(a,r-1,s,l,i,c));return Number.isFinite(u.getTime())?u.getTime():null}function Vl(e,t,n){const a=n==="hour"?Ul:n==="month"?Hl:Bl,r=a(e),s=a(t);return r!=null&&s!=null?r===s?0:r<s?-1:1:ro(e,t)}function oo(e,{key:t,dir:n}){const a=n==="asc"?1:-1,r=Array.isArray(e)?e:[],s=ao.has(t)?(i,c)=>Vl(i,c,t):t==="top_model"?ro:Yl,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 u=l(i.row),f=l(c.row),d=u==null,m=f==null;if(d&&m)return i.index-c.index;if(d)return 1;if(m)return-1;const g=s(u,f);return g!==0?g*a:i.index-c.index}).map(i=>i.row)}function ql(){return[{key:"day",label:p("daily.sort.date.label"),title:p("daily.sort.date.title")},{key:"total_tokens",label:p("daily.sort.total.label"),title:p("daily.sort.total.title")},{key:"input_tokens",label:p("daily.sort.input.label"),title:p("daily.sort.input.title")},{key:"output_tokens",label:p("daily.sort.output.label"),title:p("daily.sort.output.title")},{key:"cached_input_tokens",label:p("daily.sort.cached.label"),title:p("daily.sort.cached.title")},{key:"reasoning_output_tokens",label:p("daily.sort.reasoning.label"),title:p("daily.sort.reasoning.title")},{key:"conversation_count",label:p("daily.sort.conversations.label"),title:p("daily.sort.conversations.title")}]}function Ua(e){const t=zl(e)?e:"day";return ql().map((n,a)=>a===0?{...n,key:t}:n)}function Va(e,{key:t,dir:n}){return oo(e,{key:t,dir:n})}const Nn=12,Xl=["total_tokens","billable_total_tokens","input_tokens","cached_input_tokens","cache_creation_input_tokens","output_tokens","reasoning_output_tokens"];function Gl(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 Kl(e){return Xl.some(t=>Gl(e?.[t]))}function Ql(e){const t=Array.isArray(e)?e:[];if(!t.length)return[];const n=oo(t,{key:"month",dir:"asc"}),a=n.findIndex(r=>r?.month&&Kl(r));return a===-1?t:n.slice(a)}function Jl(e,t,n=Nn){const a=Array.isArray(e)?e:[],r=Number.isFinite(n)&&n>0?n:Nn,l=(Number.isFinite(t)&&t>=0?Math.floor(t):0)*r;return a.slice(l,l+r)}function Zl(e){if(typeof e!="string")return null;const t=e.trim();return t?t.toLowerCase():null}function ec(e){const t=Zl(e?.model_id);return t||null}function tc(e,t){return e?.model?String(e.model):t}const nc=new Set(["curated:fuzzy","litellm:fuzzy","litellm:prefix-strip"]);function ac(e){const t=String(e||"").toLowerCase();return t.includes("free")||t.includes("hy3-preview")||/^glm-[\d.]+-flash(?![a-z])/.test(t)}function _n(e,t=0){const n=Le(e?.billable_total_tokens),a=Le(e?.total_tokens);return n!=null&&n>0?n:a!=null&&a>0?a:n??a??t}function so(e,{copyFn:t}={}){const n=typeof t=="function"?t:l=>l,r=(Array.isArray(e?.sources)?e.sources:[]).map(l=>{const i=_n(l?.totals),c=Le(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,u=Number.isFinite(c)?c.toFixed(1):"0.0",f=l.models.map(y=>{const b=_n(y?.totals);if(!Number.isFinite(b)||b<=0)return null;const v=l.totalTokens>0?Math.round(b/l.totalTokens*1e3)/10:0,w=tc(y,n("shared.placeholder.short")),M=ec(y),k=Le(y?.totals?.total_cost_usd),N=k??(l.totalCost>0&&l.totalTokens>0?b/l.totalTokens*l.totalCost:null),_=typeof y?.pricing_tier=="string"?y.pricing_tier:null,j=_?_==="miss"&&b>0:b>0&&(N==null||N<=0)&&!ac(w),L=!!(_&&nc.has(_));return{id:M,name:w,share:v,usage:b,cost:N,pricingTier:_,pricingMissing:j,pricingFuzzy:L}}).filter(Boolean),d=f.filter(y=>Number.isFinite(Number(y?.cost))&&Number(y.cost)>0).sort((y,b)=>Number(b.cost)-Number(y.cost))[0]||null,m=f.filter(y=>y?.pricingMissing),g=f.filter(y=>y?.pricingFuzzy);return{source:l.source,label:i,totalPercent:String(u),usd:l.totalCost,usage:l.totalTokens,topCostModel:d,missingPricingModels:m,fuzzyPricingModels:g,models:f}})}function rc(e,{copyFn:t}={}){const a=so(e,{copyFn:typeof t=="function"?t:d=>d}),r=a.reduce((d,m)=>d+(Number(m?.usage)||0),0),s=a.reduce((d,m)=>d+(Number(m?.usd)||0),0),l=a.flatMap(d=>(d.models||[]).map(m=>({...m,source:d.label}))),i=l.filter(d=>Number.isFinite(Number(d?.cost))&&Number(d.cost)>0).sort((d,m)=>Number(m.cost)-Number(d.cost))[0]||null,c=l.filter(d=>Number.isFinite(Number(d?.usage))&&Number(d.usage)>0).sort((d,m)=>Number(m.usage)-Number(d.usage))[0]||null,u=l.filter(d=>d?.pricingMissing);return{fuzzyPricingModels:l.filter(d=>d?.pricingFuzzy),totalTokens:r,totalCost:s,costPerMillionTokens:r>0?s/(r/1e6):null,topCostModel:i,topUsageModel:c,missingPricingModels:u}}function oc(e,t="—"){const n=Object.entries(e?.models||{});if(!n.length)return t;let a=null,r=-1;for(const[s,l]of n){const i=Number(l);!Number.isFinite(i)||i<=r||(a=s,r=i)}return a||t}function sc(e,{fallback:t="—"}={}){const n=(Array.isArray(e)?e:[]).map(s=>{const l=_n(s),i=Le(s?.total_cost_usd)??0,c=Number.isFinite(l)&&l>0?i/(l/1e6):null;return{...s,cost_per_million_tokens:c,top_model:oc(s,t)}}),a=n.reduce((s,l)=>{const i=Le(l?.cost_per_million_tokens);return i!=null&&i>0&&s.push(i),s},[]),r=a.length>0?a.reduce((s,l)=>s+l,0)/a.length:null;return n.map(s=>{const l=Le(s?.cost_per_million_tokens),i=l!=null&&r!=null&&r>0&&l>r*1.15;return{...s,cost_per_million_baseline:r,cost_per_million_status:i?"high":"normal"}})}const dt={emerald:{light:["#ebedf0","#a7f3d0","#6ee7b7","#34d399","#10b981"],dark:["#2d333b","#065f46","#059669","#10b981","#34d399"],gridColor:{light:"rgba(16, 185, 129, 0.12)",dark:"rgba(52, 211, 153, 0.08)"}},ocean:{light:["#f1f5f9","#93c5fd","#60a5fa","#3b82f6","#1d4ed8"],dark:["#1e293b","#1e3a8a","#2563eb","#3b82f6","#60a5fa"],gridColor:{light:"rgba(59, 130, 246, 0.12)",dark:"rgba(96, 165, 250, 0.08)"}},neon:{light:["#faf5ff","#ebd5ff","#c084fc","#a855f7","#7e22ce"],dark:["#2e1065","#581c87","#8b5cf6","#a855f7","#c084fc"],gridColor:{light:"rgba(168, 85, 247, 0.12)",dark:"rgba(192, 132, 252, 0.08)"}},amber:{light:["#fffbeb","#fde68a","#f59e0b","#d97706","#b45309"],dark:["#451a03","#78350f","#b45309","#d97706","#f59e0b"],gridColor:{light:"rgba(245, 158, 11, 0.12)",dark:"rgba(245, 158, 11, 0.08)"}}};function ic(e,t){const n=/^#([0-9a-f]{6})$/i.exec(e);if(!n)return e;const a=parseInt(n[1],16),r=a>>16&255,s=a>>8&255,l=a&255,i=c=>Math.max(0,Math.min(255,Math.round(c*t)));return`rgb(${i(r)}, ${i(s)}, ${i(l)})`}function tt(e,t,n,a,r){const s=Math.cos(a),l=Math.sin(a),i=e*s-t*l,c=e*l+t*s,u=n,f=Math.cos(r),d=Math.sin(r),m=i,g=c*f-u*d,y=c*d+u*f;return{x:m,y:g,z:y}}function lc(e,t,n,a,r){return tt(e,t,n,a,r)}function io(e,t){const n=Number(t).toLocaleString();if(e>=4){const a=Math.floor(Math.random()*3)+1;return p(`heatmap.3d.voxel.joke.${a}`,{value:n})}else return e===3?p("heatmap.3d.voxel.level3",{value:n}):e===2?p("heatmap.3d.voxel.level2",{value:n}):e===1?p("heatmap.3d.voxel.level1",{value:n}):p("heatmap.3d.voxel.level0")}function qa({weeks:e,palette:t="auto",isDark:n=!1,interactive:a=!1,autoRotateInit:r=!1,onResetViewRef:s=null}){const l=dt[t]||(t==="auto"?dt.emerald:null),i=l?n?l.dark:l.light:Array.isArray(t)?t:n?dt.emerald.dark:dt.emerald.light,c=l?n?l.gridColor.dark:l.gridColor.light:n?"rgba(255,255,255,0.06)":"rgba(0,0,0,0.06)",u=-.2,f=.88,[d,m]=h.useState({yaw:u,pitch:f}),[g,y]=h.useState(r),[b,v]=h.useState(1),w=a?13:10.5,M=h.useMemo(()=>{const A=[],z=e.length;if(z===0||!a)return[];for(let U=0;U<=7;U++){const q=(U-3.5)*w,ne=tt(-z/2*w,q,0,d.yaw,d.pitch),se=tt(z/2*w,q,0,d.yaw,d.pitch);A.push({d:`M${ne.x},${ne.y} L${se.x},${se.y}`,key:`horiz-${U}`})}for(let U=0;U<=z;U+=4){const q=(U-z/2)*w,ne=tt(q,-3.5*w,0,d.yaw,d.pitch),se=tt(q,3.5*w,0,d.yaw,d.pitch);A.push({d:`M${ne.x},${ne.y} L${se.x},${se.y}`,key:`vert-${U}`})}if(z%4!==0){const U=(z-z/2)*w,q=tt(U,-3.5*w,0,d.yaw,d.pitch),ne=tt(U,3.5*w,0,d.yaw,d.pitch);A.push({d:`M${q.x},${q.y} L${ne.x},${ne.y}`,key:"vert-last"})}return A},[e.length,d,w,a]);h.useEffect(()=>{s&&(s.current={reset:()=>{m({yaw:u,pitch:f}),y(!1),v(1),T()},toggleAutoRotate:A=>{y(A)}})},[s]);const k=h.useRef(null),N=h.useRef(null),_=h.useRef(!1),j=h.useRef({x:0,y:0}),L=h.useRef({yaw:u,pitch:f}),P=h.useRef({x:0,y:0}),D=h.useRef({x:0,y:0,time:0}),I=h.useRef(null),[G,V]=h.useState(0),$=h.useRef(null),E=h.useRef(!0);h.useEffect(()=>(E.current=!0,()=>{E.current=!1}),[]);const T=()=>{$.current&&cancelAnimationFrame($.current),V(0);const A=performance.now(),z=1200,U=q=>{if(!E.current)return;const ne=q-A,se=Math.min(1,ne/z),ye=1-Math.pow(1-se,3);V(ye),se<1?$.current=requestAnimationFrame(U):$.current=null};$.current=requestAnimationFrame(U)};h.useEffect(()=>(T(),()=>{$.current&&cancelAnimationFrame($.current)}),[a]),h.useEffect(()=>{if(!g||_.current||typeof window>"u"||typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;let z;const U=()=>{if(typeof document<"u"&&document.visibilityState==="hidden"){z=requestAnimationFrame(U);return}m(q=>({yaw:q.yaw+.002,pitch:q.pitch})),z=requestAnimationFrame(U)};return z=requestAnimationFrame(U),()=>cancelAnimationFrame(z)},[g]);const x=(A,z)=>{a&&(_.current=!0,j.current={x:A,y:z},L.current={yaw:d.yaw,pitch:d.pitch},P.current={x:0,y:0},D.current={x:A,y:z,time:performance.now()},I.current&&cancelAnimationFrame(I.current))},S=(A,z)=>{if(!_.current)return;const U=A-j.current.x,q=z-j.current.y,ne=performance.now(),se=ne-D.current.time;se>0&&(P.current={x:(A-D.current.x)/se,y:(z-D.current.y)/se}),D.current={x:A,y:z,time:ne};const ye=.005,fe=L.current.yaw-U*ye,he=Math.PI/2.3,Pe=Math.max(-he,Math.min(he,L.current.pitch-q*ye));m({yaw:fe,pitch:Pe})},H=()=>{if(!_.current)return;_.current=!1;let A=-P.current.x*12,z=-P.current.y*12;const U=.95,q=()=>{_.current||(A*=U,z*=U,!(Math.abs(A)<.01&&Math.abs(z)<.01)&&(m(ne=>{const se=ne.yaw+A*.005,ye=Math.PI/2.3,fe=Math.max(-ye,Math.min(ye,ne.pitch+z*.005));return{yaw:se,pitch:fe}}),I.current=requestAnimationFrame(q)))};I.current=requestAnimationFrame(q)},[C,X]=h.useState(null),[F,Y]=h.useState({x:0,y:0,shiftX:0}),B=h.useRef(null);h.useEffect(()=>()=>{B.current&&clearTimeout(B.current)},[]),h.useEffect(()=>{if(!a||!N.current)return;const A=U=>{U.preventDefault();const q=-U.deltaY*.0025;v(ne=>{const se=ne+q;return Math.max(.5,Math.min(3,se))})},z=N.current;return z.addEventListener("wheel",A,{passive:!1}),()=>{z.removeEventListener("wheel",A)}},[a]);const Z=h.useMemo(()=>{const A=[];return e.forEach((z,U)=>{(Array.isArray(z)?z:[]).forEach((q,ne)=>{q&&A.push({key:q.day||`${U}-${ne}`,col:U,row:ne,level:q.level||0,value:q.value||0,total_tokens:q.total_tokens||0,day:q.day,models:q.models||null})})}),A},[e]),je=w-(a?1.8:1.5),Me=a?38:28,Se=A=>Math.max(1.8,Number(A)/4*Me),J=h.useMemo(()=>{if(Z.length===0)return[];const A=e.length;return Z.map(z=>{const U=Se(z.level),q=Math.sqrt(Math.pow(z.col-A/2,2)+Math.pow(z.row-3.5,2)),ne=Math.sqrt(Math.pow(A/2,2)+Math.pow(3.5,2)),se=q/ne*.4,ye=Math.min(1,Math.max(0,(G-se)*(1/.6))),fe=U*ye,he=(z.col-A/2)*w,Pe=(z.row-3.5)*w,pe=je/2,Ee=[{x:he-pe,y:Pe-pe,z:0},{x:he+pe,y:Pe-pe,z:0},{x:he+pe,y:Pe+pe,z:0},{x:he-pe,y:Pe+pe,z:0},{x:he-pe,y:Pe-pe,z:fe},{x:he+pe,y:Pe-pe,z:fe},{x:he+pe,y:Pe+pe,z:fe},{x:he-pe,y:Pe+pe,z:fe}].map(ae=>tt(ae.x,ae.y,ae.z,d.yaw,d.pitch)),Be=tt(he,Pe,fe/2,d.yaw,d.pitch),_t=[{name:"top",indices:[4,5,6,7],scale:1,normal:[0,0,1]},{name:"bottom",indices:[3,2,1,0],scale:.4,normal:[0,0,-1]},{name:"left",indices:[3,0,4,7],scale:.55,normal:[-1,0,0]},{name:"right",indices:[1,2,6,5],scale:.75,normal:[1,0,0]},{name:"front",indices:[0,1,5,4],scale:.85,normal:[0,-1,0]},{name:"back",indices:[2,3,7,6],scale:.65,normal:[0,1,0]}],gt=i[Math.min(4,Math.max(0,Number(z.level)||0))],yt=[],it=.35,Mt=-.4,oe=.83;return _t.forEach(ae=>{const ee=lc(ae.normal[0],ae.normal[1],ae.normal[2],d.yaw,d.pitch);if(ee.z>.001){const ce=Ee[ae.indices[0]],Ce=Ee[ae.indices[1]],ie=Ee[ae.indices[2]],Ye=Ee[ae.indices[3]],Yt=`M${ce.x},${ce.y} L${Ce.x},${Ce.y} L${ie.x},${ie.y} L${Ye.x},${Ye.y} Z`,Bt=ee.x*it+ee.y*Mt+ee.z*oe,jt=n?.18:0,pt=ae.scale*(.82+.28*Math.max(0,Bt))+jt;yt.push({name:ae.name,d:Yt,fill:ic(gt,pt)})}}),{...z,centerProj:Be,renderedFaces:yt}})},[Z,d,i,e.length,G,w,je,Me]),De=h.useMemo(()=>[...J].sort((A,z)=>A.centerProj.z-z.centerProj.z),[J]),le=h.useMemo(()=>{if(De.length===0)return{minX:-100,minY:-100,maxX:100,maxY:100};let A=1/0,z=1/0,U=-1/0,q=-1/0;return De.forEach(ne=>{const se=w*2,ye=ne.centerProj.x,fe=ne.centerProj.y;ye-se<A&&(A=ye-se),ye+se>U&&(U=ye+se),fe-se<z&&(z=fe-se),fe+se>q&&(q=fe+se)}),{minX:A,minY:z,maxX:U,maxY:q}},[De,w]),de=12,W=le.maxX-le.minX+de*2,te=le.maxY-le.minY+de*2,ge=W/b,me=te/b,Ne=le.minX-de+(W-ge)/2,Fe=le.minY-de+(te-me)/2,Te=`${Ne} ${Fe} ${ge} ${me}`;return Z.length===0?o.jsx("div",{className:"py-8 text-center text-sm text-oai-gray-500",children:p("heatmap.empty")}):o.jsxs("div",{ref:N,className:`relative select-none outline-none ${a?"cursor-grab active:cursor-grabbing w-full h-full flex items-center justify-center":"w-full overflow-hidden flex justify-center"}`,onMouseDown:A=>{if(!a)return;x(A.clientX,A.clientY);const z=q=>S(q.clientX,q.clientY),U=()=>{H(),window.removeEventListener("mousemove",z),window.removeEventListener("mouseup",U)};window.addEventListener("mousemove",z),window.addEventListener("mouseup",U)},onTouchStart:A=>{!a||A.touches.length===0||x(A.touches[0].clientX,A.touches[0].clientY)},onTouchMove:A=>{!a||A.touches.length===0||S(A.touches[0].clientX,A.touches[0].clientY)},onTouchEnd:()=>{a&&H()},children:[o.jsxs("svg",{ref:k,viewBox:Te,width:a?"95%":"100%",height:a?"95%":"auto",role:"img","aria-label":p("heatmap.iso.aria")||"3D interactive activity heatmap",style:{display:"block",width:"100%",height:"auto",maxWidth:a?"none":`${W}px`,maxHeight:a?"78vh":"none"},className:"transition-transform duration-300 ease-out",children:[a&&M.map(A=>o.jsx("path",{d:A.d,fill:"none",stroke:c,strokeWidth:.25,strokeDasharray:"1.5 2.5",strokeLinecap:"round"},A.key)),De.map(A=>{const z=C&&C.key===A.key;return o.jsxs("g",{onMouseEnter:U=>{if(B.current&&(clearTimeout(B.current),B.current=null),X(A),a&&k.current){const q=tt((A.col-e.length/2)*w,(A.row-3.5)*w,Se(A.level),d.yaw,d.pitch);let ne=0,se=0;const ye=k.current;if(N.current&&typeof ye.createSVGPoint=="function"&&typeof ye.getScreenCTM=="function")try{const pe=ye.createSVGPoint();pe.x=q.x,pe.y=q.y;const We=ye.getScreenCTM();if(We){const Ee=pe.matrixTransform(We),Be=N.current.getBoundingClientRect();ne=Ee.x-Be.left,se=Ee.y-Be.top}}catch{const We=ye.getBoundingClientRect(),Ee=le.maxX-le.minX+de*2,Be=le.maxY-le.minY+de*2;ne=(q.x-(le.minX-de))/Ee*We.width,se=(q.y-(le.minY-de))/Be*We.height}else{const pe=ye.getBoundingClientRect(),We=le.maxX-le.minX+de*2,Ee=le.maxY-le.minY+de*2;ne=(q.x-(le.minX-de))/We*pe.width,se=(q.y-(le.minY-de))/Ee*pe.height}const fe=140;let he=0;const Pe=N.current?N.current.getBoundingClientRect().width:ye.getBoundingClientRect().width;ne<fe?he=fe-ne:ne>Pe-fe&&(he=Pe-fe-ne),Y({x:ne,y:se,shiftX:he})}},onMouseLeave:()=>{B.current&&clearTimeout(B.current),B.current=setTimeout(()=>{X(null)},150)},className:"transition-all duration-200",style:{filter:z?"brightness(1.15) drop-shadow(0 4px 6px rgba(0,0,0,0.15))":"none",cursor:a?"pointer":"default"},children:[!a&&A.day&&o.jsx("title",{children:`${A.day}: ${Number(A.value).toLocaleString()} conversations`}),A.renderedFaces.map((U,q)=>o.jsx("path",{d:U.d,fill:U.fill,stroke:U.fill,strokeWidth:.25,strokeLinejoin:"round"},q))]},A.key)})]}),a&&C&&o.jsxs("div",{onMouseEnter:()=>{B.current&&(clearTimeout(B.current),B.current=null)},onMouseLeave:()=>{B.current&&clearTimeout(B.current),B.current=setTimeout(()=>{X(null)},150)},className:"absolute z-[9999] w-0 h-0 transition-all duration-100 ease-out",style:{left:`${F.x}px`,top:`${F.y}px`},children:[o.jsxs("div",{className:"absolute left-0 bottom-[10px] backdrop-blur-md bg-white/90 dark:bg-oai-gray-900/90 border border-oai-gray-200/50 dark:border-oai-gray-800/50 shadow-xl rounded-xl p-3.5 max-w-[280px] min-w-[200px] flex flex-col gap-2 animate-in fade-in zoom-in-95 duration-100",style:{transform:`translateX(calc(-50% + ${F.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:C.day}),(()=>{const A=C.level===0?n?"#9ca3af":"#6b7280":i[C.level];return o.jsxs("span",{className:"text-[10px] px-2 py-0.5 rounded-full font-medium",style:{backgroundColor:A+"22",color:A,border:`1px solid ${A}44`},children:["Level ",C.level]})})()]}),o.jsxs("div",{className:"flex flex-col gap-2",children:[o.jsxs("div",{className:"flex flex-col gap-0.5",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 tabular-nums",children:Number(C.value??0).toLocaleString()}),o.jsx("span",{className:"text-[10px] text-oai-gray-400 uppercase tracking-wider font-semibold",children:"Conversations"})]}),o.jsxs("div",{className:"flex items-baseline gap-1",children:[o.jsx("span",{className:"text-[11px] font-semibold text-oai-gray-500 dark:text-oai-gray-400 leading-none tabular-nums",children:Number(C.total_tokens??0).toLocaleString()}),o.jsx("span",{className:"text-[9px] text-oai-gray-400 uppercase tracking-wider",children:"tokens"})]})]}),C.models&&Object.keys(C.models).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:"Model Breakdown"}),o.jsx("div",{className:"flex flex-col gap-2 max-h-[150px] overflow-y-auto pr-1.5 scrollbar-thin",children:Object.entries(C.models).map(([A,z])=>({name:A,val:Number(z)})).sort((A,z)=>z.val-A.val).map(({name:A,val:z})=>{const U=Number(C.total_tokens)||Object.values(C.models).reduce((ne,se)=>ne+Number(se||0),0)||1,q=Math.round(z/U*100);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-[120px]",title:A,children:A}),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:z.toLocaleString()}),o.jsxs("span",{className:"text-[9px] text-oai-gray-450 dark:text-oai-gray-500 min-w-[28px] text-right font-medium",children:[q,"%"]})]})]}),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:`${q}%`,backgroundColor:i[4],boxShadow:`0 0 4px ${i[4]}55`}})})]},A)})})]}):o.jsx("p",{className:"text-[11px] text-oai-gray-600 dark:text-oai-gray-300 leading-relaxed font-normal mt-1 border-t border-dashed border-oai-gray-100 dark:border-oai-gray-800/60 pt-1.5",children:io(C.level,C.value)})]})]}),o.jsx("div",{className:"absolute bottom-[6px] left-0 -translate-x-1/2 w-2.5 h-2.5 rotate-45 bg-white dark:bg-oai-gray-900 border-r border-b border-oai-gray-200/50 dark:border-oai-gray-800/50 shadow-sm",style:{marginBottom:"1px"}})]})]})}const cc=12,dc=3,uc=26,fc=["#ebedf0","#f7d08a","#f2b757","#eca02f","#d9861a"],mc=["#30363d","#7a4711","#bf7015","#eca02f","#f7c877"];function Xa(e){const t=Number(e);return Number.isFinite(t)?t<1e3?t.toLocaleString():Ae(t,{decimals:2}):"0"}function hc(e){if(typeof e!="string")return null;const t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());if(!t)return null;const n=new Date(Date.UTC(Number(t[1]),Number(t[2])-1,Number(t[3])));return Number.isFinite(n.getTime())?n:null}function lo(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function gc(e,t){return Math.floor((Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate())-Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()))/864e5)}function yc(e,t){const n=t==="mon"?1:0,a=e.getUTCDay();return lo(e,-((a-n+7)%7))}function pc(e,t,n,a){if(!e)return[];const r=hc(t)||new Date,s=[];for(let f=11;f>=0;f-=1)s.push(new Date(Date.UTC(r.getUTCFullYear(),r.getUTCMonth()-f,1)));const l=yc(r,n),i=lo(l,-(e-1)*7),c=[],u=new Set;for(const f of s){const d=Math.floor(gc(i,f)/7);d<0||d>=e||u.has(d)||(u.add(d),c.push({label:a[f.getUTCMonth()],index:d}))}return c}function bc({heatmap:e,timeZoneLabel:t,timeZoneShortLabel:n,hideLegend:a=!1,embedded:r=!1}){const{resolvedTheme:s}=Lr(),{currency:l,rate:i}=Nt(),c=s==="dark",u=c?mc:fc,f=h.useRef(null),d=h.useRef(null),[m,g]=h.useState(null),[y,b]=h.useState({x:0,y:0,shiftX:0}),v=h.useRef(null);h.useEffect(()=>()=>{v.current&&clearTimeout(v.current)},[]);const[w,M]=h.useState(!1),[k,N]=h.useState(!1),[_,j]=h.useState(!1),L=h.useRef(null),[P,D]=h.useState("amber"),I=[p("heatmap.month.jan"),p("heatmap.month.feb"),p("heatmap.month.mar"),p("heatmap.month.apr"),p("heatmap.month.may"),p("heatmap.month.jun"),p("heatmap.month.jul"),p("heatmap.month.aug"),p("heatmap.month.sep"),p("heatmap.month.oct"),p("heatmap.month.nov"),p("heatmap.month.dec")],G=(W,te)=>{if(!te||!te.day)return;v.current&&(clearTimeout(v.current),v.current=null),g(te);const ge=W.currentTarget.getBoundingClientRect(),me=typeof window<"u"?window.innerWidth:1024,Ne=ge.left+ge.width/2,Fe=ge.top,Te=140;let A=0;Ne<Te?A=Te-Ne:Ne>me-Te&&(A=me-Te-Ne),b({x:Ne,y:Fe,shiftX:A})},V=()=>{v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{g(null)},150)},$=()=>{N(!1),M(!0)},E=()=>{N(!0)},T=W=>{W.target===W.currentTarget&&k&&(M(!1),N(!1))};h.useEffect(()=>{if(!w||k)return;const W=te=>{te.key==="Escape"&&E()};return window.addEventListener("keydown",W),()=>{window.removeEventListener("keydown",W)}},[w,k]);const x=h.useMemo(()=>({emerald:{accentText:"text-emerald-500 dark:text-emerald-400",accentBg:"bg-emerald-500/10 dark:bg-emerald-400/10",accentBorder:"border-emerald-500/20 dark:border-emerald-400/15",hoverBorder:"hover:border-emerald-500/30 dark:hover:border-emerald-400/30",hoverGlow:"hover:shadow-[0_0_20px_-3px_rgba(16,185,129,0.15)] hover:dark:shadow-[0_0_20px_-3px_rgba(52,211,153,0.25)]",rawColor:"#10b981"},ocean:{accentText:"text-blue-500 dark:text-blue-400",accentBg:"bg-blue-500/10 dark:bg-blue-400/10",accentBorder:"border-blue-500/20 dark:border-blue-400/15",hoverBorder:"hover:border-blue-500/30 dark:hover:border-blue-400/30",hoverGlow:"hover:shadow-[0_0_20px_-3px_rgba(59,130,246,0.15)] hover:dark:shadow-[0_0_20px_-3px_rgba(96,165,250,0.25)]",rawColor:"#3b82f6"},neon:{accentText:"text-purple-500 dark:text-purple-400",accentBg:"bg-purple-500/10 dark:bg-purple-400/10",accentBorder:"border-purple-500/20 dark:border-purple-400/15",hoverBorder:"hover:border-purple-500/30 dark:hover:border-purple-400/30",hoverGlow:"hover:shadow-[0_0_20px_-3px_rgba(168,85,247,0.15)] hover:dark:shadow-[0_0_20px_-3px_rgba(192,132,252,0.25)]",rawColor:"#a855f7"},amber:{accentText:"text-amber-500 dark:text-amber-400",accentBg:"bg-amber-500/10 dark:bg-amber-400/10",accentBorder:"border-amber-500/20 dark:border-amber-400/15",hoverBorder:"hover:border-amber-500/30 dark:hover:border-amber-400/30",hoverGlow:"hover:shadow-[0_0_20px_-3px_rgba(245,158,11,0.15)] hover:dark:shadow-[0_0_20px_-3px_rgba(245,158,11,0.25)]",rawColor:"#f59e0b"}}),[]),S=x[P]||x.emerald,H=dt[P]?c?dt[P].dark:dt[P].light:c?dt.emerald.dark:dt.emerald.light,[C,X]=h.useState(()=>{if(r)return"2d";try{return window.localStorage?.getItem("tt:heatmap-view")==="3d"?"3d":"2d"}catch{return"2d"}});h.useEffect(()=>{if(!r)try{window.localStorage?.setItem("tt:heatmap-view",C)}catch{}},[C,r]),h.useEffect(()=>{if(C!=="2d")return;const W=f.current;W&&(W.scrollLeft=W.scrollWidth)},[e?.weeks,C]),h.useEffect(()=>{const W=f.current;if(!W)return;const te=()=>{v.current&&(clearTimeout(v.current),v.current=null),g(null)};return W.addEventListener("scroll",te),()=>W.removeEventListener("scroll",te)},[]);const F=e?.week_starts_on==="mon"?"mon":"sun",Y=h.useMemo(()=>{const W=Array.isArray(e?.weeks)?e.weeks:[];if(!W.length)return{weeks:[]};const te=[];for(const ge of W)for(const me of Array.isArray(ge)?ge:[])me?.day&&te.push({day:me.day,conversation_count:me.conversation_count??0,total_tokens:me.total_tokens??0,billable_total_tokens:me.billable_total_tokens??me.total_tokens??0,models:me.models??null});return Kn({dailyRows:te,weeks:Math.max(52,W.length),to:e?.to,weekStartsOn:F})},[e?.to,e?.weeks,F]),B=Y?.weeks||[],Z=h.useMemo(()=>{let W=0,te=0,ge={day:"无数据",value:0},me=0,Ne=0;const Fe=[];B.forEach(fe=>{(Array.isArray(fe)?fe:[]).forEach(he=>{he&&he.day&&Fe.push(he)})}),Fe.sort((fe,he)=>fe.day.localeCompare(he.day)),Fe.forEach(fe=>{const he=Number(fe.value)||0;W+=Number(fe.total_tokens)||0,he>0?(te++,me++,me>Ne&&(Ne=me)):me=0,he>ge.value&&(ge={day:fe.day,value:he})});const Te=Fe.length||365,A=(te/Te*100).toFixed(1);let z="heatmap.3d.modal.ai.eval.default",U="heatmap.3d.modal.ai.title.default";W>=15e6?(U="heatmap.3d.modal.ai.title.peak",z="heatmap.3d.modal.ai.eval.peak"):W>=5e6?(U="heatmap.3d.modal.ai.title.heavy",z="heatmap.3d.modal.ai.eval.heavy"):W>=1e6?(U="heatmap.3d.modal.ai.title.core",z="heatmap.3d.modal.ai.eval.core"):W>=2e4&&(U="heatmap.3d.modal.ai.title.steady",z="heatmap.3d.modal.ai.eval.steady");const q=e?.total_cost_usd,ne=Number(q),ye=q!=null&&(typeof q!="string"||q.trim()!=="")&&Number.isFinite(ne)?ne:W/15e5;return{totalTokens:W,activeDays:te,activeRate:A,maxSingleDay:ge,maxStreak:Ne,aiEvaluationTitleKey:U,aiEvaluationKey:z,totalCostUsd:ye}},[B,e?.total_cost_usd]),xe=h.useMemo(()=>et(Z.totalCostUsd,{currency:l,rate:i}),[Z.totalCostUsd,l,i]),je=F==="mon"?["Mon","Tue","Wed","Thu","Fri","Sat","Sun"].map(W=>p(`heatmap.day.${W.toLowerCase()}`)):["Sun","Mon","Tue","Wed","Thu","Fri","Sat"].map(W=>p(`heatmap.day.${W.toLowerCase()}`)),Me=h.useMemo(()=>pc(B.length,Y?.to,F,I),[Y?.to,B.length,F,I]);if(!B.length)return o.jsx("div",{className:"py-8 text-center text-sm text-oai-gray-500",children:p("heatmap.empty")});const Se=r?10:cc,J=r?2:dc,De=r?22:uc,le=De+B.length*Se+Math.max(0,B.length-1)*J,de=`${De}px repeat(${B.length}, ${Se}px)`;return o.jsxs("div",{ref:d,className:r?"relative":"relative rounded-xl border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-900 p-5",children:[!r&&o.jsxs("div",{className:"flex items-baseline justify-between mb-3",children:[o.jsx("h3",{className:"text-sm font-medium text-oai-gray-500 dark:text-oai-gray-300 uppercase tracking-wide",children:p("heatmap.title")}),o.jsxs("div",{className:"flex items-center gap-2",children:[o.jsxs("div",{role:"tablist","aria-label":"Heatmap view",className:"flex rounded-md border border-oai-gray-200 dark:border-oai-gray-800 p-0.5 text-[10px]",children:[o.jsx("button",{type:"button",role:"tab","aria-selected":C==="2d",onClick:()=>X("2d"),className:C==="2d"?"px-2 py-0.5 rounded bg-oai-gray-100 text-oai-black dark:bg-oai-gray-800 dark:text-oai-white font-medium":"px-2 py-0.5 rounded text-oai-gray-500 dark:text-oai-gray-400 hover:text-oai-gray-700 dark:hover:text-oai-gray-200",children:p("heatmap.view.2d")}),o.jsx("button",{type:"button",role:"tab","aria-selected":C==="3d",onClick:()=>X("3d"),className:C==="3d"?"px-2 py-0.5 rounded bg-oai-gray-100 text-oai-black dark:bg-oai-gray-800 dark:text-oai-white font-medium":"px-2 py-0.5 rounded text-oai-gray-500 dark:text-oai-gray-400 hover:text-oai-gray-700 dark:hover:text-oai-gray-200",children:p("heatmap.view.3d")})]}),o.jsx("span",{className:"text-xs text-oai-gray-400 dark:text-oai-gray-450",children:n||p("heatmap.legend.utc")})]})]}),C==="3d"&&o.jsxs("div",{onClick:$,className:"cursor-pointer group relative overflow-hidden rounded-lg hover:border-oai-gray-350 dark:hover:border-oai-gray-700 border border-transparent transition-all",title:p("heatmap.3d.hover_tip"),children:[o.jsx(qa,{weeks:B,isDark:c,palette:P}),o.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-oai-gray-900/5 to-transparent pointer-events-none opacity-0 group-hover:opacity-100 transition-opacity flex items-end justify-center pb-2",children:o.jsxs("span",{className:"text-[10px] bg-white/95 dark:bg-oai-gray-900/95 shadow border border-oai-gray-200/60 dark:border-oai-gray-800/80 px-2.5 py-1 rounded-full font-medium text-oai-gray-500 dark:text-oai-gray-400 flex items-center gap-1 transform translate-y-2 group-hover:translate-y-0 transition-transform duration-200",children:[o.jsx(Xr,{size:9}),p("heatmap.3d.hover_tip")]})})]}),C==="2d"&&o.jsx("div",{ref:f,className:"overflow-x-auto overflow-y-hidden heatmap-scroll-thin",children:o.jsxs("div",{style:{minWidth:le},children:[o.jsxs("div",{className:"grid text-[10px] uppercase text-oai-gray-400 dark:text-oai-gray-400 mb-1",style:{gridTemplateColumns:de,columnGap:J},children:[o.jsx("span",{}),Me.map(W=>o.jsx("span",{style:{gridColumnStart:W.index+2},className:"whitespace-nowrap",children:W.label},`${W.label}-${W.index}`))]}),o.jsxs("div",{className:"grid",style:{gridTemplateColumns:de,columnGap:J},children:[o.jsx("div",{className:"grid text-[10px] text-oai-gray-400 dark:text-oai-gray-400 sticky left-0 bg-white dark:bg-oai-gray-900 pr-2",style:{gridTemplateRows:`repeat(7, ${Se}px)`,rowGap:J},children:je.map(W=>o.jsx("span",{className:"leading-none",children:W},W))}),o.jsx("div",{className:"grid",style:{gridAutoFlow:"column",gridTemplateRows:`repeat(7, ${Se}px)`,gap:J},children:B.map((W,te)=>(Array.isArray(W)?W:[]).map((ge,me)=>{if(!ge)return null;const Ne=ge.day||`e-${te}-${me}`,Fe=Number(ge.level)||0,Te=u[Fe]||u[0];return o.jsx("span",{onMouseEnter:A=>G(A,ge),onMouseLeave:V,className:"rounded-[2px] transition-transform hover:scale-125 hover:z-10 cursor-pointer",style:{width:Se,height:Se,background:Te}},Ne)}))})]})]})}),!a&&o.jsxs("div",{className:"flex items-center justify-center gap-2 mt-3",children:[o.jsx("span",{className:"text-[10px] text-oai-gray-400 dark:text-oai-gray-400",children:p("heatmap.legend.less")}),o.jsx("div",{className:"flex gap-0.5",children:u.map((W,te)=>o.jsx("span",{className:"rounded-[1px]",style:{width:10,height:10,background:W}},te))}),o.jsx("span",{className:"text-[10px] text-oai-gray-400 dark:text-oai-gray-400",children:p("heatmap.legend.more")})]}),w&&o.jsx("div",{onAnimationEnd:T,onClick:W=>{W.target===W.currentTarget&&E()},className:`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 ${k?"animate-tt-fade-out":"animate-tt-fade-in"}`,children:o.jsxs("div",{className:`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 ${k?"animate-tt-modal-exit":"animate-tt-modal"}`,children:[o.jsx("button",{type:"button",onClick:E,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(sa,{size:16})}),o.jsxs("div",{className:"w-full md:w-[340px] 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:S.rawColor}}),o.jsx("span",{className:"relative inline-flex rounded-full h-1.5 w-1.5",style:{backgroundColor:S.rawColor}})]}),o.jsx("span",{className:"text-[9px] font-extrabold uppercase tracking-widest font-mono text-zinc-400 dark:text-zinc-500",children:"3D Insight"})]}),o.jsx("h4",{className:"text-xl font-black text-zinc-900 dark:text-zinc-50 tracking-tight leading-none mt-2 select-none",children:p("heatmap.3d.modal.title")}),o.jsx("p",{className:"text-[11px] leading-relaxed text-zinc-400 dark:text-zinc-500 mt-2 font-normal select-none",children:p("heatmap.3d.modal.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.jsxs("div",{className:"flex flex-col gap-1 relative group cursor-help",children:[o.jsx("div",{className:"absolute left-0 bottom-full mb-2 pointer-events-none opacity-0 translate-y-1 group-hover:opacity-100 group-hover:translate-y-0 transition-all duration-200 z-50",children:o.jsxs("div",{className:"bg-white dark:bg-zinc-950 text-zinc-900 dark:text-zinc-50 text-[10px] font-semibold font-mono rounded-lg px-2.5 py-1.5 shadow-xl border border-zinc-200 dark:border-zinc-800/80 whitespace-nowrap flex flex-col",children:[o.jsx("span",{className:"text-[9px] text-zinc-400 dark:text-zinc-500",children:p("heatmap.3d.modal.stats.precision_total_tokens")}),o.jsxs("span",{className:"mt-0.5 font-bold text-zinc-900 dark:text-zinc-50",children:[Z.totalTokens.toLocaleString()," Tokens"]})]})}),o.jsx("span",{className:"text-[9px] font-bold text-zinc-400 dark:text-zinc-500 uppercase tracking-widest font-mono",children:p("heatmap.3d.modal.stats.total_tokens")}),o.jsxs("div",{className:"flex items-baseline gap-1.5",children:[o.jsx("span",{className:"text-xl font-black text-zinc-900 dark:text-zinc-50 tracking-tight font-mono transition-transform duration-200 group-hover:-translate-y-[1px]",children:Xa(Z.totalTokens)}),o.jsx("div",{className:"opacity-30 group-hover:opacity-60 transition-opacity",children:o.jsx("svg",{width:"24",height:"10",viewBox:"0 0 24 10",fill:"none",children:o.jsx("path",{d:"M1 9C3 7 5 7 7 4C9 1 11 0 13 2C15 4 17 0 23 0",stroke:S.rawColor,strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]}),o.jsxs("div",{className:"flex flex-col gap-1 group cursor-default",children:[o.jsx("span",{className:"text-[9px] font-bold text-zinc-400 dark:text-zinc-500 uppercase tracking-widest font-mono",children:p("heatmap.3d.modal.stats.estimated_cost")}),o.jsx("span",{className:"text-xl font-black text-zinc-900 dark:text-zinc-50 tracking-tight font-mono transition-transform duration-200 group-hover:-translate-y-[1px]",children:xe})]}),o.jsxs("div",{className:"flex flex-col gap-1 group cursor-default",children:[o.jsx("span",{className:"text-[9px] font-bold text-zinc-400 dark:text-zinc-500 uppercase tracking-widest font-mono",children:p("heatmap.3d.modal.stats.active_rate_days")}),o.jsxs("span",{className:"text-xl font-black text-zinc-900 dark:text-zinc-50 tracking-tight font-mono transition-transform duration-200 group-hover:-translate-y-[1px]",children:[Z.activeRate,"% ",o.jsxs("span",{className:"text-[10px] font-bold text-zinc-400 dark:text-zinc-500 font-mono",children:["(",Z.activeDays,"D)"]})]})]}),o.jsxs("div",{className:"flex flex-col gap-1 group cursor-default",children:[o.jsx("span",{className:"text-[9px] font-bold text-zinc-400 dark:text-zinc-500 uppercase tracking-widest font-mono",children:p("heatmap.3d.modal.stats.max_streak")}),o.jsxs("span",{className:"text-xl font-black text-amber-500 tracking-tight font-mono transition-transform duration-200 group-hover:-translate-y-[1px]",children:[Z.maxStreak," ",o.jsx("span",{className:"text-[10px] font-bold text-amber-500/80 font-mono",children:p("heatmap.3d.modal.stats.days_suffix")})]})]}),o.jsxs("div",{className:"flex flex-col gap-1 col-span-2 relative group cursor-help",children:[o.jsx("div",{className:"absolute left-0 bottom-full mb-2 pointer-events-none opacity-0 translate-y-1 group-hover:opacity-100 group-hover:translate-y-0 transition-all duration-200 z-50",children:o.jsxs("div",{className:"bg-white dark:bg-zinc-950 text-zinc-900 dark:text-zinc-50 text-[10px] font-semibold font-mono rounded-lg px-2.5 py-1.5 shadow-xl border border-zinc-200 dark:border-zinc-800/80 whitespace-nowrap flex flex-col",children:[o.jsx("span",{className:"text-[9px] text-zinc-400 dark:text-zinc-500",children:p("heatmap.3d.modal.stats.precision_peak_value")}),o.jsxs("span",{className:"mt-0.5 font-bold text-zinc-900 dark:text-zinc-50",children:[Z.maxSingleDay.value>0?Z.maxSingleDay.value.toLocaleString():p("heatmap.3d.modal.stats.no_data")," conversations"]}),o.jsx("span",{className:"text-[8px] text-zinc-400 dark:text-zinc-500 mt-0.5",children:Z.maxSingleDay.day!=="无数据"?Z.maxSingleDay.day:p("heatmap.3d.modal.stats.no_data")})]})}),o.jsx("span",{className:"text-[9px] font-bold text-zinc-400 dark:text-zinc-500 uppercase tracking-widest font-mono",children:p("heatmap.3d.modal.stats.peak_day")}),o.jsxs("span",{className:"text-xl font-black text-zinc-900 dark:text-zinc-50 tracking-tight font-mono transition-transform duration-200 group-hover:-translate-y-[1px]",children:[Z.maxSingleDay.value>0?Xa(Z.maxSingleDay.value):p("heatmap.3d.modal.stats.no_data")," ",o.jsxs("span",{className:"text-[10px] font-bold text-zinc-400 dark:text-zinc-500 font-mono",children:["(",Z.maxSingleDay.day!=="无数据"?Z.maxSingleDay.day:p("heatmap.3d.modal.stats.no_data"),")"]})]})]})]}),o.jsxs("div",{className:"flex flex-col gap-2.5 py-1",children:[o.jsxs("div",{className:"flex items-center gap-1.5 select-none",children:[o.jsx(Gr,{size:11,style:{color:S.rawColor}}),o.jsx("span",{className:"text-[9px] font-extrabold uppercase tracking-widest font-mono",style:{color:S.rawColor},children:p(Z.aiEvaluationTitleKey)})]}),o.jsxs("div",{className:"pl-3.5 border-l-2 relative transition-all duration-300 group",style:{borderColor:S.rawColor},children:[o.jsx("div",{className:"absolute inset-y-0 left-0 w-[3px] blur-[2px] opacity-15 pointer-events-none rounded-full",style:{backgroundColor:S.rawColor}}),o.jsx("p",{className:"text-[11px] leading-relaxed text-zinc-600 dark:text-zinc-400 font-normal",children:p(Z.aiEvaluationKey)})]})]}),o.jsx("div",{className:"mt-auto border-t border-zinc-200/50 dark:border-zinc-800/50 pt-4 select-none",children:o.jsxs("div",{className:"flex flex-col gap-2",children:[o.jsxs("div",{className:"flex items-center justify-between",children:[o.jsx("span",{className:"text-[9px] font-bold text-zinc-400 dark:text-zinc-500 uppercase tracking-widest font-mono",children:p("heatmap.3d.modal.legend.title")}),o.jsx("span",{className:"text-[10px] font-medium text-zinc-500 dark:text-zinc-400",children:p(`heatmap.3d.modal.palette.${P}`)})]}),o.jsx("div",{className:"flex gap-1",children:H.map((W,te)=>o.jsx("div",{className:"flex-1 h-1 rounded-[2px]",style:{backgroundColor:W},title:`Level ${te}`},te))})]})})]}),o.jsxs("div",{className:"flex-1 h-full relative flex items-center justify-center overflow-hidden p-4",children:[o.jsx("div",{className:"absolute top-1/4 left-1/3 w-96 h-96 rounded-full blur-[130px] pointer-events-none -translate-x-1/2 -translate-y-1/2 transition-all duration-500",style:{backgroundColor:S.rawColor+"15"}}),o.jsx("div",{className:"absolute bottom-1/4 right-1/3 w-80 h-80 rounded-full blur-[120px] pointer-events-none translate-x-1/2 translate-y-1/2 bg-purple-500/[0.04] dark:bg-purple-500/[0.08]"}),o.jsxs("div",{className:"absolute top-4 left-1/2 -translate-x-1/2 flex items-center gap-3 p-1.5 backdrop-blur-md bg-white/70 dark:bg-oai-gray-900/75 border border-oai-gray-200/60 dark:border-oai-gray-800/80 rounded-full shadow-lg z-30 select-none",children:[o.jsx("div",{className:"flex items-center gap-1.5 px-2",children:Object.keys(x).map(W=>{const te=P===W;return o.jsx("button",{type:"button",onClick:()=>D(W),title:p(`heatmap.3d.modal.palette.${W}`),className:`w-3.5 h-3.5 rounded-full transition-all duration-200 relative hover:scale-125 ${W==="emerald"?"bg-[#10b981]":W==="ocean"?"bg-[#3b82f6]":W==="neon"?"bg-[#a855f7]":"bg-[#f59e0b]"}`,children:te&&o.jsx("span",{className:"absolute inset-0 rounded-full ring-2 ring-offset-1 ring-offset-white dark:ring-offset-oai-gray-900 ring-oai-gray-900 dark:ring-white scale-110"})},W)})}),o.jsx("div",{className:"w-[1px] h-4 bg-oai-gray-200 dark:bg-oai-gray-800"}),o.jsxs("div",{className:"flex items-center gap-1 pr-1",children:[o.jsx("button",{type:"button",onClick:()=>{const W=!_;j(W),L.current&&L.current.toggleAutoRotate(W)},title:_?p("heatmap.3d.modal.control.pause"):p("heatmap.3d.modal.control.play"),className:`p-1.5 rounded-full transition-all duration-200 hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 ${_?S.accentText:"text-oai-gray-400 hover:text-oai-gray-600 dark:hover:text-oai-gray-250"}`,children:_?o.jsx(Wi,{size:12}):o.jsx(Ai,{size:12})}),o.jsx("button",{type:"button",onClick:()=>{j(!1),L.current&&L.current.reset()},title:p("heatmap.3d.modal.control.reset"),className:"p-1.5 rounded-full text-oai-gray-400 hover:text-oai-gray-600 dark:hover:text-oai-gray-250 hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 transition-all duration-200",children:o.jsx(Ri,{size:12})})]})]}),o.jsx(qa,{weeks:B,isDark:c,interactive:!0,palette:P,autoRotateInit:_,onResetViewRef:L}),o.jsxs("div",{className:"absolute bottom-4 right-4 flex items-center gap-1.5 text-[9px] font-bold text-oai-gray-400 bg-white/80 dark:bg-oai-gray-900/80 border border-oai-gray-200/50 dark:border-oai-gray-800/80 rounded-md px-2.5 py-1.5 select-none pointer-events-none backdrop-blur-md shadow-sm",children:[o.jsx(ca,{size:10,className:S.accentText}),o.jsx("span",{children:p("heatmap.3d.modal.footer.tip")})]})]})]})}),m&&!w&&typeof document<"u"&&ai.createPortal(o.jsxs("div",{className:"fixed z-[9999] w-0 h-0 transition-all duration-100 ease-out pointer-events-none",style:{left:`${y.x}px`,top:`${y.y}px`},children:[o.jsxs("div",{className:"absolute left-0 bottom-[10px] 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-[200px] flex flex-col gap-2 animate-in fade-in zoom-in-95 duration-100",style:{transform:`translateX(calc(-50% + ${y.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:m.day}),(()=>{const W=m.level===0?c?"#9ca3af":"#6b7280":u[m.level];return o.jsxs("span",{className:"text-[10px] px-2 py-0.5 rounded-full font-medium",style:{backgroundColor:W+"22",color:W,border:`1px solid ${W}44`},children:["Level ",m.level]})})()]}),o.jsxs("div",{className:"flex flex-col gap-2",children:[o.jsxs("div",{className:"flex flex-col gap-0.5",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 tabular-nums",children:Number(m.value??0).toLocaleString()}),o.jsx("span",{className:"text-[10px] text-oai-gray-400 uppercase tracking-wider font-semibold",children:"Conversations"})]}),o.jsxs("div",{className:"flex items-baseline gap-1",children:[o.jsx("span",{className:"text-[11px] font-semibold text-oai-gray-500 dark:text-oai-gray-400 leading-none tabular-nums",children:Number(m.total_tokens??0).toLocaleString()}),o.jsx("span",{className:"text-[9px] text-oai-gray-400 uppercase tracking-wider",children:"tokens"})]})]}),m.models&&Object.keys(m.models).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:"Model Breakdown"}),o.jsx("div",{className:"flex flex-col gap-2 max-h-[150px] overflow-y-auto pr-1.5 oai-scrollbar",children:Object.entries(m.models).map(([W,te])=>({name:W,val:Number(te)})).sort((W,te)=>te.val-W.val).map(({name:W,val:te})=>{const ge=Number(m.total_tokens??m.value)||1,me=Math.round(te/ge*100);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-[120px]",title:W,children:W}),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:te.toLocaleString()}),o.jsxs("span",{className:"text-[9px] text-oai-gray-450 dark:text-oai-gray-500 min-w-[28px] text-right font-medium",children:[me,"%"]})]})]}),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:`${me}%`,backgroundColor:u[4],boxShadow:`0 0 4px ${u[4]}55`}})})]},W)})})]}):o.jsx("p",{className:"text-[11px] text-oai-gray-600 dark:text-oai-gray-300 leading-relaxed font-normal mt-1 border-t border-dashed border-oai-gray-100 dark:border-oai-gray-800/60 pt-1.5",children:io(m.level,m.total_tokens??m.value)})]})]}),o.jsx("div",{className:"absolute bottom-[6px] left-0 -translate-x-1/2 w-2.5 h-2.5 rotate-45 bg-white dark:bg-oai-gray-900 border-r border-b border-oai-gray-200/50 dark:border-oai-gray-800/50 shadow-sm",style:{marginBottom:"1px"}})]}),document.body),o.jsx("style",{children:`
|
|
2
|
+
@keyframes tt-fade-in {
|
|
3
|
+
from { opacity: 0; }
|
|
4
|
+
to { opacity: 1; }
|
|
5
|
+
}
|
|
6
|
+
@keyframes tt-fade-out {
|
|
7
|
+
from { opacity: 1; }
|
|
8
|
+
to { opacity: 0; }
|
|
9
|
+
}
|
|
10
|
+
@keyframes tt-modal-entrance {
|
|
11
|
+
from {
|
|
12
|
+
opacity: 0;
|
|
13
|
+
transform: scale(0.96) translateY(10px);
|
|
14
|
+
}
|
|
15
|
+
to {
|
|
16
|
+
opacity: 1;
|
|
17
|
+
transform: scale(1) translateY(0);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
@keyframes tt-modal-exit {
|
|
21
|
+
from {
|
|
22
|
+
opacity: 1;
|
|
23
|
+
transform: scale(1) translateY(0);
|
|
24
|
+
}
|
|
25
|
+
to {
|
|
26
|
+
opacity: 0;
|
|
27
|
+
transform: scale(0.96) translateY(10px);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
.animate-tt-fade-in {
|
|
31
|
+
animation: tt-fade-in 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
|
|
32
|
+
}
|
|
33
|
+
.animate-tt-fade-out {
|
|
34
|
+
animation: tt-fade-out 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
|
|
35
|
+
}
|
|
36
|
+
.animate-tt-modal {
|
|
37
|
+
animation: tt-modal-entrance 0.3s cubic-bezier(0.34, 1.3, 0.64, 1) forwards;
|
|
38
|
+
}
|
|
39
|
+
.animate-tt-modal-exit {
|
|
40
|
+
animation: tt-modal-exit 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
|
|
41
|
+
}
|
|
42
|
+
`})]})}function xc(e,t,n){if(!Number.isFinite(e))return p("shared.placeholder.short");const a=et(e,{decimals:2,currency:t,rate:n});return a==="-"?p("shared.placeholder.short"):a}function Ga(e,t,n){if(!Number.isFinite(e)||e<=0)return null;const a=ia(t);return(t===zr?e:e*n)<.01?`<${a}0.01`:et(e,{decimals:2,currency:t,rate:n})}function Ka(e){const t=Number(e);return!Number.isFinite(t)||t<=0?null:Ae(t,{decimals:1})}const kc=R.memo(function({isOpen:t,onClose:n,fleetData:a=[]}){const{currency:r,rate:s}=Nt(),l=h.useMemo(()=>(Array.isArray(a)?a:[]).map(c=>{const u=Le(c?.usd)??0,f=Le(c?.usage)??0,d=Array.isArray(c?.models)?c.models:[];return{label:c?.label?String(c.label):"",usdValue:u,costLabel:Ga(u,r,s),tokensLabel:Ka(f),models:d.map(m=>{const g=Le(m?.usage)??0,y=Le(m?.cost)??0;return{id:m?.id?String(m.id):"",name:m?.name?String(m.name):"",tokensLabel:Ka(g),costLabel:Ga(y,r,s),sortCost:y}}).filter(m=>m.costLabel||m.tokensLabel).sort((m,g)=>g.sortCost-m.sortCost)}}).filter(c=>c.usdValue>0||c.models.length>0).sort((c,u)=>u.usdValue-c.usdValue),[a,r,s]),i=h.useMemo(()=>{const c=l.reduce((u,f)=>u+f.usdValue,0);return xc(c,r,s)},[l,r,s]);return o.jsx(_i,{open:t,onOpenChange:c=>{c||n?.()},children:o.jsxs(Mi,{children:[o.jsx(ji,{className:"cost-modal-backdrop","data-cost-analysis-backdrop":"true"}),o.jsx(Si,{className:"fixed inset-0 z-[101] flex items-center justify-center p-4",children:o.jsxs(Ci,{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(Di,{render:o.jsx("h2",{className:"sr-only"}),children:p("dashboard.cost_breakdown.title")}),o.jsx(Xi,{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":p("dashboard.cost_breakdown.close"),children:o.jsx(sa,{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:p("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":p("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,u)=>{const f=`fleet-${u}`;return o.jsxs("div",{role:"rowgroup","aria-labelledby":f,className:u>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:f,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((d,m)=>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:d.name,children:d.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:d.costLabel||""})]},d.id||`${d.name}-${m}`))]},`${c.label}-${u}`)})]})]})})]})})]})})});function wc(e){if(typeof e!="string")return{owner:"",repo:""};const[t,n]=e.split("/");return{owner:t||"",repo:n||""}}function vc({projectKey:e,projectRef:t}){const[n,a]=h.useState(!1),r=typeof t=="string"?t.replace("https://github.com/",""):"",{owner:s,repo:l}=wc(e||r),i=s&&l?`${s}/${l}`:e,c=s&&!n?`https://github.com/${s}.png?size=80`:"";return c?o.jsx("img",{src:c,alt:"",className:"w-8 h-8 rounded-md oai-bg-elevated object-cover",onError:()=>a(!0)}):o.jsx("div",{className:"w-8 h-8 rounded-md oai-bg-elevated flex items-center justify-center text-oai-gray-500 dark:text-oai-gray-300",children:o.jsx(la,{provider:i,size:20})})}function Nc({projectEntries:e=[],projectLimit:t=3,onProjectLimitChange:n,copy:a,hasDetailsActual:r,dailyEmptyPrefix:s,installSyncCmd:l,dailyEmptySuffix:i,detailsColumns:c,ariaSortFor:u,toggleSort:f,sortIconFor:d,pagedDetails:m,dailyBreakdownRows:g=[],dailyBreakdownColumns:y=[],dailyBreakdownAriaSortFor:b,dailyBreakdownSortIconFor:v,dailyBreakdownDateKey:w="day",detailsDateKey:M,renderDetailDate:k,renderDailyBreakdownDate:N,renderDetailCell:_,DETAILS_PAGED_PERIODS:j,period:L,detailsPageCount:P,detailsPage:D,setDetailsPage:I}){const[G,V]=h.useState("daily");function $(T,x,S){return S===0?"text-oai-gray-500 dark:text-oai-gray-300":x.key==="total_tokens"||x.key==="total_cost_usd"?"font-medium text-oai-black dark:text-oai-white tabular-nums":x.key==="cost_per_million_tokens"&&T?.cost_per_million_status==="high"?"font-semibold text-amber-700 dark:text-amber-300 tabular-nums":x.key==="top_model"?"text-oai-gray-600 dark:text-oai-gray-300":"text-oai-gray-600 dark:text-oai-gray-300 tabular-nums"}function E(T,x,S){return S===0?N?N(T):k(T):_(T,x.key)}return o.jsxs(on,{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":G==="daily",type:"button",onClick:()=>V("daily"),className:`text-xs font-medium px-3 py-1.5 rounded transition-colors ${G==="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":G==="projects",type:"button",onClick:()=>V("projects"),className:`text-xs font-medium px-3 py-1.5 rounded transition-colors ${G==="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")})]}),G==="projects"&&o.jsx(Pi,{ariaLabel:a("dashboard.projects.limit_aria"),value:t,onValueChange:T=>n?.(Number(T)),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"})]}),G==="projects"&&o.jsx("div",{className:"space-y-1",children:e.slice(0,t).map((T,x)=>{const S=typeof T?.project_ref=="string"?T.project_ref:"",H=T?.project_key||S||`entry-${x}`,C=T?.billable_total_tokens??T?.total_tokens,X=Number(C),F=Number.isFinite(X)?X.toLocaleString():"—",Y=T?.project_key||S.split("/").pop()||"—";return o.jsxs("div",{className:"flex items-center gap-3 p-2 rounded-lg",children:[o.jsx(vc,{projectKey:T?.project_key,projectRef:S}),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:Y})}),o.jsx("div",{className:"oai-text-body-sm font-medium text-oai-black dark:text-oai-white tabular-nums",children:F})]},H)})}),G==="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:y.map((T,x)=>o.jsx("th",{...b?.(T.key)?{"aria-sort":b(T.key)}:{},className:"text-left p-0 bg-white dark:bg-oai-gray-900",children:o.jsx("button",{type:"button",onClick:()=>f(T.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:T.label}),o.jsx("span",{className:"text-oai-gray-400 dark:text-oai-gray-400",children:v?.(T.key)||""})]})})},T.key))})}),o.jsx("tbody",{children:g.map(T=>o.jsx("tr",{className:`border-b border-oai-gray-100 dark:border-oai-gray-800 last:border-b-0 odd:bg-transparent even:bg-oai-gray-50/55 dark:odd:bg-transparent dark:even:bg-white/[0.035] hover:bg-oai-gray-100/60 dark:hover:bg-oai-gray-800/70 transition-colors ${T.missing?"text-oai-gray-400 dark:text-oai-gray-400":T.future?"text-oai-gray-300 dark:text-oai-gray-600":"text-oai-black dark:text-oai-white"}`,children:y.map((x,S)=>o.jsx("td",{className:`px-2.5 sm:px-4 py-2 oai-text-body-sm whitespace-nowrap ${$(T,x,S)}`,children:E(T,x,S)},x.key))},String(T?.[w]||T?.day||T?.hour||T?.month||"")))})]})}),G!=="daily"&&j.has(L)&&P>1?o.jsxs("div",{className:"mt-3 flex items-center justify-between oai-text-caption",children:[o.jsx("button",{type:"button",onClick:()=>I(T=>Math.max(0,T-1)),disabled:D===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:[D+1," / ",P]}),o.jsx("button",{type:"button",onClick:()=>I(T=>Math.min(P-1,T+1)),disabled:D+1>=P,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 kn(e){return typeof e!="string"?"":e.trim()}function Qa(e){const t=kn(e);return t?t.split(/[_\-\s]+/).filter(Boolean).map(n=>n.slice(0,1).toUpperCase()+n.slice(1).toLowerCase()).join(" "):""}function _c(e){if(!Array.isArray(e))return[];const t=new Map;for(const n of e){if(!n||typeof n!="object")continue;const a=kn(n.tool),r=kn(n.planType)||kn(n.plan_type);if(!a||!r)continue;const s=Qa(a)||a,l=Qa(r)||r;t.set(`${a.toLowerCase()}::${r.toLowerCase()}`,{tool:s,plan:l})}return Array.from(t.values())}function Ja({rankLabel:e,streakDays:t,subscriptions:n=[],className:a=""}){const r=e??p("identity_card.rank_placeholder"),s=Number.isFinite(Number(t))?Number(t):0,l=s?p("identity_card.streak_value",{days:s}):p("identity_card.rank_placeholder"),i=_c(n);return o.jsxs(on,{className:`h-full ${a}`,children:[i.length>0&&o.jsx("div",{className:"flex flex-wrap gap-1.5",children:i.map((c,u)=>o.jsxs(qi,{variant:"secondary",size:"sm",children:[c.tool," ",c.plan]},`${c.tool}:${c.plan}:${u}`))}),o.jsxs("div",{className:`${i.length>0?"mt-3 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:p("identity_card.rank_label")}),o.jsx("span",{className:"text-oai-gray-500 dark:text-oai-gray-300 tabular-nums",children:r})]}),o.jsxs("div",{className:"flex items-center gap-1",children:[o.jsx("span",{children:p("identity_card.streak_label")}),o.jsx("span",{className:"text-oai-gray-500 dark:text-oai-gray-300 tabular-nums",children:l})]})]})]})}const Za=2,Mc=.75,jc=.005;function Sc(e,t){if(!(typeof e=="number"&&Number.isFinite(e)))return{hasBar:!1,side:null,widthPct:0,tone:null,labelText:"—",arrow:null};if(Math.abs(e)<jc)return{hasBar:!1,side:null,widthPct:0,tone:null,labelText:"0%",arrow:null};const a=e>0,r=Math.min(Math.abs(e),Za)/Za*50;let s;t==="price"?s=a?"bad":"good":s=Math.abs(e)>=Mc?"neutral-strong":"neutral";const l=Math.abs(Math.round(e*100));return{hasBar:!0,side:a?"up":"down",widthPct:r,tone:s,labelText:`${a?"+":"−"}${l}%`,arrow:t==="price"?a?"▲":"▼":null}}function Cc(e){switch(e){case"neutral":return"var(--pulse-neutral)";case"neutral-strong":return"var(--pulse-neutral-strong)";case"good":return"var(--pulse-good)";case"bad":return"var(--pulse-bad)";default:return null}}const Dc={thousandSuffix:"K",millionSuffix:"M",billionSuffix:"B"},Tc=e=>e==null?"—":Ae(e,Dc),Pc=e=>e==null?"—":et(e,{decimals:e>=100?0:2}),Oc=e=>e==null?"—":et(e,{decimals:2}),$c=[{key:"tokens",label:"Tokens",kind:"usage",format:Tc},{key:"cost",label:"Cost",kind:"usage",format:Pc},{key:"perMTok",label:"$/MTok",kind:"price",format:Oc}];function Wc({label:e,delta:t,kind:n}){const a=Sc(t,n),r=Cc(a.tone),s=a.side==="up"?{left:"50%",width:`${a.widthPct}%`,background:r}:{right:"50%",width:`${a.widthPct}%`,background:r};return o.jsxs("div",{className:"grid grid-cols-[2.3rem_1fr_3rem] items-center gap-2",children:[o.jsx("span",{className:"text-[8.5px] uppercase tracking-wide text-oai-gray-400 dark:text-oai-gray-400 text-right",children:e}),o.jsxs("span",{className:"pulse-devtrack",children:[o.jsx("span",{className:"pulse-devtick"}),a.hasBar?o.jsx("span",{className:"pulse-devbar",style:s}):null]}),o.jsxs("span",{className:"flex items-center justify-end gap-1 text-[10.5px] font-bold tabular-nums text-right text-oai-gray-600 dark:text-oai-gray-300",children:[a.arrow?o.jsx("span",{className:"text-[8px]",style:{color:r},children:a.arrow}):null,o.jsx("span",{children:a.labelText})]})]})}function Ec({ratio:e}){const t=Math.min(Math.max(e,0),2)/2*100;return o.jsxs("div",{className:"mt-2.5",children:[o.jsxs("div",{className:"flex items-baseline justify-between mb-1",children:[o.jsx("span",{className:"text-[8.5px] uppercase tracking-wide text-oai-gray-400 dark:text-oai-gray-400",children:"of a normal day"}),o.jsxs("span",{className:"text-[11px] font-bold tabular-nums text-oai-brand-600 dark:text-oai-brand-light",children:[e.toFixed(1),"×"]})]}),o.jsxs("div",{className:"relative h-[7px] rounded-full",style:{background:"var(--pulse-track)"},children:[o.jsx("div",{className:"absolute left-0 top-0 bottom-0 rounded-full bg-gradient-to-r from-oai-brand-500 to-oai-brand-light",style:{width:`${t}%`}}),o.jsx("div",{className:"absolute -top-[3px] -bottom-[3px] w-[2px] rounded-full",style:{left:"50%",background:"var(--pulse-tick)"},"aria-hidden":"true"})]})]})}function Ac({pulse:e,period:t,comparedAtLabel:n,className:a=""}){if(!e)return null;const r=t==="day"||t==="24h",s=t==="month"?"prev 30d":"prev 7d",l=r?[{label:"yest",field:"deltaVsPrev"},{label:"7d avg",field:"deltaVsAvg"}]:[{label:s,field:"deltaVsPrev"}],i=r?"vs yest · 7d avg":`vs ${s}`,c=r?`same time of day${n?` · ${n}`:""}`:`same elapsed vs ${s}`;return o.jsxs("div",{className:`pulse-card h-full flex flex-col gap-1.5 ${a}`,children:[o.jsxs("div",{className:"flex items-baseline justify-between gap-2",children:[o.jsx("span",{className:"text-[10.5px] font-bold uppercase tracking-[0.16em] text-oai-brand-600 dark:text-oai-brand-light",children:"Today's pulse"}),o.jsx("span",{className:"text-[9px] text-oai-gray-400 dark:text-oai-gray-400 tracking-wide",children:i})]}),$c.map(u=>{const f=e[u.key]||{},d=typeof f.progress=="number"&&Number.isFinite(f.progress);return o.jsxs("div",{className:"py-2 border-b border-dashed border-oai-gray-200/40 dark:border-oai-gray-700/50 last:border-b-0",children:[o.jsxs("div",{className:"flex items-baseline justify-between gap-3",children:[o.jsx("span",{className:"text-[11px] uppercase tracking-wide text-oai-gray-500 dark:text-oai-gray-400",children:u.label}),o.jsx("span",{className:"text-xl font-bold text-oai-black dark:text-oai-white tabular-nums truncate",children:u.format(f.value)})]}),o.jsx("div",{className:"mt-2 flex flex-col gap-1.5",children:l.map(m=>o.jsx(Wc,{label:m.label,delta:f[m.field],kind:u.kind},m.field))}),d?o.jsx(Ec,{ratio:f.progress}):null]},u.key)}),o.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] text-oai-gray-400 dark:text-oai-gray-400 pt-0.5",children:[o.jsx("span",{"aria-hidden":"true",children:"⌚"}),o.jsx("span",{children:c})]})]})}function Fc(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 Rc={},Kt={};function Tt(e,t){try{const a=(Rc[e]||=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"longOffset"}).format)(t).split("GMT")[1];return a in Kt?Kt[a]:er(a,a.split(":"))}catch{if(e in Kt)return Kt[e];const n=e?.match(Ic);return n?er(e,n.slice(1)):NaN}}const Ic=/([+-]\d\d):?(\d\d)?/;function er(e,t){const n=+(t[0]||0),a=+(t[1]||0),r=+(t[2]||0)/60;return Kt[e]=n*60+a>0?n*60+a+r:n*60-a-r}class rt extends Date{constructor(...t){super(),t.length>1&&typeof t[t.length-1]=="string"&&(this.timeZone=t.pop()),this.internal=new Date,isNaN(Tt(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)),co(this),aa(this)):this.setTime(Date.now())}static tz(t,...n){return n.length?new rt(...n,t):new rt(Date.now(),t)}withTimeZone(t){return new rt(+this,t)}getTimezoneOffset(){const t=-Tt(this.timeZone,this);return t>0?Math.floor(t):Math.ceil(t)}setTime(t){return Date.prototype.setTime.apply(this,arguments),aa(this),+this}[Symbol.for("constructDateFrom")](t){return new rt(+new Date(t),this.timeZone)}}const tr=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!tr.test(e))return;const t=e.replace(tr,"$1UTC");rt.prototype[t]&&(e.startsWith("get")?rt.prototype[e]=function(){return this.internal[t]()}:(rt.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),Lc(this),+this},rt.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),aa(this),+this}))});function aa(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-Tt(e.timeZone,e)*60))}function Lc(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()),co(e)}function co(e){const t=Tt(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 u=new Date(+e);u.setUTCSeconds(0);const f=r>0?u.getSeconds():(u.getSeconds()-60)%60,d=Math.round(-(Tt(e.timeZone,e)*60))%60;(d||f)&&(e.internal.setUTCSeconds(e.internal.getUTCSeconds()+d),Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+d+f));const m=Tt(e.timeZone,e),g=m>0?Math.floor(m):Math.ceil(m),b=-new Date(+e).getTimezoneOffset()-g,v=g!==n,w=b-c;if(v&&w){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+w);const M=Tt(e.timeZone,e),k=M>0?Math.floor(M):Math.ceil(M),N=g-k;N&&(e.internal.setUTCMinutes(e.internal.getUTCMinutes()+N),Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+N))}}class Ie extends rt{static tz(t,...n){return n.length?new Ie(...n,t):new Ie(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} (${Fc(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 Ie(+this,t)}[Symbol.for("constructDateFrom")](t){return new Ie(+new Date(t),this.timeZone)}}const uo=6048e5,zc=864e5,nr=Symbol.for("constructDateFrom");function Oe(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&nr in e?e[nr](t):e instanceof Date?new e.constructor(t):new Date(t)}function ke(e,t){return Oe(t||e,e)}function fo(e,t,n){const a=ke(e,n?.in);return isNaN(t)?Oe(e,NaN):(t&&a.setDate(a.getDate()+t),a)}function mo(e,t,n){const a=ke(e,n?.in);if(isNaN(t))return Oe(e,NaN);if(!t)return a;const r=a.getDate(),s=Oe(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 Yc={};function ln(){return Yc}function vt(e,t){const n=ln(),a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,r=ke(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 tn(e,t){return vt(e,{...t,weekStartsOn:1})}function ho(e,t){const n=ke(e,t?.in),a=n.getFullYear(),r=Oe(n,0);r.setFullYear(a+1,0,4),r.setHours(0,0,0,0);const s=tn(r),l=Oe(n,0);l.setFullYear(a,0,4),l.setHours(0,0,0,0);const i=tn(l);return n.getTime()>=s.getTime()?a+1:n.getTime()>=i.getTime()?a:a-1}function ar(e){const t=ke(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 Pt(e,...t){const n=Oe.bind(null,e||t.find(a=>typeof a=="object"));return t.map(n)}function nn(e,t){const n=ke(e,t?.in);return n.setHours(0,0,0,0),n}function fa(e,t,n){const[a,r]=Pt(n?.in,e,t),s=nn(a),l=nn(r),i=+s-ar(s),c=+l-ar(l);return Math.round((i-c)/zc)}function Bc(e,t){const n=ho(e,t),a=Oe(e,0);return a.setFullYear(n,0,4),a.setHours(0,0,0,0),tn(a)}function Hc(e,t,n){return fo(e,t*7,n)}function Uc(e,t,n){return mo(e,t*12,n)}function Vc(e,t){let n,a=t?.in;return e.forEach(r=>{!a&&typeof r=="object"&&(a=Oe.bind(null,r));const s=ke(r,a);(!n||n<s||isNaN(+s))&&(n=s)}),Oe(a,n||NaN)}function qc(e,t){let n,a=t?.in;return e.forEach(r=>{!a&&typeof r=="object"&&(a=Oe.bind(null,r));const s=ke(r,a);(!n||n>s||isNaN(+s))&&(n=s)}),Oe(a,n||NaN)}function Xc(e,t,n){const[a,r]=Pt(n?.in,e,t);return+nn(a)==+nn(r)}function go(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function Gc(e){return!(!go(e)&&typeof e!="number"||isNaN(+ke(e)))}function yo(e,t,n){const[a,r]=Pt(n?.in,e,t),s=a.getFullYear()-r.getFullYear(),l=a.getMonth()-r.getMonth();return s*12+l}function Kc(e,t){const n=ke(e,t?.in),a=n.getMonth();return n.setFullYear(n.getFullYear(),a+1,0),n.setHours(23,59,59,999),n}function po(e,t){const[n,a]=Pt(e,t.start,t.end);return{start:n,end:a}}function Qc(e,t){const{start:n,end:a}=po(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(Oe(n,l)),l.setMonth(l.getMonth()+i);return r?c.reverse():c}function Jc(e,t){const n=ke(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function Zc(e,t){const n=ke(e,t?.in),a=n.getFullYear();return n.setFullYear(a+1,0,0),n.setHours(23,59,59,999),n}function bo(e,t){const n=ke(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function ed(e,t){const{start:n,end:a}=po(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(Oe(n,l)),l.setFullYear(l.getFullYear()+i);return r?c.reverse():c}function xo(e,t){const n=ln(),a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,r=ke(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 td(e,t){return xo(e,{...t,weekStartsOn:1})}const nd={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"}},ad=(e,t,n)=>{let a;const r=nd[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 ze(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const rd={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},od={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},sd={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},id={date:ze({formats:rd,defaultWidth:"full"}),time:ze({formats:od,defaultWidth:"full"}),dateTime:ze({formats:sd,defaultWidth:"full"})},ld={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},cd=(e,t,n,a)=>ld[e];function we(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 dd={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},ud={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},fd={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"]},md={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"]},hd={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"}},gd={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"}},yd=(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"},pd={ordinalNumber:yd,era:we({values:dd,defaultWidth:"wide"}),quarter:we({values:ud,defaultWidth:"wide",argumentCallback:e=>e-1}),month:we({values:fd,defaultWidth:"wide"}),day:we({values:md,defaultWidth:"wide"}),dayPeriod:we({values:hd,defaultWidth:"wide",formattingValues:gd,defaultFormattingWidth:"wide"})};function ve(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)?xd(i,d=>d.test(l)):bd(i,d=>d.test(l));let u;u=e.valueCallback?e.valueCallback(c):c,u=n.valueCallback?n.valueCallback(u):u;const f=t.slice(l.length);return{value:u,rest:f}}}function bd(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function xd(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function cn(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 kd=/^(\d+)(th|st|nd|rd)?/i,wd=/\d+/i,vd={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},Nd={any:[/^b/i,/^(a|c)/i]},_d={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},Md={any:[/1/i,/2/i,/3/i,/4/i]},jd={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},Sd={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]},Cd={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},Dd={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]},Td={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},Pd={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}},Od={ordinalNumber:cn({matchPattern:kd,parsePattern:wd,valueCallback:e=>parseInt(e,10)}),era:ve({matchPatterns:vd,defaultMatchWidth:"wide",parsePatterns:Nd,defaultParseWidth:"any"}),quarter:ve({matchPatterns:_d,defaultMatchWidth:"wide",parsePatterns:Md,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ve({matchPatterns:jd,defaultMatchWidth:"wide",parsePatterns:Sd,defaultParseWidth:"any"}),day:ve({matchPatterns:Cd,defaultMatchWidth:"wide",parsePatterns:Dd,defaultParseWidth:"any"}),dayPeriod:ve({matchPatterns:Td,defaultMatchWidth:"any",parsePatterns:Pd,defaultParseWidth:"any"})},wt={code:"en-US",formatDistance:ad,formatLong:id,formatRelative:cd,localize:pd,match:Od,options:{weekStartsOn:0,firstWeekContainsDate:1}};function $d(e,t){const n=ke(e,t?.in);return fa(n,bo(n))+1}function ma(e,t){const n=ke(e,t?.in),a=+tn(n)-+Bc(n);return Math.round(a/uo)+1}function ko(e,t){const n=ke(e,t?.in),a=n.getFullYear(),r=ln(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,l=Oe(t?.in||e,0);l.setFullYear(a+1,0,s),l.setHours(0,0,0,0);const i=vt(l,t),c=Oe(t?.in||e,0);c.setFullYear(a,0,s),c.setHours(0,0,0,0);const u=vt(c,t);return+n>=+i?a+1:+n>=+u?a:a-1}function Wd(e,t){const n=ln(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,r=ko(e,t),s=Oe(t?.in||e,0);return s.setFullYear(r,0,a),s.setHours(0,0,0,0),vt(s,t)}function ha(e,t){const n=ke(e,t?.in),a=+vt(n,t)-+Wd(n,t);return Math.round(a/uo)+1}function be(e,t){const n=e<0?"-":"",a=Math.abs(e).toString().padStart(t,"0");return n+a}const xt={y(e,t){const n=e.getFullYear(),a=n>0?n:1-n;return be(t==="yy"?a%100:a,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):be(n+1,2)},d(e,t){return be(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 be(e.getHours()%12||12,t.length)},H(e,t){return be(e.getHours(),t.length)},m(e,t){return be(e.getMinutes(),t.length)},s(e,t){return be(e.getSeconds(),t.length)},S(e,t){const n=t.length,a=e.getMilliseconds(),r=Math.trunc(a*Math.pow(10,n-3));return be(r,t.length)}},Et={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},rr={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 xt.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 be(l,2)}return t==="Yo"?n.ordinalNumber(s,{unit:"year"}):be(s,t.length)},R:function(e,t){const n=ho(e);return be(n,t.length)},u:function(e,t){const n=e.getFullYear();return be(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 be(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 be(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 xt.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 be(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=ha(e,a);return t==="wo"?n.ordinalNumber(r,{unit:"week"}):be(r,t.length)},I:function(e,t,n){const a=ma(e);return t==="Io"?n.ordinalNumber(a,{unit:"week"}):be(a,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):xt.d(e,t)},D:function(e,t,n){const a=$d(e);return t==="Do"?n.ordinalNumber(a,{unit:"dayOfYear"}):be(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 be(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 be(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 be(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=Et.noon:a===0?r=Et.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=Et.evening:a>=12?r=Et.afternoon:a>=4?r=Et.morning:r=Et.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 xt.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):xt.H(e,t)},K:function(e,t,n){const a=e.getHours()%12;return t==="Ko"?n.ordinalNumber(a,{unit:"hour"}):be(a,t.length)},k:function(e,t,n){let a=e.getHours();return a===0&&(a=24),t==="ko"?n.ordinalNumber(a,{unit:"hour"}):be(a,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):xt.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):xt.s(e,t)},S:function(e,t){return xt.S(e,t)},X:function(e,t,n){const a=e.getTimezoneOffset();if(a===0)return"Z";switch(t){case"X":return sr(a);case"XXXX":case"XX":return Dt(a);default:return Dt(a,":")}},x:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"x":return sr(a);case"xxxx":case"xx":return Dt(a);default:return Dt(a,":")}},O:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+or(a,":");default:return"GMT"+Dt(a,":")}},z:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+or(a,":");default:return"GMT"+Dt(a,":")}},t:function(e,t,n){const a=Math.trunc(+e/1e3);return be(a,t.length)},T:function(e,t,n){return be(+e,t.length)}};function or(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+be(s,2)}function sr(e,t){return e%60===0?(e>0?"-":"+")+be(Math.abs(e)/60,2):Dt(e,t)}function Dt(e,t=""){const n=e>0?"-":"+",a=Math.abs(e),r=be(Math.trunc(a/60),2),s=be(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"})}},wo=(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"})}},Ed=(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}}",wo(r,t))},Ad={p:wo,P:Ed},Fd=/^D+$/,Rd=/^Y+$/,Id=["D","DD","YY","YYYY"];function Ld(e){return Fd.test(e)}function zd(e){return Rd.test(e)}function Yd(e,t,n){const a=Bd(e,t,n);if(console.warn(a),Id.includes(e))throw new RangeError(a)}function Bd(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 Hd=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Ud=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Vd=/^'([^]*?)'?$/,qd=/''/g,Xd=/[a-zA-Z]/;function ot(e,t,n){const a=ln(),r=n?.locale??a.locale??wt,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=ke(e,n?.in);if(!Gc(i))throw new RangeError("Invalid time value");let c=t.match(Ud).map(f=>{const d=f[0];if(d==="p"||d==="P"){const m=Ad[d];return m(f,r.formatLong)}return f}).join("").match(Hd).map(f=>{if(f==="''")return{isToken:!1,value:"'"};const d=f[0];if(d==="'")return{isToken:!1,value:Gd(f)};if(rr[d])return{isToken:!0,value:f};if(d.match(Xd))throw new RangeError("Format string contains an unescaped latin alphabet character `"+d+"`");return{isToken:!1,value:f}});r.localize.preprocessor&&(c=r.localize.preprocessor(i,c));const u={firstWeekContainsDate:s,weekStartsOn:l,locale:r};return c.map(f=>{if(!f.isToken)return f.value;const d=f.value;(!n?.useAdditionalWeekYearTokens&&zd(d)||!n?.useAdditionalDayOfYearTokens&&Ld(d))&&Yd(d,t,String(e));const m=rr[d[0]];return m(i,d,r.localize,u)}).join("")}function Gd(e){const t=e.match(Vd);return t?t[1].replace(qd,"'"):e}function Kd(e,t){const n=ke(e,t?.in),a=n.getFullYear(),r=n.getMonth(),s=Oe(n,0);return s.setFullYear(a,r+1,0),s.setHours(0,0,0,0),s.getDate()}function Qd(e,t){return ke(e,t?.in).getMonth()}function Jd(e,t){return ke(e,t?.in).getFullYear()}function Zd(e,t){return+ke(e)>+ke(t)}function eu(e,t){return+ke(e)<+ke(t)}function tu(e,t,n){const[a,r]=Pt(n?.in,e,t);return+vt(a,n)==+vt(r,n)}function nu(e,t,n){const[a,r]=Pt(n?.in,e,t);return a.getFullYear()===r.getFullYear()&&a.getMonth()===r.getMonth()}function au(e,t,n){const[a,r]=Pt(n?.in,e,t);return a.getFullYear()===r.getFullYear()}function ru(e,t,n){const a=ke(e,n?.in),r=a.getFullYear(),s=a.getDate(),l=Oe(e,0);l.setFullYear(r,t,15),l.setHours(0,0,0,0);const i=Kd(l);return a.setMonth(t,Math.min(s,i)),a}function ou(e,t,n){const a=ke(e,n?.in);return isNaN(+a)?Oe(e,NaN):(a.setFullYear(t),a)}const lr=5,su=4;function iu(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:su}function vo(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 lu(e,t){const n=vo(e,t),a=iu(e,t);return t.addDays(n,a*7-1)}const cu={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}}年近く"}},du=(e,t,n)=>{n=n||{};let a;const r=cu[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},uu={full:"y年M月d日EEEE",long:"y年M月d日",medium:"y/MM/dd",short:"y/MM/dd"},fu={full:"H時mm分ss秒 zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},mu={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},hu={date:ze({formats:uu,defaultWidth:"full"}),time:ze({formats:fu,defaultWidth:"full"}),dateTime:ze({formats:mu,defaultWidth:"full"})},gu={lastWeek:"先週のeeeeのp",yesterday:"昨日のp",today:"今日のp",tomorrow:"明日のp",nextWeek:"翌週のeeeeのp",other:"P"},yu=(e,t,n,a)=>gu[e],pu={narrow:["BC","AC"],abbreviated:["紀元前","西暦"],wide:["紀元前","西暦"]},bu={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["第1四半期","第2四半期","第3四半期","第4四半期"]},xu={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月"]},ku={narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],abbreviated:["日","月","火","水","木","金","土"],wide:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},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:"深夜"}},vu={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:"深夜"}},Nu=(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}`}},_u={ordinalNumber:Nu,era:we({values:pu,defaultWidth:"wide"}),quarter:we({values:bu,defaultWidth:"wide",argumentCallback:e=>Number(e)-1}),month:we({values:xu,defaultWidth:"wide"}),day:we({values:ku,defaultWidth:"wide"}),dayPeriod:we({values:wu,defaultWidth:"wide",formattingValues:vu,defaultFormattingWidth:"wide"})},Mu=/^第?\d+(年|四半期|月|週|日|時|分|秒)?/i,ju=/\d+/i,Su={narrow:/^(B\.?C\.?|A\.?D\.?)/i,abbreviated:/^(紀元[前後]|西暦)/i,wide:/^(紀元[前後]|西暦)/i},Cu={narrow:[/^B/i,/^A/i],any:[/^(紀元前)/i,/^(西暦|紀元後)/i]},Du={narrow:/^[1234]/i,abbreviated:/^Q[1234]/i,wide:/^第[1234一二三四1234]四半期/i},Tu={any:[/(1|一|1)/i,/(2|二|2)/i,/(3|三|3)/i,/(4|四|4)/i]},Pu={narrow:/^([123456789]|1[012])/,abbreviated:/^([123456789]|1[012])月/i,wide:/^([123456789]|1[012])月/i},Ou={any:[/^1\D/,/^2/,/^3/,/^4/,/^5/,/^6/,/^7/,/^8/,/^9/,/^10/,/^11/,/^12/]},$u={narrow:/^[日月火水木金土]/,short:/^[日月火水木金土]/,abbreviated:/^[日月火水木金土]/,wide:/^[日月火水木金土]曜日/},Wu={any:[/^日/,/^月/,/^火/,/^水/,/^木/,/^金/,/^土/]},Eu={any:/^(AM|PM|午前|午後|正午|深夜|真夜中|夜|朝)/i},Au={any:{am:/^(A|午前)/i,pm:/^(P|午後)/i,midnight:/^深夜|真夜中/i,noon:/^正午/i,morning:/^朝/i,afternoon:/^午後/i,evening:/^夜/i,night:/^深夜/i}},Fu={ordinalNumber:cn({matchPattern:Mu,parsePattern:ju,valueCallback:function(e){return parseInt(e,10)}}),era:ve({matchPatterns:Su,defaultMatchWidth:"wide",parsePatterns:Cu,defaultParseWidth:"any"}),quarter:ve({matchPatterns:Du,defaultMatchWidth:"wide",parsePatterns:Tu,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ve({matchPatterns:Pu,defaultMatchWidth:"wide",parsePatterns:Ou,defaultParseWidth:"any"}),day:ve({matchPatterns:$u,defaultMatchWidth:"wide",parsePatterns:Wu,defaultParseWidth:"any"}),dayPeriod:ve({matchPatterns:Eu,defaultMatchWidth:"any",parsePatterns:Au,defaultParseWidth:"any"})},Ru={code:"ja",formatDistance:du,formatLong:hu,formatRelative:yu,localize:_u,match:Fu,options:{weekStartsOn:0,firstWeekContainsDate:1}},Iu={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}}년"}},Lu=(e,t,n)=>{let a;const r=Iu[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},zu={full:"y년 M월 d일 EEEE",long:"y년 M월 d일",medium:"y.MM.dd",short:"y.MM.dd"},Yu={full:"a H시 mm분 ss초 zzzz",long:"a H:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},Bu={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},Hu={date:ze({formats:zu,defaultWidth:"full"}),time:ze({formats:Yu,defaultWidth:"full"}),dateTime:ze({formats:Bu,defaultWidth:"full"})},Uu={lastWeek:"'지난' eeee p",yesterday:"'어제' p",today:"'오늘' p",tomorrow:"'내일' p",nextWeek:"'다음' eeee p",other:"P"},Vu=(e,t,n,a)=>Uu[e],qu={narrow:["BC","AD"],abbreviated:["BC","AD"],wide:["기원전","서기"]},Xu={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1분기","2분기","3분기","4분기"]},Gu={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월"]},Ku={narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],abbreviated:["일","월","화","수","목","금","토"],wide:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},Qu={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:"밤"}},Ju={narrow:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},abbreviated:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},wide:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"}},Zu=(e,t)=>{const n=Number(e);switch(String(t?.unit)){case"minute":case"second":return String(n);case"date":return n+"일";default:return n+"번째"}},ef={ordinalNumber:Zu,era:we({values:qu,defaultWidth:"wide"}),quarter:we({values:Xu,defaultWidth:"wide",argumentCallback:e=>e-1}),month:we({values:Gu,defaultWidth:"wide"}),day:we({values:Ku,defaultWidth:"wide"}),dayPeriod:we({values:Qu,defaultWidth:"wide",formattingValues:Ju,defaultFormattingWidth:"wide"})},tf=/^(\d+)(일|번째)?/i,nf=/\d+/i,af={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},rf={any:[/^(bc|기원전)/i,/^(ad|서기)/i]},of={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234]사?분기/i},sf={any:[/1/i,/2/i,/3/i,/4/i]},lf={narrow:/^(1[012]|[123456789])/,abbreviated:/^(1[012]|[123456789])월/i,wide:/^(1[012]|[123456789])월/i},cf={any:[/^1월?$/,/^2/,/^3/,/^4/,/^5/,/^6/,/^7/,/^8/,/^9/,/^10/,/^11/,/^12/]},df={narrow:/^[일월화수목금토]/,short:/^[일월화수목금토]/,abbreviated:/^[일월화수목금토]/,wide:/^[일월화수목금토]요일/},uf={any:[/^일/,/^월/,/^화/,/^수/,/^목/,/^금/,/^토/]},ff={any:/^(am|pm|오전|오후|자정|정오|아침|저녁|밤)/i},mf={any:{am:/^(am|오전)/i,pm:/^(pm|오후)/i,midnight:/^자정/i,noon:/^정오/i,morning:/^아침/i,afternoon:/^오후/i,evening:/^저녁/i,night:/^밤/i}},hf={ordinalNumber:cn({matchPattern:tf,parsePattern:nf,valueCallback:e=>parseInt(e,10)}),era:ve({matchPatterns:af,defaultMatchWidth:"wide",parsePatterns:rf,defaultParseWidth:"any"}),quarter:ve({matchPatterns:of,defaultMatchWidth:"wide",parsePatterns:sf,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ve({matchPatterns:lf,defaultMatchWidth:"wide",parsePatterns:cf,defaultParseWidth:"any"}),day:ve({matchPatterns:df,defaultMatchWidth:"wide",parsePatterns:uf,defaultParseWidth:"any"}),dayPeriod:ve({matchPatterns:ff,defaultMatchWidth:"any",parsePatterns:mf,defaultParseWidth:"any"})},gf={code:"ko",formatDistance:Lu,formatLong:Hu,formatRelative:Vu,localize:ef,match:hf,options:{weekStartsOn:0,firstWeekContainsDate:1}},yf={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}} 年"}},pf=(e,t,n)=>{let a;const r=yf[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},bf={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},xf={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},kf={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},wf={date:ze({formats:bf,defaultWidth:"full"}),time:ze({formats:xf,defaultWidth:"full"}),dateTime:ze({formats:kf,defaultWidth:"full"})};function cr(e,t,n){const a="eeee p";return tu(e,t,n)?a:e.getTime()>t.getTime()?"'下个'"+a:"'上个'"+a}const vf={lastWeek:cr,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:cr,other:"PP p"},Nf=(e,t,n,a)=>{const r=vf[e];return typeof r=="function"?r(t,n,a):r},_f={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},Mf={narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},jf={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},Sf={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:"夜间"}},Tf=(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()}},Pf={ordinalNumber:Tf,era:we({values:_f,defaultWidth:"wide"}),quarter:we({values:Mf,defaultWidth:"wide",argumentCallback:e=>e-1}),month:we({values:jf,defaultWidth:"wide"}),day:we({values:Sf,defaultWidth:"wide"}),dayPeriod:we({values:Cf,defaultWidth:"wide",formattingValues:Df,defaultFormattingWidth:"wide"})},Of=/^(第\s*)?\d+(日|时|分|秒)?/i,$f=/\d+/i,Wf={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},Ef={any:[/^(前)/i,/^(公元)/i]},Af={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},Ff={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},Rf={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},If={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},Lf={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},zf={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},Yf={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},Bf={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},Hf={ordinalNumber:cn({matchPattern:Of,parsePattern:$f,valueCallback:e=>parseInt(e,10)}),era:ve({matchPatterns:Wf,defaultMatchWidth:"wide",parsePatterns:Ef,defaultParseWidth:"any"}),quarter:ve({matchPatterns:Af,defaultMatchWidth:"wide",parsePatterns:Ff,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ve({matchPatterns:Rf,defaultMatchWidth:"wide",parsePatterns:If,defaultParseWidth:"any"}),day:ve({matchPatterns:Lf,defaultMatchWidth:"wide",parsePatterns:zf,defaultParseWidth:"any"}),dayPeriod:ve({matchPatterns:Yf,defaultMatchWidth:"any",parsePatterns:Bf,defaultParseWidth:"any"})},Uf={code:"zh-CN",formatDistance:pf,formatLong:wf,formatRelative:Nf,localize:Pf,match:Hf,options:{weekStartsOn:1,firstWeekContainsDate:4}},Vf={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}} 年"}},qf=(e,t,n)=>{let a;const r=Vf[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},Xf={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},Gf={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},Kf={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},Qf={date:ze({formats:Xf,defaultWidth:"full"}),time:ze({formats:Gf,defaultWidth:"full"}),dateTime:ze({formats:Kf,defaultWidth:"full"})},Jf={lastWeek:"'上個'eeee p",yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:"'下個'eeee p",other:"P"},Zf=(e,t,n,a)=>Jf[e],em={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},tm={narrow:["1","2","3","4"],abbreviated:["第一刻","第二刻","第三刻","第四刻"],wide:["第一刻鐘","第二刻鐘","第三刻鐘","第四刻鐘"]},nm={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},am={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["週日","週一","週二","週三","週四","週五","週六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},rm={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:"夜間"}},om={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:"夜間"}},sm=(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}},im={ordinalNumber:sm,era:we({values:em,defaultWidth:"wide"}),quarter:we({values:tm,defaultWidth:"wide",argumentCallback:e=>e-1}),month:we({values:nm,defaultWidth:"wide"}),day:we({values:am,defaultWidth:"wide"}),dayPeriod:we({values:rm,defaultWidth:"wide",formattingValues:om,defaultFormattingWidth:"wide"})},lm=/^(第\s*)?\d+(日|時|分|秒)?/i,cm=/\d+/i,dm={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},um={any:[/^(前)/i,/^(公元)/i]},fm={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻鐘/i},mm={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},hm={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},gm={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},ym={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^週[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},pm={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},bm={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨)/i},xm={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},km={ordinalNumber:cn({matchPattern:lm,parsePattern:cm,valueCallback:e=>parseInt(e,10)}),era:ve({matchPatterns:dm,defaultMatchWidth:"wide",parsePatterns:um,defaultParseWidth:"any"}),quarter:ve({matchPatterns:fm,defaultMatchWidth:"wide",parsePatterns:mm,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ve({matchPatterns:hm,defaultMatchWidth:"wide",parsePatterns:gm,defaultParseWidth:"any"}),day:ve({matchPatterns:ym,defaultMatchWidth:"wide",parsePatterns:pm,defaultParseWidth:"any"}),dayPeriod:ve({matchPatterns:bm,defaultMatchWidth:"any",parsePatterns:xm,defaultParseWidth:"any"})},wm={code:"zh-TW",formatDistance:qf,formatLong:Qf,formatRelative:Zf,localize:im,match:km,options:{weekStartsOn:1,firstWeekContainsDate:4}},No={...wt,labels:{labelDayButton:(e,t,n,a)=>{let r;a&&typeof a.format=="function"?r=a.format.bind(a):r=(l,i)=>ot(l,i,{locale:wt,...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)=>ot(r,s,{locale:wt,...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)=>ot(l,i,{locale:wt,...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)=>ot(r,s,{locale:wt,...t}),a(e,"cccc")}}};class Ue{constructor(t,n){this.Date=Date,this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?Ie.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 Ie(a,r,s,this.options.timeZone):new Date(a,r,s),this.addDays=(a,r)=>this.overrides?.addDays?this.overrides.addDays(a,r):fo(a,r),this.addMonths=(a,r)=>this.overrides?.addMonths?this.overrides.addMonths(a,r):mo(a,r),this.addWeeks=(a,r)=>this.overrides?.addWeeks?this.overrides.addWeeks(a,r):Hc(a,r),this.addYears=(a,r)=>this.overrides?.addYears?this.overrides.addYears(a,r):Uc(a,r),this.differenceInCalendarDays=(a,r)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(a,r):fa(a,r),this.differenceInCalendarMonths=(a,r)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(a,r):yo(a,r),this.eachMonthOfInterval=a=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(a):Qc(a),this.eachYearOfInterval=a=>{const r=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(a):ed(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):lu(a,this),this.endOfISOWeek=a=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(a):td(a),this.endOfMonth=a=>this.overrides?.endOfMonth?this.overrides.endOfMonth(a):Kc(a),this.endOfWeek=(a,r)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(a,r):xo(a,this.options),this.endOfYear=a=>this.overrides?.endOfYear?this.overrides.endOfYear(a):Zc(a),this.format=(a,r,s)=>{const l=this.overrides?.format?this.overrides.format(a,r,this.options):ot(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):ma(a),this.getMonth=(a,r)=>this.overrides?.getMonth?this.overrides.getMonth(a,this.options):Qd(a,this.options),this.getYear=(a,r)=>this.overrides?.getYear?this.overrides.getYear(a,this.options):Jd(a,this.options),this.getWeek=(a,r)=>this.overrides?.getWeek?this.overrides.getWeek(a,this.options):ha(a,this.options),this.isAfter=(a,r)=>this.overrides?.isAfter?this.overrides.isAfter(a,r):Zd(a,r),this.isBefore=(a,r)=>this.overrides?.isBefore?this.overrides.isBefore(a,r):eu(a,r),this.isDate=a=>this.overrides?.isDate?this.overrides.isDate(a):go(a),this.isSameDay=(a,r)=>this.overrides?.isSameDay?this.overrides.isSameDay(a,r):Xc(a,r),this.isSameMonth=(a,r)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(a,r):nu(a,r),this.isSameYear=(a,r)=>this.overrides?.isSameYear?this.overrides.isSameYear(a,r):au(a,r),this.max=a=>this.overrides?.max?this.overrides.max(a):Vc(a),this.min=a=>this.overrides?.min?this.overrides.min(a):qc(a),this.setMonth=(a,r)=>this.overrides?.setMonth?this.overrides.setMonth(a,r):ru(a,r),this.setYear=(a,r)=>this.overrides?.setYear?this.overrides.setYear(a,r):ou(a,r),this.startOfBroadcastWeek=(a,r)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(a,this):vo(a,this),this.startOfDay=a=>this.overrides?.startOfDay?this.overrides.startOfDay(a):nn(a),this.startOfISOWeek=a=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(a):tn(a),this.startOfMonth=a=>this.overrides?.startOfMonth?this.overrides.startOfMonth(a):Jc(a),this.startOfWeek=(a,r)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(a,this.options):vt(a,this.options),this.startOfYear=a=>this.overrides?.startOfYear?this.overrides.startOfYear(a):bo(a),this.options={locale:No,...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&&Ue.yearFirstLocales.has(t)?"year-first":"month-first"}formatMonthYear(t){const{locale:n,timeZone:a,numerals:r}=this.options,s=n?.code;if(s&&Ue.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)}}Ue.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 st=new Ue;class _o{constructor(t,n,a=st){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 vm{constructor(t,n){this.date=t,this.weeks=n}}class Nm{constructor(t,n){this.days=n,this.weekNumber=t}}function _m(e){return R.createElement("button",{...e})}function Mm(e){return R.createElement("span",{...e})}function jm(e){const{size:t=24,orientation:n="left",className:a}=e;return R.createElement("svg",{className:a,width:t,height:t,viewBox:"0 0 24 24"},n==="up"&&R.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),n==="down"&&R.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),n==="left"&&R.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),n==="right"&&R.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function Sm(e){const{day:t,modifiers:n,...a}=e;return R.createElement("td",{...a})}function Cm(e){const{day:t,modifiers:n,...a}=e,r=R.useRef(null);return R.useEffect(()=>{n.focused&&r.current?.focus()},[n.focused]),R.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 _e;(function(e){e.disabled="disabled",e.hidden="hidden",e.outside="outside",e.focused="focused",e.today="today"})(_e||(_e={}));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 He;(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"})(He||(He={}));function Dm(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 R.createElement("span",{"data-disabled":s.disabled,className:r[Q.DropdownRoot]},R.createElement(a.Select,{className:l,...s},t?.map(({value:c,label:u,disabled:f})=>R.createElement(a.Option,{key:c,value:c,disabled:f},u))),R.createElement("span",{className:r[Q.CaptionLabel],"aria-hidden":!0},i?.label,R.createElement(a.Chevron,{orientation:"down",size:18,className:r[Q.Chevron]})))}function Tm(e){return R.createElement("div",{...e})}function Pm(e){return R.createElement("div",{...e})}function Om(e){const{calendarMonth:t,displayIndex:n,...a}=e;return R.createElement("div",{...a},e.children)}function $m(e){const{calendarMonth:t,displayIndex:n,...a}=e;return R.createElement("div",{...a})}function Wm(e){return R.createElement("table",{...e})}function Em(e){return R.createElement("div",{...e})}const Mo=h.createContext(void 0);function dn(){const e=h.useContext(Mo);if(e===void 0)throw new Error("useDayPicker() must be used within a custom component.");return e}function Am(e){const{components:t}=dn();return R.createElement(t.Dropdown,{...e})}function Fm(e){const{onPreviousClick:t,onNextClick:n,previousMonth:a,nextMonth:r,...s}=e,{components:l,classNames:i,labels:{labelPrevious:c,labelNext:u}}=dn(),f=h.useCallback(m=>{r&&n?.(m)},[r,n]),d=h.useCallback(m=>{a&&t?.(m)},[a,t]);return R.createElement("nav",{...s},R.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:d},R.createElement(l.Chevron,{disabled:a?void 0:!0,className:i[Q.Chevron],orientation:"left"})),R.createElement(l.NextMonthButton,{type:"button",className:i[Q.NextMonthButton],tabIndex:r?void 0:-1,"aria-disabled":r?void 0:!0,"aria-label":u(r),onClick:f},R.createElement(l.Chevron,{disabled:r?void 0:!0,orientation:"right",className:i[Q.Chevron]})))}function Rm(e){const{components:t}=dn();return R.createElement(t.Button,{...e})}function Im(e){return R.createElement("option",{...e})}function Lm(e){const{components:t}=dn();return R.createElement(t.Button,{...e})}function zm(e){const{rootRef:t,...n}=e;return R.createElement("div",{...n,ref:t})}function Ym(e){return R.createElement("select",{...e})}function Bm(e){const{week:t,...n}=e;return R.createElement("tr",{...n})}function Hm(e){return R.createElement("th",{...e})}function Um(e){return R.createElement("thead",{"aria-hidden":!0},R.createElement("tr",{...e}))}function Vm(e){const{week:t,...n}=e;return R.createElement("th",{...n})}function qm(e){return R.createElement("th",{...e})}function Xm(e){return R.createElement("tbody",{...e})}function Gm(e){const{components:t}=dn();return R.createElement(t.Dropdown,{...e})}const Km=Object.freeze(Object.defineProperty({__proto__:null,Button:_m,CaptionLabel:Mm,Chevron:jm,Day:Sm,DayButton:Cm,Dropdown:Dm,DropdownNav:Tm,Footer:Pm,Month:Om,MonthCaption:$m,MonthGrid:Wm,Months:Em,MonthsDropdown:Am,Nav:Fm,NextMonthButton:Rm,Option:Im,PreviousMonthButton:Lm,Root:zm,Select:Ym,Week:Bm,WeekNumber:Vm,WeekNumberHeader:qm,Weekday:Hm,Weekdays:Um,Weeks:Xm,YearsDropdown:Gm},Symbol.toStringTag,{value:"Module"}));function ut(e,t,n=!1,a=st){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 ga(e){return!!(e&&typeof e=="object"&&"before"in e&&"after"in e)}function jn(e){return!!(e&&typeof e=="object"&&"from"in e)}function ya(e){return!!(e&&typeof e=="object"&&"after"in e)}function pa(e){return!!(e&&typeof e=="object"&&"before"in e)}function jo(e){return!!(e&&typeof e=="object"&&"dayOfWeek"in e)}function So(e,t){return Array.isArray(e)&&e.every(t.isDate)}function ft(e,t,n=st){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(So(i,n))return i.some(c=>r(e,c));if(jn(i))return ut(i,e,!1,n);if(jo(i))return Array.isArray(i.dayOfWeek)?i.dayOfWeek.includes(e.getDay()):i.dayOfWeek===e.getDay();if(ga(i)){const c=s(i.before,e),u=s(i.after,e),f=c>0,d=u<0;return l(i.before,i.after)?d&&f:f||d}return ya(i)?s(e,i.after)>0:pa(i)?s(i.before,e)>0:typeof i=="function"?i(e):!1})}function Qm(e,t,n,a,r){const{disabled:s,hidden:l,modifiers:i,showOutsideDays:c,broadcastCalendar:u,today:f=r.today()}=t,{isSameDay:d,isSameMonth:m,startOfMonth:g,isBefore:y,endOfMonth:b,isAfter:v}=r,w=n&&g(n),M=a&&b(a),k={[_e.focused]:[],[_e.outside]:[],[_e.disabled]:[],[_e.hidden]:[],[_e.today]:[]},N={};for(const _ of e){const{date:j,displayMonth:L}=_,P=!!(L&&!m(j,L)),D=!!(w&&y(j,w)),I=!!(M&&v(j,M)),G=!!(s&&ft(j,s,r)),V=!!(l&&ft(j,l,r))||D||I||!u&&!c&&P||u&&c===!1&&P,$=d(j,f);P&&k.outside.push(_),G&&k.disabled.push(_),V&&k.hidden.push(_),$&&k.today.push(_),i&&Object.keys(i).forEach(E=>{const T=i?.[E];T&&ft(j,T,r)&&(N[E]?N[E].push(_):N[E]=[_])})}return _=>{const j={[_e.focused]:!1,[_e.disabled]:!1,[_e.hidden]:!1,[_e.outside]:!1,[_e.today]:!1},L={};for(const P in k){const D=k[P];j[P]=D.some(I=>I===_)}for(const P in N)L[P]=N[P].some(D=>D===_);return{...j,...L}}}function Jm(e,t,n={}){return Object.entries(e).filter(([,r])=>r===!0).reduce((r,[s])=>(n[s]?r.push(n[s]):t[_e[s]]?r.push(t[_e[s]]):t[Ze[s]]&&r.push(t[Ze[s]]),r),[t[Q.Day]])}function Zm(e){return{...Km,...e}}function eh(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 th(){const e={};for(const t in Q)e[Q[t]]=`rdp-${Q[t]}`;for(const t in _e)e[_e[t]]=`rdp-${_e[t]}`;for(const t in Ze)e[Ze[t]]=`rdp-${Ze[t]}`;for(const t in He)e[He[t]]=`rdp-${He[t]}`;return e}function Co(e,t,n){return(n??new Ue(t)).formatMonthYear(e)}const nh=Co;function ah(e,t,n){return(n??new Ue(t)).format(e,"d")}function rh(e,t=st){return t.format(e,"LLLL")}function oh(e,t,n){return(n??new Ue(t)).format(e,"cccccc")}function sh(e,t=st){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function ih(){return""}function Do(e,t=st){return t.format(e,"yyyy")}const lh=Do,ch=Object.freeze(Object.defineProperty({__proto__:null,formatCaption:Co,formatDay:ah,formatMonthCaption:nh,formatMonthDropdown:rh,formatWeekNumber:sh,formatWeekNumberHeader:ih,formatWeekdayName:oh,formatYearCaption:lh,formatYearDropdown:Do},Symbol.toStringTag,{value:"Module"}));function dh(e){return e?.formatMonthCaption&&!e.formatCaption&&(e.formatCaption=e.formatMonthCaption),e?.formatYearCaption&&!e.formatYearDropdown&&(e.formatYearDropdown=e.formatYearCaption),{...ch,...e}}function ba(e,t,n,a){let r=(a??new Ue(n)).format(e,"PPPP");return t.today&&(r=`Today, ${r}`),t.selected&&(r=`${r}, selected`),r}const uh=ba;function xa(e,t,n){return(n??new Ue(t)).formatMonthYear(e)}const fh=xa;function To(e,t,n,a){let r=(a??new Ue(n)).format(e,"PPPP");return t?.today&&(r=`Today, ${r}`),r}function Po(e){return"Choose the Month"}function Oo(){return""}const mh="Go to the Next Month";function $o(e,t){return mh}function Wo(e){return"Go to the Previous Month"}function Eo(e,t,n){return(n??new Ue(t)).format(e,"cccc")}function Ao(e,t){return`Week ${e}`}function Fo(e){return"Week Number"}function Ro(e){return"Choose the Year"}const hh=Object.freeze(Object.defineProperty({__proto__:null,labelCaption:fh,labelDay:uh,labelDayButton:ba,labelGrid:xa,labelGridcell:To,labelMonthDropdown:Po,labelNav:Oo,labelNext:$o,labelPrevious:Wo,labelWeekNumber:Ao,labelWeekNumberHeader:Fo,labelWeekday:Eo,labelYearDropdown:Ro},Symbol.toStringTag,{value:"Module"})),Je=(e,t,n)=>t||(n?typeof n=="function"?n:(...a)=>n:e);function gh(e,t){const n=t.locale?.labels??{};return{...hh,...e??{},labelDayButton:Je(ba,e?.labelDayButton,n.labelDayButton),labelMonthDropdown:Je(Po,e?.labelMonthDropdown,n.labelMonthDropdown),labelNext:Je($o,e?.labelNext,n.labelNext),labelPrevious:Je(Wo,e?.labelPrevious,n.labelPrevious),labelWeekNumber:Je(Ao,e?.labelWeekNumber,n.labelWeekNumber),labelYearDropdown:Je(Ro,e?.labelYearDropdown,n.labelYearDropdown),labelGrid:Je(xa,e?.labelGrid,n.labelGrid),labelGridcell:Je(To,e?.labelGridcell,n.labelGridcell),labelNav:Je(Oo,e?.labelNav,n.labelNav),labelWeekNumberHeader:Je(Fo,e?.labelWeekNumberHeader,n.labelWeekNumberHeader),labelWeekday:Je(Eo,e?.labelWeekday,n.labelWeekday)}}function yh(e,t,n,a,r){const{startOfMonth:s,startOfYear:l,endOfYear:i,eachMonthOfInterval:c,getMonth:u}=r;return c({start:l(e),end:i(e)}).map(m=>{const g=a.formatMonthDropdown(m,r),y=u(m),b=t&&m<s(t)||n&&m>s(n)||!1;return{value:y,label:g,disabled:b}})}function ph(e,t={},n={}){let a={...t?.[Q.Day]};return Object.entries(e).filter(([,r])=>r===!0).forEach(([r])=>{a={...a,...n?.[r]}}),a}function bh(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 xh(e,t,n,a,r=!1){if(!e||!t)return;const{startOfYear:s,endOfYear:l,eachYearOfInterval:i,getYear:c}=a,u=s(e),f=l(t),d=i({start:u,end:f});return r&&d.reverse(),d.map(m=>{const g=n.formatYearDropdown(m,a);return{value:c(m),label:g,disabled:!1}})}function kh(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 Ie(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(Ie.tz(e)),newDate:(i,c,u)=>new Ie(i,c,u,12,0,0,e),startOfDay:i=>s(i),startOfWeek:(i,c)=>{const u=s(i),f=c?.weekStartsOn??r,d=(u.getDay()-f+7)%7;return u.setDate(u.getDate()-d),u},startOfISOWeek:i=>{const c=s(i),u=(c.getDay()-1+7)%7;return c.setDate(c.getDate()-u),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 u=s(i),m=(((c?.weekStartsOn??r)+6)%7-u.getDay()+7)%7;return u.setDate(u.getDate()+m),u},endOfISOWeek:i=>{const c=s(i),u=(7-c.getDay())%7;return c.setDate(c.getDate()+u),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),u=s(i.end),f=[],d=new Ie(c.getFullYear(),c.getMonth(),1,12,0,0,e),m=u.getFullYear()*12+u.getMonth();for(;d.getFullYear()*12+d.getMonth()<=m;)f.push(new Ie(d,e)),d.setMonth(d.getMonth()+1,1);return f},addDays:(i,c)=>{const u=s(i);return u.setDate(u.getDate()+c),u},addWeeks:(i,c)=>{const u=s(i);return u.setDate(u.getDate()+c*7),u},addMonths:(i,c)=>{const u=s(i);return u.setMonth(u.getMonth()+c),u},addYears:(i,c)=>{const u=s(i);return u.setFullYear(u.getFullYear()+c),u},eachYearOfInterval:i=>{const c=s(i.start),u=s(i.end),f=[],d=new Ie(c.getFullYear(),0,1,12,0,0,e);for(;d.getFullYear()<=u.getFullYear();)f.push(new Ie(d,e)),d.setFullYear(d.getFullYear()+1,0,1);return f},getWeek:(i,c)=>{const u=l(i);return ha(u,{weekStartsOn:c?.weekStartsOn??r,firstWeekContainsDate:c?.firstWeekContainsDate??a?.options?.firstWeekContainsDate??1})},getISOWeek:i=>{const c=l(i);return ma(c)},differenceInCalendarDays:(i,c)=>{const u=l(i),f=l(c);return fa(u,f)},differenceInCalendarMonths:(i,c)=>{const u=l(i),f=l(c);return yo(u,f)}}}const un=e=>e instanceof HTMLElement?e:null,Yn=e=>[...e.querySelectorAll("[data-animated-month]")??[]],wh=e=>un(e.querySelector("[data-animated-month]")),Bn=e=>un(e.querySelector("[data-animated-caption]")),Hn=e=>un(e.querySelector("[data-animated-weeks]")),vh=e=>un(e.querySelector("[data-animated-nav]")),Nh=e=>un(e.querySelector("[data-animated-weekdays]"));function _h(e,t,{classNames:n,months:a,focused:r,dateLib:s}){const l=h.useRef(null),i=h.useRef(a),c=h.useRef(!1);h.useLayoutEffect(()=>{const u=i.current;if(i.current=a,!t||!e.current||!(e.current instanceof HTMLElement)||a.length===0||u.length===0||a.length!==u.length)return;const f=s.isSameMonth(a[0].date,u[0].date),d=s.isAfter(a[0].date,u[0].date),m=d?n[He.caption_after_enter]:n[He.caption_before_enter],g=d?n[He.weeks_after_enter]:n[He.weeks_before_enter],y=l.current,b=e.current.cloneNode(!0);if(b instanceof HTMLElement?(Yn(b).forEach(k=>{if(!(k instanceof HTMLElement))return;const N=wh(k);N&&k.contains(N)&&k.removeChild(N);const _=Bn(k);_&&_.classList.remove(m);const j=Hn(k);j&&j.classList.remove(g)}),l.current=b):l.current=null,c.current||f||r)return;const v=y instanceof HTMLElement?Yn(y):[],w=Yn(e.current);if(w?.every(M=>M instanceof HTMLElement)&&v&&v.every(M=>M instanceof HTMLElement)){c.current=!0,e.current.style.isolation="isolate";const M=vh(e.current);M&&(M.style.zIndex="1"),w.forEach((k,N)=>{const _=v[N];if(!_)return;k.style.position="relative",k.style.overflow="hidden";const j=Bn(k);j&&j.classList.add(m);const L=Hn(k);L&&L.classList.add(g);const P=()=>{c.current=!1,e.current&&(e.current.style.isolation=""),M&&(M.style.zIndex=""),j&&j.classList.remove(m),L&&L.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 D=Nh(_);D&&(D.style.opacity="0");const I=Bn(_);I&&(I.classList.add(d?n[He.caption_before_exit]:n[He.caption_after_exit]),I.addEventListener("animationend",P));const G=Hn(_);G&&G.classList.add(d?n[He.weeks_before_exit]:n[He.weeks_after_exit]),k.insertBefore(_,k.firstChild)})}})}function Mh(e,t,n,a){const r=e[0],s=e[e.length-1],{ISOWeek:l,fixedWeeks:i,broadcastCalendar:c}=n??{},{addDays:u,differenceInCalendarDays:f,differenceInCalendarMonths:d,endOfBroadcastWeek:m,endOfISOWeek:g,endOfMonth:y,endOfWeek:b,isAfter:v,startOfBroadcastWeek:w,startOfISOWeek:M,startOfWeek:k}=a,N=c?w(r,a):l?M(r):k(r),_=c?m(s):l?g(y(s)):b(y(s)),j=t&&(c?m(t):l?g(t):b(t)),L=j&&v(_,j)?j:_,P=f(L,N),D=d(s,r)+1,I=[];for(let $=0;$<=P;$++){const E=u(N,$);I.push(E)}const V=(c?35:42)*D;if(i&&I.length<V){const $=V-I.length;for(let E=0;E<$;E++){const T=u(I[I.length-1],1);I.push(T)}}return I}function jh(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 Sh(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 dr(e,t,n,a){const{month:r,defaultMonth:s,today:l=a.today(),numberOfMonths:i=1}=e;let c=r||s||l;const{differenceInCalendarMonths:u,addMonths:f,startOfMonth:d}=a;if(n&&u(n,c)<i-1){const m=-1*(i-1);c=f(n,m)}return t&&u(c,t)<0&&(c=t),d(c)}function Ch(e,t,n,a){const{addDays:r,endOfBroadcastWeek:s,endOfISOWeek:l,endOfMonth:i,endOfWeek:c,getISOWeek:u,getWeek:f,startOfBroadcastWeek:d,startOfISOWeek:m,startOfWeek:g}=a,y=e.reduce((b,v)=>{const w=n.broadcastCalendar?d(v,a):n.ISOWeek?m(v):g(v),M=n.broadcastCalendar?s(v):n.ISOWeek?l(i(v)):c(i(v)),k=t.filter(L=>L>=w&&L<=M),N=n.broadcastCalendar?35:42;if(n.fixedWeeks&&k.length<N){const L=t.filter(P=>{const D=N-k.length;return P>M&&P<=r(M,D)});k.push(...L)}const _=k.reduce((L,P)=>{const D=n.ISOWeek?u(P):f(P),I=L.find(V=>V.weekNumber===D),G=new _o(P,v,a);return I?I.days.push(G):L.push(new Nm(D,[G])),L},[]),j=new vm(v,_);return b.push(j),b},[]);return n.reverseMonths?y.reverse():y}function Dh(e,t){let{startMonth:n,endMonth:a}=e;const{startOfYear:r,startOfDay:s,startOfMonth:l,endOfMonth:i,addYears:c,endOfYear:u,newDate:f,today:d}=t,{fromYear:m,toYear:g,fromMonth:y,toMonth:b}=e;!n&&y&&(n=y),!n&&m&&(n=t.newDate(m,0,1)),!a&&b&&(a=b),!a&&g&&(a=f(g,11,31));const v=e.captionLayout==="dropdown"||e.captionLayout==="dropdown-years";return n?n=l(n):m?n=f(m,0,1):!n&&v&&(n=r(c(e.today??d(),-100))),a?a=i(a):g?a=f(g,11,31):!a&&v&&(a=u(e.today??d())),[n&&s(n),a&&s(a)]}function Th(e,t,n,a){if(n.disableNavigation)return;const{pagedNavigation:r,numberOfMonths:s=1}=n,{startOfMonth:l,addMonths:i,differenceInCalendarMonths:c}=a,u=r?s:1,f=l(e);if(!t)return i(f,u);if(!(c(t,e)<s))return i(f,u)}function Ph(e,t,n,a){if(n.disableNavigation)return;const{pagedNavigation:r,numberOfMonths:s}=n,{startOfMonth:l,addMonths:i,differenceInCalendarMonths:c}=a,u=r?s??1:1,f=l(e);if(!t)return i(f,-u);if(!(c(f,t)<=0))return i(f,-u)}function Oh(e){const t=[];return e.reduce((n,a)=>n.concat(a.weeks.slice()),t.slice())}function Sn(e,t){const[n,a]=h.useState(e);return[t===void 0?n:t,a]}function $h(e,t){const[n,a]=Dh(e,t),{startOfMonth:r,endOfMonth:s}=t,l=dr(e,n,a,t),[i,c]=Sn(l,e.month?l:void 0);h.useEffect(()=>{const N=dr(e,n,a,t);c(N)},[e.timeZone]);const{months:u,weeks:f,days:d,previousMonth:m,nextMonth:g}=h.useMemo(()=>{const N=Sh(i,a,{numberOfMonths:e.numberOfMonths},t),_=Mh(N,e.endMonth?s(e.endMonth):void 0,{ISOWeek:e.ISOWeek,fixedWeeks:e.fixedWeeks,broadcastCalendar:e.broadcastCalendar},t),j=Ch(N,_,{broadcastCalendar:e.broadcastCalendar,fixedWeeks:e.fixedWeeks,ISOWeek:e.ISOWeek,reverseMonths:e.reverseMonths},t),L=Oh(j),P=jh(j),D=Ph(i,n,e,t),I=Th(i,a,e,t);return{months:j,weeks:L,days:P,previousMonth:D,nextMonth:I}},[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:y,onMonthChange:b}=e,v=N=>f.some(_=>_.days.some(j=>j.isEqualTo(N))),w=N=>{if(y)return;let _=r(N);n&&_<r(n)&&(_=r(n)),a&&_>r(a)&&(_=r(a)),c(_),b?.(_)};return{months:u,weeks:f,days:d,navStart:n,navEnd:a,previousMonth:m,nextMonth:g,goToMonth:w,goToDay:N=>{v(N)||w(N.date)}}}var nt;(function(e){e[e.Today=0]="Today",e[e.Selected=1]="Selected",e[e.LastFocused=2]="LastFocused",e[e.FocusedModifier=3]="FocusedModifier"})(nt||(nt={}));function ur(e){return!e[_e.disabled]&&!e[_e.hidden]&&!e[_e.outside]}function Wh(e,t,n,a){let r,s=-1;for(const l of e){const i=t(l);ur(i)&&(i[_e.focused]&&s<nt.FocusedModifier?(r=l,s=nt.FocusedModifier):a?.isEqualTo(l)&&s<nt.LastFocused?(r=l,s=nt.LastFocused):n(l.date)&&s<nt.Selected?(r=l,s=nt.Selected):i[_e.today]&&s<nt.Today&&(r=l,s=nt.Today))}return r||(r=e.find(l=>ur(t(l)))),r}function Eh(e,t,n,a,r,s,l){const{ISOWeek:i,broadcastCalendar:c}=s,{addDays:u,addMonths:f,addWeeks:d,addYears:m,endOfBroadcastWeek:g,endOfISOWeek:y,endOfWeek:b,max:v,min:w,startOfBroadcastWeek:M,startOfISOWeek:k,startOfWeek:N}=l;let j={day:u,week:d,month:f,year:m,startOfWeek:L=>c?M(L,l):i?k(L):N(L),endOfWeek:L=>c?g(L):i?y(L):b(L)}[e](n,t==="after"?1:-1);return t==="before"&&a?j=v([a,j]):t==="after"&&r&&(j=w([r,j])),j}function Io(e,t,n,a,r,s,l,i=0){if(i>365)return;const c=Eh(e,t,n.date,a,r,s,l),u=!!(s.disabled&&ft(c,s.disabled,l)),f=!!(s.hidden&&ft(c,s.hidden,l)),d=c,m=new _o(c,d,l);return!u&&!f?m:Io(e,t,m,a,r,s,l,i+1)}function Ah(e,t,n,a,r){const{autoFocus:s}=e,[l,i]=h.useState(),c=Wh(t.days,n,a||(()=>!1),l),[u,f]=h.useState(s?c:void 0);return{isFocusTarget:b=>!!c?.isEqualTo(b),setFocused:f,focused:u,blur:()=>{i(u),f(void 0)},moveFocus:(b,v)=>{if(!u)return;const w=Io(b,v,u,t.navStart,t.navEnd,e,r);w&&(e.disableNavigation&&!t.days.some(k=>k.isEqualTo(w))||(t.goToDay(w),f(w)))}}}function Fh(e,t){const{selected:n,required:a,onSelect:r}=e,[s,l]=Sn(n,r?n:void 0),i=r?n:s,{isSameDay:c}=t,u=g=>i?.some(y=>c(y,g))??!1,{min:f,max:d}=e;return{selected:i,select:(g,y,b)=>{let v=[...i??[]];if(u(g)){if(i?.length===f||a&&i?.length===1)return;v=i?.filter(w=>!c(w,g))}else i?.length===d?v=[g]:v=[...v,g];return r||l(v),r?.(v,g,y,b),v},isSelected:u}}function Rh(e,t,n=0,a=0,r=!1,s=st){const{from:l,to:i}=t||{},{isSameDay:c,isAfter:u,isBefore:f}=s;let d;if(!l&&!i)d={from:e,to:n>0?void 0:e};else if(l&&!i)c(l,e)?n===0?d={from:l,to:e}:r?d={from:l,to:void 0}:d=void 0:f(e,l)?d={from:e,to:l}:d={from:l,to:e};else if(l&&i)if(c(l,e)&&c(i,e))r?d={from:l,to:i}:d=void 0;else if(c(l,e))d={from:l,to:n>0?void 0:e};else if(c(i,e))d={from:e,to:n>0?void 0:e};else if(f(e,l))d={from:e,to:i};else if(u(e,l))d={from:l,to:e};else if(u(e,i))d={from:l,to:e};else throw new Error("Invalid range");if(d?.from&&d?.to){const m=s.differenceInCalendarDays(d.to,d.from);a>0&&m>a?d={from:e,to:void 0}:n>1&&m<n&&(d={from:e,to:void 0})}return d}function Ih(e,t,n=st){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 fr(e,t,n=st){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 Lh(e,t,n=st){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):So(i,n)?i.some(c=>ut(e,c,!1,n)):jn(i)?i.from&&i.to?fr(e,{from:i.from,to:i.to},n):!1:jo(i)?Ih(e,i.dayOfWeek,n):ga(i)?n.isAfter(i.before,i.after)?fr(e,{from:n.addDays(i.after,1),to:n.addDays(i.before,-1)},n):ft(e.from,i,n)||ft(e.to,i,n):ya(i)||pa(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 u=0;u<=c;u++){if(l.some(f=>f(i)))return!0;i=n.addDays(i,1)}}return!1}function zh(e,t){const{disabled:n,excludeDisabled:a,resetOnSelect:r,selected:s,required:l,onSelect:i}=e,[c,u]=Sn(s,i?s:void 0),f=i?s:c;return{selected:f,select:(g,y,b)=>{const{min:v,max:w}=e;let M;if(g){const k=f?.from,N=f?.to,_=!!k&&!!N,j=!!k&&!!N&&t.isSameDay(k,N)&&t.isSameDay(g,k);r&&(_||!f?.from)?!l&&j?M=void 0:M={from:g,to:void 0}:M=Rh(g,f,v,w,l,t)}return a&&n&&M?.from&&M.to&&Lh({from:M.from,to:M.to},n,t)&&(M.from=g,M.to=void 0),i||u(M),i?.(M,g,y,b),M},isSelected:g=>f&&ut(f,g,!1,t)}}function Yh(e,t){const{selected:n,required:a,onSelect:r}=e,[s,l]=Sn(n,r?n:void 0),i=r?n:s,{isSameDay:c}=t;return{selected:i,select:(d,m,g)=>{let y=d;return!a&&i&&i&&c(d,i)&&(y=void 0),r||l(y),r?.(y,d,m,g),y},isSelected:d=>i?c(i,d):!1}}function Bh(e,t){const n=Yh(e,t),a=Fh(e,t),r=zh(e,t);switch(e.mode){case"single":return n;case"multiple":return a;case"range":return r;default:return}}function qe(e,t){return e instanceof Ie&&e.timeZone===t?e:new Ie(e,t)}function At(e,t,n){return qe(e,t)}function mr(e,t,n){return typeof e=="boolean"||typeof e=="function"?e:e instanceof Date?At(e,t):Array.isArray(e)?e.map(a=>a instanceof Date?At(a,t):a):jn(e)?{...e,from:e.from?qe(e.from,t):e.from,to:e.to?qe(e.to,t):e.to}:ga(e)?{before:At(e.before,t),after:At(e.after,t)}:ya(e)?{after:At(e.after,t)}:pa(e)?{before:At(e.before,t)}:e}function Un(e,t,n){return e&&(Array.isArray(e)?e.map(a=>mr(a,t)):mr(e,t))}function Hh(e){let t=e;const n=t.timeZone;if(n&&(t={...e,timeZone:n},t.today&&(t.today=qe(t.today,n)),t.month&&(t.month=qe(t.month,n)),t.defaultMonth&&(t.defaultMonth=qe(t.defaultMonth,n)),t.startMonth&&(t.startMonth=qe(t.startMonth,n)),t.endMonth&&(t.endMonth=qe(t.endMonth,n)),t.mode==="single"&&t.selected?t.selected=qe(t.selected,n):t.mode==="multiple"&&t.selected?t.selected=t.selected?.map(oe=>qe(oe,n)):t.mode==="range"&&t.selected&&(t.selected={from:t.selected.from?qe(t.selected.from,n):t.selected.from,to:t.selected.to?qe(t.selected.to,n):t.selected.to}),t.disabled!==void 0&&(t.disabled=Un(t.disabled,n)),t.hidden!==void 0&&(t.hidden=Un(t.hidden,n)),t.modifiers)){const oe={};Object.keys(t.modifiers).forEach(ae=>{oe[ae]=Un(t.modifiers?.[ae],n)}),t.modifiers=oe}const{components:a,formatters:r,labels:s,dateLib:l,locale:i,classNames:c}=h.useMemo(()=>{const oe={...No,...t.locale},ae=t.broadcastCalendar?1:t.weekStartsOn,ee=t.noonSafe&&t.timeZone?kh(t.timeZone,{weekStartsOn:ae,locale:oe}):void 0,ce=t.dateLib&&ee?{...ee,...t.dateLib}:t.dateLib??ee,Ce=new Ue({locale:oe,weekStartsOn:ae,firstWeekContainsDate:t.firstWeekContainsDate,useAdditionalWeekYearTokens:t.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:t.useAdditionalDayOfYearTokens,timeZone:t.timeZone,numerals:t.numerals},ce);return{dateLib:Ce,components:Zm(t.components),formatters:dh(t.formatters),labels:gh(t.labels,Ce.options),locale:oe,classNames:{...th(),...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:u,mode:f,navLayout:d,numberOfMonths:m=1,onDayBlur:g,onDayClick:y,onDayFocus:b,onDayKeyDown:v,onDayMouseEnter:w,onDayMouseLeave:M,onNextClick:k,onPrevClick:N,showWeekNumber:_,styles:j}=t,{formatCaption:L,formatDay:P,formatMonthDropdown:D,formatWeekNumber:I,formatWeekNumberHeader:G,formatWeekdayName:V,formatYearDropdown:$}=r,E=$h(t,l),{days:T,months:x,navStart:S,navEnd:H,previousMonth:C,nextMonth:X,goToMonth:F}=E,Y=Qm(T,t,S,H,l),{isSelected:B,select:Z,selected:xe}=Bh(t,l)??{},{blur:je,focused:Me,isFocusTarget:Se,moveFocus:J,setFocused:De}=Ah(t,E,Y,B??(()=>!1),l),{labelDayButton:le,labelGridcell:de,labelGrid:W,labelMonthDropdown:te,labelNav:ge,labelPrevious:me,labelNext:Ne,labelWeekday:Fe,labelWeekNumber:Te,labelWeekNumberHeader:A,labelYearDropdown:z}=s,U=h.useMemo(()=>bh(l,t.ISOWeek,t.broadcastCalendar,t.today),[l,t.ISOWeek,t.broadcastCalendar,t.today]),q=f!==void 0||y!==void 0,ne=h.useCallback(()=>{C&&(F(C),N?.(C))},[C,F,N]),se=h.useCallback(()=>{X&&(F(X),k?.(X))},[F,X,k]),ye=h.useCallback((oe,ae)=>ee=>{ee.preventDefault(),ee.stopPropagation(),De(oe),!ae.disabled&&(Z?.(oe.date,ae,ee),y?.(oe.date,ae,ee))},[Z,y,De]),fe=h.useCallback((oe,ae)=>ee=>{De(oe),b?.(oe.date,ae,ee)},[b,De]),he=h.useCallback((oe,ae)=>ee=>{je(),g?.(oe.date,ae,ee)},[je,g]),Pe=h.useCallback((oe,ae)=>ee=>{const ce={ArrowLeft:[ee.shiftKey?"month":"day",t.dir==="rtl"?"after":"before"],ArrowRight:[ee.shiftKey?"month":"day",t.dir==="rtl"?"before":"after"],ArrowDown:[ee.shiftKey?"year":"week","after"],ArrowUp:[ee.shiftKey?"year":"week","before"],PageUp:[ee.shiftKey?"year":"month","before"],PageDown:[ee.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(ce[ee.key]){ee.preventDefault(),ee.stopPropagation();const[Ce,ie]=ce[ee.key];J(Ce,ie)}v?.(oe.date,ae,ee)},[J,v,t.dir]),pe=h.useCallback((oe,ae)=>ee=>{w?.(oe.date,ae,ee)},[w]),We=h.useCallback((oe,ae)=>ee=>{M?.(oe.date,ae,ee)},[M]),Ee=h.useCallback(oe=>ae=>{const ee=Number(ae.target.value),ce=l.setMonth(l.startOfMonth(oe),ee);F(ce)},[l,F]),Be=h.useCallback(oe=>ae=>{const ee=Number(ae.target.value),ce=l.setYear(l.startOfMonth(oe),ee);F(ce)},[l,F]),{className:_t,style:gt}=h.useMemo(()=>({className:[c[Q.Root],t.className].filter(Boolean).join(" "),style:{...j?.[Q.Root],...t.style}}),[c,t.className,t.style,j]),yt=eh(t),it=h.useRef(null);_h(it,!!t.animate,{classNames:c,months:x,focused:Me,dateLib:l});const Mt={dayPickerProps:t,selected:xe,select:Z,isSelected:B,months:x,nextMonth:X,previousMonth:C,goToMonth:F,getModifiers:Y,components:a,classNames:c,styles:j,labels:s,formatters:r};return R.createElement(Mo.Provider,{value:Mt},R.createElement(a.Root,{rootRef:t.animate?it:void 0,className:_t,style:gt,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"],...yt},R.createElement(a.Months,{className:c[Q.Months],style:j?.[Q.Months]},!t.hideNavigation&&!d&&R.createElement(a.Nav,{"data-animated-nav":t.animate?"true":void 0,className:c[Q.Nav],style:j?.[Q.Nav],"aria-label":ge(),onPreviousClick:ne,onNextClick:se,previousMonth:C,nextMonth:X}),x.map((oe,ae)=>R.createElement(a.Month,{"data-animated-month":t.animate?"true":void 0,className:c[Q.Month],style:j?.[Q.Month],key:ae,displayIndex:ae,calendarMonth:oe},d==="around"&&!t.hideNavigation&&ae===0&&R.createElement(a.PreviousMonthButton,{type:"button",className:c[Q.PreviousMonthButton],tabIndex:C?void 0:-1,"aria-disabled":C?void 0:!0,"aria-label":me(C),onClick:ne,"data-animated-button":t.animate?"true":void 0},R.createElement(a.Chevron,{disabled:C?void 0:!0,className:c[Q.Chevron],orientation:t.dir==="rtl"?"right":"left"})),R.createElement(a.MonthCaption,{"data-animated-caption":t.animate?"true":void 0,className:c[Q.MonthCaption],style:j?.[Q.MonthCaption],calendarMonth:oe,displayIndex:ae},u?.startsWith("dropdown")?R.createElement(a.DropdownNav,{className:c[Q.Dropdowns],style:j?.[Q.Dropdowns]},(()=>{const ee=u==="dropdown"||u==="dropdown-months"?R.createElement(a.MonthsDropdown,{key:"month",className:c[Q.MonthsDropdown],"aria-label":te(),classNames:c,components:a,disabled:!!t.disableNavigation,onChange:Ee(oe.date),options:yh(oe.date,S,H,r,l),style:j?.[Q.Dropdown],value:l.getMonth(oe.date)}):R.createElement("span",{key:"month"},D(oe.date,l)),ce=u==="dropdown"||u==="dropdown-years"?R.createElement(a.YearsDropdown,{key:"year",className:c[Q.YearsDropdown],"aria-label":z(l.options),classNames:c,components:a,disabled:!!t.disableNavigation,onChange:Be(oe.date),options:xh(S,H,r,l,!!t.reverseYears),style:j?.[Q.Dropdown],value:l.getYear(oe.date)}):R.createElement("span",{key:"year"},$(oe.date,l));return l.getMonthYearOrder()==="year-first"?[ce,ee]:[ee,ce]})(),R.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"}},L(oe.date,l.options,l))):R.createElement(a.CaptionLabel,{className:c[Q.CaptionLabel],role:"status","aria-live":"polite"},L(oe.date,l.options,l))),d==="around"&&!t.hideNavigation&&ae===m-1&&R.createElement(a.NextMonthButton,{type:"button",className:c[Q.NextMonthButton],tabIndex:X?void 0:-1,"aria-disabled":X?void 0:!0,"aria-label":Ne(X),onClick:se,"data-animated-button":t.animate?"true":void 0},R.createElement(a.Chevron,{disabled:X?void 0:!0,className:c[Q.Chevron],orientation:t.dir==="rtl"?"left":"right"})),ae===m-1&&d==="after"&&!t.hideNavigation&&R.createElement(a.Nav,{"data-animated-nav":t.animate?"true":void 0,className:c[Q.Nav],style:j?.[Q.Nav],"aria-label":ge(),onPreviousClick:ne,onNextClick:se,previousMonth:C,nextMonth:X}),R.createElement(a.MonthGrid,{role:"grid","aria-multiselectable":f==="multiple"||f==="range","aria-label":W(oe.date,l.options,l)||void 0,className:c[Q.MonthGrid],style:j?.[Q.MonthGrid]},!t.hideWeekdays&&R.createElement(a.Weekdays,{"data-animated-weekdays":t.animate?"true":void 0,className:c[Q.Weekdays],style:j?.[Q.Weekdays]},_&&R.createElement(a.WeekNumberHeader,{"aria-label":A(l.options),className:c[Q.WeekNumberHeader],style:j?.[Q.WeekNumberHeader],scope:"col"},G()),U.map(ee=>R.createElement(a.Weekday,{"aria-label":Fe(ee,l.options,l),className:c[Q.Weekday],key:String(ee),style:j?.[Q.Weekday],scope:"col"},V(ee,l.options,l)))),R.createElement(a.Weeks,{"data-animated-weeks":t.animate?"true":void 0,className:c[Q.Weeks],style:j?.[Q.Weeks]},oe.weeks.map(ee=>R.createElement(a.Week,{className:c[Q.Week],key:ee.weekNumber,style:j?.[Q.Week],week:ee},_&&R.createElement(a.WeekNumber,{week:ee,style:j?.[Q.WeekNumber],"aria-label":Te(ee.weekNumber,{locale:i}),className:c[Q.WeekNumber],scope:"row",role:"rowheader"},I(ee.weekNumber,l)),ee.days.map(ce=>{const{date:Ce}=ce,ie=Y(ce);if(ie[_e.focused]=!ie.hidden&&!!Me?.isEqualTo(ce),ie[Ze.selected]=B?.(Ce)||ie.selected,jn(xe)){const{from:jt,to:pt}=xe;ie[Ze.range_start]=!!(jt&&pt&&l.isSameDay(Ce,jt)),ie[Ze.range_end]=!!(jt&&pt&&l.isSameDay(Ce,pt)),ie[Ze.range_middle]=ut(xe,Ce,!0,l)}const Ye=ph(ie,j,t.modifiersStyles),Yt=Jm(ie,c,t.modifiersClassNames),Bt=!q&&!ie.hidden?de(Ce,ie,l.options,l):void 0;return R.createElement(a.Day,{key:`${ce.isoDate}_${ce.displayMonthId}`,day:ce,modifiers:ie,className:Yt.join(" "),style:Ye,role:"gridcell","aria-selected":ie.selected||void 0,"aria-label":Bt,"data-day":ce.isoDate,"data-month":ce.outside?ce.dateMonthId:void 0,"data-selected":ie.selected||void 0,"data-disabled":ie.disabled||void 0,"data-hidden":ie.hidden||void 0,"data-outside":ce.outside||void 0,"data-focused":ie.focused||void 0,"data-today":ie.today||void 0},!ie.hidden&&q?R.createElement(a.DayButton,{className:c[Q.DayButton],style:j?.[Q.DayButton],type:"button",day:ce,modifiers:ie,disabled:!ie.focused&&ie.disabled||void 0,"aria-disabled":ie.focused&&ie.disabled||void 0,tabIndex:Se(ce)?0:-1,"aria-label":le(Ce,ie,l.options,l),onClick:ye(ce,ie),onBlur:he(ce,ie),onFocus:fe(ce,ie),onKeyDown:Pe(ce,ie),onMouseEnter:pe(ce,ie),onMouseLeave:We(ce,ie)},P(Ce,l.options,l)):!ie.hidden&&P(ce.date,l.options,l))})))))))),t.footer&&R.createElement(a.Footer,{className:c[Q.Footer],style:j?.[Q.Footer],role:"status","aria-live":"polite"},t.footer)))}const Uh={en:wt,"zh-CN":Uf,"zh-TW":wm,ja:Ru,ko:gf};function Lo(e){return Uh[e]||wt}function hr(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())?ot(a,"MMM d",t?{locale:t}:void 0):e}function ra({from:e,to:t,onApply:n,onCancel:a}){const r=h.useMemo(()=>{const f={from:void 0,to:void 0};if(e){const d=e.split("-");f.from=new Date(Number(d[0]),Number(d[1])-1,Number(d[2]))}if(t){const d=t.split("-");f.to=new Date(Number(d[0]),Number(d[1])-1,Number(d[2]))}return f},[e,t]),[s,l]=h.useState(r),i=Lo(Yr()),c=()=>{if(!s?.from)return;const f=ot(s.from,"yyyy-MM-dd"),d=s.to?ot(s.to,"yyyy-MM-dd"):f;n?.(f,d)},u=!!s?.from;return o.jsxs("div",{className:"p-4",children:[o.jsx(Hh,{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:[u&&s.from&&o.jsxs("span",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-400 mr-auto",children:[ot(s.from,"MMM d, yyyy",{locale:i}),s.to&&s.to.getTime()!==s.from.getTime()?` — ${ot(s.to,"MMM d, yyyy",{locale:i})}`:""]}),o.jsx(Gn,{variant:"secondary",size:"sm",onClick:a,children:p("shared.action.cancel")}),o.jsx(Gn,{variant:"primary",size:"sm",onClick:c,disabled:!u,children:p("shared.action.apply")})]})]})}function ka(e){if(!Number.isFinite(Number(e)))return null;const t=Number(e);return t<=0?null:Ae(t,{decimals:1})}function wa(e,t,n){const a=Number(e);if(!Number.isFinite(a)||a<=0)return null;const r=ia(t);return(t===zr?a:a*n)<.01?`<${r}0.01`:et(a,{decimals:2,currency:t,rate:n})}function Vh(e,t,n){const a=wa(e,t,n);return a?`${a}/MTok`:null}function Qt(e){return e?String(e).replace(/^claude-/,""):""}function qh(e){return Array.isArray(e)?e.map(t=>typeof t=="string"?{key:t,label:gr(t)}:{key:t.key,label:t.label||gr(t.key)}):[]}function Xh(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 Gh={CODEX:"#3b82f6",CLAUDE:"#d97757",OPENCODE:"#f59e0b",GEMINI:"#2196f3",KIMI:"#a78bfa","KILO-CLI":"#facc15","KILO-CODE":"#facc15",DROID:"#ef4444"};function Vn(e,t){const n=e?.toUpperCase?.()||"";return Gh[n]||`hsl(${150+t*40}, 60%, 45%)`}function Jt(e){const t=String(e?.source||"").trim().toLowerCase(),n=String(e?.label||"").trim().toLowerCase();return t==="claude"||n==="claude"?"claude":t==="codex"||n==="codex"?"codex":null}function va(e){return!!e?.models?.length}function Kh(e){const t=Number(e);return!Number.isFinite(t)||t<=0?"0%":`${Math.min(100,Math.max(2,t))}%`}function Qh(e,t){const n=String(e?.id||e?.name||"").trim().toLowerCase(),a=String(t?.id||t?.name||"").trim().toLowerCase();return!!(n&&a&&n===a)}function Jh(e,t=3){return[...e?.models||[]].sort((n,a)=>(Number(a.share)||0)-(Number(n.share)||0)).slice(0,t)}function Zh(e,t){return Math.max(0,(e?.models?.length||0)-t.length)}const e0={day:"usage.period.day","24h":"usage.period.last24h",week:"usage.period.week",month:"usage.period.month",total:"usage.period.total",custom:"usage.period.custom"};function gr(e){const t=e0[e];return t?p(t):String(e).toUpperCase()}function t0({loading:e,onClick:t}){const n=Lt();return o.jsx(Gn,{variant:"secondary",size:"sm",disabled:e,onClick:t,"aria-label":p("usage.button.refresh"),className:"w-8 p-0",children:o.jsx(ht.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 yr({period:e,periods:t,onPeriodChange:n,autoRefreshOptions:a=[],autoRefreshIntervalMs:r,onAutoRefreshIntervalChange:s,summaryValue:l,summaryLabel:i,summaryUpdatedAtLabel:c,summaryCostValue:u,usageInsights:f,onCostInfo:d,onRefresh:m,loading:g,customFrom:y,customTo:b,onCustomRangeApply:v,customRangeOpen:w,onCustomRangeOpenChange:M,emphasized:k=!1}){const N=Lt(),_=qh(t),j=Array.isArray(a)&&a.length>0&&typeof s=="function",L=Lo(Yr()),P=Xh(String(l??"")),D=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(max-width: 639px)").matches,[I,G]=h.useState(D);h.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const W=window.matchMedia("(max-width: 639px)"),te=ge=>G(ge.matches);return W.addEventListener("change",te),()=>W.removeEventListener("change",te)},[]);const V=P!=null&&!I&&!g&&!N,$=k&&l!=null&&String(l)!=="",E=h.useRef(null);h.useEffect(()=>{const W=E.current?.querySelector('[aria-selected="true"]');W&&typeof W.scrollIntoView=="function"&&W.scrollIntoView({block:"nearest",inline:"center"})},[e]);const{resolvedTheme:T}=Lr(),{currency:x,rate:S}=Nt(),H=T==="dark",C=H?"rgba(10,10,10,0.98)":"rgba(255,255,255,0.96)",X=H?"rgba(10,10,10,0)":"rgba(255,255,255,0)",F=Vh(f?.costPerMillionTokens,x,S),Y=f?.topCostModel?.name?Qt(f.topCostModel.name):"",B=f?.topUsageModel?.name?Qt(f.topUsageModel.name):"",Z=Array.isArray(f?.missingPricingModels)?f.missingPricingModels.length:0,xe=!!Z,je=!!(F||Y||B||xe),Me=k?"h-full flex flex-col !bg-oai-brand-50 dark:!bg-oai-brand-950/40 !border-oai-brand-200 dark:!border-oai-brand-800":"",Se=k?"flex-1 flex flex-col":"",J=k?"flex flex-1 flex-col justify-center":"",De=k?"flex flex-col gap-3":"flex flex-col gap-4 sm:flex-row sm:items-end sm:justify-between",le=k?"flex flex-col gap-2":"flex flex-col gap-2 sm:items-end",de=k?"flex flex-wrap items-center gap-1.5 text-[11px] font-medium":"flex flex-wrap items-center gap-1.5 text-[11px] font-medium sm:justify-end";return o.jsxs(on,{className:Me,bodyClassName:Se,children:[o.jsxs("div",{className:"flex items-center gap-2 mb-6",children:[o.jsx("div",{ref:E,role:"tablist","aria-label":p("usage.overview.tablist_aria"),className:"flex flex-1 min-w-0 gap-1 overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden",children:_.map(W=>{const te=e===W.key,ge=`shrink-0 whitespace-nowrap text-xs font-medium px-3 py-1.5 rounded-md transition-colors ${te?"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(W.key==="custom"){const me=te&&y&&b?`${hr(y,L)} — ${hr(b,L)}`:W.label;return o.jsxs(Qn,{open:w,onOpenChange:Ne=>{Ne?n?.("custom"):M?.(Ne)},children:[o.jsx(Jn,{render:o.jsx("button",{role:"tab","aria-selected":te,type:"button",className:ge}),children:me}),o.jsx(Zn,{children:o.jsx(ea,{sideOffset:8,side:"bottom",align:"start",className:"!z-[9999]",children:o.jsx(ta,{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(ra,{from:y,to:b,onApply:v,onCancel:()=>M?.(!1)})})})})]},"custom")}return o.jsx("button",{role:"tab","aria-selected":te,type:"button",className:ge,onClick:()=>n?.(W.key),children:W.label},W.key)})}),o.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[j?o.jsx("select",{"aria-label":p("usage.auto_refresh.aria"),value:String(r),onChange:W=>s(W.target.value),className:"h-8 rounded-md border border-oai-gray-300 dark:border-oai-gray-700 bg-oai-white dark:bg-oai-gray-900 px-2 text-xs font-medium text-oai-gray-700 dark:text-oai-gray-200 transition-colors hover:border-oai-gray-400 dark:hover:border-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand/25",children:a.map(W=>o.jsx("option",{value:String(W.value),children:p(W.labelKey)},W.value))}):null,m&&o.jsx(t0,{loading:g,onClick:m})]})]}),o.jsx("div",{className:J,children:o.jsxs("div",{className:De,children:[o.jsxs("div",{className:"min-w-0",children:[o.jsx("div",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-300 uppercase tracking-wider mb-2",children:i}),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 leading-none [container-type:inline-size]",children:$?o.jsx(il,{value:l,fontSize:58}):V?o.jsx(nl,{value:P,displayValue:l,fontSize:72,padding:6,gap:1,textColor:"var(--oai-black, #111827)",fontWeight:700,gradientHeight:H?0:8,gradientFrom:C,gradientTo:X,counterStyle:{paddingLeft:0,paddingRight:0,gap:0},digitStyle:{width:"0.88ch"}}):l}),c?o.jsx("div",{className:"mt-2 text-[11px] font-medium text-oai-gray-400 dark:text-oai-gray-500 tabular-nums",children:c}):null]}),(u||je)&&o.jsxs("div",{className:le,children:[u&&o.jsx("div",{className:"flex items-center gap-2",children:d?o.jsxs("button",{type:"button",onClick:d,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":p("usage.overview.cost_breakdown_aria"),children:[u,o.jsx(ca,{size:16,strokeWidth:2,className:"opacity-80"})]}):o.jsx("span",{className:"text-xl font-bold text-oai-brand",children:u})}),je&&o.jsxs("div",{className:de,children:[F?o.jsx("span",{className:"rounded-md border border-oai-gray-200 dark:border-oai-gray-700 px-2 py-1 text-oai-gray-600 dark:text-oai-gray-300 tabular-nums",children:p("usage.overview.cost_per_mtok",{value:F})}):null,Y?o.jsx("span",{className:"rounded-md border border-oai-gray-200 dark:border-oai-gray-700 px-2 py-1 text-oai-gray-600 dark:text-oai-gray-300",children:p("usage.overview.top_cost_model",{model:Y})}):null,B&&B!==Y?o.jsx("span",{className:"rounded-md border border-oai-gray-200 dark:border-oai-gray-700 px-2 py-1 text-oai-gray-600 dark:text-oai-gray-300",children:p("usage.overview.top_usage_model",{model:B})}):null,xe?o.jsx("span",{className:"rounded-md border border-amber-200 bg-amber-50 px-2 py-1 text-amber-700 dark:border-amber-500/30 dark:bg-amber-500/10 dark:text-amber-200",children:p("usage.overview.missing_pricing_count",{count:Z})}):null]})]})]})})]})}const pr={claude:35,codex:250},br={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 n0(e,t){const n=pr[t]??pr.claude,a=br[e]||br.system_prompt;return`oklch(${a.l} ${a.c} ${n})`}const a0=[{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"]}],r0=[["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"]],o0={duration:.18,ease:[.4,0,.2,1]},s0={height:0,opacity:0},i0={height:"auto",opacity:1},l0={height:0,opacity:0};function c0(e){const t=Number(e||0);return Number.isFinite(t)&&t>0?t:0}function d0(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 zo(e,t=null){const n=e.reduce((l,i)=>l+Number(i.totals.total_tokens||0),0),a=c0(t),r=a||n,s=a&&n>0?a/n:1;return e.map(l=>{const i=s===1?l.totals:d0(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 u0(e,t=null){const n=new Map;for(const r of e||[])n.set(r.key,r);const a=a0.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 zo(a,t)}function f0(e,t=null){const n=e?.totals||{},a=Number(n.reasoning_output_tokens||0),r=(e?.tool_calls_breakdown?.categories||[]).reduce((u,f)=>f?.name==="Text Response"?u:u+Number(f?.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 zo(c,t)}const xr="MCP: ";function m0(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(xr)?(t.push({...r,name:s.slice(xr.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 p(`dashboard.context_breakdown.category.${e}`)}function at(e){return!Number.isFinite(Number(e))||Number(e)<=0?"0":Ae(Number(e),{decimals:1})}function h0(e){return typeof e!="string"?"":e.startsWith("mcp__")?e.split("__").slice(2).join("__")||e:e.includes("/")&&e.split("/").pop()||e}function g0(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:h0(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 y0(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:g0(a),toolCount:a.length}}).filter(t=>t.name).sort((t,n)=>(n.totals.total_tokens||0)-(t.totals.total_tokens||0))}function p0(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 b0(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 x0(e){if(e?.key){const t=p(`dashboard.context_breakdown.message_details.${e.key}`);if(t&&!t.includes("dashboard.context_breakdown"))return t}return e?.name||""}function k0(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 wr(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 w0(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 vr(e){return e==="exec_command"||e==="Bash"}function Yo(e){return e==="codex"?"dashboard.context_breakdown.empty_codex":"dashboard.context_breakdown.empty"}function v0(e){return e==="codex"?"dashboard.context_breakdown.error_codex":"dashboard.context_breakdown.error"}function N0(e){return e==="codex"?"dashboard.context_breakdown.footnote_codex":"dashboard.context_breakdown.footnote"}const _0=10;function ct({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:u=null,children:f,share:d=null,fillColor:m=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",y=o.jsx("span",{className:"shrink-0 flex items-center justify-start",style:{width:_0},"aria-hidden":!t,children:t}),b=o.jsxs(o.Fragment,{children:[y,o.jsx("span",{className:g,children:n}),a,s&&o.jsx(ht.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(Br,{size:11})})]}),v=m&&d!=null&&d>0,w=v?Math.max(0,Math.min(100,d)):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, ${m.replace(/\)\s*$/," / 0.10)")} 0%, ${m.replace(/\)\s*$/," / 0.10)")} ${w}%, transparent ${w}%)`}: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:u||""})]}),s&&f?o.jsx(Hr,{initial:!1,children:l&&o.jsx(ht.div,{initial:s0,animate:i0,exit:l0,transition:o0,style:{overflow:"hidden"},children:f},"content")}):null]})}function Nr({execDetails:e,source:t="claude"}){const[n,a]=h.useState("by_type"),r=k0(w0(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:r0.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:p(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":p("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:p("dashboard.context_breakdown.exec_details.kind_column")}),o.jsx("span",{role:"columnheader",className:"text-right",children:p("dashboard.context_breakdown.exec_details.calls_column")}),s&&o.jsxs(o.Fragment,{children:[o.jsx("span",{role:"columnheader",className:"text-right",children:p("dashboard.context_breakdown.exec_details.failures_column")}),o.jsx("span",{role:"columnheader",className:"text-right",children:p("dashboard.context_breakdown.exec_details.duration_column")}),o.jsx("span",{role:"columnheader",className:"text-right",children:p("dashboard.context_breakdown.exec_details.max_duration_column")})]}),o.jsx("span",{role:"columnheader",className:"text-right",children:p("dashboard.context_breakdown.tool_details.total_column")}),s&&o.jsx("span",{role:"columnheader",className:"text-right",children:p("dashboard.context_breakdown.exec_details.output_column")})]}),r.map((i,c)=>o.jsxs(ht.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:Ae(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:Ae(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:wr(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:wr(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:at(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:Ae(i.output_lines||0)})]},i.name))]})})]})}function Xt({toolSet:e,execDetails:t,source:n,codexQueueFallback:a}){const[r,s]=h.useState({}),[l,i]=h.useState(!1),c=y0(e?.categories||[]);function u(f){s(d=>({...d,[f]:!d[f]}))}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?p("dashboard.context_breakdown.tool_details.unavailable_codex"):p(Yo(n))}):o.jsx("ul",{className:"mt-0.5 mb-0.5 space-y-0.5",children:c.map(f=>{const d=f.toolCount>0,m=f.name==="Execution"&&t,g=m&&f.tools.some(b=>vr(b.name)),y=!!r[f.name];return o.jsxs(ct,{level:1,label:f.name,labelTone:"strong",hasChevron:d||m&&!g,open:y||m&&!g&&l,onToggle:()=>{d?u(f.name):m&&!g&&i(b=>!b)},tokens:at(f.totals.total_tokens||0),percent:null,children:[d&&o.jsx("ul",{className:"space-y-0.5",children:f.tools.map(b=>{const v=m&&vr(b.name);return o.jsx(ct,{level:2,label:b.name,labelTone:v?"accent":"default",hasChevron:v,open:l,onToggle:()=>i(w=>!w),tokens:at(b.total_tokens||0),percent:null,children:v&&o.jsx(Nr,{execDetails:t,source:n})},b.name)})}),m&&!g&&o.jsx(Nr,{execDetails:t,source:n})]},f.name)})})}function Bo({from:e,to:t,source:n="claude",referenceTotalTokens:a=null,onLoadingChange:r=null}){const[s,l]=h.useState(null),[i,c]=h.useState(!1),[u,f]=h.useState(null),[d,m]=h.useState({});function g(x){m(S=>({...S,[x]:!S[x]}))}if(h.useEffect(()=>{let x=!1;return c(!0),r?.(!0),f(null),bi({from:e,to:t,source:n,timeZone:Vr(),tzOffsetMinutes:Ur()}).then(S=>{x||l(S)}).catch(S=>{x||f(S?.message||String(S))}).finally(()=>{x||(c(!1),r?.(!1))}),()=>{x=!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(x=>o.jsx("div",{className:"h-3 rounded bg-oai-gray-100 dark:bg-oai-gray-800 animate-pulse",style:{animationDelay:`${x*80}ms`}},x))}),o.jsx("p",{className:"mt-3 text-[11px] text-oai-gray-500 dark:text-oai-gray-400",children:p("dashboard.context_breakdown.loading_hint")})]});if(u)return o.jsx("p",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-400",children:p(v0(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:p(Yo(n))});const y=n==="claude"?u0(s.categories||[],a):f0(s,a),b=s.tool_calls_breakdown||null,v=s.skills_breakdown||null,w=s.message_breakdown||null,M=s.configured_resources||null,k=s.exec_command_breakdown||null,N=b0(v?.skills||[]),_=p0(w?.categories||[]),j=n==="codex"&&(s?.breakdown_status==="queue_fallback"||s?.fallback==="queue_totals"),L=n==="claude"?b?.tool_calls||null:b||null,{mcpSet:P,residualSet:D,mcpTotalTokens:I}=m0(L),G=n==="claude"&&b?.subagents||null,V=G?.categories?.length>0||(M?.custom_agents_count||0)>0,$=n==="claude"?(D?.categories||[]).reduce((x,S)=>x+Number(S?.totals?.total_tokens||0),0):0,E=n==="claude"?(G?.categories||[]).reduce((x,S)=>x+Number(S?.totals?.total_tokens||0),0):0,T=[...y].sort((x,S)=>(S.totals?.total_tokens||0)-(x.totals?.total_tokens||0));return o.jsxs("div",{role:"region","aria-label":p("dashboard.context_breakdown.bar_aria",{summary:y.filter(x=>x.percent>0).filter(x=>!(n==="claude"&&(x.key==="tool_calls"||x.key==="custom_agents"))).map(x=>`${kr(x.key)} ${x.percent}%`).join(",")}),children:[o.jsxs("ul",{className:"space-y-0.5",children:[T.map(x=>{const S=x.key==="system_prompt",H=x.key==="messages",C=x.key==="tool_calls",X=x.key==="custom_agents";if(x.key,n==="claude"&&(C||X))return null;const F=H&&_.length>0||C&&(D?.categories?.length>0||j)||X&&V&&G,Y=!!d[x.key],B=n0(x.key,n),Z=o.jsx("span",{className:"h-2 w-2 rounded-sm shrink-0",style:{backgroundColor:B},"aria-hidden":"true"}),xe=S?o.jsxs("span",{className:"relative inline-flex shrink-0 group",children:[o.jsx(ca,{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:p("dashboard.context_breakdown.system_prefix_tooltip")})]}):null,je=x.percent>0?`${x.percent.toFixed(x.percent<.1&&x.percent>0?2:1)}%`:"0.0%";return o.jsxs(ct,{level:0,colorSquare:Z,label:kr(x.key),labelSuffix:xe,tokens:at(x.totals?.total_tokens||0),percent:je,hasChevron:F,open:Y,onToggle:()=>g(x.key),share:x.percent,fillColor:B,children:[H&&o.jsx("ul",{className:"space-y-0.5",children:_.map(Me=>o.jsx(ct,{level:1,label:x0(Me),tokens:at(Me.totals.total_tokens||0),percent:null},Me.key||Me.name))}),C&&D&&o.jsx(Xt,{toolSet:D,execDetails:k,source:n,codexQueueFallback:j}),C&&j&&!D&&o.jsx("p",{className:"text-[11px] text-oai-gray-400 dark:text-oai-gray-500 py-0.5",children:p("dashboard.context_breakdown.tool_details.unavailable_codex")}),X&&G&&o.jsx(Xt,{toolSet:G,execDetails:null,source:n,codexQueueFallback:!1})]},x.key)}),n==="claude"&&D?.categories?.length>0&&o.jsx(ct,{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:p("dashboard.context_breakdown.category.tool_calls"),tokens:at($),percent:null,hasChevron:!0,open:!!d.tool_calls_aux,onToggle:()=>g("tool_calls_aux"),children:o.jsx(Xt,{toolSet:D,execDetails:k,source:n,codexQueueFallback:!1})}),n==="claude"&&G?.categories?.length>0&&o.jsx(ct,{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:p("dashboard.context_breakdown.category.custom_agents"),tokens:at(E),percent:null,hasChevron:!0,open:!!d.custom_agents_aux,onToggle:()=>g("custom_agents_aux"),children:o.jsx(Xt,{toolSet:G,execDetails:null,source:n,codexQueueFallback:!1})}),P?.categories?.length>0&&o.jsx(ct,{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:p("dashboard.context_breakdown.category.mcp_servers"),tokens:at(I),percent:null,hasChevron:!0,open:!!d.mcp_servers,onToggle:()=>g("mcp_servers"),children:o.jsx(Xt,{toolSet:P,execDetails:null,source:n,codexQueueFallback:!1})}),N.length>0&&o.jsx(ct,{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:p("dashboard.context_breakdown.category.skills"),tokens:at(N.reduce((x,S)=>x+(S.total_tokens||0),0)),percent:null,hasChevron:!0,open:!!d.skills,onToggle:()=>g("skills"),children:o.jsx("ul",{className:"space-y-0.5",children:N.slice(0,12).map(x=>o.jsx(ct,{level:1,label:x.name,tokens:at(x.total_tokens),percent:null},x.name))})})]}),o.jsx("p",{className:"mt-2 text-[10px] text-oai-gray-400 dark:text-oai-gray-500",children:p(N0(n))}),j?o.jsx("p",{className:"mt-2 text-[11px] text-oai-gray-500 dark:text-oai-gray-400",children:p("dashboard.context_breakdown.tool_details.unavailable_codex")}):null,M?o.jsxs("p",{className:"mt-2 text-[10px] text-oai-gray-400 dark:text-oai-gray-500",children:[Ae(M.skills_count||0)," skills ·"," ",Ae(M.mcp_servers_count||0)," MCP servers ·"," ",Ae(M.custom_agents_count||0)," agents ·"," ",Ae(M.memory_files_count||0)," memory files"]}):null]})}function _r({fleetData:e=[],from:t,to:n,showInlineContext:a=!0,usageLimits:r=null,limitDisplayMode:s}){const l=Lt(),[i,c]=h.useState(null),{currency:u,rate:f}=Nt(),d=e.filter(va);return d.length===0?null:o.jsx(on,{children:o.jsxs("div",{className:"space-y-6",children:[o.jsx("div",{role:"img","aria-label":p("usage.overview.distribution_aria",{items:d.map(m=>p("usage.overview.distribution_item",{label:m.label,percent:m.totalPercent})).join(",")}),className:"h-1.5 w-full bg-oai-gray-100 dark:bg-oai-gray-800 rounded-full overflow-hidden flex",children:d.map((m,g)=>{const y=Vn(m.label,g);return o.jsx(ht.div,{initial:{width:0},animate:{width:`${m.totalPercent}%`},transition:{duration:.5,delay:.45+g*.04,ease:[.16,1,.3,1]},className:"h-full",style:{backgroundColor:y},title:`${m.label}: ${m.totalPercent}%`},m.label)})}),o.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-[repeat(auto-fit,minmax(220px,1fr))] gap-3",children:d.map((m,g)=>{const y=Vn(m.label,g),b=i===m.label,v=m.missingPricingModels?.length||0,w=!!v,M=Jh(m),k=Zh(m,M);return o.jsxs("button",{"aria-expanded":b,"aria-controls":`provider-details-${m.label}`,"aria-label":p("usage.overview.provider_card_aria",{provider:m.label,percent:m.totalPercent,tokens:ka(m.usage)||"0",cost:wa(m.usd,u,f)||`${ia(u)}0`,action:p(b?"usage.overview.collapse":"usage.overview.expand")}),onClick:()=>c(b?null:m.label),className:`min-w-0 text-left p-3 rounded-lg border transition-colors duration-200 ${b?"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(la,{provider:m.label,size:15,color:y,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:m.label})]}),o.jsxs("div",{className:"text-lg font-semibold text-oai-black dark:text-oai-white tabular-nums",children:[m.totalPercent,"%"]}),o.jsx("div",{className:"mt-0.5 text-[11px] text-oai-gray-400 dark:text-oai-gray-400 tabular-nums",children:p("usage.overview.model_count",{count:m.models.length})}),o.jsx(xi,{label:m.label,usageLimits:r,mode:s}),o.jsxs("div",{className:"mt-2 space-y-1.5",children:[M.map(N=>{const _=Qh(N,m.topCostModel);return o.jsxs("div",{className:"min-w-0",children:[o.jsxs("div",{className:"flex min-w-0 items-center justify-between gap-2 text-[10px] font-medium",children:[o.jsx("span",{className:`truncate ${_?"text-oai-black dark:text-oai-white":"text-oai-gray-600 dark:text-oai-gray-300"}`,title:N.name,children:Qt(N.name)}),o.jsx("span",{className:"shrink-0 text-oai-gray-500 dark:text-oai-gray-400 tabular-nums",children:p("usage.overview.model_percent",{percent:N.share})})]}),o.jsx("div",{role:"progressbar","aria-label":p("usage.overview.model_chip",{model:Qt(N.name),percent:N.share}),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Number(N.share)||0,className:"mt-1 h-1.5 overflow-hidden rounded-full bg-oai-gray-100 dark:bg-oai-gray-800",children:o.jsx(ht.div,{initial:{width:0},animate:{width:Kh(N.share)},transition:{duration:l?0:.45,delay:l?0:.05,ease:[.16,1,.3,1]},className:"h-full rounded-full",style:{backgroundColor:_?y:`${y}99`}})})]},N.id||N.name)}),!!k&&o.jsx("div",{className:"text-[10px] font-medium text-oai-gray-400 dark:text-oai-gray-500",children:p("usage.overview.model_more",{count:k})})]}),m.topCostModel?.name?o.jsx("div",{className:"mt-1.5 truncate text-[10px] font-medium text-oai-gray-500 dark:text-oai-gray-400",children:p("usage.overview.provider_top_cost",{model:Qt(m.topCostModel.name)})}):null,w?o.jsx("div",{className:"mt-1.5 truncate text-[10px] font-semibold text-amber-700 dark:text-amber-300",children:p("usage.overview.provider_missing_pricing",{count:v})}):null]},m.label)})}),i&&o.jsx("div",{id:`provider-details-${i}`,role:"region","aria-label":p("usage.overview.model_details_aria",{provider:i}),className:"mt-2",children:d.filter(m=>m.label===i).map(m=>{const g=Vn(m.label,0),y=Jt(m),b=[...m.models].sort((M,k)=>(k.share||0)-(M.share||0)),v=!!y&&a,w=v?`${y==="claude"?"Claude":"Codex"} Context Breakdown`:m.label;return o.jsx(M0,{provider:m,color:g,providerHeading:w,contextSource:v?y:null,from:t,to:n,sortedModels:b},m.label)})})]})})}function M0({provider:e,color:t,providerHeading:n,contextSource:a,from:r,to:s,sortedModels:l}){const{currency:i,rate:c}=Nt(),[u,f]=h.useState(!1),d=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(la,{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&&u&&o.jsx(Ti,{size:12,className:"text-oai-gray-400 dark:text-oai-gray-500 animate-spin shrink-0","aria-label":p("dashboard.context_breakdown.loading_aria")})]}),d&&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:[p("usage.overview.antigravity_notice_title"),"."]})," ",p("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(Bo,{from:r,to:s,source:a,referenceTotalTokens:e.usage,onLoadingChange:f})}):null,o.jsx("div",{className:"space-y-3",children:l.map(m=>{const g=ka(m.usage),y=wa(m.cost,i,c),b=Math.max(0,Math.min(100,Number(m.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:m.name,children:m.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:y}),o.jsxs("span",{className:"shrink-0 w-12 text-right text-sm text-oai-black dark:text-oai-white tabular-nums",children:[m.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}})})]},m.id||m.name)})})]})}const j0={claude:"Claude",codex:"Codex"};function S0({fleetData:e=[],from:t,to:n}){const a=e.filter(va).filter(i=>Jt(i)!==null);if(a.length===0)return null;const r=new Map;for(const i of a){const c=Jt(i),u=r.get(c);(!u||(Number(i.usage)||0)>(Number(u.usage)||0))&&r.set(c,i)}const s=Array.from(r.values()).sort((i,c)=>(Number(c.usage)||0)-(Number(i.usage)||0)),l=s.length>1;return o.jsx(on,{title:p("dashboard.context_breakdown.card_title"),children:o.jsx("div",{className:l?"grid grid-cols-1 lg:grid-cols-2 gap-x-8 gap-y-6":"",children:s.map(i=>{const c=Jt(i);return o.jsxs("div",{className:"min-w-0",children:[l?o.jsxs("div",{className:"mb-3 flex items-center justify-between gap-2 border-b border-oai-gray-200 pb-2 dark:border-oai-gray-800",children:[o.jsx("span",{className:"text-sm font-semibold text-oai-black dark:text-oai-white",children:j0[c]??c}),o.jsx("span",{className:"text-xs font-medium tabular-nums text-oai-gray-500 dark:text-oai-gray-300",children:ka(i.usage)})]}):null,o.jsx(Bo,{from:t,to:n,source:c,referenceTotalTokens:i.usage})]},c)})})})}function C0(e){return e==="day"?"hourly":e==="total"?"monthly":"daily"}function D0(e){return!!e&&!e.missing&&!e.future}function T0(e){const t=e?.billable_total_tokens??e?.total_tokens??e?.value,n=Number(t);return Number.isFinite(n)&&n>=0?n:0}function P0(e){const t=e?.total_tokens??e?.billable_total_tokens??e?.value,n=Number(t);return Number.isFinite(n)&&n>=0?n:0}function O0(e){const t=Array.isArray(e)?e.filter(D0):[];let n=0,a=0,r=0,s=0,l=!1,i=0,c=-1,u=null;for(const f of t){const d=P0(f),m=T0(f);n+=d,a+=m;const g=Number(f?.conversation_count);Number.isFinite(g)&&g>0&&(r+=g);const y=Number(f?.total_cost_usd);Number.isFinite(y)&&(l=!0,s+=y),m>0&&(i+=1),m>c&&(c=m,u=f)}return{totalTokens:n,billableTokens:a,conversationCount:r,totalCostUsd:l?s:null,bucketCount:t.length,activeBuckets:i,peak:u&&c>0?{value:c,label:u.hour||u.day||u.month||""}:null}}function Mr(e){return String(e).padStart(2,"0")}function $0(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,u=Math.floor(c/60)%24,f=c%60;return`${r} ${s}:${l}–${Mr(u)}:${Mr(f)}`}return String(t==="monthly"?e.month||e.label||"":e.day||e.label||"")}function W0(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 E0(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 A0=[{period:"day",labelKey:"trend.zoom.gran.30min"},{period:"month",labelKey:"trend.zoom.gran.day"},{period:"total",labelKey:"trend.zoom.gran.month"}],F0=24,Ft="#10b981";function jr(e){return e==="day"?"day":e==="total"?"total":"month"}function oa(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 R0(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 I0(e,t){const n=/^(\d{4})-(\d{2})/.exec(String(e||"")),a=/^(\d{4})-(\d{2})/.exec(String(t||""));if(!n||!a)return F0;const r=Number(a[1])*12+Number(a[2])-(Number(n[1])*12+Number(n[2]))+1;return Math.max(1,r)}function Sr(e,t){return t?e==="total"?{from:R0(t,-23),to:t}:{from:oa(t,-29),to:t}:{from:null,to:null}}function L0(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 yn({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 z0({zoomConfig:e,period:t,from:n,to:a,timeZoneLabel:r,onClose:s,renderChart:l}){const{currency:i,rate:c}=Nt(),u=R.useMemo(()=>en({timeZone:e?.timeZone,offsetMinutes:e?.tzOffsetMinutes,date:e?.now||new Date})||a||n||null,[e?.timeZone,e?.tzOffsetMinutes,e?.now,a,n]),[f,d]=R.useState(()=>jr(t)),[m,g]=R.useState(u),[y,b]=R.useState(()=>Sr(jr(t),u)),[v,w]=R.useState(!1),[M,k]=R.useState(!1),[N,_]=R.useState(!1),j=u,L=C=>{d(C),C!=="day"&&b(Sr(C,u))},P=R.useMemo(()=>f==="day"?{from:m,to:m,months:void 0}:f==="total"?{from:void 0,to:y.to,months:I0(y.from,y.to)}:{from:y.from,to:y.to,months:void 0},[f,m,y]),{rows:D,from:I,to:G,loading:V}=Jr({...e,period:f,from:P.from,to:P.to,months:P.months}),$=R.useMemo(()=>O0(D),[D]),E=R.useCallback(()=>_(!0),[]),T=C=>{C.target===C.currentTarget&&N&&s()};if(R.useEffect(()=>{const C=X=>{X.key==="Escape"&&E()};return window.addEventListener("keydown",C),()=>window.removeEventListener("keydown",C)},[E]),typeof document>"u")return null;const x=f==="day"&&!!m,S=f==="day"&&!!m&&(!j||m<j),H=$.totalCostUsd!=null?et($.totalCostUsd,{currency:i,rate:c}):null;return o.jsxs("div",{onAnimationEnd:T,onClick:C=>{C.target===C.currentTarget&&E()},className:Xe("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",N?"animate-tt-fade-out":"animate-tt-fade-in"),children:[o.jsx("style",{children:`
|
|
43
|
+
@keyframes tt-fade-in { from { opacity: 0; } to { opacity: 1; } }
|
|
44
|
+
@keyframes tt-fade-out { from { opacity: 1; } to { opacity: 0; } }
|
|
45
|
+
@keyframes tt-modal-entrance {
|
|
46
|
+
from { opacity: 0; transform: scale(0.96) translateY(10px); }
|
|
47
|
+
to { opacity: 1; transform: scale(1) translateY(0); }
|
|
48
|
+
}
|
|
49
|
+
@keyframes tt-modal-exit {
|
|
50
|
+
from { opacity: 1; transform: scale(1) translateY(0); }
|
|
51
|
+
to { opacity: 0; transform: scale(0.96) translateY(10px); }
|
|
52
|
+
}
|
|
53
|
+
.animate-tt-fade-in { animation: tt-fade-in 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
|
|
54
|
+
.animate-tt-fade-out { animation: tt-fade-out 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
|
|
55
|
+
.animate-tt-modal { animation: tt-modal-entrance 0.3s cubic-bezier(0.34, 1.3, 0.64, 1) forwards; }
|
|
56
|
+
.animate-tt-modal-exit { animation: tt-modal-exit 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards; }
|
|
57
|
+
@media (prefers-reduced-motion: reduce) {
|
|
58
|
+
.animate-tt-fade-in, .animate-tt-fade-out, .animate-tt-modal, .animate-tt-modal-exit { animation: none; }
|
|
59
|
+
}
|
|
60
|
+
`}),o.jsxs("div",{className:Xe("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",N?"animate-tt-modal-exit":"animate-tt-modal"),children:[o.jsx("button",{type:"button",onClick:E,"aria-label":p("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(sa,{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:Ft}}),o.jsx("span",{className:"relative inline-flex rounded-full h-1.5 w-1.5",style:{backgroundColor:Ft}})]}),o.jsx("span",{className:"text-[9px] font-extrabold uppercase tracking-widest font-mono text-zinc-400 dark:text-zinc-500",children:p("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:p("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:p("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(yn,{label:p("trend.zoom.stats.tokens"),value:Ae($.totalTokens)}),H?o.jsx(yn,{label:p("trend.zoom.stats.cost"),value:H}):null,o.jsx(yn,{label:p("trend.zoom.stats.conversations"),value:$.conversationCount.toLocaleString()}),$.peak?o.jsx(yn,{label:p("trend.zoom.stats.peak"),value:Ae($.peak.value),sub:L0($.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(Gr,{size:11,style:{color:Ft}}),o.jsx("span",{className:"text-[9px] font-extrabold uppercase tracking-widest font-mono",style:{color:Ft},children:p("trend.zoom.insight_badge")})]}),o.jsxs("div",{className:"pl-3.5 border-l-2 relative",style:{borderColor:Ft},children:[o.jsx("div",{className:"absolute inset-y-0 left-0 w-[3px] blur-[2px] opacity-15 pointer-events-none rounded-full",style:{backgroundColor:Ft}}),o.jsx("p",{className:"text-[11px] leading-relaxed text-zinc-600 dark:text-zinc-400 font-normal",children:p(W0($),{active:$.activeBuckets,peak:Ae($.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":p("trend.zoom.gran.aria"),className:"flex rounded-md border border-oai-gray-200 dark:border-oai-gray-800 p-0.5 text-[11px]",children:A0.map(C=>o.jsx("button",{type:"button",role:"tab","aria-selected":f===C.period,onClick:()=>L(C.period),className:Xe("px-2.5 py-1 rounded transition-colors",f===C.period?"bg-oai-gray-100 text-oai-black dark:bg-oai-gray-800 dark:text-oai-white font-medium":"text-oai-gray-500 dark:text-oai-gray-400 hover:text-oai-gray-700 dark:hover:text-oai-gray-200"),children:p(C.labelKey)},C.period))}),f==="day"?o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("button",{type:"button",onClick:()=>x&&g(C=>oa(C,-1)),disabled:!x,"aria-label":p("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(ri,{size:16})}),o.jsxs(Qn,{open:v,onOpenChange:w,children:[o.jsx(Jn,{"aria-label":p("trend.zoom.pick_day"),className:"text-[12px] font-medium text-oai-gray-700 dark:text-oai-gray-200 tabular-nums min-w-[100px] text-center px-2 py-0.5 rounded-md border border-oai-gray-200 dark:border-oai-gray-800 hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 transition-colors",children:m||"—"}),o.jsx(Zn,{children:o.jsx(ea,{sideOffset:8,side:"bottom",align:"center",className:"!z-[9999]",children:o.jsx(ta,{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(ra,{from:m,to:m,onApply:C=>{C&&g(C),w(!1)},onCancel:()=>w(!1)})})})})]}),o.jsx("button",{type:"button",onClick:()=>S&&g(C=>oa(C,1)),disabled:!S,"aria-label":p("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(Br,{size:16})})]}):o.jsxs(Qn,{open:M,onOpenChange:k,children:[o.jsx(Jn,{"aria-label":p("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:y.from&&y.to?y.from===y.to?y.from:`${y.from} → ${y.to}`:"—"}),o.jsx(Zn,{children:o.jsx(ea,{sideOffset:8,side:"bottom",align:"end",className:"!z-[9999]",children:o.jsx(ta,{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(ra,{from:y.from,to:y.to,onApply:(C,X)=>{C&&b({from:C,to:X||C}),k(!1)},onCancel:()=>k(!1)})})})})]})]}),o.jsx("div",{className:"flex-1 min-h-0 flex flex-col",children:V&&(!D||D.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:p("trend.zoom.loading")})}):l({rows:D,from:I,to:G,period:f,timeZoneLabel:r})})]})]})]})}function Cr(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 Y0(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=Cr(t,.25),s=Cr(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 Dr=["#f472b6","#38bdf8","#34d399","#fbbf24","#a78bfa","#fb7185","#2dd4bf","#f97316","#6366f1","#ec4899","#14b8a6","#f59e0b"],Ho={Input:"#38bdf8","Cached Input":"#14b8a6",Output:"#a78bfa","Reasoning Output":"#fb7185"},B0={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 Uo(e){const t=e.toLowerCase();for(const[r,s]of Object.entries(B0))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)%Dr.length;return Dr[a]}function H0(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 U0(e,t){return e?.future?"predicted":e?.missing?"unsynced":t>0?"real":"real_zero"}const V0=.35,Tr=2,Pr=4;function q0({value:e,displayValue:t,scale:n,index:a,row:r,totalBars:s,onMouseEnter:l,onMouseLeave:i}){const c=Lt(),u=U0(r,e),f=u==="predicted"||u==="unsynced",d=n.effectiveMax>0?t/n.effectiveMax*100:0;let m,g;u==="real"?(m=`${Math.max(d,2)}%`,g=`${Pr}px`):f&&d>0?(m=`${d}%`,g=`${Pr}px`):(m=`${Tr}px`,g=`${Tr}px`);const y=u==="real"?H0(r):[],b=y.reduce((w,M)=>w+M.value,0),v=u!=="real"||b<=0;return o.jsxs(ht.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:w=>l(w,r,e,y,u,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 rounded-t-[3px] cursor-pointer transition-all duration-200",style:{height:m,minHeight:g},children:v?o.jsx("div",{"data-trend-bar":"true",className:Xe("h-full w-full group-hover:brightness-110 transition-all",u==="real"?"":"bg-oai-gray-100 dark:bg-oai-gray-800"),style:{opacity:f?V0:1,background:u==="real"?"#10b981":void 0}}):y.map((w,M)=>{const k=w.type==="token_type"?Ho[w.name]:Uo(w.name),N=`${w.value/b*100}%`;return o.jsx("div",{"data-trend-bar":M===0?"true":void 0,className:"w-full group-hover:brightness-110 transition-all",style:{height:N,background:k}},M)})})]})}function X0(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 Or=.98;function G0(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 f=0;f<=r;f++)e[f]!==null&&(i+=e[f],c+=1);const u=c>0?i/c:a;t[n]=u*Math.pow(Or,n-r)}else if(s!==null){let i=0,c=0;for(let f=l;f<e.length;f++)e[f]!==null&&(i+=e[f],c+=1);const u=c>0?i/c:s;t[n]=u*Math.pow(Or,l-n)}else t[n]=0}return t}function Vo({rows:e,from:t,to:n,period:a,timeZoneLabel:r,showTimeZoneLabel:s=!0,className:l="",embedded:i=!1,chartHeightClass:c="h-40",isZoom:u=!1,zoomConfig:f=null}){const d=R.useMemo(()=>Array.isArray(e)&&e.length?e:[],[e]),{rawValues:m,seriesValues:g,scale:y,interpolatedValues:b}=R.useMemo(()=>{const $=d.map(X0),E=$.map(T=>T??0);return{rawValues:$,seriesValues:E,scale:Y0(E),interpolatedValues:G0($)}},[d]),{currency:v,rate:w}=Nt(),M=C0(a),[k,N]=R.useState(null),[_,j]=R.useState({x:0,y:0,shiftX:0,flipDown:!1}),[L,P]=R.useState(!1),D=R.useRef(null),I=R.useRef(null),G=($,E,T,x,S,H)=>{I.current&&(clearTimeout(I.current),I.current=null);const C=u?$0(E,M):E?.day||E?.hour||E?.month||"";N({row:E,value:T,segments:x,timeLabel:C,kind:S,displayValue:H});const X=$.currentTarget.querySelector('[data-trend-bar="true"]'),F=X&&X.parentElement?X.parentElement.getBoundingClientRect():$.currentTarget.getBoundingClientRect(),Y=D.current;if(!Y)return;const B=Y.getBoundingClientRect(),Z=F.left-B.left+F.width/2,xe=F.top-B.top,je=140;let Me=0;Z<je?Me=je-Z:Z>B.width-je&&(Me=B.width-je-Z);const Se=96+(u?22:0)+(x.length?Math.min(x.length*30+24,174):0),J=xe<Se+12;j({x:Z,y:xe,shiftX:Me,flipDown:J})},V=()=>{I.current&&clearTimeout(I.current),I.current=setTimeout(()=>{N(null)},150)};return o.jsxs("div",{ref:D,className:Xe("relative",!i&&"rounded-xl border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-900 p-5",u&&"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:p("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})]}),f&&o.jsx("button",{type:"button",onClick:()=>P(!0),"aria-label":p("trend.zoom.open_aria"),title:p("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(Xr,{size:14})})]}),o.jsxs("div",{className:Xe("space-y-3",u&&"flex flex-1 flex-col min-h-0 !space-y-0 gap-3"),children:[o.jsxs("div",{className:Xe("flex gap-2",u&&"flex-1 min-h-0"),children:[o.jsx("div",{className:"flex shrink-0 flex-col justify-between text-right text-[10px] leading-none text-oai-gray-400 dark:text-oai-gray-500 tabular-nums",children:[1,.75,.5,.25,0].map($=>o.jsx("span",{children:$===0?"0":Ae(y.effectiveMax*$,{decimals:0})},$))}),o.jsxs("div",{className:Xe("relative min-w-0 flex-1",u&&"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($=>o.jsx("div",{className:"w-full border-t border-oai-gray-100 dark:border-oai-gray-800",style:{top:`${100-$}%`}},$))}),o.jsx("div",{className:Xe("flex items-end gap-0.5 relative z-0",c),children:g.length>0?g.map(($,E)=>{const T=d[E],S=T?.missing||T?.future?Math.min(b[E]??0,y.effectiveMax):y.clippedValues[E]??0;return o.jsx(q0,{value:$,displayValue:S,scale:y,index:E,row:T,totalBars:g.length,onMouseEnter:G,onMouseLeave:V},E)}):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"})})})]})]}),u&&g.length>0&&o.jsx("div",{className:"flex gap-0.5 select-none",children:d.map(($,E)=>{const T=g.length-1,x=Math.max(1,Math.ceil(g.length/8)),S=E%x===0||E===T,H=E===0?"justify-start":E===T?"justify-end":"justify-center";return o.jsx("div",{className:Xe("flex-1 min-w-0 flex",H),children:S&&o.jsx("span",{className:"text-[9px] text-oai-gray-400 dark:text-oai-gray-500 whitespace-nowrap font-mono",children:E0($,M)})},E)})}),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:Xe("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"})]}),u&&(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:et(k.row.total_cost_usd,{currency:v,rate:w})})," ",p("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()})," ",p("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:$,value:E,type:T})=>{const x=k.value||1,S=Math.round(E/x*100),H=T==="token_type"?Ho[$]:Uo($);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:$,children:$}),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:E.toLocaleString()}),o.jsxs("span",{className:"text-[9px] text-oai-gray-450 dark:text-oai-gray-500 min-w-[28px] text-right font-medium",children:[S,"%"]})]})]}),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:`${S}%`,backgroundColor:H,boxShadow:`0 0 4px ${H}55`}})})]},$)})})]}):null]})]}),o.jsx("div",{className:Xe("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"}})]}),L&&f&&o.jsx(z0,{zoomConfig:f,period:a,from:t,to:n,timeZoneLabel:r,onClose:()=>P(!1),renderChart:$=>o.jsx(Vo,{embedded:!0,isZoom:!0,chartHeightClass:"h-full",...$})})]})}const $r="widgetOnboardingDismissed",Wr="tokentracker_native_app",K0=(()=>{try{return new URLSearchParams(window.location.search).get("app")==="1"?(localStorage.setItem(Wr,"1"),!0):localStorage.getItem(Wr)==="1"}catch{return!1}})();function Q0({enterDelay:e=0}){const[t,n]=h.useState(()=>{try{return localStorage.getItem($r)==="1"}catch{return!1}}),a=h.useCallback(()=>{n(!0);try{localStorage.setItem($r,"1")}catch{}},[]);return!K0||oi()?null:o.jsx(Hr,{initial:!1,children:!t&&o.jsxs(ht.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":p("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:p("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:p("dashboard.widgets.title")}),o.jsx("div",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-400 mt-1 leading-snug",children:p("dashboard.widgets.hint")})]})]},"widget-onboarding-card")})}function J0(e){const{copy:t,screenshotMode:n,screenshotTitleLine1:a,screenshotTitleLine2:r,identityDisplayName:s,identityStartDate:l,activeDays:i,identitySubscriptions:c,identityScrambleDurationMs:u,projectUsageEntries:f,projectUsageLimit:d,setProjectUsageLimit:m,pulse:g,pulseComparedAtLabel:y,isLocalMode:b,trendRowsForDisplay:v,trendFromForDisplay:w,trendToForDisplay:M,trendZoomConfig:k,usageFrom:N,usageTo:_,period:j,trendTimeZoneLabel:L,activityHeatmapBlock:P,periodsForDisplay:D,setSelectedPeriod:I,autoRefreshOptions:G,autoRefreshIntervalMs:V,onAutoRefreshIntervalChange:$,customFrom:E,customTo:T,onCustomRangeApply:x,customRangeOpen:S,onCustomRangeOpenChange:H,summaryLabel:C,summaryValue:X,summaryUpdatedAtLabel:F,summaryCostValue:Y,usageInsights:B,costInfoEnabled:Z,openCostModal:xe,costModalOpen:je,closeCostModal:Me,allowBreakdownToggle:Se,refreshAll:J,usageLoadingState:De,dataHealthMessage:le,fleetData:de,usageLimits:W,limitDisplayMode:te,hasDetailsActual:ge,dailyEmptyPrefix:me,installSyncCmd:Ne,dailyEmptySuffix:Fe,detailsColumns:Te,ariaSortFor:A,toggleSort:z,sortIconFor:U,pagedDetails:q,dailyBreakdownRows:ne,dailyBreakdownColumns:se,dailyBreakdownAriaSortFor:ye,dailyBreakdownSortIconFor:fe,dailyBreakdownDateKey:he,detailsDateKey:Pe,renderDetailDate:pe,renderDailyBreakdownDate:We,renderDetailCell:Ee,DETAILS_PAGED_PERIODS:Be,detailsPageCount:_t,detailsPage:gt,setDetailsPage:yt}=e,it=null,Mt=null,oe=Array.isArray(de)&&de.some(ae=>va(ae)&&Jt(ae)!==null);return o.jsxs(o.Fragment,{children:[o.jsx(Vi,{bare:!n,hideHeader:n,header:it,footer:n?null:Mt,className:n?"screenshot-mode":"",children:n?o.jsxs("div",{className:"flex flex-col gap-4",children:[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:a}),o.jsx("span",{className:"text-2xl md:text-3xl font-semibold text-oai-black dark:text-oai-white tracking-tight leading-none",children:r})]})}),o.jsx(yr,{period:j,periods:D,onPeriodChange:I,autoRefreshOptions:G,autoRefreshIntervalMs:V,onAutoRefreshIntervalChange:$,summaryLabel:C,summaryValue:X,summaryUpdatedAtLabel:F,summaryCostValue:Y,usageInsights:B,onCostInfo:Z?xe:null,onRefresh:n?null:J,loading:De,customFrom:E,customTo:T,onCustomRangeApply:x,customRangeOpen:S,onCustomRangeOpenChange:H}),o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-6 gap-4",children:[o.jsx("div",{className:"lg:col-span-2 min-w-0",children:o.jsx(Ja,{rankLabel:l??t("identity_card.rank_placeholder"),streakDays:i,subscriptions:c})}),P?o.jsx("div",{className:"lg:col-span-4 min-w-0",children:P}):null,o.jsx("div",{className:"lg:col-span-6 min-w-0",children:o.jsx(_r,{fleetData:de,from:N,to:_,usageLimits:W,limitDisplayMode:te})})]})]}):o.jsxs("div",{className:"flex flex-col gap-4",children:[le?o.jsx(bt,{delay:.08,children:o.jsx("div",{className:"rounded-lg border border-oai-gray-200 bg-oai-gray-50 px-4 py-3 text-sm text-oai-gray-700 dark:border-oai-gray-800 dark:bg-oai-gray-900/70 dark:text-oai-gray-300",children:le})}):null,o.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-6 gap-4",children:[o.jsx("div",{className:"lg:col-span-3 min-w-0",children:o.jsx(bt,{delay:.05,className:"h-full",children:o.jsx(yr,{period:j,periods:D,onPeriodChange:I,autoRefreshOptions:G,autoRefreshIntervalMs:V,onAutoRefreshIntervalChange:$,summaryLabel:C,summaryValue:X,summaryUpdatedAtLabel:F,summaryCostValue:Y,usageInsights:B,onCostInfo:Z?xe:null,onRefresh:n?null:J,loading:De,customFrom:E,customTo:T,onCustomRangeApply:x,customRangeOpen:S,onCustomRangeOpenChange:H,emphasized:!0})})}),o.jsx("div",{className:"lg:col-span-3 min-w-0",children:o.jsx(bt,{delay:.09,children:o.jsx(Vo,{rows:v,from:w,to:M,period:j,timeZoneLabel:L,showTimeZoneLabel:!1,zoomConfig:k})})}),o.jsx("div",{className:"lg:col-span-2 min-w-0",children:o.jsx(bt,{delay:.13,children:o.jsxs("div",{className:"flex flex-col gap-4",children:[o.jsx(Ac,{pulse:g,period:j,comparedAtLabel:y}),o.jsx(Ja,{rankLabel:l??t("identity_card.rank_placeholder"),streakDays:i,subscriptions:c})]})})}),o.jsx("div",{className:"lg:col-span-4 min-w-0",children:o.jsx(bt,{delay:.19,children:o.jsx(_r,{fleetData:de,from:N,to:_,showInlineContext:!1,usageLimits:W,limitDisplayMode:te})})}),P?o.jsx("div",{className:oe?"lg:col-span-2 min-w-0":"lg:col-span-6 min-w-0",children:o.jsx(bt,{delay:.25,children:P})}):null,oe?o.jsx("div",{className:P?"lg:col-span-4 min-w-0":"lg:col-span-6 min-w-0",children:o.jsx(bt,{delay:.31,children:o.jsx(S0,{fleetData:de,from:N,to:_})})}):null,b?o.jsx("div",{className:"lg:col-span-6",children:o.jsx(Q0,{enterDelay:.37})}):null]}),o.jsx(bt,{delay:.43,children:o.jsx(Nc,{projectEntries:f,projectLimit:d,onProjectLimitChange:m,copy:t,hasDetailsActual:ge,dailyEmptyPrefix:me,installSyncCmd:Ne,dailyEmptySuffix:Fe,detailsColumns:Te,ariaSortFor:A,toggleSort:z,sortIconFor:U,pagedDetails:q,dailyBreakdownRows:ne,dailyBreakdownColumns:se,dailyBreakdownAriaSortFor:ye,dailyBreakdownSortIconFor:fe,dailyBreakdownDateKey:he,detailsDateKey:Pe,renderDetailDate:pe,renderDailyBreakdownDate:We,renderDetailCell:Ee,DETAILS_PAGED_PERIODS:Be,period:j,detailsPageCount:_t,detailsPage:gt,setDetailsPage:yt})})]})}),o.jsx(kc,{isOpen:je,onClose:Me,fleetData:de})]})}const Z0=["day","24h","week","month","total","custom"],qo="tt:dashboard-auto-refresh-ms",Zt=3e4,Xo=[{value:0,labelKey:"usage.auto_refresh.off"},{value:3e4,labelKey:"usage.auto_refresh.30s"},{value:6e4,labelKey:"usage.auto_refresh.60s"},{value:12e4,labelKey:"usage.auto_refresh.120s"}],eg=3e4,tg=6e4,qn=new Set(["day","hour","month"]),Gt=new Set(["day","24h","total","custom"]),ng=new Set(Xo.map(e=>e.value));function Go(e){if(e==null||e==="")return Zt;const t=Number(e);return Number.isFinite(t)&&ng.has(t)?t:Zt}function ag(){if(typeof window>"u")return Zt;try{return Go(window.localStorage?.getItem(qo))}catch{return Zt}}function rg(e){const n=(typeof e?.stdout=="string"?e.stdout:"").match(/New 30-min buckets queued:\s*(\d+)/i);return n?Number(n[1])>0:!0}function Xn(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 pn(e){return e?_n(e,null):null}function Er(e){return e?e?.billable_total_tokens??e?.value??e?.total_tokens:null}function og(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 sg(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function xg({baseUrl:e,onMainContentVisible:t}){const{resolvedLocale:n}=si(),{currency:a,rate:r}=Nt(),[s,l]=h.useState(!1),[i,c]=h.useState(null),[u,f]=h.useState(()=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia("(max-width: 640px)").matches),d=h.useMemo(()=>typeof window>"u"?!1:ii(window.location.search),[]),m=2200,[g,y]=h.useState(!0),[b,v]=h.useState(!1),[w,M]=h.useState(ag),[k,N]=h.useState(()=>Date.now()),[_,j]=h.useState(()=>Date.now()),L=h.useRef(!1),P=h.useRef(!1),D=h.useRef(0),I=h.useRef(null),G=h.useRef(!1),V=zt(),$=null,E=!1,T=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1");h.useEffect(()=>{if(!T&&!V){c(null);return}let O=!0;return(async()=>{try{const K=await ki({baseUrl:e});if(!O)return;c(K&&typeof K=="object"?K:null)}catch{if(!O)return;c(null)}})(),()=>{O=!1}},[e,T,V]),h.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const O=window.matchMedia("(max-width: 640px)"),K=()=>f(O.matches);return K(),O.addEventListener?(O.addEventListener("change",K),()=>O.removeEventListener("change",K)):(O.addListener(K),()=>O.removeListener(K))},[]);const x=h.useMemo(()=>Vr(),[]),S=h.useMemo(()=>Ur(),[]),H=h.useMemo(()=>di(),[]),C=h.useMemo(()=>H||new Date(k),[k,H]),X="default",[F,Y]=h.useState("day"),[B,Z]=h.useState(null),[xe,je]=h.useState(null),[Me,Se]=h.useState(!1),J=d?"total":F,De=h.useMemo(()=>J==="custom"&&B&&xe?{from:B,to:xe}:ui(J,{timeZone:x,offsetMinutes:S,now:C}),[C,J,x,S,B,xe]),le=De.from,de=De.to,W=h.useMemo(()=>fi({timeZone:x,offsetMinutes:S}),[x,S]),te=h.useMemo(()=>mi({timeZone:x,offsetMinutes:S}),[x,S]),ge=h.useMemo(()=>`Local time (${te})`,[te]),me=x,Ne=S,Fe=W,Te=h.useMemo(()=>en({timeZone:x,offsetMinutes:S,date:C}),[C,x,S]),A=h.useMemo(()=>{const O=og(Te)||new Date,K=sg(O,-29);return{from:mt(K),to:mt(O)}},[Te]),{daily:z,summary:U,rolling:q,source:ne,loading:se,error:ye,refresh:fe}=La({baseUrl:e,accessToken:$,guestAllowed:E,from:le,to:de,includeDaily:J!=="total",cacheKey:X,timeZone:x,tzOffsetMinutes:S,now:C}),{daily:he,loading:Pe,refresh:pe}=La({baseUrl:e,accessToken:$,guestAllowed:E,from:A.from,to:A.to,includeDaily:!0,cacheKey:`${X}.daily-breakdown`,timeZone:x,tzOffsetMinutes:S,now:C}),{breakdown:We,loading:Ee,refresh:Be}=jl({baseUrl:e,accessToken:$,guestAllowed:E,from:le,to:de,cacheKey:X,timeZone:x,tzOffsetMinutes:S}),{pulse:_t,refresh:gt}=Ll({baseUrl:e,accessToken:$,guestAllowed:E,period:J,timeZone:x,tzOffsetMinutes:S,now:C,cacheKey:X}),yt=h.useMemo(()=>{try{return new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit",timeZone:x||void 0}).format(C)}catch{return null}},[C,x]),[it,Mt]=h.useState(10),{entries:oe,loading:ae,refresh:ee}=cl({baseUrl:e,accessToken:$,limit:it,from:le,to:de,timeZone:x,tzOffsetMinutes:S}),ce=J==="week"||J==="month",Ce=J==="week"||J==="month",ie=h.useMemo(()=>z.filter(O=>O?.future?!1:!O?.day||!Te?!0:String(O.day)<=String(Te)),[z,Te]),{rows:Ye,from:Yt,to:Bt,loading:jt,refresh:pt}=Jr({baseUrl:e,accessToken:$,guestAllowed:E,period:J,from:le,to:de,months:24,cacheKey:X,timeZone:me,tzOffsetMinutes:Ne,now:C,sharedRows:ce?z:null,sharedRange:ce?{from:le,to:de}:null}),Ko=h.useMemo(()=>({baseUrl:e,accessToken:$,guestAllowed:E,cacheKey:X,timeZone:me,tzOffsetMinutes:Ne,now:C}),[e,$,E,X,me,Ne,C]),{daily:Ot,heatmap:lt,loading:Qo,refresh:Na}=ll({baseUrl:e,accessToken:$,guestAllowed:E,weeks:52,cacheKey:X,timeZone:x,tzOffsetMinutes:S,now:C}),{data:Ht,refresh:_a}=wi(),{displayMode:Jo}=vi();h.useEffect(()=>{Ht&&typeof Ht=="object"&&li(Ht)},[Ht]);const Ge=h.useMemo(()=>J==="day"||J==="24h"?"hour":J==="total"?"month":"day",[J]),Zo=h.useMemo(()=>Ua(Ge),[Ge]),fn="day",es=h.useMemo(()=>[...Ua(fn),{key:"total_cost_usd",label:p("daily.sort.cost.label"),title:p("daily.sort.cost.title")},{key:"cost_per_million_tokens",label:p("daily.sort.cost_per_mtok.label"),title:p("daily.sort.cost_per_mtok.title")},{key:"top_model",label:p("daily.sort.top_model.label"),title:p("daily.sort.top_model.title")}],[]),[Ke,Ma]=h.useState(()=>({key:"day",dir:"desc"}));h.useEffect(()=>{Ma(O=>!qn.has(O.key)||O.key===Ge?O:{key:Ge,dir:O.dir})},[Ge]);const $t=h.useMemo(()=>qn.has(Ke.key)&&Ke.key!==Ge?{...Ke,key:Ge}:Ke,[Ge,Ke]),mn=h.useMemo(()=>{if(J==="day"||J==="24h")return Array.isArray(Ye)?Ye.filter(re=>re?.hour&&!re?.future):[];if(J==="total"){const re=Array.isArray(Ye)?Ye.filter(ue=>ue?.month&&!ue?.future):[];return Ql(re)}const O=ie;return!O.some(re=>!re?.missing&&!re?.future)&&z.length>0?z.filter(re=>!re?.future).slice(-30).filter(re=>re?.day):O},[J,Ye,ie,z]),Ut=h.useMemo(()=>Va(mn,$t),[mn,$t]),ts=h.useMemo(()=>mn.some(O=>!O?.missing&&!O?.future),[mn]),Cn=h.useMemo(()=>{if(!Gt.has(J))return 1;const O=Math.ceil(Ut.length/Nn);return O>0?O:1},[J,Ut.length]),[Dn,hn]=h.useState(0);h.useEffect(()=>{if(!Gt.has(J)){hn(0);return}hn(O=>Math.min(O,Cn-1))},[Cn,J]),h.useEffect(()=>{Gt.has(J)&&hn(0)},[J,Ke.dir,Ke.key]);const ns=h.useMemo(()=>Gt.has(J)?Jl(Ut,Dn,Nn):Ut,[Dn,J,Ut]),ja=h.useMemo(()=>sc(he.filter(O=>!O?.future&&O?.day).slice(-30),{fallback:p("shared.placeholder.short")}),[he]),Wt=h.useMemo(()=>qn.has(Ke.key)?{...Ke,key:fn}:Ke,[Ke]),as=h.useMemo(()=>Va(ja,Wt),[ja,Wt]),rs=h.useMemo(()=>Ce?z:J==="day"||J==="24h"?Array.isArray(Ye)?Ye.filter(O=>O?.hour):[]:Ye,[z,J,Ye,Ce]),os=Ce?le:Yt,ss=Ce?de:Bt;function is(O,K){if(O?.future)return"—";if(O?.missing)return p("shared.status.unsynced");if(K==="total_tokens")return Qe(pn(O));if(K==="total_cost_usd")return et(O?.total_cost_usd,{currency:a,rate:r});if(K==="cost_per_million_tokens"){const re=Le(O?.cost_per_million_tokens);return re==null?p("shared.placeholder.short"):et(re,{currency:a,rate:r})}return K==="top_model"?O?.top_model||p("shared.placeholder.short"):Qe(O?.[K])}function ls(O){const K=O?.[Ge];if(K==null)return"";const re=String(K);if(Ge==="hour"){const[ue,Ve]=re.split("T");if(ue&&Ve)return`${ue} ${Ve.slice(0,5)}`}return re}function cs(O){const K=O?.[fn];return K==null?"":String(K)}function ds(O){Ma(K=>K.key===O?{key:O,dir:K.dir==="asc"?"desc":"asc"}:{key:O,dir:"desc"})}function us(O){return $t.key!==O?null:$t.dir==="asc"?"ascending":"descending"}function fs(O){return $t.key!==O?"":$t.dir==="asc"?"▲":"▼"}function ms(O){return Wt.key!==O?null:Wt.dir==="asc"?"ascending":"descending"}function hs(O){return Wt.key!==O?"":Wt.dir==="asc"?"▲":"▼"}const gs=h.useMemo(()=>{if(!V&&!T)return 0;const O=Number(lt?.active_days);if(Number.isFinite(O))return O;let K=0;const re=new Set,ue=($e,Ct,$n)=>{typeof $e!="string"||!$e||re.has($e)||Xn(Ct,$n)&&(re.add($e),K+=1)};if(Array.isArray(Ot))for(const $e of Ot)ue($e?.day,pn($e));const Ve=Array.isArray(lt?.weeks)?lt.weeks:[];for(const $e of Ve)for(const Ct of Array.isArray($e)?$e:[]){const $n=Er(Ct);ue(Ct?.day,$n,Ct?.level)}return K},[V,T,lt?.active_days,lt?.weeks,Ot]),[Sa,Ca]=h.useState("month"),ys=h.useCallback(O=>{O==="custom"?(Ca(K=>K==="custom"?"month":K),Y(K=>B&&xe?"custom":K),Se(!0)):(Y(O),Ca(O),Se(!1))},[B,xe]),ps=h.useCallback((O,K)=>{Z(O),je(K),Y("custom"),Se(!1)},[]),bs=h.useCallback(O=>{Se(O),!O&&F==="custom"&&!B&&Y(Sa)},[F,B,Sa]),Vt=h.useCallback(async()=>{const O=Date.now();N(O),await Promise.all([fe(),Na(),pt(),Be(),ee(),pe(),_a(),gt()]),j(O)},[pe,Na,Be,ee,pt,fe,_a,gt]);h.useEffect(()=>{if(d||H||typeof window>"u")return;const O=()=>{const re=new Date,ue=en({timeZone:x,offsetMinutes:S,date:re});if(ue){if(I.current==null){I.current=ue;return}I.current!==ue&&(I.current=ue,N(re.getTime()))}};O();const K=window.setInterval(O,tg);return typeof document<"u"&&document.addEventListener("visibilitychange",O),window.addEventListener("focus",O),()=>{window.clearInterval(K),typeof document<"u"&&document.removeEventListener("visibilitychange",O),window.removeEventListener("focus",O)}},[H,d,x,S]);const xs=h.useCallback(async()=>{v(!0);try{T&&await Fa(),await Vt()}catch(O){console.error("[DashboardPage] Refresh failed:",O)}finally{v(!1)}},[T,Vt]),Da=h.useCallback(()=>!T||P.current?null:(P.current=!0,Fa().then(rg).catch(O=>(console.error("[DashboardPage] Auto sync failed:",O),!1)).finally(()=>{P.current=!1})),[T]),Ta=h.useCallback(async()=>{const O=Da();try{await Vt(),O&&O.then(K=>{if(K)return Vt()})}catch(K){console.error("[DashboardPage] Auto refresh failed:",K)}},[Vt,Da]),ks=h.useCallback(O=>{const K=Go(O);M(K);try{window.localStorage?.setItem(qo,String(K))}catch{}},[]);h.useEffect(()=>{if(d||typeof window>"u"||w<=0)return;const O=()=>typeof document>"u"||document.visibilityState==="visible",K=async({throttle:Ve=!1}={})=>{if(!O())return;const $e=Date.now();if(!(Ve&&$e-D.current<eg)&&!L.current){L.current=!0,D.current=$e;try{await Ta()}finally{L.current=!1}}},re=window.setInterval(()=>{K()},w),ue=()=>{K({throttle:!0})};return typeof document<"u"&&document.addEventListener("visibilitychange",ue),window.addEventListener("focus",ue),()=>{window.clearInterval(re),typeof document<"u"&&document.removeEventListener("visibilitychange",ue),window.removeEventListener("focus",ue)}},[w,Ta,d]);const Tn=b||se||Pe||Qo||jt||Ee||ae,ws=h.useMemo(()=>p("shared.data_source",{source:String(ne||"edge").toUpperCase()}),[ne,n]),Pa=p("dashboard.identity.fallback"),vs=h.useMemo(()=>Pa.replace(/[^a-zA-Z0-9._-]/g,"_"),[Pa]),Ns=h.useMemo(()=>{let O=null;const K=ue=>{typeof ue!="string"||!ue||(!O||ue<O)&&(O=ue)};if(Array.isArray(Ot))for(const ue of Ot)ue?.day&&Xn(pn(ue))&&K(ue.day);const re=Array.isArray(lt?.weeks)?lt.weeks:[];for(const ue of re)for(const Ve of Array.isArray(ue)?ue:[]){if(!Ve?.day)continue;const $e=Er(Ve),Ct=Ve?.level;Xn($e,Ct)&&K(Ve.day)}return O},[lt?.weeks,Ot]),_s=h.useMemo(()=>(Array.isArray(i?.subscriptions?.items)?i.subscriptions.items:[]).map(re=>{const ue=typeof re?.tool=="string"?re.tool.trim():"",$e=(typeof re?.plan_type=="string"?re.plan_type:typeof re?.planType=="string"?re.planType:"").trim();return!ue||!$e?null:{tool:ue,planType:$e,provider:typeof re?.provider=="string"?re.provider.trim():"",product:typeof re?.product=="string"?re.product.trim():"",rateLimitTier:typeof re?.rate_limit_tier=="string"?re.rate_limit_tier.trim():typeof re?.rateLimitTier=="string"?re.rateLimitTier.trim():""}}).filter(Boolean).slice(0,6),[i]),Ms=o.jsx(bc,{heatmap:lt,timeZoneLabel:W,timeZoneShortLabel:te,hideLegend:d,defaultToLatestMonth:d}),js=h.useMemo(()=>`${le}..${de}`,[le,J,de]),Ss=p("usage.summary.total"),St=pn(U),Oa=p("shared.unit.thousand_abbrev"),$a=p("shared.unit.million_abbrev"),Wa=p("shared.unit.billion_abbrev"),qt=Le(St),Ea=qt!=null&&(u&&Math.abs(qt)>=1e9||Math.abs(qt)>=1e12),Cs=h.useMemo(()=>Ea?Ae(qt,{thousandSuffix:Oa,millionSuffix:$a,billionSuffix:Wa,decimals:1}):Qe(St),[Wa,$a,St,qt,Oa,Ea]),Ds=h.useMemo(()=>{const O=new Intl.DateTimeFormat(n||void 0,{timeZone:x,year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"}).format(new Date(_));return p("usage.summary.updated_at",{timestamp:O})},[_,n,x]),Ts=p("dashboard.core_index.collapse_label"),Ps=p("dashboard.core_index.expand_label"),Os=p("dashboard.core_index.collapse_aria"),$s=p("dashboard.core_index.expand_aria"),Ws=!d,Es=p("dashboard.screenshot.title_line1"),As=p("dashboard.screenshot.title_line2");p("shared.placeholder.short");const Fs=h.useMemo(()=>d?[]:Z0,[d]),Rs=h.useMemo(()=>[{label:p("usage.metric.total"),value:Qe(St),valueClassName:"text-white"},{label:p("usage.metric.input"),value:Qe(U?.input_tokens)},{label:p("usage.metric.output"),value:Qe(U?.output_tokens)},{label:p("usage.metric.cached_input"),value:Qe(U?.cached_input_tokens)},{label:p("usage.metric.reasoning_output"),value:Qe(U?.reasoning_output_tokens)}],[U?.cached_input_tokens,U?.input_tokens,U?.output_tokens,U?.reasoning_output_tokens,St]),Pn=h.useMemo(()=>et(U?.total_cost_usd,{currency:a,rate:r}),[U?.total_cost_usd,a,r]),Is=h.useMemo(()=>{if(Number(St||0)>0||se||ye)return null;const K=Number(q?.current_month?.totals?.billable_total_tokens||0),re=Number(q?.last_30d?.totals?.billable_total_tokens||0),ue=Number(q?.last_7d?.totals?.billable_total_tokens||0);return J==="day"&&ue>0?p("dashboard.data_health.day_empty_has_recent",{tokens:Qe(ue)}):(J==="week"||J==="custom")&&re>0?p("dashboard.data_health.period_empty_has_30d",{tokens:Qe(re)}):J==="month"&&K===0&&re>0?p("dashboard.data_health.month_empty_has_30d",{tokens:Qe(re)}):re===0&&q?p("dashboard.data_health.no_recent_data"):null},[J,q,St,ye,se]),Aa=h.useMemo(()=>so(We,{copyFn:p}),[We]),Ls=h.useMemo(()=>rc(We,{copyFn:p}),[We]),zs=h.useCallback(()=>l(!0),[]),Ys=h.useCallback(()=>l(!1),[]),Bs=Pn&&Pn!=="-"&&Aa.length>0,Hs=p("dashboard.install.cmd.sync"),On=h.useMemo(()=>p("dashboard.daily.empty",{cmd:"{{cmd}}"}),[n]),[Us,Vs]=h.useMemo(()=>{const O=On.split("{{cmd}}");return O.length===1?[On,""]:[O[0],O.slice(1).join("{{cmd}}")]},[On]);return h.useEffect(()=>{G.current||Tn||(G.current=!0,t?.())},[t,Tn]),o.jsx(J0,{copy:p,screenshotMode:d,screenshotTitleLine1:Es,screenshotTitleLine2:As,identityDisplayName:vs,identityStartDate:Ns,activeDays:gs,identitySubscriptions:_s,identityScrambleDurationMs:m,projectUsageEntries:oe,projectUsageLimit:it,setProjectUsageLimit:Mt,pulse:_t,pulseComparedAtLabel:yt,isLocalMode:T,trendRowsForDisplay:rs,trendFromForDisplay:os,trendToForDisplay:ss,trendZoomConfig:Ko,usageFrom:le,usageTo:de,period:J,trendTimeZoneLabel:Fe,activityHeatmapBlock:Ms,periodsForDisplay:Fs,setSelectedPeriod:ys,autoRefreshOptions:Xo,autoRefreshIntervalMs:w,onAutoRefreshIntervalChange:ks,customFrom:B,customTo:xe,onCustomRangeApply:ps,customRangeOpen:Me,onCustomRangeOpenChange:bs,metricsRows:Rs,summaryLabel:Ss,summaryValue:Cs,summaryUpdatedAtLabel:Ds,summaryCostValue:Pn,usageInsights:Ls,costInfoEnabled:Bs,openCostModal:zs,allowBreakdownToggle:Ws,coreIndexCollapsed:g,setCoreIndexCollapsed:y,coreIndexCollapseLabel:Ts,coreIndexExpandLabel:Ps,coreIndexCollapseAria:Os,coreIndexExpandAria:$s,refreshAll:xs,usageLoadingState:Tn,usageError:ye,dataHealthMessage:Is,rangeLabel:js,timeZoneRangeLabel:ge,usageSourceLabel:ws,fleetData:Aa,usageLimits:Ht,limitDisplayMode:Jo,hasDetailsActual:ts,dailyEmptyPrefix:Us,installSyncCmd:Hs,dailyEmptySuffix:Vs,detailsColumns:Zo,ariaSortFor:us,toggleSort:ds,sortIconFor:fs,pagedDetails:ns,dailyBreakdownRows:as,dailyBreakdownColumns:es,dailyBreakdownAriaSortFor:ms,dailyBreakdownSortIconFor:hs,dailyBreakdownDateKey:fn,detailsDateKey:Ge,renderDetailDate:ls,renderDailyBreakdownDate:cs,renderDetailCell:is,DETAILS_PAGED_PERIODS:Gt,detailsPageCount:Cn,detailsPage:Dn,setDetailsPage:hn,costModalOpen:s,closeCostModal:Ys})}export{xg as DashboardPage};
|