@ipv9/tokentracker-cli 0.39.43 → 0.39.44

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.
Files changed (40) hide show
  1. package/README.md +18 -10
  2. package/dashboard/dist/assets/{Card-LPizs_gs.js → Card-C_H8B1rI.js} +1 -1
  3. package/dashboard/dist/assets/DashboardPage-DOa3N76u.js +60 -0
  4. package/dashboard/dist/assets/{FadeIn-B8aDegoD.js → FadeIn-BE8I9B4-.js} +1 -1
  5. package/dashboard/dist/assets/{IpCheckPage-Vo2ZZXov.js → IpCheckPage-DQ9gR343.js} +1 -1
  6. package/dashboard/dist/assets/{LimitsPage-C5-Q9Q30.js → LimitsPage-Balfhw3-.js} +1 -1
  7. package/dashboard/dist/assets/LocalOnlyNotice-hxi161Wl.js +1 -0
  8. package/dashboard/dist/assets/{PopoverPopup-CJf61ahu.js → PopoverPopup-B4zbh-jA.js} +1 -1
  9. package/dashboard/dist/assets/{Select-BLGoaqgw.js → Select-DLYT4NCO.js} +1 -1
  10. package/dashboard/dist/assets/{SelectItemText-Bt02Fgwf.js → SelectItemText-DUyZrDnS.js} +1 -1
  11. package/dashboard/dist/assets/{SettingsPage-BnUJew-8.js → SettingsPage-BySJoulk.js} +1 -1
  12. package/dashboard/dist/assets/{SkillsPage-ImHg3Puy.js → SkillsPage-DpiMLTPo.js} +1 -1
  13. package/dashboard/dist/assets/{WidgetsPage-qscVE2nO.js → WidgetsPage-C6je8upG.js} +1 -1
  14. package/dashboard/dist/assets/{WrappedPage-qM_7aClE.js → WrappedPage-ByarX-vY.js} +1 -1
  15. package/dashboard/dist/assets/{arrow-up-right-CByq3BPT.js → arrow-up-right-C-WAJGZ8.js} +1 -1
  16. package/dashboard/dist/assets/{download-CTwO-YeA.js → download-BhOg_qb4.js} +1 -1
  17. package/dashboard/dist/assets/{format-4chvNBjF.js → format-Co2okzG-.js} +1 -1
  18. package/dashboard/dist/assets/limitDisplay-CPMQA7lm.js +1 -0
  19. package/dashboard/dist/assets/{main-CCPcJ7ti.js → main-q9UoIq7C.js} +12 -3
  20. package/dashboard/dist/assets/main-t7dbBL4x.css +1 -0
  21. package/dashboard/dist/assets/{mock-data-DSiJ-9lr.js → mock-data-0XiGBeUV.js} +1 -1
  22. package/dashboard/dist/assets/{use-limits-display-prefs-Dgd-bQBC.js → use-limits-display-prefs-DmEIJPtg.js} +1 -1
  23. package/dashboard/dist/assets/{use-native-settings-CjZRLdFT.js → use-native-settings-QLM3Sd2C.js} +1 -1
  24. package/dashboard/dist/assets/{useCurrency-BJRU0syn.js → useCurrency-Dtize6Tx.js} +1 -1
  25. package/dashboard/dist/index.html +2 -2
  26. package/package.json +5 -3
  27. package/src/commands/doctor.js +2 -0
  28. package/src/commands/init.js +1 -1
  29. package/src/commands/sync.js +67 -0
  30. package/src/lib/doctor.js +72 -0
  31. package/src/lib/local-api.js +306 -93
  32. package/src/lib/pricing/seed-snapshot.json +1 -1
  33. package/src/lib/queue-compact.js +220 -0
  34. package/src/lib/rollout.js +76 -12
  35. package/src/lib/skills-manager.js +2 -2
  36. package/src/lib/usage-limits.js +20 -3
  37. package/dashboard/dist/assets/DashboardPage-CkhqD3x3.js +0 -60
  38. package/dashboard/dist/assets/LocalOnlyNotice-DXVmRcyV.js +0 -1
  39. package/dashboard/dist/assets/limitDisplay-CXlkWhjp.js +0 -1
  40. package/dashboard/dist/assets/main-ZrWkoMlr.css +0 -1
@@ -0,0 +1,60 @@
1
+ import{c as an,i as Zs,f as Lr,a as zr,J as ei,u as Yr,m as ti,r as h,M as Br,b as ni,d as ai,e as Wn,j as o,L as ri,g as oi,h as si,k as ii,l as li,n as Yt,o as ht,p,q as Hr,X as la,s as ci,R,t as ca,C as Ur,P as da,B as Kn,v as Vr,w as qr,A as Xr,x as Xe,y as di,z as ui,D as fi,E as mi,F as hi}from"./main-q9UoIq7C.js";import{g as gi,i as Bt,b as Qn,c as gn,a as rn,d as en,f as mt,e as Gr,h as Kr,j as yi,k as pi,l as bi,m as xi}from"./mock-data-0XiGBeUV.js";import{g as ki,a as jn,b as wi,c as vi,d as Qr,e as An,f as Ni,h as _i,L as Mi,i as ji,u as Si,t as La}from"./limitDisplay-CPMQA7lm.js";import{u as Ci}from"./use-limits-display-prefs-DmEIJPtg.js";import{u as Nt,I as ua}from"./useCurrency-Dtize6Tx.js";import{t as ze,f as et,a as Fe,b as Qe}from"./format-Co2okzG-.js";import{u as Di,D as Ti,a as Pi,b as Oi,c as $i,d as Ei,e as Wi,P as Jn,f as Zn,g as ea,h as ta,i as na,L as Ai}from"./PopoverPopup-B4zbh-jA.js";import{C as on}from"./Card-C_H8B1rI.js";import{S as Fi}from"./Select-DLYT4NCO.js";import{F as lt}from"./FadeIn-BE8I9B4-.js";import"./SelectItemText-DUyZrDnS.js";const Ri=[["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"}]],Jr=an("maximize-2",Ri);const Ii=[["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"}]],Li=an("pause",Ii);const zi=[["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"}]],Yi=an("play",zi);const Bi=[["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"}]],Hi=an("rotate-ccw",Bi);const Ui=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],Zr=an("terminal",Ui);function Vi(...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=Zs(r,s,l);return t?i(a):i}function qi(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=za(e.get()),m=za(s);if(d===m){c();return}const g=r?r.getGeneratorVelocity():e.getVelocity();c(),r=new ei({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(Fn(g,i)),Lr.postRender(f)},c),zr(t)){let d=n.skipInitialAnimation===!0;const m=t.on("change",y=>{d?(d=!1,e.jump(Fn(y,i),!1)):e.set(Fn(y,i))}),g=e.on("destroy",m);return()=>{m(),g()}}return c}function Fn(e,t){return t?e+t:e}function za(e){return typeof e=="number"?e:parseFloat(e)}function fa(e){const t=Yr(()=>ti(e)),{isStatic:n}=h.useContext(Br);if(n){const[,a]=h.useState(e);h.useEffect(()=>t.on("change",a),[])}return t}function eo(e,t){const n=fa(t()),a=()=>n.set(t());return a(),ni(()=>{const r=()=>Lr.preRender(a,!1,!0),s=e.map(l=>l.on("change",r));return()=>{s.forEach(l=>l()),ai(a)}}),n}function Xi(e){Wn.current=[],e();const t=eo(Wn.current,e);return Wn.current=void 0,t}function to(e,t,n,a){if(typeof e=="function")return Xi(e);const s=typeof t=="function"?t:Vi(t,n,a),l=Array.isArray(e)?Ya(e,s):Ya([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 Ya(e,t){const n=Yr(()=>[]);return eo(e,()=>{n.length=0;const a=e.length;for(let r=0;r<a;r++)n[r]=e[r].get();return t(n)})}function Gi(e,t={}){const{isStatic:n}=h.useContext(Br),a=()=>zr(e)?e.get():e;if(n)return to(a);const r=fa(a());return h.useInsertionEffect(()=>qi(r,e,t),[r,JSON.stringify(t)]),r}function Ki(e,t={}){return Gi(e,{type:"spring",...t})}function Qi(){return o.jsxs(ri,{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 Ji({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(Qi,{}),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 Zi({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 el=h.forwardRef(function(t,n){const{render:a,className:r,disabled:s=!1,nativeButton:l=!0,...i}=t,{store:c}=Di(),u=c.useState("open");function f(y){u&&c.setOpen(!1,ii(li,y.nativeEvent))}const{getButtonProps:d,buttonRef:m}=oi({disabled:s,native:l}),g=h.useMemo(()=>({disabled:s}),[s]);return si("button",t,{state:g,ref:[n,m],props:[{onClick:f},i,d]})});var tl={};function nl(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 al({mv:e,digit:t,height:n}){const a=to(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 rl(e){const t=Math.round(e),n=1e-9*Math.max(1,Math.abs(e));return Math.abs(e-t)<n?t:e}function ol(e,t){const n=e/t;return Math.floor(rl(n))}function sl(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 il({place:e,value:t,height:n,digitStyle:a,shouldReduceMotion:r,isLed:s}){if(typeof e!="number"){const u=nl(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=ol(t,e),i=fa(0),c=Ki(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(al,{mv:c,digit:f,height:n},f))})}function ll({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:N,bottomGradientStyle:x,variant:j="default"}){const k=j==="led",_=String(t??e??""),S=h.useMemo(()=>Array.isArray(r)&&r.length?r:sl(_),[r,_]),D=typeof navigator<"u"&&/jsdom/i.test(navigator.userAgent||"")||typeof process<"u"&&tl?.VITEST==="true",I=Yt()||D,O=Number.isFinite(Number(e))?Math.abs(Number(e)):0,C=n+a;return I?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:_}):_}):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:S.map((W,Z)=>o.jsx(il,{place:W,value:O,height:C,digitStyle:m,shouldReduceMotion:I,isLed:k},`${String(W)}-${Z}`))}),o.jsxs("span",{style:{pointerEvents:"none",position:"absolute",inset:0,display:"flex",flexDirection:"column",justifyContent:"space-between"},children:[o.jsx("span",{style:N??{height:g,background:`linear-gradient(to bottom, ${y}, ${b})`}}),o.jsx("span",{style:x??{height:g,background:`linear-gradient(to top, ${y}, ${b})`}})]})]})}var cl={};const dl=new Set([",","."," "]),ul=typeof navigator<"u"&&/jsdom/i.test(navigator.userAgent||"")||typeof process<"u"&&cl?.VITEST==="true";function fl({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 ml({value:e,fontSize:t=56,className:n=""}){const a=Yt()||ul,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)=>dl.has(l)?o.jsx("span",{className:"tt-flap-sep","aria-hidden":"true",children:l},i):o.jsx(fl,{char:l,reduceMotion:a,index:i},i))})}function hl({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(()=>gi({weeks:a,weekStartsOn:r,now:c}),[c,a,r]),[f,d]=h.useState([]),[m,g]=h.useState(null),[y,b]=h.useState("edge"),[N,x]=h.useState(!1),[j,k]=h.useState(null),_=Bt(),S=!n,D=h.useMemo(()=>{if(!s)return null;const B=rn({timeZone:l,offsetMinutes:i});return`tokentracker.heatmap.${s}.${a}.${r}.${B}`},[s,l,i,a,r]),I=h.useCallback(()=>{if(!D||typeof window>"u")return null;try{const B=window.localStorage.getItem(D);if(!B)return null;const T=JSON.parse(B);return!T||!T.heatmap?null:T}catch{return null}},[D]),O=h.useCallback(B=>{if(!(!D||typeof window>"u"))try{window.localStorage.setItem(D,JSON.stringify(B))}catch{}},[D]),C=h.useCallback(()=>{if(!(!D||typeof window>"u"))try{window.localStorage.removeItem(D)}catch{}},[D]),W=h.useCallback(async()=>{x(!0),k(null);try{try{const z=await ki({baseUrl:e,accessToken:t,weeks:a,to:u.to,weekStartsOn:r,timeZone:l,tzOffsetMinutes:i}),v=Array.isArray(z?.weeks)?z.weeks:[];if(!v.length&&S){const L=I();if(L?.heatmap){g(L.heatmap),d(L.daily||[]),b("cache");return}}if(!v.some(L=>(Array.isArray(L)?L:[]).some(M=>M&&Number.isFinite(Number(M.level))))&&v.length){const L=[];for(const X of v)for(const F of Array.isArray(X)?X:[])F?.day&&L.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 M=Qn({dailyRows:L,weeks:a,to:z?.to||u.to,weekStartsOn:r});d(L),g({...M,week_starts_on:r,active_days:L.filter(X=>Number(X?.billable_total_tokens??X?.total_tokens)>0).length,streak_days:gn({dailyRows:L,to:z?.to||u.to})}),b("client"),S?O({heatmap:{...M,week_starts_on:r,active_days:L.filter(X=>Number(X?.billable_total_tokens??X?.total_tokens)>0).length,streak_days:gn({dailyRows:L,to:z?.to||u.to})},daily:L,fetchedAt:new Date().toISOString()}):C();return}g(z||null),d([]),b("edge"),z&&S?O({heatmap:z,daily:[],fetchedAt:new Date().toISOString()}):S||C();return}catch(z){const v=z,w=v?.status??v?.statusCode;if(w===401||w===403)throw z}const B=await jn({baseUrl:e,accessToken:t,from:u.from,to:u.to,timeZone:l,tzOffsetMinutes:i}),T=Array.isArray(B?.data)?B.data:[];d(T);const E=Qn({dailyRows:T,weeks:a,to:u.to,weekStartsOn:r});g({...E,week_starts_on:r,active_days:T.filter(z=>Number(z?.billable_total_tokens??z?.total_tokens)>0).length,streak_days:gn({dailyRows:T,to:u.to})}),b("client"),S?O({heatmap:{...E,week_starts_on:r,active_days:T.filter(z=>Number(z?.billable_total_tokens??z?.total_tokens)>0).length,streak_days:gn({dailyRows:T,to:u.to})},daily:T,fetchedAt:new Date().toISOString()}):C()}catch(B){if(S){const T=I();if(T?.heatmap)g(T.heatmap),d(T.daily||[]),b("cache"),k(null);else{const E=B;k(E?.message||String(E)),d([]),g(null),b("edge")}}else{const T=B;k(T?.message||String(T)),d([]),g(null),b("edge")}}finally{x(!1)}},[t,e,_,n,S,u.from,u.to,I,l,i,r,a,C,O]);return h.useEffect(()=>{if(!S)C(),d([]),k(null),g(null),b("edge");else{const B=I();B?.heatmap&&(g(B.heatmap),d(B.daily||[]),b("cache"))}W()},[t,_,I,W,n,S,C]),{range:u,daily:f,heatmap:m,source:_?"mock":y==="client"?"edge":y,loading:N,error:j,refresh:W}}function gl({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([]),[m,g]=h.useState(!1),[y,b]=h.useState(null),N=h.useCallback(async()=>{g(!0),b(null);try{const x=await wi({baseUrl:e,accessToken:t,limit:n,from:a,to:r,source:s,timeZone:l,tzOffsetMinutes:i});u(Array.isArray(x?.entries)?x.entries:[]),d(Array.isArray(x?.unattributed_sources)?x.unattributed_sources:[])}catch(x){const j=x?.message||String(x);b(j),u([]),d([])}finally{g(!1)}},[t,e,a,n,s,l,r,i]);return h.useEffect(()=>{N()},[N]),{entries:c,unattributedSources:f,loading:m,error:y,refresh:N}}const yl=24;function no({baseUrl:e,accessToken:t,guestAllowed:n=!1,period:a,from:r,to:s,months:l=yl,cacheKey:i,timeZone:c,tzOffsetMinutes:u,now:f,sharedRows:d,sharedRange:m}={}){const[g,y]=h.useState([]),[b,N]=h.useState(()=>({from:r,to:s})),[x,j]=h.useState("edge"),[k,_]=h.useState(null),[S,D]=h.useState(!1),[I,O]=h.useState(null),C=Bt(),W=!n&&!C,Z=Array.isArray(d),B=m?.from||r,T=m?.to||s,E=h.useMemo(()=>a==="day"||a==="24h"?"hourly":a==="total"?"monthly":"daily",[a]),z=(()=>{if(!i)return null;const F=pl(e)||"default",U=rn({timeZone:c,offsetMinutes:u});if(E==="hourly"){const K=a==="24h"?`${r||""}.${s||""}`:s||r||"day";return`tokentracker.trend.${i}.${F}.hourly.${K}.${U}`}if(E==="monthly")return`tokentracker.trend.${i}.${F}.monthly.${l}.${s||"today"}.${U}`;const H=`${r||""}.${s||""}`;return`tokentracker.trend.${i}.${F}.daily.${H}.${U}`})(),v=h.useCallback(()=>{if(!z||typeof window>"u")return null;try{const F=window.localStorage.getItem(z);if(!F)return null;const U=JSON.parse(F);return!U||!Array.isArray(U.rows)?null:U}catch{return null}},[z]),w=h.useCallback(F=>{if(!(!z||typeof window>"u"))try{window.localStorage.setItem(z,JSON.stringify(F))}catch{}},[z]),L=h.useCallback(()=>{if(!(!z||typeof window>"u"))try{window.localStorage.removeItem(z)}catch{}},[z]),M=h.useCallback(async()=>{if(Z){y(Array.isArray(d)?d:[]),N({from:B,to:T}),j("shared"),_(null),D(!1),O(null);return}D(!0),O(null);try{let F;E==="hourly"?F=await bl({baseUrl:e,accessToken:t,from:r,to:s,period:a,timeZone:c,tzOffsetMinutes:u,now:f}):E==="monthly"?F=await vi({baseUrl:e,accessToken:t,months:l,to:s,timeZone:c,tzOffsetMinutes:u}):F=await jn({baseUrl:e,accessToken:t,from:r,to:s,timeZone:c,tzOffsetMinutes:u});const U=F?.from||r||F?.day||null,H=F?.to||s||F?.day||null;let K=Array.isArray(F?.data)?F.data:[];E==="daily"?K=Rn(K,U||r,H||s,{timeZone:c,offsetMinutes:u,now:f}):E==="hourly"?K=xn(K,U||r||F?.day,H||s,{period:a,timeZone:c,offsetMinutes:u,now:f}):E==="monthly"&&(K=In(K,{timeZone:c,offsetMinutes:u,now:f}));const me=new Date().toISOString();y(K),N({from:U,to:H}),j("edge"),_(me),W?w({rows:K,from:U,to:H,mode:E,fetchedAt:me}):L()}catch(F){if(W){const U=v();if(U?.rows){let H=E==="daily"?Rn(U.rows||[],U.from||r,U.to||s,{timeZone:c,offsetMinutes:u,now:f}):E==="hourly"?xn(U.rows||[],U.from||r||U.day||s,U.to||s,{period:a,timeZone:c,offsetMinutes:u,now:f}):Array.isArray(U.rows)?U.rows:[];E==="monthly"&&(H=In(H,{timeZone:c,offsetMinutes:u,now:f})),y(H),N({from:U.from||r,to:U.to||s}),j("cache"),_(U.fetchedAt||null),O(null)}else{y([]),N({from:r,to:s}),j("edge"),_(null);const H=F;O(H?.message||String(H))}}else{y([]),N({from:r,to:s}),j("edge"),_(null);const U=F;O(U?.message||String(U))}}finally{D(!1)}},[t,e,r,C,n,W,E,l,a,v,Z,B,d,T,c,s,u,f,L,w]);h.useEffect(()=>{if(Z){y(Array.isArray(d)?d:[]),N({from:B,to:T}),j("shared"),_(null),D(!1),O(null);return}if(!W)L(),y([]),N({from:r,to:s}),O(null),j("edge"),_(null);else{const F=v();if(F?.rows){let U=E==="daily"?Rn(F.rows||[],F.from||r,F.to||s,{timeZone:c,offsetMinutes:u,now:f}):E==="hourly"?xn(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"&&(U=In(U,{timeZone:c,offsetMinutes:u,now:f})),y(U),N({from:F.from||r,to:F.to||s}),j("cache"),_(F.fetchedAt||null)}}M()},[t,C,v,M,Z,B,d,T,n,W,L,E,r,s,c,u,f,a]);const X=C?"mock":x;return{rows:g,from:b.from||r,to:b.to||s,source:X,fetchedAt:k,loading:S,error:I,refresh:M}}function pl(e){try{return new URL(e).host}catch{return null}}async function bl({baseUrl:e,accessToken:t,from:n,to:a,period:r,timeZone:s,tzOffsetMinutes:l,now:i}){const c=r==="24h"?ao(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:xn(d,m,g,{period:r,timeZone:s,offsetMinutes:l,now:i})}}function zt(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 ma(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function ao(e,t){const n=zt(e||t),a=zt(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=ma(s,1))r.push(mt(s));return r}const ro=["total_tokens","billable_total_tokens","input_tokens","cached_input_tokens","cache_creation_input_tokens","output_tokens","reasoning_output_tokens","conversation_count"];function Rn(e,t,n,{timeZone:a,offsetMinutes:r,now:s}={}){const l=zt(t),i=zt(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=zt(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=ma(y,1)){const b=mt(y),N=m.get(b),x=y.getTime()>d;if(N){g.push({...N,missing:!1,future:x});continue}g.push({day:b,total_tokens:null,billable_total_tokens:null,input_tokens:null,cached_input_tokens:null,output_tokens:null,reasoning_output_tokens:null,missing:!x,future:x})}return g}function xl(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 kl(e){if(!e||typeof e!="object")return!1;const t=e.models;return t&&typeof t=="object"&&Object.keys(t).length>0?!1:ro.every(n=>e[n]==null)}function wl(e,t,n){const a={...e,hour:t,missing:!1,future:n};if(!n&&kl(e))for(const r of ro)a[r]=0;return a}function vl(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 Nl(e,t,{timeZone:n,offsetMinutes:a}={}){const r=vl(e,t);if(!n||typeof Intl>"u"||!Intl.DateTimeFormat)return r;const s=zt(e);if(!s)return r;const l=s.getUTCFullYear()*1e4+(s.getUTCMonth()+1)*100+s.getUTCDate(),i=s.getTime()-2160*60*1e3,c=ma(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 _l(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=kn(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=kn(y,i);b&&f.set(b.slot,g)}const d=[],m=Nl(s,u,{timeZone:n,offsetMinutes:a});for(let g=0;g<m.length;g++){const y=m[g],b=kn(y,i),N=b?b.slot:c?g:g*2,x=f.get(N);let j=!1;if(l){const k=l.year*1e4+l.month*100+l.day,_=b?.dayNum??Number(s.replace(/-/g,""));if(_>k)j=!0;else if(_===k){const S=l.hour*2+(l.minute>=30?1:0);j=N>S}}x?d.push(wl(x,y,j)):d.push(xl(y,j))}return d}function xn(e,t,n,{period:a,timeZone:r,offsetMinutes:s,now:l}={}){const i=a==="24h"?ao(t,n):[n||t].filter(Boolean).map(String),u=Array.from(new Set(i)).flatMap(d=>_l(Ml(e||[],d),d,{timeZone:r,offsetMinutes:s,now:l})),f=jl(u,{timeZone:r,offsetMinutes:s,now:l});return a!=="24h"?f:Sl(f,{timeZone:r,offsetMinutes:s,now:l})}function Ml(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 jl(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=kn(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 Sl(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=oo({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=Cl(i?.hour||i?.label);return c!=null&&c>=l&&c<=s})}function In(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=Dl(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((j,k)=>(k.type&&k.value&&(j[k.type]=k.value),j),{}),g=Number(m.year),y=Number(m.month),b=Number(m.day),N=Number(m.hour),x=Number(m.minute);if(Number.isFinite(g)&&Number.isFinite(y)&&Number.isFinite(b)&&Number.isFinite(N)&&Number.isFinite(x)){const j=N*2+(x>=30?1:0);return{year:g,month:y,day:b,hour:N,minute:x,dayNum:g*1e4+y*100+b,slot:j}}}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(),N=y*2+(b>=30?1:0);return{year:d,month:m,day:g,hour:y,minute:b,dayNum:d*1e4+m*100+g,slot:N}}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 kn(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 oo({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 Cl(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:oo({year:l,month:i,day:c,hour:u,minute:f})}function Dl(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 Ba({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),[N,x]=h.useState("edge"),[j,k]=h.useState(null),[_,S]=h.useState(!1),[D,I]=h.useState(null),O=Bt(),C=!n&&!O,W=(()=>{if(!l)return null;const v=Tl(e)||"default",w=s?"daily":"summary",L=rn({timeZone:i,offsetMinutes:c});return`tokentracker.usage.${l}.${v}.${a}.${r}.${w}.${L}`})(),Z=h.useCallback(()=>{if(!W||typeof window>"u")return null;try{const v=window.localStorage.getItem(W);if(!v)return null;const w=JSON.parse(v);return!w||!w.summary?null:w}catch{return null}},[W]),B=h.useCallback(v=>{if(!(!W||typeof window>"u"))try{window.localStorage.setItem(W,JSON.stringify(v))}catch{}},[W]),T=h.useCallback(()=>{if(!(!W||typeof window>"u"))try{window.localStorage.removeItem(W)}catch{}},[W]),E=h.useCallback(async()=>{S(!0),I(null);try{let v=null,w=null;if(s){const[U,H]=await Promise.allSettled([jn({baseUrl:e,accessToken:t,from:a,to:r,timeZone:i,tzOffsetMinutes:c}),An({baseUrl:e,accessToken:t,from:a,to:r,timeZone:i,tzOffsetMinutes:c,rolling:!0})]);if(U.status==="rejected")throw U.reason;v=U.value,w=H.status==="fulfilled"?H.value:null}else w=await An({baseUrl:e,accessToken:t,from:a,to:r,timeZone:i,tzOffsetMinutes:c,rolling:!0});let L=s&&Array.isArray(v?.data)?v.data:[];s&&(L=zn(L,a,r,{timeZone:i,offsetMinutes:c,now:u}));let M=w?.totals||v?.summary?.totals||null,X=w?.rolling||v?.summary?.rolling||null;if(s&&!M&&!w)try{const U=await An({baseUrl:e,accessToken:t,from:a,to:r,timeZone:i,tzOffsetMinutes:c,rolling:!0});M=U?.totals||null,X=U?.rolling||X}catch{}const F=new Date().toISOString();d(L),g(M),b(X),x("edge"),k(F),M&&C?B({summary:M,rolling:X,daily:L,from:a,to:r,includeDaily:s,fetchedAt:F}):C||T()}catch(v){if(C){const w=Z();if(w?.summary){g(w.summary),b(w.rolling||null);const L=Array.isArray(w.daily)?w.daily:[],M=s?zn(L,w.from||a,w.to||r,{timeZone:i,offsetMinutes:c,now:u}):L;d(M),x("cache"),k(w.fetchedAt||null),I(null)}else{const L=v;I(L?.message||String(L)),d([]),g(null),b(null),x("edge"),k(null)}}else{const w=v;I(w?.message||String(w)),d([]),g(null),b(null),x("edge"),k(null)}}finally{S(!1)}},[t,e,a,s,O,n,C,u,Z,i,r,c,T,B]);return h.useEffect(()=>{if(!C)T(),d([]),g(null),b(null),I(null),x("edge"),k(null);else{const v=Z();if(v?.summary){g(v.summary),b(v.rolling||null);const w=Array.isArray(v.daily)?v.daily:[],L=s?zn(w,v.from||a,v.to||r,{timeZone:i,offsetMinutes:c,now:u}):w;d(L),x("cache"),k(v.fetchedAt||null)}}E()},[t,O,Z,E,n,C,T]),{daily:f,summary:m,rolling:y,source:O?"mock":N,fetchedAt:j,loading:_,error:D,refresh:E}}function Tl(e){try{return new URL(e).host}catch{return null}}function Ln(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 Pl(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function zn(e,t,n,{timeZone:a,offsetMinutes:r,now:s}={}){const l=Ln(t),i=Ln(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=Ln(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=Pl(y,1)){const b=mt(y),N=m.get(b),x=y.getTime()>d;if(N){g.push({...N,missing:!1,future:x});continue}g.push({day:b,total_tokens:null,billable_total_tokens:null,input_tokens:null,cached_input_tokens:null,output_tokens:null,reasoning_output_tokens:null,missing:!x,future:x})}return g}function Ol({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),N=Bt(),x=!n,j=h.useMemo(()=>{if(!s)return null;const O=$l(e)||"default",C=rn({timeZone:l,offsetMinutes:i});return`tokentracker.modelBreakdown.${s}.${O}.${a}.${r}.${C}`},[e,s,a,l,r,i]),k=h.useCallback(()=>{if(!j||typeof window>"u")return null;try{const O=window.localStorage.getItem(j);if(!O)return null;const C=JSON.parse(O);return!C||!C.breakdown?null:C}catch{return null}},[j]),_=h.useCallback(O=>{if(!(!j||typeof window>"u"))try{window.localStorage.setItem(j,JSON.stringify(O))}catch{}},[j]),S=h.useCallback(()=>{if(!(!j||typeof window>"u"))try{window.localStorage.removeItem(j)}catch{}},[j]),D=h.useCallback(async()=>{g(!0),b(null);try{const O=await Ni({baseUrl:e,accessToken:t,from:a,to:r,timeZone:l,tzOffsetMinutes:i});u(O||null),d("edge"),O&&x?_({breakdown:O,fetchedAt:new Date().toISOString()}):x||S()}catch(O){if(x){const C=k();if(C?.breakdown)u(C.breakdown),d("cache"),b(null);else{u(null),d("edge");const W=O;b(W?.message||String(W))}}else{u(null),d("edge");const C=O;b(C?.message||String(C))}}finally{g(!1)}},[t,e,a,N,n,x,k,l,r,i,S,_]);return h.useEffect(()=>{if(!x)S(),u(null),d("edge"),b(null);else{const O=k();O?.breakdown&&(u(O.breakdown),d("cache"))}D()},[t,N,k,D,n,x,S]),{breakdown:c,source:N?"mock":f,loading:m,error:y,refresh:D}}function $l(e){try{return new URL(e).host}catch{return null}}const aa="tokentracker.plan_prices.v1";function El(){if(typeof window>"u")return{};try{const e=window.localStorage.getItem(aa);if(!e)return{};const t=JSON.parse(e);if(!t||typeof t!="object"||Array.isArray(t))return{};const n={};for(const[a,r]of Object.entries(t)){const s=Number(r);Number.isFinite(s)&&s>0&&(n[String(a).toLowerCase()]=s)}return n}catch{return{}}}function Wl(){const[e,t]=h.useState({});h.useEffect(()=>{t(El())},[]);const n=h.useCallback((a,r)=>{t(s=>{const l=String(a||"").toLowerCase();if(!l)return s;const i={...s},c=Number(r);Number.isFinite(c)&&c>0?i[l]=c:delete i[l];try{window.localStorage.setItem(aa,JSON.stringify(i))}catch{}return i})},[]);return{planPrices:e,setPlanPrice:n,PLAN_PRICES_STORAGE_KEY:aa}}function Re(e){const t=typeof e=="number"?e:Number(e);return Number.isFinite(t)?t:0}function Al(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 Lt(e,t){let n=0,a=0;if(Array.isArray(e))for(const r of e){const s=Al(r);s==null||s>t||(n+=Re(r.total_tokens),a+=Re(r.total_cost_usd))}return{tokens:n,cost:a}}function vn(...e){return e.reduce((t,n)=>({tokens:t.tokens+Re(n?.tokens),cost:t.cost+Re(n?.cost)}),{tokens:0,cost:0})}function Ha(e){if(!Array.isArray(e)||e.length===0)return null;const t=vn(...e);return{tokens:t.tokens/e.length,cost:t.cost/e.length}}function Yn(e){if(!e)return null;const t=Re(e.tokens);return t<=0?null:Re(e.cost)/(t/1e6)}function Ua(e,t){return e==null||t==null||!Number.isFinite(e)||!Number.isFinite(t)||t===0?null:(e-t)/t}function Fl({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:Ua(i,c),deltaVsAvg:n?Ua(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(Yn(e),Yn(t),Yn(n),null)}}const so=864e5;function ra(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 Nn(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=ra(e);return n==null?null:Nn(n+t*so)}function Rl(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 Il(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)?Nn(a.getTime()+n*6e4):Nn(a.getTime())}const Ll=e=>Number(e?.total_tokens??0)||0,zl=e=>Number(e?.total_cost_usd??0)||0;function Va(e,t,n){let a={tokens:0,cost:0};const r=t?ra(t):null,s=n?ra(n):null;if(r==null||s==null||r>s)return a;for(let l=r;l<=s;l+=so){const i=e.get(Nn(l));i&&(a=vn(a,i))}return a}function Yl(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 Bl(e,t){const n=new Map;return e.forEach((a,r)=>{n.set(a,Array.isArray(t[r]?.data)?t[r].data:[])}),n}function Hl(e){const t=new Map;for(const n of Array.isArray(e?.data)?e.data:[])n?.day&&t.set(String(n.day),{tokens:Ll(n),cost:zl(n)});return t}function Ul(e,t,n){return{current:Lt(t.get(e.todayKey),n),prev:e.prevKey?Lt(t.get(e.prevKey),n):null,trailingAvg:Ha(e.trailingKeys.map(a=>Lt(t.get(a),n))),trailingFull:Ha(e.trailingKeys.map(a=>Lt(t.get(a),23)))}}function Vl(e,t,n,a){const r=vn(Va(n,e.curStartKey,kt(e.todayKey,-1)),Lt(t.get(e.todayKey),a)),s=vn(Va(n,e.prevStartKey,e.prevBoundaryKey?kt(e.prevBoundaryKey,-1):null),e.prevBoundaryKey?Lt(t.get(e.prevBoundaryKey),a):{tokens:0,cost:0});return{current:r,prev:s,trailingAvg:null}}function ql(e){try{return new URL(e).host}catch{return null}}function Xl({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()),N=Il(b,{timeZone:r,offsetMinutes:s}),x=Rl(b,{timeZone:r,offsetMinutes:s}),j=Bt(),k=!n&&!j,_=(()=>{if(!i)return null;const C=ql(e)||"default",W=rn({timeZone:r,offsetMinutes:s});return`tokentracker.pulse.${i}.${C}.${a}.${N}.${W}`})(),S=h.useCallback(()=>{if(!_||typeof window>"u")return null;try{const C=window.localStorage.getItem(_);return C?JSON.parse(C):null}catch{return null}},[_]),D=h.useCallback(C=>{if(!(!_||typeof window>"u"))try{window.localStorage.setItem(_,JSON.stringify(C))}catch{}},[_]),I=h.useCallback(()=>{const C=S();return C&&C.cutoffHour===x?C:null},[S,x]),O=h.useCallback(async()=>{const C=Yl(a,N);if(!C){u(null),g(null);return}const W=++y.current;d(!0),g(null);try{const Z=await Promise.all(C.hourlyDays.map(z=>Qr({baseUrl:e,accessToken:t,day:z,timeZone:r,tzOffsetMinutes:s}))),B=Bl(C.hourlyDays,Z);let T;if(C.kind==="day")T=Ul(C,B,x);else{const z=await jn({baseUrl:e,accessToken:t,from:C.dailyFrom,to:C.dailyTo,timeZone:r,tzOffsetMinutes:s});T=Vl(C,B,Hl(z),x)}const E=Fl({...T,period:a});if(W!==y.current)return;u(E),k&&E&&D({pulse:E,todayKey:N,cutoffHour:x,fetchedAt:new Date().toISOString()})}catch(Z){if(W!==y.current)return;const B=I();B?.pulse&&u(B.pulse),g(Z?.message?String(Z.message):"Failed to load pulse")}finally{W===y.current&&d(!1)}},[e,t,n,a,r,s,N,x,k,j,I,D]);return h.useEffect(()=>{if(a==="total"||a==="custom"){u(null);return}const C=I();C?.pulse&&u(C.pulse)},[_,a,x]),h.useEffect(()=>{O()},[O]),{pulse:c,loading:f,error:m,refresh:O}}const io=new Set(["day","hour","month"]);function Gl(e){return io.has(e)}function qa(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 Kl(e,t){const n=qa(e),a=qa(t);if(n&&a)return n.length!==a.length?n.length<a.length?-1:1:n===a?0:n<a?-1:1;const r=ze(e),s=ze(t);return r==null&&s==null?0:r==null?1:s==null?-1:r===s?0:r<s?-1:1}function lo(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 Ql(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 Jl(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 Zl(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 ec(e,t,n){const a=n==="hour"?Zl:n==="month"?Jl:Ql,r=a(e),s=a(t);return r!=null&&s!=null?r===s?0:r<s?-1:1:lo(e,t)}function co(e,{key:t,dir:n}){const a=n==="asc"?1:-1,r=Array.isArray(e)?e:[],s=io.has(t)?(i,c)=>ec(i,c,t):t==="top_model"?lo:Kl,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 tc(){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 Xa(e){const t=Gl(e)?e:"day";return tc().map((n,a)=>a===0?{...n,key:t}:n)}function Ga(e,{key:t,dir:n}){return co(e,{key:t,dir:n})}const _n=12,nc=["total_tokens","billable_total_tokens","input_tokens","cached_input_tokens","cache_creation_input_tokens","output_tokens","reasoning_output_tokens"];function ac(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 rc(e){return nc.some(t=>ac(e?.[t]))}function oc(e){const t=Array.isArray(e)?e:[];if(!t.length)return[];const n=co(t,{key:"month",dir:"asc"}),a=n.findIndex(r=>r?.month&&rc(r));return a===-1?t:n.slice(a)}function sc(e,t,n=_n){const a=Array.isArray(e)?e:[],r=Number.isFinite(n)&&n>0?n:_n,l=(Number.isFinite(t)&&t>=0?Math.floor(t):0)*r;return a.slice(l,l+r)}function ic(e){if(typeof e!="string")return null;const t=e.trim();return t?t.toLowerCase():null}function lc(e){const t=ic(e?.model_id);return t||null}function cc(e,t){return e?.model?String(e.model):t}const dc=new Set(["curated:fuzzy","litellm:fuzzy","litellm:prefix-strip"]),uc=new Set(["miss","unattributed","empty"]);function fc(e){const t=String(e||"").toLowerCase();return t.includes("free")||t.includes("hy3-preview")||/^glm-[\d.]+-flash(?![a-z])/.test(t)}function Mn(e,t=0){const n=ze(e?.billable_total_tokens),a=ze(e?.total_tokens);return n!=null&&n>0?n:a!=null&&a>0?a:n??a??t}function uo(e,{copyFn:t}={}){const n=typeof t=="function"?t:l=>l,r=(Array.isArray(e?.sources)?e.sources:[]).map(l=>{const i=Mn(l?.totals),c=ze(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=Mn(y?.totals);if(!Number.isFinite(b)||b<=0)return null;const N=l.totalTokens>0?Math.round(b/l.totalTokens*1e3)/10:0,x=cc(y,n("shared.placeholder.short")),j=lc(y),k=ze(y?.totals?.total_cost_usd),_=k??(l.totalCost>0&&l.totalTokens>0?b/l.totalTokens*l.totalCost:null),S=typeof y?.pricing_tier=="string"?y.pricing_tier:null,D=S?uc.has(S)&&b>0:b>0&&(_==null||_<=0)&&!fc(x),I=!!(S&&dc.has(S));return{id:j,name:x,share:N,usage:b,cost:_,pricingTier:S,pricingMissing:D,pricingFuzzy:I}}).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 mc(e,{copyFn:t}={}){const a=uo(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 hc(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 gc(e,{fallback:t="—"}={}){const n=(Array.isArray(e)?e:[]).map(s=>{const l=Mn(s),i=ze(s?.total_cost_usd)??0,c=Number.isFinite(l)&&l>0?i/(l/1e6):null;return{...s,cost_per_million_tokens:c,top_model:hc(s,t)}}),a=n.reduce((s,l)=>{const i=ze(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=ze(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 yc(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 pc(e,t,n,a,r){return tt(e,t,n,a,r)}function fo(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 Ka({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,N]=h.useState(1),x=a?13:10.5,j=h.useMemo(()=>{const A=[],Y=e.length;if(Y===0||!a)return[];for(let V=0;V<=7;V++){const q=(V-3.5)*x,ne=tt(-Y/2*x,q,0,d.yaw,d.pitch),se=tt(Y/2*x,q,0,d.yaw,d.pitch);A.push({d:`M${ne.x},${ne.y} L${se.x},${se.y}`,key:`horiz-${V}`})}for(let V=0;V<=Y;V+=4){const q=(V-Y/2)*x,ne=tt(q,-3.5*x,0,d.yaw,d.pitch),se=tt(q,3.5*x,0,d.yaw,d.pitch);A.push({d:`M${ne.x},${ne.y} L${se.x},${se.y}`,key:`vert-${V}`})}if(Y%4!==0){const V=(Y-Y/2)*x,q=tt(V,-3.5*x,0,d.yaw,d.pitch),ne=tt(V,3.5*x,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,x,a]);h.useEffect(()=>{s&&(s.current={reset:()=>{m({yaw:u,pitch:f}),y(!1),N(1),z()},toggleAutoRotate:A=>{y(A)}})},[s]);const k=h.useRef(null),_=h.useRef(null),S=h.useRef(!1),D=h.useRef({x:0,y:0}),I=h.useRef({yaw:u,pitch:f}),O=h.useRef({x:0,y:0}),C=h.useRef({x:0,y:0,time:0}),W=h.useRef(null),[Z,B]=h.useState(0),T=h.useRef(null),E=h.useRef(!0);h.useEffect(()=>(E.current=!0,()=>{E.current=!1}),[]);const z=()=>{T.current&&cancelAnimationFrame(T.current),B(0);const A=performance.now(),Y=1200,V=q=>{if(!E.current)return;const ne=q-A,se=Math.min(1,ne/Y),ye=1-Math.pow(1-se,3);B(ye),se<1?T.current=requestAnimationFrame(V):T.current=null};T.current=requestAnimationFrame(V)};h.useEffect(()=>(z(),()=>{T.current&&cancelAnimationFrame(T.current)}),[a]),h.useEffect(()=>{if(!g||S.current||typeof window>"u"||typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;let Y;const V=()=>{if(typeof document<"u"&&document.visibilityState==="hidden"){Y=requestAnimationFrame(V);return}m(q=>({yaw:q.yaw+.002,pitch:q.pitch})),Y=requestAnimationFrame(V)};return Y=requestAnimationFrame(V),()=>cancelAnimationFrame(Y)},[g]);const v=(A,Y)=>{a&&(S.current=!0,D.current={x:A,y:Y},I.current={yaw:d.yaw,pitch:d.pitch},O.current={x:0,y:0},C.current={x:A,y:Y,time:performance.now()},W.current&&cancelAnimationFrame(W.current))},w=(A,Y)=>{if(!S.current)return;const V=A-D.current.x,q=Y-D.current.y,ne=performance.now(),se=ne-C.current.time;se>0&&(O.current={x:(A-C.current.x)/se,y:(Y-C.current.y)/se}),C.current={x:A,y:Y,time:ne};const ye=.005,fe=I.current.yaw-V*ye,ge=Math.PI/2.3,Te=Math.max(-ge,Math.min(ge,I.current.pitch-q*ye));m({yaw:fe,pitch:Te})},L=()=>{if(!S.current)return;S.current=!1;let A=-O.current.x*12,Y=-O.current.y*12;const V=.95,q=()=>{S.current||(A*=V,Y*=V,!(Math.abs(A)<.01&&Math.abs(Y)<.01)&&(m(ne=>{const se=ne.yaw+A*.005,ye=Math.PI/2.3,fe=Math.max(-ye,Math.min(ye,ne.pitch+Y*.005));return{yaw:se,pitch:fe}}),W.current=requestAnimationFrame(q)))};W.current=requestAnimationFrame(q)},[M,X]=h.useState(null),[F,U]=h.useState({x:0,y:0,shiftX:0}),H=h.useRef(null);h.useEffect(()=>()=>{H.current&&clearTimeout(H.current)},[]),h.useEffect(()=>{if(!a||!_.current)return;const A=V=>{V.preventDefault();const q=-V.deltaY*.0025;N(ne=>{const se=ne+q;return Math.max(.5,Math.min(3,se))})},Y=_.current;return Y.addEventListener("wheel",A,{passive:!1}),()=>{Y.removeEventListener("wheel",A)}},[a]);const K=h.useMemo(()=>{const A=[];return e.forEach((Y,V)=>{(Array.isArray(Y)?Y:[]).forEach((q,ne)=>{q&&A.push({key:q.day||`${V}-${ne}`,col:V,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]),ve=x-(a?1.8:1.5),Ne=a?38:28,we=A=>Math.max(1.8,Number(A)/4*Ne),G=h.useMemo(()=>{if(K.length===0)return[];const A=e.length;return K.map(Y=>{const V=we(Y.level),q=Math.sqrt(Math.pow(Y.col-A/2,2)+Math.pow(Y.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,(Z-se)*(1/.6))),fe=V*ye,ge=(Y.col-A/2)*x,Te=(Y.row-3.5)*x,pe=ve/2,Ae=[{x:ge-pe,y:Te-pe,z:0},{x:ge+pe,y:Te-pe,z:0},{x:ge+pe,y:Te+pe,z:0},{x:ge-pe,y:Te+pe,z:0},{x:ge-pe,y:Te-pe,z:fe},{x:ge+pe,y:Te-pe,z:fe},{x:ge+pe,y:Te+pe,z:fe},{x:ge-pe,y:Te+pe,z:fe}].map(oe=>tt(oe.x,oe.y,oe.z,d.yaw,d.pitch)),Be=tt(ge,Te,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(Y.level)||0))],yt=[],pt=.35,Mt=-.4,re=.83;return _t.forEach(oe=>{const ee=pc(oe.normal[0],oe.normal[1],oe.normal[2],d.yaw,d.pitch);if(ee.z>.001){const ce=Ae[oe.indices[0]],Ce=Ae[oe.indices[1]],ie=Ae[oe.indices[2]],jt=Ae[oe.indices[3]],bt=`M${ce.x},${ce.y} L${Ce.x},${Ce.y} L${ie.x},${ie.y} L${jt.x},${jt.y} Z`,$t=ee.x*pt+ee.y*Mt+ee.z*re,Le=n?.18:0,St=oe.scale*(.82+.28*Math.max(0,$t))+Le;yt.push({name:oe.name,d:bt,fill:yc(gt,St)})}}),{...Y,centerProj:Be,renderedFaces:yt}})},[K,d,i,e.length,Z,x,ve,Ne]),Oe=h.useMemo(()=>[...G].sort((A,Y)=>A.centerProj.z-Y.centerProj.z),[G]),de=h.useMemo(()=>{if(Oe.length===0)return{minX:-100,minY:-100,maxX:100,maxY:100};let A=1/0,Y=1/0,V=-1/0,q=-1/0;return Oe.forEach(ne=>{const se=x*2,ye=ne.centerProj.x,fe=ne.centerProj.y;ye-se<A&&(A=ye-se),ye+se>V&&(V=ye+se),fe-se<Y&&(Y=fe-se),fe+se>q&&(q=fe+se)}),{minX:A,minY:Y,maxX:V,maxY:q}},[Oe,x]),be=12,$=de.maxX-de.minX+be*2,te=de.maxY-de.minY+be*2,he=$/b,le=te/b,_e=de.minX-be+($-he)/2,We=de.minY-be+(te-le)/2,De=`${_e} ${We} ${he} ${le}`;return K.length===0?o.jsx("div",{className:"py-8 text-center text-sm text-oai-gray-500",children:p("heatmap.empty")}):o.jsxs("div",{ref:_,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;v(A.clientX,A.clientY);const Y=q=>w(q.clientX,q.clientY),V=()=>{L(),window.removeEventListener("mousemove",Y),window.removeEventListener("mouseup",V)};window.addEventListener("mousemove",Y),window.addEventListener("mouseup",V)},onTouchStart:A=>{!a||A.touches.length===0||v(A.touches[0].clientX,A.touches[0].clientY)},onTouchMove:A=>{!a||A.touches.length===0||w(A.touches[0].clientX,A.touches[0].clientY)},onTouchEnd:()=>{a&&L()},children:[o.jsxs("svg",{ref:k,viewBox:De,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":`${$}px`,maxHeight:a?"78vh":"none"},className:"transition-transform duration-300 ease-out",children:[a&&j.map(A=>o.jsx("path",{d:A.d,fill:"none",stroke:c,strokeWidth:.25,strokeDasharray:"1.5 2.5",strokeLinecap:"round"},A.key)),Oe.map(A=>{const Y=M&&M.key===A.key;return o.jsxs("g",{onMouseEnter:V=>{if(H.current&&(clearTimeout(H.current),H.current=null),X(A),a&&k.current){const q=tt((A.col-e.length/2)*x,(A.row-3.5)*x,we(A.level),d.yaw,d.pitch);let ne=0,se=0;const ye=k.current;if(_.current&&typeof ye.createSVGPoint=="function"&&typeof ye.getScreenCTM=="function")try{const pe=ye.createSVGPoint();pe.x=q.x,pe.y=q.y;const $e=ye.getScreenCTM();if($e){const Ae=pe.matrixTransform($e),Be=_.current.getBoundingClientRect();ne=Ae.x-Be.left,se=Ae.y-Be.top}}catch{const $e=ye.getBoundingClientRect(),Ae=de.maxX-de.minX+be*2,Be=de.maxY-de.minY+be*2;ne=(q.x-(de.minX-be))/Ae*$e.width,se=(q.y-(de.minY-be))/Be*$e.height}else{const pe=ye.getBoundingClientRect(),$e=de.maxX-de.minX+be*2,Ae=de.maxY-de.minY+be*2;ne=(q.x-(de.minX-be))/$e*pe.width,se=(q.y-(de.minY-be))/Ae*pe.height}const fe=140;let ge=0;const Te=_.current?_.current.getBoundingClientRect().width:ye.getBoundingClientRect().width;ne<fe?ge=fe-ne:ne>Te-fe&&(ge=Te-fe-ne),U({x:ne,y:se,shiftX:ge})}},onMouseLeave:()=>{H.current&&clearTimeout(H.current),H.current=setTimeout(()=>{X(null)},150)},className:"transition-all duration-200",style:{filter:Y?"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((V,q)=>o.jsx("path",{d:V.d,fill:V.fill,stroke:V.fill,strokeWidth:.25,strokeLinejoin:"round"},q))]},A.key)})]}),a&&M&&o.jsxs("div",{onMouseEnter:()=>{H.current&&(clearTimeout(H.current),H.current=null)},onMouseLeave:()=>{H.current&&clearTimeout(H.current),H.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:M.day}),(()=>{const A=M.level===0?n?"#9ca3af":"#6b7280":i[M.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 ",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 scrollbar-thin",children:Object.entries(M.models).map(([A,Y])=>({name:A,val:Number(Y)})).sort((A,Y)=>Y.val-A.val).map(({name:A,val:Y})=>{const V=Number(M.total_tokens)||Object.values(M.models).reduce((ne,se)=>ne+Number(se||0),0)||1,q=Math.round(Y/V*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:Y.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:fo(M.level,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"}})]})]})}const bc=12,xc=3,kc=26,wc=["#ebedf0","#f7d08a","#f2b757","#eca02f","#d9861a"],vc=["#30363d","#7a4711","#bf7015","#eca02f","#f7c877"];function Qa(e){const t=Number(e);return Number.isFinite(t)?t<1e3?t.toLocaleString():Fe(t,{decimals:2}):"0"}function Nc(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 mo(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function _c(e,t){return Math.floor((Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate())-Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()))/864e5)}function Mc(e,t){const n=t==="mon"?1:0,a=e.getUTCDay();return mo(e,-((a-n+7)%7))}function jc(e,t,n,a){if(!e)return[];const r=Nc(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=Mc(r,n),i=mo(l,-(e-1)*7),c=[],u=new Set;for(const f of s){const d=Math.floor(_c(i,f)/7);d<0||d>=e||u.has(d)||(u.add(d),c.push({label:a[f.getUTCMonth()],index:d}))}return c}function Sc({heatmap:e,timeZoneLabel:t,timeZoneShortLabel:n,hideLegend:a=!1,embedded:r=!1}){const{resolvedTheme:s}=Hr(),{currency:l,rate:i}=Nt(),c=s==="dark",u=c?vc:wc,f=h.useRef(null),d=h.useRef(null),[m,g]=h.useState(null),[y,b]=h.useState({x:0,y:0,shiftX:0}),N=h.useRef(null);h.useEffect(()=>()=>{N.current&&clearTimeout(N.current)},[]);const[x,j]=h.useState(!1),[k,_]=h.useState(!1),[S,D]=h.useState(!1),I=h.useRef(null),[O,C]=h.useState("amber"),W=[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")],Z=($,te)=>{if(!te||!te.day)return;N.current&&(clearTimeout(N.current),N.current=null),g(te);const he=$.currentTarget.getBoundingClientRect(),le=typeof window<"u"?window.innerWidth:1024,_e=he.left+he.width/2,We=he.top,De=140;let A=0;_e<De?A=De-_e:_e>le-De&&(A=le-De-_e),b({x:_e,y:We,shiftX:A})},B=()=>{N.current&&clearTimeout(N.current),N.current=setTimeout(()=>{g(null)},150)},T=()=>{_(!1),j(!0)},E=()=>{_(!0)},z=$=>{$.target===$.currentTarget&&k&&(j(!1),_(!1))};h.useEffect(()=>{if(!x||k)return;const $=te=>{te.key==="Escape"&&E()};return window.addEventListener("keydown",$),()=>{window.removeEventListener("keydown",$)}},[x,k]);const v=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"}}),[]),w=v[O]||v.emerald,L=dt[O]?c?dt[O].dark:dt[O].light:c?dt.emerald.dark:dt.emerald.light,[M,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",M)}catch{}},[M,r]),h.useEffect(()=>{if(M!=="2d")return;const $=f.current;$&&($.scrollLeft=$.scrollWidth)},[e?.weeks,M]),h.useEffect(()=>{const $=f.current;if(!$)return;const te=()=>{N.current&&(clearTimeout(N.current),N.current=null),g(null)};return $.addEventListener("scroll",te),()=>$.removeEventListener("scroll",te)},[]);const F=e?.week_starts_on==="mon"?"mon":"sun",U=h.useMemo(()=>{const $=Array.isArray(e?.weeks)?e.weeks:[];if(!$.length)return{weeks:[]};const te=[];for(const he of $)for(const le of Array.isArray(he)?he:[])le?.day&&te.push({day:le.day,conversation_count:le.conversation_count??0,total_tokens:le.total_tokens??0,billable_total_tokens:le.billable_total_tokens??le.total_tokens??0,models:le.models??null});return Qn({dailyRows:te,weeks:Math.max(52,$.length),to:e?.to,weekStartsOn:F})},[e?.to,e?.weeks,F]),H=U?.weeks||[],K=h.useMemo(()=>{let $=0,te=0,he={day:"无数据",value:0},le=0,_e=0;const We=[];H.forEach(fe=>{(Array.isArray(fe)?fe:[]).forEach(ge=>{ge&&ge.day&&We.push(ge)})}),We.sort((fe,ge)=>fe.day.localeCompare(ge.day)),We.forEach(fe=>{const ge=Number(fe.value)||0;$+=Number(fe.total_tokens)||0,ge>0?(te++,le++,le>_e&&(_e=le)):le=0,ge>he.value&&(he={day:fe.day,value:ge})});const De=We.length||365,A=(te/De*100).toFixed(1);let Y="heatmap.3d.modal.ai.eval.default",V="heatmap.3d.modal.ai.title.default";$>=15e6?(V="heatmap.3d.modal.ai.title.peak",Y="heatmap.3d.modal.ai.eval.peak"):$>=5e6?(V="heatmap.3d.modal.ai.title.heavy",Y="heatmap.3d.modal.ai.eval.heavy"):$>=1e6?(V="heatmap.3d.modal.ai.title.core",Y="heatmap.3d.modal.ai.eval.core"):$>=2e4&&(V="heatmap.3d.modal.ai.title.steady",Y="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:$/15e5;return{totalTokens:$,activeDays:te,activeRate:A,maxSingleDay:he,maxStreak:_e,aiEvaluationTitleKey:V,aiEvaluationKey:Y,totalCostUsd:ye}},[H,e?.total_cost_usd]),me=h.useMemo(()=>et(K.totalCostUsd,{currency:l,rate:i}),[K.totalCostUsd,l,i]),ve=F==="mon"?["Mon","Tue","Wed","Thu","Fri","Sat","Sun"].map($=>p(`heatmap.day.${$.toLowerCase()}`)):["Sun","Mon","Tue","Wed","Thu","Fri","Sat"].map($=>p(`heatmap.day.${$.toLowerCase()}`)),Ne=h.useMemo(()=>jc(H.length,U?.to,F,W),[U?.to,H.length,F,W]);if(!H.length)return o.jsx("div",{className:"py-8 text-center text-sm text-oai-gray-500",children:p("heatmap.empty")});const we=r?10:bc,G=r?2:xc,Oe=r?22:kc,de=Oe+H.length*we+Math.max(0,H.length-1)*G,be=`${Oe}px repeat(${H.length}, ${we}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":M==="2d",onClick:()=>X("2d"),className:M==="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":M==="3d",onClick:()=>X("3d"),className:M==="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")})]})]}),M==="3d"&&o.jsxs("div",{onClick:T,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(Ka,{weeks:H,isDark:c,palette:O}),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(Jr,{size:9}),p("heatmap.3d.hover_tip")]})})]}),M==="2d"&&o.jsx("div",{ref:f,className:"overflow-x-auto overflow-y-hidden heatmap-scroll-thin",children:o.jsxs("div",{style:{minWidth:de},children:[o.jsxs("div",{className:"grid text-[10px] uppercase text-oai-gray-400 dark:text-oai-gray-400 mb-1",style:{gridTemplateColumns:be,columnGap:G},children:[o.jsx("span",{}),Ne.map($=>o.jsx("span",{style:{gridColumnStart:$.index+2},className:"whitespace-nowrap",children:$.label},`${$.label}-${$.index}`))]}),o.jsxs("div",{className:"grid",style:{gridTemplateColumns:be,columnGap:G},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, ${we}px)`,rowGap:G},children:ve.map($=>o.jsx("span",{className:"leading-none",children:$},$))}),o.jsx("div",{className:"grid",style:{gridAutoFlow:"column",gridTemplateRows:`repeat(7, ${we}px)`,gap:G},children:H.map(($,te)=>(Array.isArray($)?$:[]).map((he,le)=>{if(!he)return null;const _e=he.day||`e-${te}-${le}`,We=Number(he.level)||0,De=u[We]||u[0];return o.jsx("span",{onMouseEnter:A=>Z(A,he),onMouseLeave:B,className:"rounded-[2px] transition-transform hover:scale-125 hover:z-10 cursor-pointer",style:{width:we,height:we,background:De}},_e)}))})]})]})}),!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(($,te)=>o.jsx("span",{className:"rounded-[1px]",style:{width:10,height:10,background:$}},te))}),o.jsx("span",{className:"text-[10px] text-oai-gray-400 dark:text-oai-gray-400",children:p("heatmap.legend.more")})]}),x&&o.jsx("div",{onAnimationEnd:z,onClick:$=>{$.target===$.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(la,{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:w.rawColor}}),o.jsx("span",{className:"relative inline-flex rounded-full h-1.5 w-1.5",style:{backgroundColor:w.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:[K.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:Qa(K.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:w.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:me})]}),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:[K.activeRate,"% ",o.jsxs("span",{className:"text-[10px] font-bold text-zinc-400 dark:text-zinc-500 font-mono",children:["(",K.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:[K.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:[K.maxSingleDay.value>0?K.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:K.maxSingleDay.day!=="无数据"?K.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:[K.maxSingleDay.value>0?Qa(K.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:["(",K.maxSingleDay.day!=="无数据"?K.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(Zr,{size:11,style:{color:w.rawColor}}),o.jsx("span",{className:"text-[9px] font-extrabold uppercase tracking-widest font-mono",style:{color:w.rawColor},children:p(K.aiEvaluationTitleKey)})]}),o.jsxs("div",{className:"pl-3.5 border-l-2 relative transition-all duration-300 group",style:{borderColor:w.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:w.rawColor}}),o.jsx("p",{className:"text-[11px] leading-relaxed text-zinc-600 dark:text-zinc-400 font-normal",children:p(K.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.${O}`)})]}),o.jsx("div",{className:"flex gap-1",children:L.map(($,te)=>o.jsx("div",{className:"flex-1 h-1 rounded-[2px]",style:{backgroundColor:$},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:w.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(v).map($=>{const te=O===$;return o.jsx("button",{type:"button",onClick:()=>C($),title:p(`heatmap.3d.modal.palette.${$}`),className:`w-3.5 h-3.5 rounded-full transition-all duration-200 relative hover:scale-125 ${$==="emerald"?"bg-[#10b981]":$==="ocean"?"bg-[#3b82f6]":$==="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"})},$)})}),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 $=!S;D($),I.current&&I.current.toggleAutoRotate($)},title:S?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?w.accentText:"text-oai-gray-400 hover:text-oai-gray-600 dark:hover:text-oai-gray-250"}`,children:S?o.jsx(Li,{size:12}):o.jsx(Yi,{size:12})}),o.jsx("button",{type:"button",onClick:()=>{D(!1),I.current&&I.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(Hi,{size:12})})]})]}),o.jsx(Ka,{weeks:H,isDark:c,interactive:!0,palette:O,autoRotateInit:S,onResetViewRef:I}),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(ua,{size:10,className:w.accentText}),o.jsx("span",{children:p("heatmap.3d.modal.footer.tip")})]})]})]})}),m&&!x&&typeof document<"u"&&ci.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 $=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:$+"22",color:$,border:`1px solid ${$}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(([$,te])=>({name:$,val:Number(te)})).sort(($,te)=>te.val-$.val).map(({name:$,val:te})=>{const he=Number(m.total_tokens??m.value)||1,le=Math.round(te/he*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:$,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: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:[le,"%"]})]})]}),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:`${le}%`,backgroundColor:u[4],boxShadow:`0 0 4px ${u[4]}55`}})})]},$)})})]}):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:fo(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 Cc(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 Ja(e,t,n){if(!Number.isFinite(e)||e<=0)return null;const a=ca(t);return(t===Ur?e:e*n)<.01?`<${a}0.01`:et(e,{decimals:2,currency:t,rate:n})}function Za(e){const t=Number(e);return!Number.isFinite(t)||t<=0?null:Fe(t,{decimals:1})}const Dc=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=ze(c?.usd)??0,f=ze(c?.usage)??0,d=Array.isArray(c?.models)?c.models:[];return{label:c?.label?String(c.label):"",usdValue:u,costLabel:Ja(u,r,s),tokensLabel:Za(f),models:d.map(m=>{const g=ze(m?.usage)??0,y=ze(m?.cost)??0;return{id:m?.id?String(m.id):"",name:m?.name?String(m.name):"",tokensLabel:Za(g),costLabel:Ja(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 Cc(c,r,s)},[l,r,s]);return o.jsx(Ti,{open:t,onOpenChange:c=>{c||n?.()},children:o.jsxs(Pi,{children:[o.jsx(Oi,{className:"cost-modal-backdrop","data-cost-analysis-backdrop":"true"}),o.jsx($i,{className:"fixed inset-0 z-[101] flex items-center justify-center p-4",children:o.jsxs(Ei,{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(Wi,{render:o.jsx("h2",{className:"sr-only"}),children:p("dashboard.cost_breakdown.title")}),o.jsx(el,{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(la,{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 Tc(e){if(typeof e!="string")return{owner:"",repo:""};const[t,n]=e.split("/");return{owner:t||"",repo:n||""}}function Pc({projectKey:e,projectRef:t}){const n=typeof t=="string"?t.replace("https://github.com/",""):"",{owner:a,repo:r}=Tc(e||n),s=a&&r?`${a}/${r}`:e;return 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(da,{provider:s,size:20})})}function Oc({projectEntries:e=[],projectUnattributedSources:t=[],projectLimit:n=3,onProjectLimitChange:a,copy:r,hasDetailsActual:s,dailyEmptyPrefix:l,installSyncCmd:i,dailyEmptySuffix:c,detailsColumns:u,ariaSortFor:f,toggleSort:d,sortIconFor:m,pagedDetails:g,dailyBreakdownRows:y=[],dailyBreakdownColumns:b=[],dailyBreakdownAriaSortFor:N,dailyBreakdownSortIconFor:x,dailyBreakdownDateKey:j="day",detailsDateKey:k,renderDetailDate:_,renderDailyBreakdownDate:S,renderDetailCell:D,DETAILS_PAGED_PERIODS:I,period:O,detailsPageCount:C,detailsPage:W,setDetailsPage:Z}){const[B,T]=h.useState("daily"),E=t.length>0;function z(w,L,M){return M===0?"text-oai-gray-500 dark:text-oai-gray-300":L.key==="total_tokens"||L.key==="total_cost_usd"?"font-medium text-oai-black dark:text-oai-white tabular-nums":L.key==="cost_per_million_tokens"&&w?.cost_per_million_status==="high"?"font-semibold text-amber-700 dark:text-amber-300 tabular-nums":L.key==="top_model"?"text-oai-gray-600 dark:text-oai-gray-300":"text-oai-gray-600 dark:text-oai-gray-300 tabular-nums"}function v(w,L,M){return M===0?S?S(w):_(w):D(w,L.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":B==="daily",type:"button",onClick:()=>T("daily"),className:`text-xs font-medium px-3 py-1.5 rounded transition-colors ${B==="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:r("dashboard.daily.title")}),o.jsx("button",{role:"tab","aria-selected":B==="projects",type:"button",onClick:()=>T("projects"),className:`text-xs font-medium px-3 py-1.5 rounded transition-colors ${B==="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:r("dashboard.projects.title")})]}),B==="projects"&&o.jsx(Fi,{ariaLabel:r("dashboard.projects.limit_aria"),value:n,onValueChange:w=>a?.(Number(w)),options:[{value:3,label:r("dashboard.projects.limit_top_3")},{value:6,label:r("dashboard.projects.limit_top_6")},{value:10,label:r("dashboard.projects.limit_top_10")}],align:"end",className:"px-2 py-1 text-xs text-oai-gray-600 dark:text-oai-gray-300"})]}),B==="projects"&&o.jsxs("div",{className:"space-y-1",children:[e.length===0?o.jsx("div",{className:"oai-text-body-sm text-oai-gray-500 dark:text-oai-gray-300",children:r("dashboard.projects.empty")}):null,e.slice(0,n).map((w,L)=>{const M=typeof w?.project_ref=="string"?w.project_ref:"",X=w?.project_key||M||`entry-${L}`,F=w?.billable_total_tokens??w?.total_tokens,U=Number(F),H=Number.isFinite(U)?U.toLocaleString():"—",K=w?.project_key||M.split("/").pop()||"—",me=Number(w?.total_cost_usd),ve=Number(w?.unattributed_tokens),Ne=Number.isFinite(me)&&me>0,we=Number.isFinite(ve)&&ve>0,G=Ne?`$${me<.01?me.toFixed(4):me.toFixed(2)}${we?"+":""}`:we?r("dashboard.projects.unpriced"):"";return o.jsxs("div",{className:"flex items-center gap-3 p-2 rounded-lg",children:[o.jsx(Pc,{projectKey:w?.project_key,projectRef:M}),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:K})}),o.jsxs("div",{className:"text-right",children:[o.jsx("div",{className:"oai-text-body-sm font-medium text-oai-black dark:text-oai-white tabular-nums",children:H}),G?o.jsx("div",{className:"oai-text-caption text-oai-gray-500 dark:text-oai-gray-400 tabular-nums",children:G}):null]})]},X)}),E?o.jsx("div",{className:"pt-2 oai-text-caption text-oai-gray-500 dark:text-oai-gray-400",children:`${r("dashboard.projects.unattributed")} ${t.join(", ")}`}):null]}),B==="daily"&&o.jsxs("div",{children:[y?.length===0?o.jsxs("div",{className:"oai-text-body-sm text-oai-gray-500 dark:text-oai-gray-300 mb-4",children:[l,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:i}),c]}):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:b.map((w,L)=>o.jsx("th",{...N?.(w.key)?{"aria-sort":N(w.key)}:{},className:"text-left p-0 bg-white dark:bg-oai-gray-900",children:o.jsx("button",{type:"button",onClick:()=>d(w.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:w.label}),o.jsx("span",{className:"text-oai-gray-400 dark:text-oai-gray-400",children:x?.(w.key)||""})]})})},w.key))})}),o.jsx("tbody",{children:y.map(w=>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 ${w.missing?"text-oai-gray-400 dark:text-oai-gray-400":w.future?"text-oai-gray-300 dark:text-oai-gray-600":"text-oai-black dark:text-oai-white"}`,children:b.map((L,M)=>o.jsx("td",{className:`px-2.5 sm:px-4 py-2 oai-text-body-sm whitespace-nowrap ${z(w,L,M)}`,children:v(w,L,M)},L.key))},String(w?.[j]||w?.day||w?.hour||w?.month||"")))})]})}),B!=="daily"&&I.has(O)&&C>1?o.jsxs("div",{className:"mt-3 flex items-center justify-between oai-text-caption",children:[o.jsx("button",{type:"button",onClick:()=>Z(w=>Math.max(0,w-1)),disabled:W===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:r("details.pagination.prev")}),o.jsxs("span",{className:"oai-text-muted",children:[W+1," / ",C]}),o.jsx("button",{type:"button",onClick:()=>Z(w=>Math.min(C-1,w+1)),disabled:W+1>=C,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:r("details.pagination.next")})]}):null]})]})}const $c=e=>{const t=Number(e);return Number.isFinite(t)?t:0},Ec=new Set(["miss","empty","unattributed"]),Wc=new Set(["curated:fuzzy","litellm:fuzzy","litellm:prefix-strip","litellm:strip"]);function er(e){return String(e.model||e.model_id||"").trim()}function Ac(e,t){const n=Number(t);if(!Number.isFinite(n)||n<=0)return null;const a=$c(e?.totals?.total_cost_usd),r=Array.isArray(e?.models)?e.models:[],s=r.filter(u=>Ec.has(String(u.pricing_tier||""))).map(er).filter(Boolean),l=r.filter(u=>Wc.has(String(u.pricing_tier||""))).map(er).filter(Boolean),i=a/n,c=i>1?"above":i<1?"below":"even";return{source:String(e?.source||""),planPriceUsd:n,listPriceUsd:a,direction:c,ratio:i,confidence:s.length>0||l.length>0?"floor":"exact",unpricedModels:[...new Set(s)].sort(),fuzzyModels:[...new Set(l)].sort()}}function Fc(e){const t=e.filter(Boolean);if(t.length===0)return null;const n=t.reduce((r,s)=>r+s.planPriceUsd,0),a=t.reduce((r,s)=>r+s.listPriceUsd,0);return{planPriceUsd:n,listPriceUsd:a,direction:a>n?"above":a<n?"below":"even",confidence:t.some(r=>r.confidence==="floor")?"floor":"exact",providerCount:t.length}}function yn(e){const t=Number.isFinite(e)?e:0;return t>0&&t<.01?`$${t.toFixed(4)}`:`$${t.toFixed(2)}`}function Rc(e){const t=new Set;for(const n of e){for(const a of n.unpricedModels)t.add(a);for(const a of n.fuzzyModels)t.add(a)}return Array.from(t).sort().join(", ")}function Ic({sources:e=[],planPrices:t={},onPlanPriceChange:n,copy:a,className:r=""}){const s=(Array.isArray(e)?e:[]).map(d=>String(d?.source||"").toLowerCase()).filter(Boolean),{values:l,rollup:i}=h.useMemo(()=>{const d=(Array.isArray(e)?e:[]).map(m=>Ac(m,t?.[String(m?.source||"").toLowerCase()])).filter(Boolean);return{values:d,rollup:Fc(d)}},[e,t]),c=a("dashboard.plan_value.title"),u=n?o.jsx("div",{className:"mt-2 space-y-1",children:s.map(d=>o.jsxs("label",{className:"flex items-baseline justify-between gap-3 oai-text-caption text-oai-gray-500 dark:text-oai-gray-400",children:[o.jsx("span",{className:"truncate",children:d}),o.jsx("input",{type:"number",min:"0",step:"1",inputMode:"decimal","aria-label":a("dashboard.plan_value.input_aria",{source:d}),value:t?.[d]??"",onChange:m=>{const g=m.target.value;n(d,g===""?null:Number(g))},className:"w-20 rounded border border-oai-gray-300 dark:border-oai-gray-700 oai-bg-elevated px-1.5 py-0.5 text-right tabular-nums"})]},d))}):null;if(!i)return o.jsxs("div",{className:r,children:[o.jsx("div",{className:"oai-text-body-sm font-medium text-oai-black dark:text-oai-white",children:c}),o.jsx("div",{className:"mt-1 oai-text-caption text-oai-gray-500 dark:text-oai-gray-400",children:a("dashboard.plan_value.empty")}),u]});const f=Rc(l);return o.jsxs("div",{className:r,children:[o.jsx("div",{className:"oai-text-body-sm font-medium text-oai-black dark:text-oai-white",children:c}),o.jsx("div",{className:"mt-1 oai-text-body-sm text-oai-black dark:text-oai-white tabular-nums",children:a("dashboard.plan_value.headline",{plan:yn(i.planPriceUsd),list:yn(i.listPriceUsd)})}),o.jsx("div",{className:"mt-2 space-y-1",children:l.map(d=>o.jsxs("div",{className:"flex items-baseline justify-between gap-3 oai-text-caption text-oai-gray-500 dark:text-oai-gray-400",children:[o.jsx("span",{className:"truncate",children:d.source}),o.jsx("span",{className:"tabular-nums whitespace-nowrap",children:a("dashboard.plan_value.row",{plan:yn(d.planPriceUsd),list:yn(d.listPriceUsd)})})]},d.source))}),u,i.confidence==="floor"?o.jsx("div",{className:"mt-2 oai-text-caption text-oai-gray-500 dark:text-oai-gray-400",children:a("dashboard.plan_value.floor_note",{models:f})}):null,o.jsx("div",{className:"mt-1 oai-text-caption text-oai-gray-500 dark:text-oai-gray-400",children:a("dashboard.plan_value.disclaimer")})]})}function wn(e){return typeof e!="string"?"":e.trim()}function tr(e){const t=wn(e);return t?t.split(/[_\-\s]+/).filter(Boolean).map(n=>n.slice(0,1).toUpperCase()+n.slice(1).toLowerCase()).join(" "):""}function Lc(e){if(!Array.isArray(e))return[];const t=new Map;for(const n of e){if(!n||typeof n!="object")continue;const a=wn(n.tool),r=wn(n.planType)||wn(n.plan_type);if(!a||!r)continue;const s=tr(a)||a,l=tr(r)||r;t.set(`${a.toLowerCase()}::${r.toLowerCase()}`,{tool:s,plan:l})}return Array.from(t.values())}function nr({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=Lc(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(Zi,{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 ar=2,zc=.75,Yc=.005;function Bc(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)<Yc)return{hasBar:!1,side:null,widthPct:0,tone:null,labelText:"0%",arrow:null};const a=e>0,r=Math.min(Math.abs(e),ar)/ar*50;let s;t==="price"?s=a?"bad":"good":s=Math.abs(e)>=zc?"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 Hc(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 Uc={thousandSuffix:"K",millionSuffix:"M",billionSuffix:"B"},Vc=e=>e==null?"—":Fe(e,Uc),qc=e=>e==null?"—":et(e,{decimals:e>=100?0:2}),Xc=e=>e==null?"—":et(e,{decimals:2}),Gc=[{key:"tokens",label:"Tokens",kind:"usage",format:Vc},{key:"cost",label:"Cost",kind:"usage",format:qc},{key:"perMTok",label:"$/MTok",kind:"price",format:Xc}];function Kc({label:e,delta:t,kind:n}){const a=Bc(t,n),r=Hc(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 Qc({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 Jc({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})]}),Gc.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(Kc,{label:m.label,delta:f[m.field],kind:u.kind},m.field))}),d?o.jsx(Qc,{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 Zc(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 ed={},Kt={};function Pt(e,t){try{const a=(ed[e]||=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"longOffset"}).format)(t).split("GMT")[1];return a in Kt?Kt[a]:rr(a,a.split(":"))}catch{if(e in Kt)return Kt[e];const n=e?.match(td);return n?rr(e,n.slice(1)):NaN}}const td=/([+-]\d\d):?(\d\d)?/;function rr(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(Pt(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)),ho(this),oa(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=-Pt(this.timeZone,this);return t>0?Math.floor(t):Math.ceil(t)}setTime(t){return Date.prototype.setTime.apply(this,arguments),oa(this),+this}[Symbol.for("constructDateFrom")](t){return new rt(+new Date(t),this.timeZone)}}const or=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!or.test(e))return;const t=e.replace(or,"$1UTC");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),nd(this),+this},rt.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),oa(this),+this}))});function oa(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-Pt(e.timeZone,e)*60))}function nd(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()),ho(e)}function ho(e){const t=Pt(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(-(Pt(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=Pt(e.timeZone,e),g=m>0?Math.floor(m):Math.ceil(m),b=-new Date(+e).getTimezoneOffset()-g,N=g!==n,x=b-c;if(N&&x){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+x);const j=Pt(e.timeZone,e),k=j>0?Math.floor(j):Math.ceil(j),_=g-k;_&&(e.internal.setUTCMinutes(e.internal.getUTCMinutes()+_),Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+_))}}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} (${Zc(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 go=6048e5,ad=864e5,sr=Symbol.for("constructDateFrom");function Pe(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&sr in e?e[sr](t):e instanceof Date?new e.constructor(t):new Date(t)}function ke(e,t){return Pe(t||e,e)}function yo(e,t,n){const a=ke(e,n?.in);return isNaN(t)?Pe(e,NaN):(t&&a.setDate(a.getDate()+t),a)}function po(e,t,n){const a=ke(e,n?.in);if(isNaN(t))return Pe(e,NaN);if(!t)return a;const r=a.getDate(),s=Pe(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 rd={};function ln(){return rd}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 bo(e,t){const n=ke(e,t?.in),a=n.getFullYear(),r=Pe(n,0);r.setFullYear(a+1,0,4),r.setHours(0,0,0,0);const s=tn(r),l=Pe(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 ir(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 Ot(e,...t){const n=Pe.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 ha(e,t,n){const[a,r]=Ot(n?.in,e,t),s=nn(a),l=nn(r),i=+s-ir(s),c=+l-ir(l);return Math.round((i-c)/ad)}function od(e,t){const n=bo(e,t),a=Pe(e,0);return a.setFullYear(n,0,4),a.setHours(0,0,0,0),tn(a)}function sd(e,t,n){return yo(e,t*7,n)}function id(e,t,n){return po(e,t*12,n)}function ld(e,t){let n,a=t?.in;return e.forEach(r=>{!a&&typeof r=="object"&&(a=Pe.bind(null,r));const s=ke(r,a);(!n||n<s||isNaN(+s))&&(n=s)}),Pe(a,n||NaN)}function cd(e,t){let n,a=t?.in;return e.forEach(r=>{!a&&typeof r=="object"&&(a=Pe.bind(null,r));const s=ke(r,a);(!n||n>s||isNaN(+s))&&(n=s)}),Pe(a,n||NaN)}function dd(e,t,n){const[a,r]=Ot(n?.in,e,t);return+nn(a)==+nn(r)}function xo(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function ud(e){return!(!xo(e)&&typeof e!="number"||isNaN(+ke(e)))}function ko(e,t,n){const[a,r]=Ot(n?.in,e,t),s=a.getFullYear()-r.getFullYear(),l=a.getMonth()-r.getMonth();return s*12+l}function fd(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 wo(e,t){const[n,a]=Ot(e,t.start,t.end);return{start:n,end:a}}function md(e,t){const{start:n,end:a}=wo(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(Pe(n,l)),l.setMonth(l.getMonth()+i);return r?c.reverse():c}function hd(e,t){const n=ke(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function gd(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 vo(e,t){const n=ke(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function yd(e,t){const{start:n,end:a}=wo(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(Pe(n,l)),l.setFullYear(l.getFullYear()+i);return r?c.reverse():c}function No(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 pd(e,t){return No(e,{...t,weekStartsOn:1})}const bd={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"}},xd=(e,t,n)=>{let a;const r=bd[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 Ye(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const kd={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},wd={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},vd={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},Nd={date:Ye({formats:kd,defaultWidth:"full"}),time:Ye({formats:wd,defaultWidth:"full"}),dateTime:Ye({formats:vd,defaultWidth:"full"})},_d={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},Md=(e,t,n,a)=>_d[e];function Me(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 jd={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},Sd={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},Cd={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"]},Dd={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"]},Td={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"}},Pd={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"}},Od=(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"},$d={ordinalNumber:Od,era:Me({values:jd,defaultWidth:"wide"}),quarter:Me({values:Sd,defaultWidth:"wide",argumentCallback:e=>e-1}),month:Me({values:Cd,defaultWidth:"wide"}),day:Me({values:Dd,defaultWidth:"wide"}),dayPeriod:Me({values:Td,defaultWidth:"wide",formattingValues:Pd,defaultFormattingWidth:"wide"})};function je(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)?Wd(i,d=>d.test(l)):Ed(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 Ed(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function Wd(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 Ad=/^(\d+)(th|st|nd|rd)?/i,Fd=/\d+/i,Rd={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},Id={any:[/^b/i,/^(a|c)/i]},Ld={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},zd={any:[/1/i,/2/i,/3/i,/4/i]},Yd={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},Bd={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]},Hd={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},Ud={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]},Vd={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},qd={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}},Xd={ordinalNumber:cn({matchPattern:Ad,parsePattern:Fd,valueCallback:e=>parseInt(e,10)}),era:je({matchPatterns:Rd,defaultMatchWidth:"wide",parsePatterns:Id,defaultParseWidth:"any"}),quarter:je({matchPatterns:Ld,defaultMatchWidth:"wide",parsePatterns:zd,defaultParseWidth:"any",valueCallback:e=>e+1}),month:je({matchPatterns:Yd,defaultMatchWidth:"wide",parsePatterns:Bd,defaultParseWidth:"any"}),day:je({matchPatterns:Hd,defaultMatchWidth:"wide",parsePatterns:Ud,defaultParseWidth:"any"}),dayPeriod:je({matchPatterns:Vd,defaultMatchWidth:"any",parsePatterns:qd,defaultParseWidth:"any"})},wt={code:"en-US",formatDistance:xd,formatLong:Nd,formatRelative:Md,localize:$d,match:Xd,options:{weekStartsOn:0,firstWeekContainsDate:1}};function Gd(e,t){const n=ke(e,t?.in);return ha(n,vo(n))+1}function ga(e,t){const n=ke(e,t?.in),a=+tn(n)-+od(n);return Math.round(a/go)+1}function _o(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=Pe(t?.in||e,0);l.setFullYear(a+1,0,s),l.setHours(0,0,0,0);const i=vt(l,t),c=Pe(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 Kd(e,t){const n=ln(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,r=_o(e,t),s=Pe(t?.in||e,0);return s.setFullYear(r,0,a),s.setHours(0,0,0,0),vt(s,t)}function ya(e,t){const n=ke(e,t?.in),a=+vt(n,t)-+Kd(n,t);return Math.round(a/go)+1}function xe(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 xe(t==="yy"?a%100:a,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):xe(n+1,2)},d(e,t){return xe(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 xe(e.getHours()%12||12,t.length)},H(e,t){return xe(e.getHours(),t.length)},m(e,t){return xe(e.getMinutes(),t.length)},s(e,t){return xe(e.getSeconds(),t.length)},S(e,t){const n=t.length,a=e.getMilliseconds(),r=Math.trunc(a*Math.pow(10,n-3));return xe(r,t.length)}},Ft={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},lr={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=_o(e,a),s=r>0?r:1-r;if(t==="YY"){const l=s%100;return xe(l,2)}return t==="Yo"?n.ordinalNumber(s,{unit:"year"}):xe(s,t.length)},R:function(e,t){const n=bo(e);return xe(n,t.length)},u:function(e,t){const n=e.getFullYear();return xe(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 xe(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 xe(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 xe(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=ya(e,a);return t==="wo"?n.ordinalNumber(r,{unit:"week"}):xe(r,t.length)},I:function(e,t,n){const a=ga(e);return t==="Io"?n.ordinalNumber(a,{unit:"week"}):xe(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=Gd(e);return t==="Do"?n.ordinalNumber(a,{unit:"dayOfYear"}):xe(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 xe(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 xe(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 xe(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=Ft.noon:a===0?r=Ft.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=Ft.evening:a>=12?r=Ft.afternoon:a>=4?r=Ft.morning:r=Ft.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"}):xe(a,t.length)},k:function(e,t,n){let a=e.getHours();return a===0&&(a=24),t==="ko"?n.ordinalNumber(a,{unit:"hour"}):xe(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 dr(a);case"XXXX":case"XX":return Tt(a);default:return Tt(a,":")}},x:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"x":return dr(a);case"xxxx":case"xx":return Tt(a);default:return Tt(a,":")}},O:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+cr(a,":");default:return"GMT"+Tt(a,":")}},z:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+cr(a,":");default:return"GMT"+Tt(a,":")}},t:function(e,t,n){const a=Math.trunc(+e/1e3);return xe(a,t.length)},T:function(e,t,n){return xe(+e,t.length)}};function cr(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+xe(s,2)}function dr(e,t){return e%60===0?(e>0?"-":"+")+xe(Math.abs(e)/60,2):Tt(e,t)}function Tt(e,t=""){const n=e>0?"-":"+",a=Math.abs(e),r=xe(Math.trunc(a/60),2),s=xe(a%60,2);return n+r+t+s}const ur=(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"})}},Mo=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Qd=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],a=n[1],r=n[2];if(!r)return ur(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}}",ur(a,t)).replace("{{time}}",Mo(r,t))},Jd={p:Mo,P:Qd},Zd=/^D+$/,eu=/^Y+$/,tu=["D","DD","YY","YYYY"];function nu(e){return Zd.test(e)}function au(e){return eu.test(e)}function ru(e,t,n){const a=ou(e,t,n);if(console.warn(a),tu.includes(e))throw new RangeError(a)}function ou(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 su=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,iu=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,lu=/^'([^]*?)'?$/,cu=/''/g,du=/[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(!ud(i))throw new RangeError("Invalid time value");let c=t.match(iu).map(f=>{const d=f[0];if(d==="p"||d==="P"){const m=Jd[d];return m(f,r.formatLong)}return f}).join("").match(su).map(f=>{if(f==="''")return{isToken:!1,value:"'"};const d=f[0];if(d==="'")return{isToken:!1,value:uu(f)};if(lr[d])return{isToken:!0,value:f};if(d.match(du))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&&au(d)||!n?.useAdditionalDayOfYearTokens&&nu(d))&&ru(d,t,String(e));const m=lr[d[0]];return m(i,d,r.localize,u)}).join("")}function uu(e){const t=e.match(lu);return t?t[1].replace(cu,"'"):e}function fu(e,t){const n=ke(e,t?.in),a=n.getFullYear(),r=n.getMonth(),s=Pe(n,0);return s.setFullYear(a,r+1,0),s.setHours(0,0,0,0),s.getDate()}function mu(e,t){return ke(e,t?.in).getMonth()}function hu(e,t){return ke(e,t?.in).getFullYear()}function gu(e,t){return+ke(e)>+ke(t)}function yu(e,t){return+ke(e)<+ke(t)}function pu(e,t,n){const[a,r]=Ot(n?.in,e,t);return+vt(a,n)==+vt(r,n)}function bu(e,t,n){const[a,r]=Ot(n?.in,e,t);return a.getFullYear()===r.getFullYear()&&a.getMonth()===r.getMonth()}function xu(e,t,n){const[a,r]=Ot(n?.in,e,t);return a.getFullYear()===r.getFullYear()}function ku(e,t,n){const a=ke(e,n?.in),r=a.getFullYear(),s=a.getDate(),l=Pe(e,0);l.setFullYear(r,t,15),l.setHours(0,0,0,0);const i=fu(l);return a.setMonth(t,Math.min(s,i)),a}function wu(e,t,n){const a=ke(e,n?.in);return isNaN(+a)?Pe(e,NaN):(a.setFullYear(t),a)}const fr=5,vu=4;function Nu(e,t){const n=t.startOfMonth(e),a=n.getDay()>0?n.getDay():7,r=t.addDays(e,-a+1),s=t.addDays(r,fr*7-1);return t.getMonth(e)===t.getMonth(s)?fr:vu}function jo(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 _u(e,t){const n=jo(e,t),a=Nu(e,t);return t.addDays(n,a*7-1)}const Mu={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}}年近く"}},ju=(e,t,n)=>{n=n||{};let a;const r=Mu[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},Su={full:"y年M月d日EEEE",long:"y年M月d日",medium:"y/MM/dd",short:"y/MM/dd"},Cu={full:"H時mm分ss秒 zzzz",long:"H:mm:ss z",medium:"H:mm:ss",short:"H:mm"},Du={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},Tu={date:Ye({formats:Su,defaultWidth:"full"}),time:Ye({formats:Cu,defaultWidth:"full"}),dateTime:Ye({formats:Du,defaultWidth:"full"})},Pu={lastWeek:"先週のeeeeのp",yesterday:"昨日のp",today:"今日のp",tomorrow:"明日のp",nextWeek:"翌週のeeeeのp",other:"P"},Ou=(e,t,n,a)=>Pu[e],$u={narrow:["BC","AC"],abbreviated:["紀元前","西暦"],wide:["紀元前","西暦"]},Eu={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["第1四半期","第2四半期","第3四半期","第4四半期"]},Wu={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月"]},Au={narrow:["日","月","火","水","木","金","土"],short:["日","月","火","水","木","金","土"],abbreviated:["日","月","火","水","木","金","土"],wide:["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]},Fu={narrow:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},abbreviated:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"},wide:{am:"午前",pm:"午後",midnight:"深夜",noon:"正午",morning:"朝",afternoon:"午後",evening:"夜",night:"深夜"}},Ru={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:"深夜"}},Iu=(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}`}},Lu={ordinalNumber:Iu,era:Me({values:$u,defaultWidth:"wide"}),quarter:Me({values:Eu,defaultWidth:"wide",argumentCallback:e=>Number(e)-1}),month:Me({values:Wu,defaultWidth:"wide"}),day:Me({values:Au,defaultWidth:"wide"}),dayPeriod:Me({values:Fu,defaultWidth:"wide",formattingValues:Ru,defaultFormattingWidth:"wide"})},zu=/^第?\d+(年|四半期|月|週|日|時|分|秒)?/i,Yu=/\d+/i,Bu={narrow:/^(B\.?C\.?|A\.?D\.?)/i,abbreviated:/^(紀元[前後]|西暦)/i,wide:/^(紀元[前後]|西暦)/i},Hu={narrow:[/^B/i,/^A/i],any:[/^(紀元前)/i,/^(西暦|紀元後)/i]},Uu={narrow:/^[1234]/i,abbreviated:/^Q[1234]/i,wide:/^第[1234一二三四1234]四半期/i},Vu={any:[/(1|一|1)/i,/(2|二|2)/i,/(3|三|3)/i,/(4|四|4)/i]},qu={narrow:/^([123456789]|1[012])/,abbreviated:/^([123456789]|1[012])月/i,wide:/^([123456789]|1[012])月/i},Xu={any:[/^1\D/,/^2/,/^3/,/^4/,/^5/,/^6/,/^7/,/^8/,/^9/,/^10/,/^11/,/^12/]},Gu={narrow:/^[日月火水木金土]/,short:/^[日月火水木金土]/,abbreviated:/^[日月火水木金土]/,wide:/^[日月火水木金土]曜日/},Ku={any:[/^日/,/^月/,/^火/,/^水/,/^木/,/^金/,/^土/]},Qu={any:/^(AM|PM|午前|午後|正午|深夜|真夜中|夜|朝)/i},Ju={any:{am:/^(A|午前)/i,pm:/^(P|午後)/i,midnight:/^深夜|真夜中/i,noon:/^正午/i,morning:/^朝/i,afternoon:/^午後/i,evening:/^夜/i,night:/^深夜/i}},Zu={ordinalNumber:cn({matchPattern:zu,parsePattern:Yu,valueCallback:function(e){return parseInt(e,10)}}),era:je({matchPatterns:Bu,defaultMatchWidth:"wide",parsePatterns:Hu,defaultParseWidth:"any"}),quarter:je({matchPatterns:Uu,defaultMatchWidth:"wide",parsePatterns:Vu,defaultParseWidth:"any",valueCallback:e=>e+1}),month:je({matchPatterns:qu,defaultMatchWidth:"wide",parsePatterns:Xu,defaultParseWidth:"any"}),day:je({matchPatterns:Gu,defaultMatchWidth:"wide",parsePatterns:Ku,defaultParseWidth:"any"}),dayPeriod:je({matchPatterns:Qu,defaultMatchWidth:"any",parsePatterns:Ju,defaultParseWidth:"any"})},ef={code:"ja",formatDistance:ju,formatLong:Tu,formatRelative:Ou,localize:Lu,match:Zu,options:{weekStartsOn:0,firstWeekContainsDate:1}},tf={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}}년"}},nf=(e,t,n)=>{let a;const r=tf[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},af={full:"y년 M월 d일 EEEE",long:"y년 M월 d일",medium:"y.MM.dd",short:"y.MM.dd"},rf={full:"a H시 mm분 ss초 zzzz",long:"a H:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},of={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},sf={date:Ye({formats:af,defaultWidth:"full"}),time:Ye({formats:rf,defaultWidth:"full"}),dateTime:Ye({formats:of,defaultWidth:"full"})},lf={lastWeek:"'지난' eeee p",yesterday:"'어제' p",today:"'오늘' p",tomorrow:"'내일' p",nextWeek:"'다음' eeee p",other:"P"},cf=(e,t,n,a)=>lf[e],df={narrow:["BC","AD"],abbreviated:["BC","AD"],wide:["기원전","서기"]},uf={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1분기","2분기","3분기","4분기"]},ff={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월"]},mf={narrow:["일","월","화","수","목","금","토"],short:["일","월","화","수","목","금","토"],abbreviated:["일","월","화","수","목","금","토"],wide:["일요일","월요일","화요일","수요일","목요일","금요일","토요일"]},hf={narrow:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},abbreviated:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},wide:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"}},gf={narrow:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},abbreviated:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"},wide:{am:"오전",pm:"오후",midnight:"자정",noon:"정오",morning:"아침",afternoon:"오후",evening:"저녁",night:"밤"}},yf=(e,t)=>{const n=Number(e);switch(String(t?.unit)){case"minute":case"second":return String(n);case"date":return n+"일";default:return n+"번째"}},pf={ordinalNumber:yf,era:Me({values:df,defaultWidth:"wide"}),quarter:Me({values:uf,defaultWidth:"wide",argumentCallback:e=>e-1}),month:Me({values:ff,defaultWidth:"wide"}),day:Me({values:mf,defaultWidth:"wide"}),dayPeriod:Me({values:hf,defaultWidth:"wide",formattingValues:gf,defaultFormattingWidth:"wide"})},bf=/^(\d+)(일|번째)?/i,xf=/\d+/i,kf={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},wf={any:[/^(bc|기원전)/i,/^(ad|서기)/i]},vf={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234]사?분기/i},Nf={any:[/1/i,/2/i,/3/i,/4/i]},_f={narrow:/^(1[012]|[123456789])/,abbreviated:/^(1[012]|[123456789])월/i,wide:/^(1[012]|[123456789])월/i},Mf={any:[/^1월?$/,/^2/,/^3/,/^4/,/^5/,/^6/,/^7/,/^8/,/^9/,/^10/,/^11/,/^12/]},jf={narrow:/^[일월화수목금토]/,short:/^[일월화수목금토]/,abbreviated:/^[일월화수목금토]/,wide:/^[일월화수목금토]요일/},Sf={any:[/^일/,/^월/,/^화/,/^수/,/^목/,/^금/,/^토/]},Cf={any:/^(am|pm|오전|오후|자정|정오|아침|저녁|밤)/i},Df={any:{am:/^(am|오전)/i,pm:/^(pm|오후)/i,midnight:/^자정/i,noon:/^정오/i,morning:/^아침/i,afternoon:/^오후/i,evening:/^저녁/i,night:/^밤/i}},Tf={ordinalNumber:cn({matchPattern:bf,parsePattern:xf,valueCallback:e=>parseInt(e,10)}),era:je({matchPatterns:kf,defaultMatchWidth:"wide",parsePatterns:wf,defaultParseWidth:"any"}),quarter:je({matchPatterns:vf,defaultMatchWidth:"wide",parsePatterns:Nf,defaultParseWidth:"any",valueCallback:e=>e+1}),month:je({matchPatterns:_f,defaultMatchWidth:"wide",parsePatterns:Mf,defaultParseWidth:"any"}),day:je({matchPatterns:jf,defaultMatchWidth:"wide",parsePatterns:Sf,defaultParseWidth:"any"}),dayPeriod:je({matchPatterns:Cf,defaultMatchWidth:"any",parsePatterns:Df,defaultParseWidth:"any"})},Pf={code:"ko",formatDistance:nf,formatLong:sf,formatRelative:cf,localize:pf,match:Tf,options:{weekStartsOn:0,firstWeekContainsDate:1}},Of={lessThanXSeconds:{one:"不到 1 秒",other:"不到 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分钟",lessThanXMinutes:{one:"不到 1 分钟",other:"不到 {{count}} 分钟"},xMinutes:{one:"1 分钟",other:"{{count}} 分钟"},xHours:{one:"1 小时",other:"{{count}} 小时"},aboutXHours:{one:"大约 1 小时",other:"大约 {{count}} 小时"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大约 1 个星期",other:"大约 {{count}} 个星期"},xWeeks:{one:"1 个星期",other:"{{count}} 个星期"},aboutXMonths:{one:"大约 1 个月",other:"大约 {{count}} 个月"},xMonths:{one:"1 个月",other:"{{count}} 个月"},aboutXYears:{one:"大约 1 年",other:"大约 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超过 1 年",other:"超过 {{count}} 年"},almostXYears:{one:"将近 1 年",other:"将近 {{count}} 年"}},$f=(e,t,n)=>{let a;const r=Of[e];return typeof r=="string"?a=r:t===1?a=r.one:a=r.other.replace("{{count}}",String(t)),n?.addSuffix?n.comparison&&n.comparison>0?a+"内":a+"前":a},Ef={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},Wf={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},Af={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},Ff={date:Ye({formats:Ef,defaultWidth:"full"}),time:Ye({formats:Wf,defaultWidth:"full"}),dateTime:Ye({formats:Af,defaultWidth:"full"})};function mr(e,t,n){const a="eeee p";return pu(e,t,n)?a:e.getTime()>t.getTime()?"'下个'"+a:"'上个'"+a}const Rf={lastWeek:mr,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:mr,other:"PP p"},If=(e,t,n,a)=>{const r=Rf[e];return typeof r=="function"?r(t,n,a):r},Lf={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},zf={narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},Yf={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},Bf={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},Hf={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},Uf={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:"夜间"}},Vf=(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()}},qf={ordinalNumber:Vf,era:Me({values:Lf,defaultWidth:"wide"}),quarter:Me({values:zf,defaultWidth:"wide",argumentCallback:e=>e-1}),month:Me({values:Yf,defaultWidth:"wide"}),day:Me({values:Bf,defaultWidth:"wide"}),dayPeriod:Me({values:Hf,defaultWidth:"wide",formattingValues:Uf,defaultFormattingWidth:"wide"})},Xf=/^(第\s*)?\d+(日|时|分|秒)?/i,Gf=/\d+/i,Kf={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},Qf={any:[/^(前)/i,/^(公元)/i]},Jf={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},Zf={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},em={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},tm={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]},nm={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},am={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},rm={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},om={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},sm={ordinalNumber:cn({matchPattern:Xf,parsePattern:Gf,valueCallback:e=>parseInt(e,10)}),era:je({matchPatterns:Kf,defaultMatchWidth:"wide",parsePatterns:Qf,defaultParseWidth:"any"}),quarter:je({matchPatterns:Jf,defaultMatchWidth:"wide",parsePatterns:Zf,defaultParseWidth:"any",valueCallback:e=>e+1}),month:je({matchPatterns:em,defaultMatchWidth:"wide",parsePatterns:tm,defaultParseWidth:"any"}),day:je({matchPatterns:nm,defaultMatchWidth:"wide",parsePatterns:am,defaultParseWidth:"any"}),dayPeriod:je({matchPatterns:rm,defaultMatchWidth:"any",parsePatterns:om,defaultParseWidth:"any"})},im={code:"zh-CN",formatDistance:$f,formatLong:Ff,formatRelative:If,localize:qf,match:sm,options:{weekStartsOn:1,firstWeekContainsDate:4}},lm={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}} 年"}},cm=(e,t,n)=>{let a;const r=lm[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},dm={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},um={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},fm={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},mm={date:Ye({formats:dm,defaultWidth:"full"}),time:Ye({formats:um,defaultWidth:"full"}),dateTime:Ye({formats:fm,defaultWidth:"full"})},hm={lastWeek:"'上個'eeee p",yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:"'下個'eeee p",other:"P"},gm=(e,t,n,a)=>hm[e],ym={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},pm={narrow:["1","2","3","4"],abbreviated:["第一刻","第二刻","第三刻","第四刻"],wide:["第一刻鐘","第二刻鐘","第三刻鐘","第四刻鐘"]},bm={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},xm={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["週日","週一","週二","週三","週四","週五","週六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},km={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:"夜間"}},wm={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:"夜間"}},vm=(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}},Nm={ordinalNumber:vm,era:Me({values:ym,defaultWidth:"wide"}),quarter:Me({values:pm,defaultWidth:"wide",argumentCallback:e=>e-1}),month:Me({values:bm,defaultWidth:"wide"}),day:Me({values:xm,defaultWidth:"wide"}),dayPeriod:Me({values:km,defaultWidth:"wide",formattingValues:wm,defaultFormattingWidth:"wide"})},_m=/^(第\s*)?\d+(日|時|分|秒)?/i,Mm=/\d+/i,jm={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},Sm={any:[/^(前)/i,/^(公元)/i]},Cm={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻鐘/i},Dm={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},Tm={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},Pm={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]},Om={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^週[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},$m={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},Em={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨)/i},Wm={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},Am={ordinalNumber:cn({matchPattern:_m,parsePattern:Mm,valueCallback:e=>parseInt(e,10)}),era:je({matchPatterns:jm,defaultMatchWidth:"wide",parsePatterns:Sm,defaultParseWidth:"any"}),quarter:je({matchPatterns:Cm,defaultMatchWidth:"wide",parsePatterns:Dm,defaultParseWidth:"any",valueCallback:e=>e+1}),month:je({matchPatterns:Tm,defaultMatchWidth:"wide",parsePatterns:Pm,defaultParseWidth:"any"}),day:je({matchPatterns:Om,defaultMatchWidth:"wide",parsePatterns:$m,defaultParseWidth:"any"}),dayPeriod:je({matchPatterns:Em,defaultMatchWidth:"any",parsePatterns:Wm,defaultParseWidth:"any"})},Fm={code:"zh-TW",formatDistance:cm,formatLong:mm,formatRelative:gm,localize:Nm,match:Am,options:{weekStartsOn:1,firstWeekContainsDate:4}},So={...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):yo(a,r),this.addMonths=(a,r)=>this.overrides?.addMonths?this.overrides.addMonths(a,r):po(a,r),this.addWeeks=(a,r)=>this.overrides?.addWeeks?this.overrides.addWeeks(a,r):sd(a,r),this.addYears=(a,r)=>this.overrides?.addYears?this.overrides.addYears(a,r):id(a,r),this.differenceInCalendarDays=(a,r)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(a,r):ha(a,r),this.differenceInCalendarMonths=(a,r)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(a,r):ko(a,r),this.eachMonthOfInterval=a=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(a):md(a),this.eachYearOfInterval=a=>{const r=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(a):yd(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):_u(a,this),this.endOfISOWeek=a=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(a):pd(a),this.endOfMonth=a=>this.overrides?.endOfMonth?this.overrides.endOfMonth(a):fd(a),this.endOfWeek=(a,r)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(a,r):No(a,this.options),this.endOfYear=a=>this.overrides?.endOfYear?this.overrides.endOfYear(a):gd(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):ga(a),this.getMonth=(a,r)=>this.overrides?.getMonth?this.overrides.getMonth(a,this.options):mu(a,this.options),this.getYear=(a,r)=>this.overrides?.getYear?this.overrides.getYear(a,this.options):hu(a,this.options),this.getWeek=(a,r)=>this.overrides?.getWeek?this.overrides.getWeek(a,this.options):ya(a,this.options),this.isAfter=(a,r)=>this.overrides?.isAfter?this.overrides.isAfter(a,r):gu(a,r),this.isBefore=(a,r)=>this.overrides?.isBefore?this.overrides.isBefore(a,r):yu(a,r),this.isDate=a=>this.overrides?.isDate?this.overrides.isDate(a):xo(a),this.isSameDay=(a,r)=>this.overrides?.isSameDay?this.overrides.isSameDay(a,r):dd(a,r),this.isSameMonth=(a,r)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(a,r):bu(a,r),this.isSameYear=(a,r)=>this.overrides?.isSameYear?this.overrides.isSameYear(a,r):xu(a,r),this.max=a=>this.overrides?.max?this.overrides.max(a):ld(a),this.min=a=>this.overrides?.min?this.overrides.min(a):cd(a),this.setMonth=(a,r)=>this.overrides?.setMonth?this.overrides.setMonth(a,r):ku(a,r),this.setYear=(a,r)=>this.overrides?.setYear?this.overrides.setYear(a,r):wu(a,r),this.startOfBroadcastWeek=(a,r)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(a,this):jo(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):hd(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):vo(a),this.options={locale:So,...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 Co{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 Rm{constructor(t,n){this.date=t,this.weeks=n}}class Im{constructor(t,n){this.days=n,this.weekNumber=t}}function Lm(e){return R.createElement("button",{...e})}function zm(e){return R.createElement("span",{...e})}function Ym(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 Bm(e){const{day:t,modifiers:n,...a}=e;return R.createElement("td",{...a})}function Hm(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 J;(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"})(J||(J={}));var Se;(function(e){e.disabled="disabled",e.hidden="hidden",e.outside="outside",e.focused="focused",e.today="today"})(Se||(Se={}));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 Um(e){const{options:t,className:n,components:a,classNames:r,...s}=e,l=[r[J.Dropdown],n].join(" "),i=t?.find(({value:c})=>c===s.value);return R.createElement("span",{"data-disabled":s.disabled,className:r[J.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[J.CaptionLabel],"aria-hidden":!0},i?.label,R.createElement(a.Chevron,{orientation:"down",size:18,className:r[J.Chevron]})))}function Vm(e){return R.createElement("div",{...e})}function qm(e){return R.createElement("div",{...e})}function Xm(e){const{calendarMonth:t,displayIndex:n,...a}=e;return R.createElement("div",{...a},e.children)}function Gm(e){const{calendarMonth:t,displayIndex:n,...a}=e;return R.createElement("div",{...a})}function Km(e){return R.createElement("table",{...e})}function Qm(e){return R.createElement("div",{...e})}const Do=h.createContext(void 0);function dn(){const e=h.useContext(Do);if(e===void 0)throw new Error("useDayPicker() must be used within a custom component.");return e}function Jm(e){const{components:t}=dn();return R.createElement(t.Dropdown,{...e})}function Zm(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[J.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[J.Chevron],orientation:"left"})),R.createElement(l.NextMonthButton,{type:"button",className:i[J.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[J.Chevron]})))}function eh(e){const{components:t}=dn();return R.createElement(t.Button,{...e})}function th(e){return R.createElement("option",{...e})}function nh(e){const{components:t}=dn();return R.createElement(t.Button,{...e})}function ah(e){const{rootRef:t,...n}=e;return R.createElement("div",{...n,ref:t})}function rh(e){return R.createElement("select",{...e})}function oh(e){const{week:t,...n}=e;return R.createElement("tr",{...n})}function sh(e){return R.createElement("th",{...e})}function ih(e){return R.createElement("thead",{"aria-hidden":!0},R.createElement("tr",{...e}))}function lh(e){const{week:t,...n}=e;return R.createElement("th",{...n})}function ch(e){return R.createElement("th",{...e})}function dh(e){return R.createElement("tbody",{...e})}function uh(e){const{components:t}=dn();return R.createElement(t.Dropdown,{...e})}const fh=Object.freeze(Object.defineProperty({__proto__:null,Button:Lm,CaptionLabel:zm,Chevron:Ym,Day:Bm,DayButton:Hm,Dropdown:Um,DropdownNav:Vm,Footer:qm,Month:Xm,MonthCaption:Gm,MonthGrid:Km,Months:Qm,MonthsDropdown:Jm,Nav:Zm,NextMonthButton:eh,Option:th,PreviousMonthButton:nh,Root:ah,Select:rh,Week:oh,WeekNumber:lh,WeekNumberHeader:ch,Weekday:sh,Weekdays:ih,Weeks:dh,YearsDropdown:uh},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 pa(e){return!!(e&&typeof e=="object"&&"before"in e&&"after"in e)}function Sn(e){return!!(e&&typeof e=="object"&&"from"in e)}function ba(e){return!!(e&&typeof e=="object"&&"after"in e)}function xa(e){return!!(e&&typeof e=="object"&&"before"in e)}function To(e){return!!(e&&typeof e=="object"&&"dayOfWeek"in e)}function Po(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(Po(i,n))return i.some(c=>r(e,c));if(Sn(i))return ut(i,e,!1,n);if(To(i))return Array.isArray(i.dayOfWeek)?i.dayOfWeek.includes(e.getDay()):i.dayOfWeek===e.getDay();if(pa(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 ba(i)?s(e,i.after)>0:xa(i)?s(i.before,e)>0:typeof i=="function"?i(e):!1})}function mh(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:N}=r,x=n&&g(n),j=a&&b(a),k={[Se.focused]:[],[Se.outside]:[],[Se.disabled]:[],[Se.hidden]:[],[Se.today]:[]},_={};for(const S of e){const{date:D,displayMonth:I}=S,O=!!(I&&!m(D,I)),C=!!(x&&y(D,x)),W=!!(j&&N(D,j)),Z=!!(s&&ft(D,s,r)),B=!!(l&&ft(D,l,r))||C||W||!u&&!c&&O||u&&c===!1&&O,T=d(D,f);O&&k.outside.push(S),Z&&k.disabled.push(S),B&&k.hidden.push(S),T&&k.today.push(S),i&&Object.keys(i).forEach(E=>{const z=i?.[E];z&&ft(D,z,r)&&(_[E]?_[E].push(S):_[E]=[S])})}return S=>{const D={[Se.focused]:!1,[Se.disabled]:!1,[Se.hidden]:!1,[Se.outside]:!1,[Se.today]:!1},I={};for(const O in k){const C=k[O];D[O]=C.some(W=>W===S)}for(const O in _)I[O]=_[O].some(C=>C===S);return{...D,...I}}}function hh(e,t,n={}){return Object.entries(e).filter(([,r])=>r===!0).reduce((r,[s])=>(n[s]?r.push(n[s]):t[Se[s]]?r.push(t[Se[s]]):t[Ze[s]]&&r.push(t[Ze[s]]),r),[t[J.Day]])}function gh(e){return{...fh,...e}}function yh(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 ph(){const e={};for(const t in J)e[J[t]]=`rdp-${J[t]}`;for(const t in Se)e[Se[t]]=`rdp-${Se[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 Oo(e,t,n){return(n??new Ue(t)).formatMonthYear(e)}const bh=Oo;function xh(e,t,n){return(n??new Ue(t)).format(e,"d")}function kh(e,t=st){return t.format(e,"LLLL")}function wh(e,t,n){return(n??new Ue(t)).format(e,"cccccc")}function vh(e,t=st){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function Nh(){return""}function $o(e,t=st){return t.format(e,"yyyy")}const _h=$o,Mh=Object.freeze(Object.defineProperty({__proto__:null,formatCaption:Oo,formatDay:xh,formatMonthCaption:bh,formatMonthDropdown:kh,formatWeekNumber:vh,formatWeekNumberHeader:Nh,formatWeekdayName:wh,formatYearCaption:_h,formatYearDropdown:$o},Symbol.toStringTag,{value:"Module"}));function jh(e){return e?.formatMonthCaption&&!e.formatCaption&&(e.formatCaption=e.formatMonthCaption),e?.formatYearCaption&&!e.formatYearDropdown&&(e.formatYearDropdown=e.formatYearCaption),{...Mh,...e}}function ka(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 Sh=ka;function wa(e,t,n){return(n??new Ue(t)).formatMonthYear(e)}const Ch=wa;function Eo(e,t,n,a){let r=(a??new Ue(n)).format(e,"PPPP");return t?.today&&(r=`Today, ${r}`),r}function Wo(e){return"Choose the Month"}function Ao(){return""}const Dh="Go to the Next Month";function Fo(e,t){return Dh}function Ro(e){return"Go to the Previous Month"}function Io(e,t,n){return(n??new Ue(t)).format(e,"cccc")}function Lo(e,t){return`Week ${e}`}function zo(e){return"Week Number"}function Yo(e){return"Choose the Year"}const Th=Object.freeze(Object.defineProperty({__proto__:null,labelCaption:Ch,labelDay:Sh,labelDayButton:ka,labelGrid:wa,labelGridcell:Eo,labelMonthDropdown:Wo,labelNav:Ao,labelNext:Fo,labelPrevious:Ro,labelWeekNumber:Lo,labelWeekNumberHeader:zo,labelWeekday:Io,labelYearDropdown:Yo},Symbol.toStringTag,{value:"Module"})),Je=(e,t,n)=>t||(n?typeof n=="function"?n:(...a)=>n:e);function Ph(e,t){const n=t.locale?.labels??{};return{...Th,...e??{},labelDayButton:Je(ka,e?.labelDayButton,n.labelDayButton),labelMonthDropdown:Je(Wo,e?.labelMonthDropdown,n.labelMonthDropdown),labelNext:Je(Fo,e?.labelNext,n.labelNext),labelPrevious:Je(Ro,e?.labelPrevious,n.labelPrevious),labelWeekNumber:Je(Lo,e?.labelWeekNumber,n.labelWeekNumber),labelYearDropdown:Je(Yo,e?.labelYearDropdown,n.labelYearDropdown),labelGrid:Je(wa,e?.labelGrid,n.labelGrid),labelGridcell:Je(Eo,e?.labelGridcell,n.labelGridcell),labelNav:Je(Ao,e?.labelNav,n.labelNav),labelWeekNumberHeader:Je(zo,e?.labelWeekNumberHeader,n.labelWeekNumberHeader),labelWeekday:Je(Io,e?.labelWeekday,n.labelWeekday)}}function Oh(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 $h(e,t={},n={}){let a={...t?.[J.Day]};return Object.entries(e).filter(([,r])=>r===!0).forEach(([r])=>{a={...a,...n?.[r]}}),a}function Eh(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 Wh(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 Ah(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 ya(u,{weekStartsOn:c?.weekStartsOn??r,firstWeekContainsDate:c?.firstWeekContainsDate??a?.options?.firstWeekContainsDate??1})},getISOWeek:i=>{const c=l(i);return ga(c)},differenceInCalendarDays:(i,c)=>{const u=l(i),f=l(c);return ha(u,f)},differenceInCalendarMonths:(i,c)=>{const u=l(i),f=l(c);return ko(u,f)}}}const un=e=>e instanceof HTMLElement?e:null,Bn=e=>[...e.querySelectorAll("[data-animated-month]")??[]],Fh=e=>un(e.querySelector("[data-animated-month]")),Hn=e=>un(e.querySelector("[data-animated-caption]")),Un=e=>un(e.querySelector("[data-animated-weeks]")),Rh=e=>un(e.querySelector("[data-animated-nav]")),Ih=e=>un(e.querySelector("[data-animated-weekdays]"));function Lh(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?(Bn(b).forEach(k=>{if(!(k instanceof HTMLElement))return;const _=Fh(k);_&&k.contains(_)&&k.removeChild(_);const S=Hn(k);S&&S.classList.remove(m);const D=Un(k);D&&D.classList.remove(g)}),l.current=b):l.current=null,c.current||f||r)return;const N=y instanceof HTMLElement?Bn(y):[],x=Bn(e.current);if(x?.every(j=>j instanceof HTMLElement)&&N&&N.every(j=>j instanceof HTMLElement)){c.current=!0,e.current.style.isolation="isolate";const j=Rh(e.current);j&&(j.style.zIndex="1"),x.forEach((k,_)=>{const S=N[_];if(!S)return;k.style.position="relative",k.style.overflow="hidden";const D=Hn(k);D&&D.classList.add(m);const I=Un(k);I&&I.classList.add(g);const O=()=>{c.current=!1,e.current&&(e.current.style.isolation=""),j&&(j.style.zIndex=""),D&&D.classList.remove(m),I&&I.classList.remove(g),k.style.position="",k.style.overflow="",k.contains(S)&&k.removeChild(S)};S.style.pointerEvents="none",S.style.position="absolute",S.style.overflow="hidden",S.setAttribute("aria-hidden","true");const C=Ih(S);C&&(C.style.opacity="0");const W=Hn(S);W&&(W.classList.add(d?n[He.caption_before_exit]:n[He.caption_after_exit]),W.addEventListener("animationend",O));const Z=Un(S);Z&&Z.classList.add(d?n[He.weeks_before_exit]:n[He.weeks_after_exit]),k.insertBefore(S,k.firstChild)})}})}function zh(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:N,startOfBroadcastWeek:x,startOfISOWeek:j,startOfWeek:k}=a,_=c?x(r,a):l?j(r):k(r),S=c?m(s):l?g(y(s)):b(y(s)),D=t&&(c?m(t):l?g(t):b(t)),I=D&&N(S,D)?D:S,O=f(I,_),C=d(s,r)+1,W=[];for(let T=0;T<=O;T++){const E=u(_,T);W.push(E)}const B=(c?35:42)*C;if(i&&W.length<B){const T=B-W.length;for(let E=0;E<T;E++){const z=u(W[W.length-1],1);W.push(z)}}return W}function Yh(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 Bh(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 hr(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 Hh(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,N)=>{const x=n.broadcastCalendar?d(N,a):n.ISOWeek?m(N):g(N),j=n.broadcastCalendar?s(N):n.ISOWeek?l(i(N)):c(i(N)),k=t.filter(I=>I>=x&&I<=j),_=n.broadcastCalendar?35:42;if(n.fixedWeeks&&k.length<_){const I=t.filter(O=>{const C=_-k.length;return O>j&&O<=r(j,C)});k.push(...I)}const S=k.reduce((I,O)=>{const C=n.ISOWeek?u(O):f(O),W=I.find(B=>B.weekNumber===C),Z=new Co(O,N,a);return W?W.days.push(Z):I.push(new Im(C,[Z])),I},[]),D=new Rm(N,S);return b.push(D),b},[]);return n.reverseMonths?y.reverse():y}function Uh(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 N=e.captionLayout==="dropdown"||e.captionLayout==="dropdown-years";return n?n=l(n):m?n=f(m,0,1):!n&&N&&(n=r(c(e.today??d(),-100))),a?a=i(a):g?a=f(g,11,31):!a&&N&&(a=u(e.today??d())),[n&&s(n),a&&s(a)]}function Vh(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 qh(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 Xh(e){const t=[];return e.reduce((n,a)=>n.concat(a.weeks.slice()),t.slice())}function Cn(e,t){const[n,a]=h.useState(e);return[t===void 0?n:t,a]}function Gh(e,t){const[n,a]=Uh(e,t),{startOfMonth:r,endOfMonth:s}=t,l=hr(e,n,a,t),[i,c]=Cn(l,e.month?l:void 0);h.useEffect(()=>{const _=hr(e,n,a,t);c(_)},[e.timeZone]);const{months:u,weeks:f,days:d,previousMonth:m,nextMonth:g}=h.useMemo(()=>{const _=Bh(i,a,{numberOfMonths:e.numberOfMonths},t),S=zh(_,e.endMonth?s(e.endMonth):void 0,{ISOWeek:e.ISOWeek,fixedWeeks:e.fixedWeeks,broadcastCalendar:e.broadcastCalendar},t),D=Hh(_,S,{broadcastCalendar:e.broadcastCalendar,fixedWeeks:e.fixedWeeks,ISOWeek:e.ISOWeek,reverseMonths:e.reverseMonths},t),I=Xh(D),O=Yh(D),C=qh(i,n,e,t),W=Vh(i,a,e,t);return{months:D,weeks:I,days:O,previousMonth:C,nextMonth:W}},[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,N=_=>f.some(S=>S.days.some(D=>D.isEqualTo(_))),x=_=>{if(y)return;let S=r(_);n&&S<r(n)&&(S=r(n)),a&&S>r(a)&&(S=r(a)),c(S),b?.(S)};return{months:u,weeks:f,days:d,navStart:n,navEnd:a,previousMonth:m,nextMonth:g,goToMonth:x,goToDay:_=>{N(_)||x(_.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 gr(e){return!e[Se.disabled]&&!e[Se.hidden]&&!e[Se.outside]}function Kh(e,t,n,a){let r,s=-1;for(const l of e){const i=t(l);gr(i)&&(i[Se.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[Se.today]&&s<nt.Today&&(r=l,s=nt.Today))}return r||(r=e.find(l=>gr(t(l)))),r}function Qh(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:N,min:x,startOfBroadcastWeek:j,startOfISOWeek:k,startOfWeek:_}=l;let D={day:u,week:d,month:f,year:m,startOfWeek:I=>c?j(I,l):i?k(I):_(I),endOfWeek:I=>c?g(I):i?y(I):b(I)}[e](n,t==="after"?1:-1);return t==="before"&&a?D=N([a,D]):t==="after"&&r&&(D=x([r,D])),D}function Bo(e,t,n,a,r,s,l,i=0){if(i>365)return;const c=Qh(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 Co(c,d,l);return!u&&!f?m:Bo(e,t,m,a,r,s,l,i+1)}function Jh(e,t,n,a,r){const{autoFocus:s}=e,[l,i]=h.useState(),c=Kh(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,N)=>{if(!u)return;const x=Bo(b,N,u,t.navStart,t.navEnd,e,r);x&&(e.disableNavigation&&!t.days.some(k=>k.isEqualTo(x))||(t.goToDay(x),f(x)))}}}function Zh(e,t){const{selected:n,required:a,onSelect:r}=e,[s,l]=Cn(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 N=[...i??[]];if(u(g)){if(i?.length===f||a&&i?.length===1)return;N=i?.filter(x=>!c(x,g))}else i?.length===d?N=[g]:N=[...N,g];return r||l(N),r?.(N,g,y,b),N},isSelected:u}}function e0(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 t0(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 yr(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 n0(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):Po(i,n)?i.some(c=>ut(e,c,!1,n)):Sn(i)?i.from&&i.to?yr(e,{from:i.from,to:i.to},n):!1:To(i)?t0(e,i.dayOfWeek,n):pa(i)?n.isAfter(i.before,i.after)?yr(e,{from:n.addDays(i.after,1),to:n.addDays(i.before,-1)},n):ft(e.from,i,n)||ft(e.to,i,n):ba(i)||xa(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 a0(e,t){const{disabled:n,excludeDisabled:a,resetOnSelect:r,selected:s,required:l,onSelect:i}=e,[c,u]=Cn(s,i?s:void 0),f=i?s:c;return{selected:f,select:(g,y,b)=>{const{min:N,max:x}=e;let j;if(g){const k=f?.from,_=f?.to,S=!!k&&!!_,D=!!k&&!!_&&t.isSameDay(k,_)&&t.isSameDay(g,k);r&&(S||!f?.from)?!l&&D?j=void 0:j={from:g,to:void 0}:j=e0(g,f,N,x,l,t)}return a&&n&&j?.from&&j.to&&n0({from:j.from,to:j.to},n,t)&&(j.from=g,j.to=void 0),i||u(j),i?.(j,g,y,b),j},isSelected:g=>f&&ut(f,g,!1,t)}}function r0(e,t){const{selected:n,required:a,onSelect:r}=e,[s,l]=Cn(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 o0(e,t){const n=r0(e,t),a=Zh(e,t),r=a0(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 Rt(e,t,n){return qe(e,t)}function pr(e,t,n){return typeof e=="boolean"||typeof e=="function"?e:e instanceof Date?Rt(e,t):Array.isArray(e)?e.map(a=>a instanceof Date?Rt(a,t):a):Sn(e)?{...e,from:e.from?qe(e.from,t):e.from,to:e.to?qe(e.to,t):e.to}:pa(e)?{before:Rt(e.before,t),after:Rt(e.after,t)}:ba(e)?{after:Rt(e.after,t)}:xa(e)?{before:Rt(e.before,t)}:e}function Vn(e,t,n){return e&&(Array.isArray(e)?e.map(a=>pr(a,t)):pr(e,t))}function s0(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(re=>qe(re,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=Vn(t.disabled,n)),t.hidden!==void 0&&(t.hidden=Vn(t.hidden,n)),t.modifiers)){const re={};Object.keys(t.modifiers).forEach(oe=>{re[oe]=Vn(t.modifiers?.[oe],n)}),t.modifiers=re}const{components:a,formatters:r,labels:s,dateLib:l,locale:i,classNames:c}=h.useMemo(()=>{const re={...So,...t.locale},oe=t.broadcastCalendar?1:t.weekStartsOn,ee=t.noonSafe&&t.timeZone?Ah(t.timeZone,{weekStartsOn:oe,locale:re}):void 0,ce=t.dateLib&&ee?{...ee,...t.dateLib}:t.dateLib??ee,Ce=new Ue({locale:re,weekStartsOn:oe,firstWeekContainsDate:t.firstWeekContainsDate,useAdditionalWeekYearTokens:t.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:t.useAdditionalDayOfYearTokens,timeZone:t.timeZone,numerals:t.numerals},ce);return{dateLib:Ce,components:gh(t.components),formatters:jh(t.formatters),labels:Ph(t.labels,Ce.options),locale:re,classNames:{...ph(),...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:N,onDayMouseEnter:x,onDayMouseLeave:j,onNextClick:k,onPrevClick:_,showWeekNumber:S,styles:D}=t,{formatCaption:I,formatDay:O,formatMonthDropdown:C,formatWeekNumber:W,formatWeekNumberHeader:Z,formatWeekdayName:B,formatYearDropdown:T}=r,E=Gh(t,l),{days:z,months:v,navStart:w,navEnd:L,previousMonth:M,nextMonth:X,goToMonth:F}=E,U=mh(z,t,w,L,l),{isSelected:H,select:K,selected:me}=o0(t,l)??{},{blur:ve,focused:Ne,isFocusTarget:we,moveFocus:G,setFocused:Oe}=Jh(t,E,U,H??(()=>!1),l),{labelDayButton:de,labelGridcell:be,labelGrid:$,labelMonthDropdown:te,labelNav:he,labelPrevious:le,labelNext:_e,labelWeekday:We,labelWeekNumber:De,labelWeekNumberHeader:A,labelYearDropdown:Y}=s,V=h.useMemo(()=>Eh(l,t.ISOWeek,t.broadcastCalendar,t.today),[l,t.ISOWeek,t.broadcastCalendar,t.today]),q=f!==void 0||y!==void 0,ne=h.useCallback(()=>{M&&(F(M),_?.(M))},[M,F,_]),se=h.useCallback(()=>{X&&(F(X),k?.(X))},[F,X,k]),ye=h.useCallback((re,oe)=>ee=>{ee.preventDefault(),ee.stopPropagation(),Oe(re),!oe.disabled&&(K?.(re.date,oe,ee),y?.(re.date,oe,ee))},[K,y,Oe]),fe=h.useCallback((re,oe)=>ee=>{Oe(re),b?.(re.date,oe,ee)},[b,Oe]),ge=h.useCallback((re,oe)=>ee=>{ve(),g?.(re.date,oe,ee)},[ve,g]),Te=h.useCallback((re,oe)=>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];G(Ce,ie)}N?.(re.date,oe,ee)},[G,N,t.dir]),pe=h.useCallback((re,oe)=>ee=>{x?.(re.date,oe,ee)},[x]),$e=h.useCallback((re,oe)=>ee=>{j?.(re.date,oe,ee)},[j]),Ae=h.useCallback(re=>oe=>{const ee=Number(oe.target.value),ce=l.setMonth(l.startOfMonth(re),ee);F(ce)},[l,F]),Be=h.useCallback(re=>oe=>{const ee=Number(oe.target.value),ce=l.setYear(l.startOfMonth(re),ee);F(ce)},[l,F]),{className:_t,style:gt}=h.useMemo(()=>({className:[c[J.Root],t.className].filter(Boolean).join(" "),style:{...D?.[J.Root],...t.style}}),[c,t.className,t.style,D]),yt=yh(t),pt=h.useRef(null);Lh(pt,!!t.animate,{classNames:c,months:v,focused:Ne,dateLib:l});const Mt={dayPickerProps:t,selected:me,select:K,isSelected:H,months:v,nextMonth:X,previousMonth:M,goToMonth:F,getModifiers:U,components:a,classNames:c,styles:D,labels:s,formatters:r};return R.createElement(Do.Provider,{value:Mt},R.createElement(a.Root,{rootRef:t.animate?pt: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[J.Months],style:D?.[J.Months]},!t.hideNavigation&&!d&&R.createElement(a.Nav,{"data-animated-nav":t.animate?"true":void 0,className:c[J.Nav],style:D?.[J.Nav],"aria-label":he(),onPreviousClick:ne,onNextClick:se,previousMonth:M,nextMonth:X}),v.map((re,oe)=>R.createElement(a.Month,{"data-animated-month":t.animate?"true":void 0,className:c[J.Month],style:D?.[J.Month],key:oe,displayIndex:oe,calendarMonth:re},d==="around"&&!t.hideNavigation&&oe===0&&R.createElement(a.PreviousMonthButton,{type:"button",className:c[J.PreviousMonthButton],tabIndex:M?void 0:-1,"aria-disabled":M?void 0:!0,"aria-label":le(M),onClick:ne,"data-animated-button":t.animate?"true":void 0},R.createElement(a.Chevron,{disabled:M?void 0:!0,className:c[J.Chevron],orientation:t.dir==="rtl"?"right":"left"})),R.createElement(a.MonthCaption,{"data-animated-caption":t.animate?"true":void 0,className:c[J.MonthCaption],style:D?.[J.MonthCaption],calendarMonth:re,displayIndex:oe},u?.startsWith("dropdown")?R.createElement(a.DropdownNav,{className:c[J.Dropdowns],style:D?.[J.Dropdowns]},(()=>{const ee=u==="dropdown"||u==="dropdown-months"?R.createElement(a.MonthsDropdown,{key:"month",className:c[J.MonthsDropdown],"aria-label":te(),classNames:c,components:a,disabled:!!t.disableNavigation,onChange:Ae(re.date),options:Oh(re.date,w,L,r,l),style:D?.[J.Dropdown],value:l.getMonth(re.date)}):R.createElement("span",{key:"month"},C(re.date,l)),ce=u==="dropdown"||u==="dropdown-years"?R.createElement(a.YearsDropdown,{key:"year",className:c[J.YearsDropdown],"aria-label":Y(l.options),classNames:c,components:a,disabled:!!t.disableNavigation,onChange:Be(re.date),options:Wh(w,L,r,l,!!t.reverseYears),style:D?.[J.Dropdown],value:l.getYear(re.date)}):R.createElement("span",{key:"year"},T(re.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"}},I(re.date,l.options,l))):R.createElement(a.CaptionLabel,{className:c[J.CaptionLabel],role:"status","aria-live":"polite"},I(re.date,l.options,l))),d==="around"&&!t.hideNavigation&&oe===m-1&&R.createElement(a.NextMonthButton,{type:"button",className:c[J.NextMonthButton],tabIndex:X?void 0:-1,"aria-disabled":X?void 0:!0,"aria-label":_e(X),onClick:se,"data-animated-button":t.animate?"true":void 0},R.createElement(a.Chevron,{disabled:X?void 0:!0,className:c[J.Chevron],orientation:t.dir==="rtl"?"left":"right"})),oe===m-1&&d==="after"&&!t.hideNavigation&&R.createElement(a.Nav,{"data-animated-nav":t.animate?"true":void 0,className:c[J.Nav],style:D?.[J.Nav],"aria-label":he(),onPreviousClick:ne,onNextClick:se,previousMonth:M,nextMonth:X}),R.createElement(a.MonthGrid,{role:"grid","aria-multiselectable":f==="multiple"||f==="range","aria-label":$(re.date,l.options,l)||void 0,className:c[J.MonthGrid],style:D?.[J.MonthGrid]},!t.hideWeekdays&&R.createElement(a.Weekdays,{"data-animated-weekdays":t.animate?"true":void 0,className:c[J.Weekdays],style:D?.[J.Weekdays]},S&&R.createElement(a.WeekNumberHeader,{"aria-label":A(l.options),className:c[J.WeekNumberHeader],style:D?.[J.WeekNumberHeader],scope:"col"},Z()),V.map(ee=>R.createElement(a.Weekday,{"aria-label":We(ee,l.options,l),className:c[J.Weekday],key:String(ee),style:D?.[J.Weekday],scope:"col"},B(ee,l.options,l)))),R.createElement(a.Weeks,{"data-animated-weeks":t.animate?"true":void 0,className:c[J.Weeks],style:D?.[J.Weeks]},re.weeks.map(ee=>R.createElement(a.Week,{className:c[J.Week],key:ee.weekNumber,style:D?.[J.Week],week:ee},S&&R.createElement(a.WeekNumber,{week:ee,style:D?.[J.WeekNumber],"aria-label":De(ee.weekNumber,{locale:i}),className:c[J.WeekNumber],scope:"row",role:"rowheader"},W(ee.weekNumber,l)),ee.days.map(ce=>{const{date:Ce}=ce,ie=U(ce);if(ie[Se.focused]=!ie.hidden&&!!Ne?.isEqualTo(ce),ie[Ze.selected]=H?.(Ce)||ie.selected,Sn(me)){const{from:Le,to:St}=me;ie[Ze.range_start]=!!(Le&&St&&l.isSameDay(Ce,Le)),ie[Ze.range_end]=!!(Le&&St&&l.isSameDay(Ce,St)),ie[Ze.range_middle]=ut(me,Ce,!0,l)}const jt=$h(ie,D,t.modifiersStyles),bt=hh(ie,c,t.modifiersClassNames),$t=!q&&!ie.hidden?be(Ce,ie,l.options,l):void 0;return R.createElement(a.Day,{key:`${ce.isoDate}_${ce.displayMonthId}`,day:ce,modifiers:ie,className:bt.join(" "),style:jt,role:"gridcell","aria-selected":ie.selected||void 0,"aria-label":$t,"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[J.DayButton],style:D?.[J.DayButton],type:"button",day:ce,modifiers:ie,disabled:!ie.focused&&ie.disabled||void 0,"aria-disabled":ie.focused&&ie.disabled||void 0,tabIndex:we(ce)?0:-1,"aria-label":de(Ce,ie,l.options,l),onClick:ye(ce,ie),onBlur:ge(ce,ie),onFocus:fe(ce,ie),onKeyDown:Te(ce,ie),onMouseEnter:pe(ce,ie),onMouseLeave:$e(ce,ie)},O(Ce,l.options,l)):!ie.hidden&&O(ce.date,l.options,l))})))))))),t.footer&&R.createElement(a.Footer,{className:c[J.Footer],style:D?.[J.Footer],role:"status","aria-live":"polite"},t.footer)))}const i0={en:wt,"zh-CN":im,"zh-TW":Fm,ja:ef,ko:Pf};function Ho(e){return i0[e]||wt}function br(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 sa({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=Ho(Vr()),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(s0,{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(Kn,{variant:"secondary",size:"sm",onClick:a,children:p("shared.action.cancel")}),o.jsx(Kn,{variant:"primary",size:"sm",onClick:c,disabled:!u,children:p("shared.action.apply")})]})]})}function va(e){if(!Number.isFinite(Number(e)))return null;const t=Number(e);return t<=0?null:Fe(t,{decimals:1})}function Na(e,t,n){const a=Number(e);if(!Number.isFinite(a)||a<=0)return null;const r=ca(t);return(t===Ur?a:a*n)<.01?`<${r}0.01`:et(a,{decimals:2,currency:t,rate:n})}function l0(e,t,n){const a=Na(e,t,n);return a?`${a}/MTok`:null}function Qt(e){return e?String(e).replace(/^claude-/,""):""}function c0(e){return Array.isArray(e)?e.map(t=>typeof t=="string"?{key:t,label:xr(t)}:{key:t.key,label:t.label||xr(t.key)}):[]}function d0(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 u0={CODEX:"#3b82f6",CLAUDE:"#d97757",OPENCODE:"#f59e0b",GEMINI:"#2196f3",KIMI:"#a78bfa","KILO-CLI":"#facc15","KILO-CODE":"#facc15",DROID:"#ef4444"};function qn(e,t){const n=e?.toUpperCase?.()||"";return u0[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 _a(e){return!!e?.models?.length}function f0(e){const t=Number(e);return!Number.isFinite(t)||t<=0?"0%":`${Math.min(100,Math.max(2,t))}%`}function m0(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 h0(e,t=3){return[...e?.models||[]].sort((n,a)=>(Number(a.share)||0)-(Number(n.share)||0)).slice(0,t)}function g0(e,t){return Math.max(0,(e?.models?.length||0)-t.length)}const y0={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 xr(e){const t=y0[e];return t?p(t):String(e).toUpperCase()}function p0({loading:e,onClick:t}){const n=Yt();return o.jsx(Kn,{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 kr({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:N,customRangeOpen:x,onCustomRangeOpenChange:j,emphasized:k=!1}){const _=Yt(),S=c0(t),D=Array.isArray(a)&&a.length>0&&typeof s=="function",I=Ho(Vr()),O=d0(String(l??"")),C=()=>typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(max-width: 639px)").matches,[W,Z]=h.useState(C);h.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const $=window.matchMedia("(max-width: 639px)"),te=he=>Z(he.matches);return $.addEventListener("change",te),()=>$.removeEventListener("change",te)},[]);const B=O!=null&&!W&&!g&&!_,T=k&&l!=null&&String(l)!=="",E=h.useRef(null);h.useEffect(()=>{const $=E.current?.querySelector('[aria-selected="true"]');$&&typeof $.scrollIntoView=="function"&&$.scrollIntoView({block:"nearest",inline:"center"})},[e]);const{resolvedTheme:z}=Hr(),{currency:v,rate:w}=Nt(),L=z==="dark",M=L?"rgba(10,10,10,0.98)":"rgba(255,255,255,0.96)",X=L?"rgba(10,10,10,0)":"rgba(255,255,255,0)",F=l0(f?.costPerMillionTokens,v,w),U=f?.topCostModel?.name?Qt(f.topCostModel.name):"",H=f?.topUsageModel?.name?Qt(f.topUsageModel.name):"",K=Array.isArray(f?.missingPricingModels)?f.missingPricingModels.length:0,me=!!K,ve=!!(F||U||H||me),Ne=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":"",we=k?"flex-1 flex flex-col":"",G=k?"flex flex-1 flex-col justify-center":"",Oe=k?"flex flex-col gap-3":"flex flex-col gap-4 sm:flex-row sm:items-end sm:justify-between",de=k?"flex flex-col gap-2":"flex flex-col gap-2 sm:items-end",be=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:Ne,bodyClassName:we,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:S.map($=>{const te=e===$.key,he=`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($.key==="custom"){const le=te&&y&&b?`${br(y,I)} — ${br(b,I)}`:$.label;return o.jsxs(Jn,{open:x,onOpenChange:_e=>{_e?n?.("custom"):j?.(_e)},children:[o.jsx(Zn,{render:o.jsx("button",{role:"tab","aria-selected":te,type:"button",className:he}),children:le}),o.jsx(ea,{children:o.jsx(ta,{sideOffset:8,side:"bottom",align:"start",className:"!z-[9999]",children:o.jsx(na,{className:"bg-white dark:bg-oai-gray-900 border border-oai-gray-200 dark:border-oai-gray-700 rounded-xl shadow-lg",children:o.jsx(sa,{from:y,to:b,onApply:N,onCancel:()=>j?.(!1)})})})})]},"custom")}return o.jsx("button",{role:"tab","aria-selected":te,type:"button",className:he,onClick:()=>n?.($.key),children:$.label},$.key)})}),o.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[D?o.jsx("select",{"aria-label":p("usage.auto_refresh.aria"),value:String(r),onChange:$=>s($.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($=>o.jsx("option",{value:String($.value),children:p($.labelKey)},$.value))}):null,m&&o.jsx(p0,{loading:g,onClick:m})]})]}),o.jsx("div",{className:G,children:o.jsxs("div",{className:Oe,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:T?o.jsx(ml,{value:l,fontSize:58}):B?o.jsx(ll,{value:O,displayValue:l,fontSize:72,padding:6,gap:1,textColor:"var(--oai-black, #111827)",fontWeight:700,gradientHeight:L?0:8,gradientFrom:M,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||ve)&&o.jsxs("div",{className:de,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(ua,{size:16,strokeWidth:2,className:"opacity-80"})]}):o.jsx("span",{className:"text-xl font-bold text-oai-brand",children:u})}),ve&&o.jsxs("div",{className:be,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,U?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:U})}):null,H&&H!==U?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:H})}):null,me?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:K})}):null]})]})]})})]})}const wr={claude:35,codex:250},vr={system_prompt:{l:.55,c:.05},messages:{l:.65,c:.18},tool_calls:{l:.6,c:.14},custom_agents:{l:.55,c:.1},reasoning:{l:.7,c:.08}};function b0(e,t){const n=wr[t]??wr.claude,a=vr[e]||vr.system_prompt;return`oklch(${a.l} ${a.c} ${n})`}const x0=[{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"]}],k0=[["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"]],w0={duration:.18,ease:[.4,0,.2,1]},v0={height:0,opacity:0},N0={height:"auto",opacity:1},_0={height:0,opacity:0};function M0(e){const t=Number(e||0);return Number.isFinite(t)&&t>0?t:0}function j0(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 Uo(e,t=null){const n=e.reduce((l,i)=>l+Number(i.totals.total_tokens||0),0),a=M0(t),r=a||n,s=a&&n>0?a/n:1;return e.map(l=>{const i=s===1?l.totals:j0(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 S0(e,t=null){const n=new Map;for(const r of e||[])n.set(r.key,r);const a=x0.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 Uo(a,t)}function C0(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 Uo(c,t)}const Nr="MCP: ";function D0(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(Nr)?(t.push({...r,name:s.slice(Nr.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 _r(e){return p(`dashboard.context_breakdown.category.${e}`)}function at(e){return!Number.isFinite(Number(e))||Number(e)<=0?"0":Fe(Number(e),{decimals:1})}function T0(e){return typeof e!="string"?"":e.startsWith("mcp__")?e.split("__").slice(2).join("__")||e:e.includes("/")&&e.split("/").pop()||e}function P0(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:T0(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 O0(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:P0(a),toolCount:a.length}}).filter(t=>t.name).sort((t,n)=>(n.totals.total_tokens||0)-(t.totals.total_tokens||0))}function $0(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 E0(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 W0(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 A0(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 Mr(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 F0(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 jr(e){return e==="exec_command"||e==="Bash"}function Vo(e){return e==="codex"?"dashboard.context_breakdown.empty_codex":"dashboard.context_breakdown.empty"}function R0(e){return e==="codex"?"dashboard.context_breakdown.error_codex":"dashboard.context_breakdown.error"}function I0(e){return e==="codex"?"dashboard.context_breakdown.footnote_codex":"dashboard.context_breakdown.footnote"}const L0=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:L0},"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(qr,{size:11})})]}),N=m&&d!=null&&d>0,x=N?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:N?{backgroundImage:`linear-gradient(to right, ${m.replace(/\)\s*$/," / 0.10)")} 0%, ${m.replace(/\)\s*$/," / 0.10)")} ${x}%, transparent ${x}%)`}:void 0,children:[s?o.jsx("button",{type:"button",onClick:i,"aria-expanded":l,className:"relative flex items-center gap-1.5 min-w-0 text-left cursor-pointer focus-visible:outline-none focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-oai-brand/40 rounded-sm",children:b}):o.jsx("div",{className:"relative flex items-center gap-1.5 min-w-0",children:b}),o.jsx("span",{className:"relative text-right tabular-nums text-oai-gray-500 dark:text-oai-gray-400",children:c||""}),o.jsx("span",{className:"relative text-right tabular-nums text-[10px] text-oai-gray-400 dark:text-oai-gray-500 font-normal",children:u||""})]}),s&&f?o.jsx(Xr,{initial:!1,children:l&&o.jsx(ht.div,{initial:v0,animate:N0,exit:_0,transition:w0,style:{overflow:"hidden"},children:f},"content")}):null]})}function Sr({execDetails:e,source:t="claude"}){const[n,a]=h.useState("by_type"),r=A0(F0(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:k0.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:Fe(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:Fe(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:Mr(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:Mr(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:Fe(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=O0(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(Vo(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=>jr(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 N=m&&jr(b.name);return o.jsx(ct,{level:2,label:b.name,labelTone:N?"accent":"default",hasChevron:N,open:l,onToggle:()=>i(x=>!x),tokens:at(b.total_tokens||0),percent:null,children:N&&o.jsx(Sr,{execDetails:t,source:n})},b.name)})}),m&&!g&&o.jsx(Sr,{execDetails:t,source:n})]},f.name)})})}function qo({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(v){m(w=>({...w,[v]:!w[v]}))}if(h.useEffect(()=>{let v=!1;return c(!0),r?.(!0),f(null),_i({from:e,to:t,source:n,timeZone:Kr(),tzOffsetMinutes:Gr()}).then(w=>{v||l(w)}).catch(w=>{v||f(w?.message||String(w))}).finally(()=>{v||(c(!1),r?.(!1))}),()=>{v=!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(v=>o.jsx("div",{className:"h-3 rounded bg-oai-gray-100 dark:bg-oai-gray-800 animate-pulse",style:{animationDelay:`${v*80}ms`}},v))}),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(R0(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(Vo(n))});const y=n==="claude"?S0(s.categories||[],a):C0(s,a),b=s.tool_calls_breakdown||null,N=s.skills_breakdown||null,x=s.message_breakdown||null,j=s.configured_resources||null,k=s.exec_command_breakdown||null,_=E0(N?.skills||[]),S=$0(x?.categories||[]),D=n==="codex"&&(s?.breakdown_status==="queue_fallback"||s?.fallback==="queue_totals"),I=n==="claude"?b?.tool_calls||null:b||null,{mcpSet:O,residualSet:C,mcpTotalTokens:W}=D0(I),Z=n==="claude"&&b?.subagents||null,B=Z?.categories?.length>0||(j?.custom_agents_count||0)>0,T=n==="claude"?(C?.categories||[]).reduce((v,w)=>v+Number(w?.totals?.total_tokens||0),0):0,E=n==="claude"?(Z?.categories||[]).reduce((v,w)=>v+Number(w?.totals?.total_tokens||0),0):0,z=[...y].sort((v,w)=>(w.totals?.total_tokens||0)-(v.totals?.total_tokens||0));return o.jsxs("div",{role:"region","aria-label":p("dashboard.context_breakdown.bar_aria",{summary:y.filter(v=>v.percent>0).filter(v=>!(n==="claude"&&(v.key==="tool_calls"||v.key==="custom_agents"))).map(v=>`${_r(v.key)} ${v.percent}%`).join(",")}),children:[o.jsxs("ul",{className:"space-y-0.5",children:[z.map(v=>{const w=v.key==="system_prompt",L=v.key==="messages",M=v.key==="tool_calls",X=v.key==="custom_agents";if(v.key,n==="claude"&&(M||X))return null;const F=L&&S.length>0||M&&(C?.categories?.length>0||D)||X&&B&&Z,U=!!d[v.key],H=b0(v.key,n),K=o.jsx("span",{className:"h-2 w-2 rounded-sm shrink-0",style:{backgroundColor:H},"aria-hidden":"true"}),me=w?o.jsxs("span",{className:"relative inline-flex shrink-0 group",children:[o.jsx(ua,{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,ve=v.percent>0?`${v.percent.toFixed(v.percent<.1&&v.percent>0?2:1)}%`:"0.0%";return o.jsxs(ct,{level:0,colorSquare:K,label:_r(v.key),labelSuffix:me,tokens:at(v.totals?.total_tokens||0),percent:ve,hasChevron:F,open:U,onToggle:()=>g(v.key),share:v.percent,fillColor:H,children:[L&&o.jsx("ul",{className:"space-y-0.5",children:S.map(Ne=>o.jsx(ct,{level:1,label:W0(Ne),tokens:at(Ne.totals.total_tokens||0),percent:null},Ne.key||Ne.name))}),M&&C&&o.jsx(Xt,{toolSet:C,execDetails:k,source:n,codexQueueFallback:D}),M&&D&&!C&&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&&Z&&o.jsx(Xt,{toolSet:Z,execDetails:null,source:n,codexQueueFallback:!1})]},v.key)}),n==="claude"&&C?.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(T),percent:null,hasChevron:!0,open:!!d.tool_calls_aux,onToggle:()=>g("tool_calls_aux"),children:o.jsx(Xt,{toolSet:C,execDetails:k,source:n,codexQueueFallback:!1})}),n==="claude"&&Z?.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:Z,execDetails:null,source:n,codexQueueFallback:!1})}),O?.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(W),percent:null,hasChevron:!0,open:!!d.mcp_servers,onToggle:()=>g("mcp_servers"),children:o.jsx(Xt,{toolSet:O,execDetails:null,source:n,codexQueueFallback:!1})}),_.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(_.reduce((v,w)=>v+(w.total_tokens||0),0)),percent:null,hasChevron:!0,open:!!d.skills,onToggle:()=>g("skills"),children:o.jsx("ul",{className:"space-y-0.5",children:_.slice(0,12).map(v=>o.jsx(ct,{level:1,label:v.name,tokens:at(v.total_tokens),percent:null},v.name))})})]}),o.jsx("p",{className:"mt-2 text-[10px] text-oai-gray-400 dark:text-oai-gray-500",children:p(I0(n))}),D?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,j?o.jsxs("p",{className:"mt-2 text-[10px] text-oai-gray-400 dark:text-oai-gray-500",children:[Fe(j.skills_count||0)," skills ·"," ",Fe(j.mcp_servers_count||0)," MCP servers ·"," ",Fe(j.custom_agents_count||0)," agents ·"," ",Fe(j.memory_files_count||0)," memory files"]}):null]})}function Cr({fleetData:e=[],from:t,to:n,showInlineContext:a=!0,usageLimits:r=null,limitDisplayMode:s}){const l=Yt(),[i,c]=h.useState(null),{currency:u,rate:f}=Nt(),d=e.filter(_a);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=qn(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=qn(m.label,g),b=i===m.label,N=m.missingPricingModels?.length||0,x=!!N,j=h0(m),k=g0(m,j);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:va(m.usage)||"0",cost:Na(m.usd,u,f)||`${ca(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(da,{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(Mi,{label:m.label,usageLimits:r,mode:s}),o.jsxs("div",{className:"mt-2 space-y-1.5",children:[j.map(_=>{const S=m0(_,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 ${S?"text-oai-black dark:text-oai-white":"text-oai-gray-600 dark:text-oai-gray-300"}`,title:_.name,children:Qt(_.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:_.share})})]}),o.jsx("div",{role:"progressbar","aria-label":p("usage.overview.model_chip",{model:Qt(_.name),percent:_.share}),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Number(_.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:f0(_.share)},transition:{duration:l?0:.45,delay:l?0:.05,ease:[.16,1,.3,1]},className:"h-full rounded-full",style:{backgroundColor:S?y:`${y}99`}})})]},_.id||_.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,x?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:N})}):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=qn(m.label,0),y=Jt(m),b=[...m.models].sort((j,k)=>(k.share||0)-(j.share||0)),N=!!y&&a,x=N?`${y==="claude"?"Claude":"Codex"} Context Breakdown`:m.label;return o.jsx(z0,{provider:m,color:g,providerHeading:x,contextSource:N?y:null,from:t,to:n,sortedModels:b},m.label)})})]})})}function z0({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(da,{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(Ai,{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(qo,{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=va(m.usage),y=Na(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 Y0={claude:"Claude",codex:"Codex"};function B0({fleetData:e=[],from:t,to:n}){const a=e.filter(_a).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:Y0[c]??c}),o.jsx("span",{className:"text-xs font-medium tabular-nums text-oai-gray-500 dark:text-oai-gray-300",children:va(i.usage)})]}):null,o.jsx(qo,{from:t,to:n,source:c,referenceTotalTokens:i.usage})]},c)})})})}function H0(e){return e==="day"?"hourly":e==="total"?"monthly":"daily"}function U0(e){return!!e&&!e.missing&&!e.future}function V0(e){const t=e?.billable_total_tokens??e?.total_tokens??e?.value,n=Number(t);return Number.isFinite(n)&&n>=0?n:0}function q0(e){const t=e?.total_tokens??e?.billable_total_tokens??e?.value,n=Number(t);return Number.isFinite(n)&&n>=0?n:0}function X0(e){const t=Array.isArray(e)?e.filter(U0):[];let n=0,a=0,r=0,s=0,l=!1,i=0,c=-1,u=null;for(const f of t){const d=q0(f),m=V0(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 Dr(e){return String(e).padStart(2,"0")}function G0(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}–${Dr(u)}:${Dr(f)}`}return String(t==="monthly"?e.month||e.label||"":e.day||e.label||"")}function K0(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 Q0(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 J0=[{period:"day",labelKey:"trend.zoom.gran.30min"},{period:"month",labelKey:"trend.zoom.gran.day"},{period:"total",labelKey:"trend.zoom.gran.month"}],Z0=24,It="#10b981";function Tr(e){return e==="day"?"day":e==="total"?"total":"month"}function ia(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 eg(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 tg(e,t){const n=/^(\d{4})-(\d{2})/.exec(String(e||"")),a=/^(\d{4})-(\d{2})/.exec(String(t||""));if(!n||!a)return Z0;const r=Number(a[1])*12+Number(a[2])-(Number(n[1])*12+Number(n[2]))+1;return Math.max(1,r)}function Pr(e,t){return t?e==="total"?{from:eg(t,-23),to:t}:{from:ia(t,-29),to:t}:{from:null,to:null}}function ng(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 pn({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 ag({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(()=>Tr(t)),[m,g]=R.useState(u),[y,b]=R.useState(()=>Pr(Tr(t),u)),[N,x]=R.useState(!1),[j,k]=R.useState(!1),[_,S]=R.useState(!1),D=u,I=M=>{d(M),M!=="day"&&b(Pr(M,u))},O=R.useMemo(()=>f==="day"?{from:m,to:m,months:void 0}:f==="total"?{from:void 0,to:y.to,months:tg(y.from,y.to)}:{from:y.from,to:y.to,months:void 0},[f,m,y]),{rows:C,from:W,to:Z,loading:B}=no({...e,period:f,from:O.from,to:O.to,months:O.months}),T=R.useMemo(()=>X0(C),[C]),E=R.useCallback(()=>S(!0),[]),z=M=>{M.target===M.currentTarget&&_&&s()};if(R.useEffect(()=>{const M=X=>{X.key==="Escape"&&E()};return window.addEventListener("keydown",M),()=>window.removeEventListener("keydown",M)},[E]),typeof document>"u")return null;const v=f==="day"&&!!m,w=f==="day"&&!!m&&(!D||m<D),L=T.totalCostUsd!=null?et(T.totalCostUsd,{currency:i,rate:c}):null;return o.jsxs("div",{onAnimationEnd:z,onClick:M=>{M.target===M.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",_?"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",_?"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(la,{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:It}}),o.jsx("span",{className:"relative inline-flex rounded-full h-1.5 w-1.5",style:{backgroundColor:It}})]}),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(pn,{label:p("trend.zoom.stats.tokens"),value:Fe(T.totalTokens)}),L?o.jsx(pn,{label:p("trend.zoom.stats.cost"),value:L}):null,o.jsx(pn,{label:p("trend.zoom.stats.conversations"),value:T.conversationCount.toLocaleString()}),T.peak?o.jsx(pn,{label:p("trend.zoom.stats.peak"),value:Fe(T.peak.value),sub:ng(T.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(Zr,{size:11,style:{color:It}}),o.jsx("span",{className:"text-[9px] font-extrabold uppercase tracking-widest font-mono",style:{color:It},children:p("trend.zoom.insight_badge")})]}),o.jsxs("div",{className:"pl-3.5 border-l-2 relative",style:{borderColor:It},children:[o.jsx("div",{className:"absolute inset-y-0 left-0 w-[3px] blur-[2px] opacity-15 pointer-events-none rounded-full",style:{backgroundColor:It}}),o.jsx("p",{className:"text-[11px] leading-relaxed text-zinc-600 dark:text-zinc-400 font-normal",children:p(K0(T),{active:T.activeBuckets,peak:Fe(T.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:J0.map(M=>o.jsx("button",{type:"button",role:"tab","aria-selected":f===M.period,onClick:()=>I(M.period),className:Xe("px-2.5 py-1 rounded transition-colors",f===M.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(M.labelKey)},M.period))}),f==="day"?o.jsxs("div",{className:"flex items-center gap-1.5",children:[o.jsx("button",{type:"button",onClick:()=>v&&g(M=>ia(M,-1)),disabled:!v,"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(di,{size:16})}),o.jsxs(Jn,{open:N,onOpenChange:x,children:[o.jsx(Zn,{"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(ea,{children:o.jsx(ta,{sideOffset:8,side:"bottom",align:"center",className:"!z-[9999]",children:o.jsx(na,{className:"bg-white dark:bg-oai-gray-900 border border-oai-gray-200 dark:border-oai-gray-700 rounded-xl shadow-lg",children:o.jsx(sa,{from:m,to:m,onApply:M=>{M&&g(M),x(!1)},onCancel:()=>x(!1)})})})})]}),o.jsx("button",{type:"button",onClick:()=>w&&g(M=>ia(M,1)),disabled:!w,"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(qr,{size:16})})]}):o.jsxs(Jn,{open:j,onOpenChange:k,children:[o.jsx(Zn,{"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(ea,{children:o.jsx(ta,{sideOffset:8,side:"bottom",align:"end",className:"!z-[9999]",children:o.jsx(na,{className:"bg-white dark:bg-oai-gray-900 border border-oai-gray-200 dark:border-oai-gray-700 rounded-xl shadow-lg",children:o.jsx(sa,{from:y.from,to:y.to,onApply:(M,X)=>{M&&b({from:M,to:X||M}),k(!1)},onCancel:()=>k(!1)})})})})]})]}),o.jsx("div",{className:"flex-1 min-h-0 flex flex-col",children:B&&(!C||C.length===0)?o.jsx("div",{className:"flex-1 flex items-center justify-center",children:o.jsx("p",{className:"text-sm text-oai-gray-400 dark:text-oai-gray-400",children:p("trend.zoom.loading")})}):l({rows:C,from:W,to:Z,period:f,timeZoneLabel:r})})]})]})]})}function Or(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 rg(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=Or(t,.25),s=Or(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 $r=["#f472b6","#38bdf8","#34d399","#fbbf24","#a78bfa","#fb7185","#2dd4bf","#f97316","#6366f1","#ec4899","#14b8a6","#f59e0b"],Xo={Input:"#38bdf8","Cached Input":"#14b8a6",Output:"#a78bfa","Reasoning Output":"#fb7185"},og={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 Go(e){const t=e.toLowerCase();for(const[r,s]of Object.entries(og))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)%$r.length;return $r[a]}function sg(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 ig(e,t){return e?.future?"predicted":e?.missing?"unsynced":t>0?"real":"real_zero"}const lg=.35,Er=2,Wr=4;function cg({value:e,displayValue:t,scale:n,index:a,row:r,totalBars:s,onMouseEnter:l,onMouseLeave:i}){const c=Yt(),u=ig(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=`${Wr}px`):f&&d>0?(m=`${d}%`,g=`${Wr}px`):(m=`${Er}px`,g=`${Er}px`);const y=u==="real"?sg(r):[],b=y.reduce((x,j)=>x+j.value,0),N=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:x=>l(x,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:N?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?lg:1,background:u==="real"?"#10b981":void 0}}):y.map((x,j)=>{const k=x.type==="token_type"?Xo[x.name]:Go(x.name),_=`${x.value/b*100}%`;return o.jsx("div",{"data-trend-bar":j===0?"true":void 0,className:"w-full group-hover:brightness-110 transition-all",style:{height:_,background:k}},j)})})]})}function dg(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 Ar=.98;function ug(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(Ar,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(Ar,l-n)}else t[n]=0}return t}function Ko({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 T=d.map(dg),E=T.map(z=>z??0);return{rawValues:T,seriesValues:E,scale:rg(E),interpolatedValues:ug(T)}},[d]),{currency:N,rate:x}=Nt(),j=H0(a),[k,_]=R.useState(null),[S,D]=R.useState({x:0,y:0,shiftX:0,flipDown:!1}),[I,O]=R.useState(!1),C=R.useRef(null),W=R.useRef(null),Z=(T,E,z,v,w,L)=>{W.current&&(clearTimeout(W.current),W.current=null);const M=u?G0(E,j):E?.day||E?.hour||E?.month||"";_({row:E,value:z,segments:v,timeLabel:M,kind:w,displayValue:L});const X=T.currentTarget.querySelector('[data-trend-bar="true"]'),F=X&&X.parentElement?X.parentElement.getBoundingClientRect():T.currentTarget.getBoundingClientRect(),U=C.current;if(!U)return;const H=U.getBoundingClientRect(),K=F.left-H.left+F.width/2,me=F.top-H.top,ve=140;let Ne=0;K<ve?Ne=ve-K:K>H.width-ve&&(Ne=H.width-ve-K);const we=96+(u?22:0)+(v.length?Math.min(v.length*30+24,174):0),G=me<we+12;D({x:K,y:me,shiftX:Ne,flipDown:G})},B=()=>{W.current&&clearTimeout(W.current),W.current=setTimeout(()=>{_(null)},150)};return o.jsxs("div",{ref:C,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:()=>O(!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(Jr,{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(T=>o.jsx("span",{children:T===0?"0":Fe(y.effectiveMax*T,{decimals:0})},T))}),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(T=>o.jsx("div",{className:"w-full border-t border-oai-gray-100 dark:border-oai-gray-800",style:{top:`${100-T}%`}},T))}),o.jsx("div",{className:Xe("flex items-end gap-0.5 relative z-0",c),children:g.length>0?g.map((T,E)=>{const z=d[E],w=z?.missing||z?.future?Math.min(b[E]??0,y.effectiveMax):y.clippedValues[E]??0;return o.jsx(cg,{value:T,displayValue:w,scale:y,index:E,row:z,totalBars:g.length,onMouseEnter:Z,onMouseLeave:B},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((T,E)=>{const z=g.length-1,v=Math.max(1,Math.ceil(g.length/8)),w=E%v===0||E===z,L=E===0?"justify-start":E===z?"justify-end":"justify-center";return o.jsx("div",{className:Xe("flex-1 min-w-0 flex",L),children:w&&o.jsx("span",{className:"text-[9px] text-oai-gray-400 dark:text-oai-gray-500 whitespace-nowrap font-mono",children:Q0(T,j)})},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:`${S.x}px`,top:`${S.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",S.flipDown?"top-[10px]":"bottom-[10px]"),style:{transform:`translateX(calc(-50% + ${S.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:N,rate:x})})," ",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:T,value:E,type:z})=>{const v=k.value||1,w=Math.round(E/v*100),L=z==="token_type"?Xo[T]:Go(T);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:T,children:T}),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:[w,"%"]})]})]}),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:`${w}%`,backgroundColor:L,boxShadow:`0 0 4px ${L}55`}})})]},T)})})]}):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",S.flipDown?"top-[6px] border-l border-t":"bottom-[6px] border-r border-b"),style:S.flipDown?{marginTop:"1px"}:{marginBottom:"1px"}})]}),I&&f&&o.jsx(ag,{zoomConfig:f,period:a,from:t,to:n,timeZoneLabel:r,onClose:()=>O(!1),renderChart:T=>o.jsx(Ko,{embedded:!0,isZoom:!0,chartHeightClass:"h-full",...T})})]})}const Fr="widgetOnboardingDismissed",Rr="tokentracker_native_app",fg=(()=>{try{return new URLSearchParams(window.location.search).get("app")==="1"?(localStorage.setItem(Rr,"1"),!0):localStorage.getItem(Rr)==="1"}catch{return!1}})();function mg({enterDelay:e=0}){const[t,n]=h.useState(()=>{try{return localStorage.getItem(Fr)==="1"}catch{return!1}}),a=h.useCallback(()=>{n(!0);try{localStorage.setItem(Fr,"1")}catch{}},[]);return!fg||ui()?null:o.jsx(Xr,{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 hg(e){const{copy:t,screenshotMode:n,screenshotTitleLine1:a,screenshotTitleLine2:r,identityDisplayName:s,identityStartDate:l,activeDays:i,identitySubscriptions:c,identityScrambleDurationMs:u,projectUsageEntries:f,planPrices:d={},onPlanPriceChange:m,modelBreakdown:g=null,projectUnattributedSources:y=[],projectUsageLimit:b,setProjectUsageLimit:N,pulse:x,pulseComparedAtLabel:j,isLocalMode:k,trendRowsForDisplay:_,trendFromForDisplay:S,trendToForDisplay:D,trendZoomConfig:I,usageFrom:O,usageTo:C,period:W,trendTimeZoneLabel:Z,activityHeatmapBlock:B,periodsForDisplay:T,setSelectedPeriod:E,autoRefreshOptions:z,autoRefreshIntervalMs:v,onAutoRefreshIntervalChange:w,customFrom:L,customTo:M,onCustomRangeApply:X,customRangeOpen:F,onCustomRangeOpenChange:U,summaryLabel:H,summaryValue:K,summaryUpdatedAtLabel:me,summaryCostValue:ve,usageInsights:Ne,costInfoEnabled:we,openCostModal:G,costModalOpen:Oe,closeCostModal:de,allowBreakdownToggle:be,refreshAll:$,usageLoadingState:te,dataHealthMessage:he,fleetData:le,usageLimits:_e,limitDisplayMode:We,hasDetailsActual:De,dailyEmptyPrefix:A,installSyncCmd:Y,dailyEmptySuffix:V,detailsColumns:q,ariaSortFor:ne,toggleSort:se,sortIconFor:ye,pagedDetails:fe,dailyBreakdownRows:ge,dailyBreakdownColumns:Te,dailyBreakdownAriaSortFor:pe,dailyBreakdownSortIconFor:$e,dailyBreakdownDateKey:Ae,detailsDateKey:Be,renderDetailDate:_t,renderDailyBreakdownDate:gt,renderDetailCell:yt,DETAILS_PAGED_PERIODS:pt,detailsPageCount:Mt,detailsPage:re,setDetailsPage:oe}=e,ee=null,ce=null,Ce=Array.isArray(le)&&le.some(ie=>_a(ie)&&Jt(ie)!==null);return o.jsxs(o.Fragment,{children:[o.jsx(Ji,{bare:!n,hideHeader:n,header:ee,footer:n?null:ce,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(kr,{period:W,periods:T,onPeriodChange:E,autoRefreshOptions:z,autoRefreshIntervalMs:v,onAutoRefreshIntervalChange:w,summaryLabel:H,summaryValue:K,summaryUpdatedAtLabel:me,summaryCostValue:ve,usageInsights:Ne,onCostInfo:we?G:null,onRefresh:n?null:$,loading:te,customFrom:L,customTo:M,onCustomRangeApply:X,customRangeOpen:F,onCustomRangeOpenChange:U}),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(nr,{rankLabel:l??t("identity_card.rank_placeholder"),streakDays:i,subscriptions:c})}),B?o.jsx("div",{className:"lg:col-span-4 min-w-0",children:B}):null,o.jsx("div",{className:"lg:col-span-6 min-w-0",children:o.jsx(Cr,{fleetData:le,from:O,to:C,usageLimits:_e,limitDisplayMode:We})})]})]}):o.jsxs("div",{className:"flex flex-col gap-4",children:[he?o.jsx(lt,{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:he})}):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(lt,{delay:.05,className:"h-full",children:o.jsx(kr,{period:W,periods:T,onPeriodChange:E,autoRefreshOptions:z,autoRefreshIntervalMs:v,onAutoRefreshIntervalChange:w,summaryLabel:H,summaryValue:K,summaryUpdatedAtLabel:me,summaryCostValue:ve,usageInsights:Ne,onCostInfo:we?G:null,onRefresh:n?null:$,loading:te,customFrom:L,customTo:M,onCustomRangeApply:X,customRangeOpen:F,onCustomRangeOpenChange:U,emphasized:!0})})}),o.jsx("div",{className:"lg:col-span-3 min-w-0",children:o.jsx(lt,{delay:.09,children:o.jsx(Ko,{rows:_,from:S,to:D,period:W,timeZoneLabel:Z,showTimeZoneLabel:!1,zoomConfig:I})})}),o.jsx("div",{className:"lg:col-span-2 min-w-0",children:o.jsx(lt,{delay:.13,children:o.jsxs("div",{className:"flex flex-col gap-4",children:[o.jsx(Jc,{pulse:x,period:W,comparedAtLabel:j}),o.jsx(nr,{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(lt,{delay:.19,children:o.jsx(Cr,{fleetData:le,from:O,to:C,showInlineContext:!1,usageLimits:_e,limitDisplayMode:We})})}),B?o.jsx("div",{className:Ce?"lg:col-span-2 min-w-0":"lg:col-span-6 min-w-0",children:o.jsx(lt,{delay:.25,children:B})}):null,Ce?o.jsx("div",{className:B?"lg:col-span-4 min-w-0":"lg:col-span-6 min-w-0",children:o.jsx(lt,{delay:.31,children:o.jsx(B0,{fleetData:le,from:O,to:C})})}):null,k?o.jsx("div",{className:"lg:col-span-6",children:o.jsx(mg,{enterDelay:.37})}):null]}),o.jsx(lt,{delay:.42,children:o.jsx(Ic,{sources:g?.sources,planPrices:d,onPlanPriceChange:m,copy:t,className:"oai-card p-4"})}),o.jsx(lt,{delay:.43,children:o.jsx(Oc,{projectEntries:f,projectUnattributedSources:y,projectLimit:b,onProjectLimitChange:N,copy:t,hasDetailsActual:De,dailyEmptyPrefix:A,installSyncCmd:Y,dailyEmptySuffix:V,detailsColumns:q,ariaSortFor:ne,toggleSort:se,sortIconFor:ye,pagedDetails:fe,dailyBreakdownRows:ge,dailyBreakdownColumns:Te,dailyBreakdownAriaSortFor:pe,dailyBreakdownSortIconFor:$e,dailyBreakdownDateKey:Ae,detailsDateKey:Be,renderDetailDate:_t,renderDailyBreakdownDate:gt,renderDetailCell:yt,DETAILS_PAGED_PERIODS:pt,period:W,detailsPageCount:Mt,detailsPage:re,setDetailsPage:oe})})]})}),o.jsx(Dc,{isOpen:Oe,onClose:de,fleetData:le})]})}const gg=["day","24h","week","month","total","custom"],Qo="tt:dashboard-auto-refresh-ms",Zt=3e4,Jo=[{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"}],yg=3e4,pg=6e4,Xn=new Set(["day","hour","month"]),Gt=new Set(["day","24h","total","custom"]),bg=new Set(Jo.map(e=>e.value));function Zo(e){if(e==null||e==="")return Zt;const t=Number(e);return Number.isFinite(t)&&bg.has(t)?t:Zt}function xg(){if(typeof window>"u")return Zt;try{return Zo(window.localStorage?.getItem(Qo))}catch{return Zt}}function kg(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 Gn(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 bn(e){return e?Mn(e,null):null}function Ir(e){return e?e?.billable_total_tokens??e?.value??e?.total_tokens:null}function wg(e){if(typeof e!="string"||!e)return null;const t=e.split("-");if(t.length!==3)return null;const n=Number(t[0]),a=Number(t[1])-1,r=Number(t[2]);if(!Number.isFinite(n)||!Number.isFinite(a)||!Number.isFinite(r))return null;const s=new Date(Date.UTC(n,a,r));return Number.isFinite(s.getTime())?s:null}function vg(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function Wg({baseUrl:e,onMainContentVisible:t}){const{resolvedLocale:n}=fi(),{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:mi(window.location.search),[]),m=2200,[g,y]=h.useState(!0),[b,N]=h.useState(!1),[x,j]=h.useState(xg),[k,_]=h.useState(()=>Date.now()),[S,D]=h.useState(()=>Date.now()),I=h.useRef(!1),O=h.useRef(!1),C=h.useRef(0),W=h.useRef(null),Z=h.useRef(!1),B=Bt(),T=null,E=!1,z=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1");h.useEffect(()=>{if(!z&&!B){c(null);return}let P=!0;return(async()=>{try{const Q=await ji({baseUrl:e});if(!P)return;c(Q&&typeof Q=="object"?Q:null)}catch{if(!P)return;c(null)}})(),()=>{P=!1}},[e,z,B]),h.useEffect(()=>{if(typeof window>"u"||!window.matchMedia)return;const P=window.matchMedia("(max-width: 640px)"),Q=()=>f(P.matches);return Q(),P.addEventListener?(P.addEventListener("change",Q),()=>P.removeEventListener("change",Q)):(P.addListener(Q),()=>P.removeListener(Q))},[]);const v=h.useMemo(()=>Kr(),[]),w=h.useMemo(()=>Gr(),[]),L=h.useMemo(()=>yi(),[]),M=h.useMemo(()=>L||new Date(k),[k,L]),X="default",[F,U]=h.useState("day"),[H,K]=h.useState(null),[me,ve]=h.useState(null),[Ne,we]=h.useState(!1),G=d?"total":F,Oe=h.useMemo(()=>G==="custom"&&H&&me?{from:H,to:me}:pi(G,{timeZone:v,offsetMinutes:w,now:M}),[M,G,v,w,H,me]),de=Oe.from,be=Oe.to,$=h.useMemo(()=>bi({timeZone:v,offsetMinutes:w}),[v,w]),te=h.useMemo(()=>xi({timeZone:v,offsetMinutes:w}),[v,w]),he=h.useMemo(()=>`Local time (${te})`,[te]),le=v,_e=w,We=$,De=h.useMemo(()=>en({timeZone:v,offsetMinutes:w,date:M}),[M,v,w]),A=h.useMemo(()=>{const P=wg(De)||new Date,Q=vg(P,-29);return{from:mt(Q),to:mt(P)}},[De]),{daily:Y,summary:V,rolling:q,source:ne,loading:se,error:ye,refresh:fe}=Ba({baseUrl:e,accessToken:T,guestAllowed:E,from:de,to:be,includeDaily:G!=="total",cacheKey:X,timeZone:v,tzOffsetMinutes:w,now:M}),{daily:ge,loading:Te,refresh:pe}=Ba({baseUrl:e,accessToken:T,guestAllowed:E,from:A.from,to:A.to,includeDaily:!0,cacheKey:`${X}.daily-breakdown`,timeZone:v,tzOffsetMinutes:w,now:M}),{breakdown:$e,loading:Ae,refresh:Be}=Ol({baseUrl:e,accessToken:T,guestAllowed:E,from:de,to:be,cacheKey:X,timeZone:v,tzOffsetMinutes:w}),{pulse:_t,refresh:gt}=Xl({baseUrl:e,accessToken:T,guestAllowed:E,period:G,timeZone:v,tzOffsetMinutes:w,now:M,cacheKey:X}),yt=h.useMemo(()=>{try{return new Intl.DateTimeFormat(void 0,{hour:"numeric",minute:"2-digit",timeZone:v||void 0}).format(M)}catch{return null}},[M,v]),{planPrices:pt,setPlanPrice:Mt}=Wl(),[re,oe]=h.useState(10),{entries:ee,unattributedSources:ce,loading:Ce,refresh:ie}=gl({baseUrl:e,accessToken:T,limit:re,from:de,to:be,timeZone:v,tzOffsetMinutes:w}),jt=G==="week"||G==="month",bt=G==="week"||G==="month",$t=h.useMemo(()=>Y.filter(P=>P?.future?!1:!P?.day||!De?!0:String(P.day)<=String(De)),[Y,De]),{rows:Le,from:St,to:es,loading:ts,refresh:Ma}=no({baseUrl:e,accessToken:T,guestAllowed:E,period:G,from:de,to:be,months:24,cacheKey:X,timeZone:le,tzOffsetMinutes:_e,now:M,sharedRows:jt?Y:null,sharedRange:jt?{from:de,to:be}:null}),ns=h.useMemo(()=>({baseUrl:e,accessToken:T,guestAllowed:E,cacheKey:X,timeZone:le,tzOffsetMinutes:_e,now:M}),[e,T,E,X,le,_e,M]),{daily:Et,heatmap:it,loading:as,refresh:ja}=hl({baseUrl:e,accessToken:T,guestAllowed:E,weeks:52,cacheKey:X,timeZone:v,tzOffsetMinutes:w,now:M}),{data:Ht,refresh:Sa}=Si(),{displayMode:rs}=Ci();h.useEffect(()=>{Ht&&typeof Ht=="object"&&hi(Ht)},[Ht]);const Ge=h.useMemo(()=>G==="day"||G==="24h"?"hour":G==="total"?"month":"day",[G]),os=h.useMemo(()=>Xa(Ge),[Ge]),fn="day",ss=h.useMemo(()=>[...Xa(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,Ca]=h.useState(()=>({key:"day",dir:"desc"}));h.useEffect(()=>{Ca(P=>!Xn.has(P.key)||P.key===Ge?P:{key:Ge,dir:P.dir})},[Ge]);const Wt=h.useMemo(()=>Xn.has(Ke.key)&&Ke.key!==Ge?{...Ke,key:Ge}:Ke,[Ge,Ke]),mn=h.useMemo(()=>{if(G==="day"||G==="24h")return Array.isArray(Le)?Le.filter(ae=>ae?.hour&&!ae?.future):[];if(G==="total"){const ae=Array.isArray(Le)?Le.filter(ue=>ue?.month&&!ue?.future):[];return oc(ae)}const P=$t;return!P.some(ae=>!ae?.missing&&!ae?.future)&&Y.length>0?Y.filter(ae=>!ae?.future).slice(-30).filter(ae=>ae?.day):P},[G,Le,$t,Y]),Ut=h.useMemo(()=>Ga(mn,Wt),[mn,Wt]),is=h.useMemo(()=>mn.some(P=>!P?.missing&&!P?.future),[mn]),Dn=h.useMemo(()=>{if(!Gt.has(G))return 1;const P=Math.ceil(Ut.length/_n);return P>0?P:1},[G,Ut.length]),[Tn,hn]=h.useState(0);h.useEffect(()=>{if(!Gt.has(G)){hn(0);return}hn(P=>Math.min(P,Dn-1))},[Dn,G]),h.useEffect(()=>{Gt.has(G)&&hn(0)},[G,Ke.dir,Ke.key]);const ls=h.useMemo(()=>Gt.has(G)?sc(Ut,Tn,_n):Ut,[Tn,G,Ut]),Da=h.useMemo(()=>gc(ge.filter(P=>!P?.future&&P?.day).slice(-30),{fallback:p("shared.placeholder.short")}),[ge]),At=h.useMemo(()=>Xn.has(Ke.key)?{...Ke,key:fn}:Ke,[Ke]),cs=h.useMemo(()=>Ga(Da,At),[Da,At]),ds=h.useMemo(()=>bt?Y:G==="day"||G==="24h"?Array.isArray(Le)?Le.filter(P=>P?.hour):[]:Le,[Y,G,Le,bt]),us=bt?de:St,fs=bt?be:es;function ms(P,Q){if(P?.future)return"—";if(P?.missing)return p("shared.status.unsynced");if(Q==="total_tokens")return Qe(bn(P));if(Q==="total_cost_usd")return et(P?.total_cost_usd,{currency:a,rate:r});if(Q==="cost_per_million_tokens"){const ae=ze(P?.cost_per_million_tokens);return ae==null?p("shared.placeholder.short"):et(ae,{currency:a,rate:r})}return Q==="top_model"?P?.top_model||p("shared.placeholder.short"):Qe(P?.[Q])}function hs(P){const Q=P?.[Ge];if(Q==null)return"";const ae=String(Q);if(Ge==="hour"){const[ue,Ve]=ae.split("T");if(ue&&Ve)return`${ue} ${Ve.slice(0,5)}`}return ae}function gs(P){const Q=P?.[fn];return Q==null?"":String(Q)}function ys(P){Ca(Q=>Q.key===P?{key:P,dir:Q.dir==="asc"?"desc":"asc"}:{key:P,dir:"desc"})}function ps(P){return Wt.key!==P?null:Wt.dir==="asc"?"ascending":"descending"}function bs(P){return Wt.key!==P?"":Wt.dir==="asc"?"▲":"▼"}function xs(P){return At.key!==P?null:At.dir==="asc"?"ascending":"descending"}function ks(P){return At.key!==P?"":At.dir==="asc"?"▲":"▼"}const ws=h.useMemo(()=>{if(!B&&!z)return 0;const P=Number(it?.active_days);if(Number.isFinite(P))return P;let Q=0;const ae=new Set,ue=(Ee,Dt,En)=>{typeof Ee!="string"||!Ee||ae.has(Ee)||Gn(Dt,En)&&(ae.add(Ee),Q+=1)};if(Array.isArray(Et))for(const Ee of Et)ue(Ee?.day,bn(Ee));const Ve=Array.isArray(it?.weeks)?it.weeks:[];for(const Ee of Ve)for(const Dt of Array.isArray(Ee)?Ee:[]){const En=Ir(Dt);ue(Dt?.day,En,Dt?.level)}return Q},[B,z,it?.active_days,it?.weeks,Et]),[Ta,Pa]=h.useState("month"),vs=h.useCallback(P=>{P==="custom"?(Pa(Q=>Q==="custom"?"month":Q),U(Q=>H&&me?"custom":Q),we(!0)):(U(P),Pa(P),we(!1))},[H,me]),Ns=h.useCallback((P,Q)=>{K(P),ve(Q),U("custom"),we(!1)},[]),_s=h.useCallback(P=>{we(P),!P&&F==="custom"&&!H&&U(Ta)},[F,H,Ta]),Vt=h.useCallback(async()=>{const P=Date.now();_(P),await Promise.all([fe(),ja(),Ma(),Be(),ie(),pe(),Sa(),gt()]),D(P)},[pe,ja,Be,ie,Ma,fe,Sa,gt]);h.useEffect(()=>{if(d||L||typeof window>"u")return;const P=()=>{const ae=new Date,ue=en({timeZone:v,offsetMinutes:w,date:ae});if(ue){if(W.current==null){W.current=ue;return}W.current!==ue&&(W.current=ue,_(ae.getTime()))}};P();const Q=window.setInterval(P,pg);return typeof document<"u"&&document.addEventListener("visibilitychange",P),window.addEventListener("focus",P),()=>{window.clearInterval(Q),typeof document<"u"&&document.removeEventListener("visibilitychange",P),window.removeEventListener("focus",P)}},[L,d,v,w]);const Ms=h.useCallback(async()=>{N(!0);try{z&&await La(),await Vt()}catch(P){console.error("[DashboardPage] Refresh failed:",P)}finally{N(!1)}},[z,Vt]),Oa=h.useCallback(()=>!z||O.current?null:(O.current=!0,La().then(kg).catch(P=>(console.error("[DashboardPage] Auto sync failed:",P),!1)).finally(()=>{O.current=!1})),[z]),$a=h.useCallback(async()=>{const P=Oa();try{await Vt(),P&&P.then(Q=>{if(Q)return Vt()})}catch(Q){console.error("[DashboardPage] Auto refresh failed:",Q)}},[Vt,Oa]),js=h.useCallback(P=>{const Q=Zo(P);j(Q);try{window.localStorage?.setItem(Qo,String(Q))}catch{}},[]);h.useEffect(()=>{if(d||typeof window>"u"||x<=0)return;const P=()=>typeof document>"u"||document.visibilityState==="visible",Q=async({throttle:Ve=!1}={})=>{if(!P())return;const Ee=Date.now();if(!(Ve&&Ee-C.current<yg)&&!I.current){I.current=!0,C.current=Ee;try{await $a()}finally{I.current=!1}}},ae=window.setInterval(()=>{Q()},x),ue=()=>{Q({throttle:!0})};return typeof document<"u"&&document.addEventListener("visibilitychange",ue),window.addEventListener("focus",ue),()=>{window.clearInterval(ae),typeof document<"u"&&document.removeEventListener("visibilitychange",ue),window.removeEventListener("focus",ue)}},[x,$a,d]);const Pn=b||se||Te||as||ts||Ae||Ce,Ss=h.useMemo(()=>p("shared.data_source",{source:String(ne||"edge").toUpperCase()}),[ne,n]),Ea=p("dashboard.identity.fallback"),Cs=h.useMemo(()=>Ea.replace(/[^a-zA-Z0-9._-]/g,"_"),[Ea]),Ds=h.useMemo(()=>{let P=null;const Q=ue=>{typeof ue!="string"||!ue||(!P||ue<P)&&(P=ue)};if(Array.isArray(Et))for(const ue of Et)ue?.day&&Gn(bn(ue))&&Q(ue.day);const ae=Array.isArray(it?.weeks)?it.weeks:[];for(const ue of ae)for(const Ve of Array.isArray(ue)?ue:[]){if(!Ve?.day)continue;const Ee=Ir(Ve),Dt=Ve?.level;Gn(Ee,Dt)&&Q(Ve.day)}return P},[it?.weeks,Et]),Ts=h.useMemo(()=>(Array.isArray(i?.subscriptions?.items)?i.subscriptions.items:[]).map(ae=>{const ue=typeof ae?.tool=="string"?ae.tool.trim():"",Ee=(typeof ae?.plan_type=="string"?ae.plan_type:typeof ae?.planType=="string"?ae.planType:"").trim();return!ue||!Ee?null:{tool:ue,planType:Ee,provider:typeof ae?.provider=="string"?ae.provider.trim():"",product:typeof ae?.product=="string"?ae.product.trim():"",rateLimitTier:typeof ae?.rate_limit_tier=="string"?ae.rate_limit_tier.trim():typeof ae?.rateLimitTier=="string"?ae.rateLimitTier.trim():""}}).filter(Boolean).slice(0,6),[i]),Ps=o.jsx(Sc,{heatmap:it,timeZoneLabel:$,timeZoneShortLabel:te,hideLegend:d,defaultToLatestMonth:d}),Os=h.useMemo(()=>`${de}..${be}`,[de,G,be]),$s=p("usage.summary.total"),Ct=bn(V),Wa=p("shared.unit.thousand_abbrev"),Aa=p("shared.unit.million_abbrev"),Fa=p("shared.unit.billion_abbrev"),qt=ze(Ct),Ra=qt!=null&&(u&&Math.abs(qt)>=1e9||Math.abs(qt)>=1e12),Es=h.useMemo(()=>Ra?Fe(qt,{thousandSuffix:Wa,millionSuffix:Aa,billionSuffix:Fa,decimals:1}):Qe(Ct),[Fa,Aa,Ct,qt,Wa,Ra]),Ws=h.useMemo(()=>{const P=new Intl.DateTimeFormat(n||void 0,{timeZone:v,year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZoneName:"short"}).format(new Date(S));return p("usage.summary.updated_at",{timestamp:P})},[S,n,v]),As=p("dashboard.core_index.collapse_label"),Fs=p("dashboard.core_index.expand_label"),Rs=p("dashboard.core_index.collapse_aria"),Is=p("dashboard.core_index.expand_aria"),Ls=!d,zs=p("dashboard.screenshot.title_line1"),Ys=p("dashboard.screenshot.title_line2");p("shared.placeholder.short");const Bs=h.useMemo(()=>d?[]:gg,[d]),Hs=h.useMemo(()=>[{label:p("usage.metric.total"),value:Qe(Ct),valueClassName:"text-white"},{label:p("usage.metric.input"),value:Qe(V?.input_tokens)},{label:p("usage.metric.output"),value:Qe(V?.output_tokens)},{label:p("usage.metric.cached_input"),value:Qe(V?.cached_input_tokens)},{label:p("usage.metric.reasoning_output"),value:Qe(V?.reasoning_output_tokens)}],[V?.cached_input_tokens,V?.input_tokens,V?.output_tokens,V?.reasoning_output_tokens,Ct]),On=h.useMemo(()=>et(V?.total_cost_usd,{currency:a,rate:r}),[V?.total_cost_usd,a,r]),Us=h.useMemo(()=>{if(Number(Ct||0)>0||se||ye)return null;const Q=Number(q?.current_month?.totals?.billable_total_tokens||0),ae=Number(q?.last_30d?.totals?.billable_total_tokens||0),ue=Number(q?.last_7d?.totals?.billable_total_tokens||0);return G==="day"&&ue>0?p("dashboard.data_health.day_empty_has_recent",{tokens:Qe(ue)}):(G==="week"||G==="custom")&&ae>0?p("dashboard.data_health.period_empty_has_30d",{tokens:Qe(ae)}):G==="month"&&Q===0&&ae>0?p("dashboard.data_health.month_empty_has_30d",{tokens:Qe(ae)}):ae===0&&q?p("dashboard.data_health.no_recent_data"):null},[G,q,Ct,ye,se]),Ia=h.useMemo(()=>uo($e,{copyFn:p}),[$e]),Vs=h.useMemo(()=>mc($e,{copyFn:p}),[$e]),qs=h.useCallback(()=>l(!0),[]),Xs=h.useCallback(()=>l(!1),[]),Gs=On&&On!=="-"&&Ia.length>0,Ks=p("dashboard.install.cmd.sync"),$n=h.useMemo(()=>p("dashboard.daily.empty",{cmd:"{{cmd}}"}),[n]),[Qs,Js]=h.useMemo(()=>{const P=$n.split("{{cmd}}");return P.length===1?[$n,""]:[P[0],P.slice(1).join("{{cmd}}")]},[$n]);return h.useEffect(()=>{Z.current||Pn||(Z.current=!0,t?.())},[t,Pn]),o.jsx(hg,{copy:p,screenshotMode:d,screenshotTitleLine1:zs,screenshotTitleLine2:Ys,identityDisplayName:Cs,identityStartDate:Ds,activeDays:ws,identitySubscriptions:Ts,identityScrambleDurationMs:m,projectUsageEntries:ee,planPrices:pt,onPlanPriceChange:Mt,modelBreakdown:$e,projectUnattributedSources:ce,projectUsageLimit:re,setProjectUsageLimit:oe,pulse:_t,pulseComparedAtLabel:yt,isLocalMode:z,trendRowsForDisplay:ds,trendFromForDisplay:us,trendToForDisplay:fs,trendZoomConfig:ns,usageFrom:de,usageTo:be,period:G,trendTimeZoneLabel:We,activityHeatmapBlock:Ps,periodsForDisplay:Bs,setSelectedPeriod:vs,autoRefreshOptions:Jo,autoRefreshIntervalMs:x,onAutoRefreshIntervalChange:js,customFrom:H,customTo:me,onCustomRangeApply:Ns,customRangeOpen:Ne,onCustomRangeOpenChange:_s,metricsRows:Hs,summaryLabel:$s,summaryValue:Es,summaryUpdatedAtLabel:Ws,summaryCostValue:On,usageInsights:Vs,costInfoEnabled:Gs,openCostModal:qs,allowBreakdownToggle:Ls,coreIndexCollapsed:g,setCoreIndexCollapsed:y,coreIndexCollapseLabel:As,coreIndexExpandLabel:Fs,coreIndexCollapseAria:Rs,coreIndexExpandAria:Is,refreshAll:Ms,usageLoadingState:Pn,usageError:ye,dataHealthMessage:Us,rangeLabel:Os,timeZoneRangeLabel:he,usageSourceLabel:Ss,fleetData:Ia,usageLimits:Ht,limitDisplayMode:rs,hasDetailsActual:is,dailyEmptyPrefix:Qs,installSyncCmd:Ks,dailyEmptySuffix:Js,detailsColumns:os,ariaSortFor:ps,toggleSort:ys,sortIconFor:bs,pagedDetails:ls,dailyBreakdownRows:cs,dailyBreakdownColumns:ss,dailyBreakdownAriaSortFor:xs,dailyBreakdownSortIconFor:ks,dailyBreakdownDateKey:fn,detailsDateKey:Ge,renderDetailDate:hs,renderDailyBreakdownDate:gs,renderDetailCell:ms,DETAILS_PAGED_PERIODS:Gt,detailsPageCount:Dn,detailsPage:Tn,setDetailsPage:hn,costModalOpen:s,closeCostModal:Xs})}export{Wg as DashboardPage};