tokentracker-cli 1.2.2 → 1.3.4

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 (176) hide show
  1. package/README.md +2 -0
  2. package/README.zh-CN.md +2 -0
  3. package/THIRD_PARTY_NOTICES.md +92 -0
  4. package/dashboard/dist/THIRD_PARTY_NOTICES.txt +92 -0
  5. package/dashboard/dist/assets/AchievementBadge-CKjtQp-U.js +1 -0
  6. package/dashboard/dist/assets/AchievementsPage-DpOXrabE.js +2 -0
  7. package/dashboard/dist/assets/{AchievementsSection-BDqKRGyL.js → AchievementsSection-DiXyIoa0.js} +1 -1
  8. package/dashboard/dist/assets/BadgeDetailModal-CILTTkPF.js +1 -0
  9. package/dashboard/dist/assets/{BotAnimated-OQbsVw1O.js → BotAnimated-CrBHWiRi.js} +1 -1
  10. package/dashboard/dist/assets/Card-DUItW3xI.js +1 -0
  11. package/dashboard/dist/assets/CloudCheckoutPage-C_t_PDlG.js +1 -0
  12. package/dashboard/dist/assets/CloudPage-pvJUrhya.js +1 -0
  13. package/dashboard/dist/assets/CloudUsageExport-DQbDwiyk.js +4 -0
  14. package/dashboard/dist/assets/{CommandPalette-8B38qUs0.js → CommandPalette-BvHilrbV.js} +1 -1
  15. package/dashboard/dist/assets/CommunityStatsModal-CizxEYv-.js +1 -0
  16. package/dashboard/dist/assets/{ConfirmModal-Dhu_qmiM.js → ConfirmModal-h9nISVy7.js} +1 -1
  17. package/dashboard/dist/assets/Controls-BjdIonTX.js +1 -0
  18. package/dashboard/dist/assets/DashboardPage-Bxryr4qp.js +1 -0
  19. package/dashboard/dist/assets/DateRangePopover-DpKh-0l8.js +1 -0
  20. package/dashboard/dist/assets/{DevicePage-Bvz7JJwt.js → DevicePage-DUJR9hJC.js} +1 -1
  21. package/dashboard/dist/assets/DialogClose-BmVAmN-o.js +1 -0
  22. package/dashboard/dist/assets/DialogDescription-C0Cgq67g.js +1 -0
  23. package/dashboard/dist/assets/DialogTitle-BsaIbN8k.js +1 -0
  24. package/dashboard/dist/assets/{FadeIn-DDF5PqTX.js → FadeIn-BpSt2P_W.js} +1 -1
  25. package/dashboard/dist/assets/{HeaderGithubStar-CNzQFPol.js → HeaderGithubStar-Cc_VHB0R.js} +1 -1
  26. package/dashboard/dist/assets/{HoverTooltip-BKg9Z6gg.js → HoverTooltip-WFd21iP9.js} +1 -1
  27. package/dashboard/dist/assets/{IpCheckPage-BTdrLt08.js → IpCheckPage-C_mUPSRB.js} +1 -1
  28. package/dashboard/dist/assets/LandingPage-DVR8ClZO.js +2 -0
  29. package/dashboard/dist/assets/LeaderboardPage-D8ydzVpn.js +2 -0
  30. package/dashboard/dist/assets/LeaderboardProBadge-BjX4EFl2.js +1 -0
  31. package/dashboard/dist/assets/LeaderboardProfileModal-vbPMNn7W.js +73 -0
  32. package/dashboard/dist/assets/{LeaderboardProfilePage-CoqcDSTw.js → LeaderboardProfilePage-CqClmuA-.js} +2 -2
  33. package/dashboard/dist/assets/{LimitsPage-3RuSFnn-.js → LimitsPage-DaRggHge.js} +2 -2
  34. package/dashboard/dist/assets/{LocalOnlyNotice-D-OrIXty.js → LocalOnlyNotice-B6nDke_u.js} +1 -1
  35. package/dashboard/dist/assets/LoginCard-C28QVjd7.js +1 -0
  36. package/dashboard/dist/assets/LoginModal-Bx1btNhH.js +1 -0
  37. package/dashboard/dist/assets/LoginPage-DVOGNGYI.js +1 -0
  38. package/dashboard/dist/assets/PetPage-nOKryTde.js +1 -0
  39. package/dashboard/dist/assets/PopoverPopup-Ch6NLnu6.js +1 -0
  40. package/dashboard/dist/assets/{ProviderIcon-BTYVbUti.js → ProviderIcon-BRY2br-g.js} +1 -1
  41. package/dashboard/dist/assets/ResetPasswordPage-ko1OQecQ.js +1 -0
  42. package/dashboard/dist/assets/Select-Q8mS3_od.js +1 -0
  43. package/dashboard/dist/assets/SelectItemText-C1id8GDj.js +1 -0
  44. package/dashboard/dist/assets/SelfHostPage-Dzb2bDiM.js +1 -0
  45. package/dashboard/dist/assets/{ServiceStatusPage-Cb3k_C4g.js → ServiceStatusPage-ewFwz29J.js} +1 -1
  46. package/dashboard/dist/assets/SessionsPage-C6Y8kbnM.js +3 -0
  47. package/dashboard/dist/assets/SessionsPage-GV2fuNmd.css +1 -0
  48. package/dashboard/dist/assets/SettingsPage-nztCXEPs.js +2 -0
  49. package/dashboard/dist/assets/SkillsPage-CcG77tqU.js +1 -0
  50. package/dashboard/dist/assets/{TokenGalaxy-BGRF4I_8.js → TokenGalaxy-D2HDrbQR.js} +2 -2
  51. package/dashboard/dist/assets/TooltipPopup-C_bF2ZwO.js +1 -0
  52. package/dashboard/dist/assets/TrendMonitor-BcyoN5ns.js +19 -0
  53. package/dashboard/dist/assets/WidgetsPage-BirK0U_N.js +1 -0
  54. package/dashboard/dist/assets/{WrappedPage-BqyB7ezg.js → WrappedPage-thsXBuw6.js} +1 -1
  55. package/dashboard/dist/assets/__vite-browser-external-Bq8nj-JV.js +45 -0
  56. package/dashboard/dist/assets/__vite-browser-external-BwmeEfv7.css +1 -0
  57. package/dashboard/dist/assets/{agent-logos-CEcgxIBU.js → agent-logos-CK6SzhI7.js} +1 -1
  58. package/dashboard/dist/assets/arrow-left-c_NOSfoq.js +1 -0
  59. package/dashboard/dist/assets/arrow-right-CP7drKCT.js +1 -0
  60. package/dashboard/dist/assets/{arrow-up-right-CdzAw406.js → arrow-up-right-DQ6QfCpo.js} +1 -1
  61. package/dashboard/dist/assets/calendar-days-D_pxFQvT.js +1 -0
  62. package/dashboard/dist/assets/{check-DhEiHlwq.js → check-HAS31kTT.js} +1 -1
  63. package/dashboard/dist/assets/chevron-down-BIMuk6oN.js +1 -0
  64. package/dashboard/dist/assets/cloud-checkout-COmDwrUT.js +1 -0
  65. package/dashboard/dist/assets/composite-kLwqpqEk.js +1 -0
  66. package/dashboard/dist/assets/download-9RgsZIiH.js +1 -0
  67. package/dashboard/dist/assets/{external-link-SOFbVRrH.js → external-link-C_gYjHGF.js} +1 -1
  68. package/dashboard/dist/assets/{flame-BRdc7HDz.js → flame-BSsCvgT8.js} +1 -1
  69. package/dashboard/dist/assets/{format-tokens-DhIeweGK.js → format-tokens-N22Wqv1X.js} +1 -1
  70. package/dashboard/dist/assets/{host-mode-APftzzvz.js → host-mode-JzrhHX7F.js} +1 -1
  71. package/dashboard/dist/assets/{icons-D-wu8eUg.js → icons-pK99mIMv.js} +1 -1
  72. package/dashboard/dist/assets/{index-CZ3D1Q7c.js → index-BhviBroj.js} +1 -1
  73. package/dashboard/dist/assets/{index-D2g1tPGl.js → index-CmD84EJi.js} +1 -1
  74. package/dashboard/dist/assets/{index-CiWf_0mc.js → index-Dk43KNa6.js} +1 -1
  75. package/dashboard/dist/assets/info-D-RLFnSK.js +1 -0
  76. package/dashboard/dist/assets/{link-2-Cg6bEvjQ.js → link-2-BiKXW9mV.js} +1 -1
  77. package/dashboard/dist/assets/{loader-circle-Cd7h4LcE.js → loader-circle-KVUaEKV2.js} +1 -1
  78. package/dashboard/dist/assets/{modifiers.esm-B7hOvflM.js → modifiers.esm-5NK8j3mT.js} +1 -1
  79. package/dashboard/dist/assets/monitor-smartphone-u9yr-_Es.js +1 -0
  80. package/dashboard/dist/assets/os-DMmhX9tk.js +1 -0
  81. package/dashboard/dist/assets/play-D0MaDCOx.js +1 -0
  82. package/dashboard/dist/assets/plus-DTJVtoAJ.js +1 -0
  83. package/dashboard/dist/assets/provider-display-YhtG0I9Y.js +42 -0
  84. package/dashboard/dist/assets/{react-CfB5zBqR.js → react-gIVxucOB.js} +1 -1
  85. package/dashboard/dist/assets/safePolygon-C_sPnJ1L.js +1 -0
  86. package/dashboard/dist/assets/{search-DMtc6bBy.js → search-DdQRwFYV.js} +1 -1
  87. package/dashboard/dist/assets/server-M0rmbGWy.js +1 -0
  88. package/dashboard/dist/assets/shield-check-9-sqQKdD.js +1 -0
  89. package/dashboard/dist/assets/skills-api-B0qBWnuK.js +1 -0
  90. package/dashboard/dist/assets/{sortable.esm-O7ntEYCi.js → sortable.esm-iqbm7x5D.js} +1 -1
  91. package/dashboard/dist/assets/{store-D-FZbBaC.js → store-DstuWd4a.js} +1 -1
  92. package/dashboard/dist/assets/{terminal-Y3qDL50U.js → terminal-Dz0MxHNG.js} +1 -1
  93. package/dashboard/dist/assets/{trash-D_PaPrXq.js → trash-DBMFOFVz.js} +1 -1
  94. package/dashboard/dist/assets/{use-community-stats-DGTBo_4v.js → use-community-stats-CacbAcUR.js} +1 -1
  95. package/dashboard/dist/assets/{use-latest-request-guard-BpfCferm.js → use-latest-request-guard-nBuQVZOR.js} +1 -1
  96. package/dashboard/dist/assets/use-limits-display-prefs-fqg8hs6b.js +1 -0
  97. package/dashboard/dist/assets/use-native-settings-EAqAFx2x.js +1 -0
  98. package/dashboard/dist/assets/{use-ordered-list-CClTBWi0.js → use-ordered-list-DGLjjU6Q.js} +1 -1
  99. package/dashboard/dist/assets/use-pet-settings-C5MzWHE7.js +2 -0
  100. package/dashboard/dist/assets/use-reduced-motion-DK2oZ2uC.js +1 -0
  101. package/dashboard/dist/assets/{use-transform-CA5mW4u8.js → use-transform-C25eCuz_.js} +1 -1
  102. package/dashboard/dist/assets/use-usage-limits-BhqnEai3.js +1 -0
  103. package/dashboard/dist/assets/{useCurrency-CaOhUMcm.js → useCurrency-t3PYQi1l.js} +1 -1
  104. package/dashboard/dist/assets/usePositioner-C59mj6kG.js +1 -0
  105. package/dashboard/dist/assets/useTokenFormat-C0xQsBGf.js +1 -0
  106. package/dashboard/dist/assets/zap-CyH0tvKM.js +1 -0
  107. package/dashboard/dist/index.html +2 -2
  108. package/dashboard/dist/ip-check.html +2 -2
  109. package/dashboard/dist/leaderboard.html +2 -2
  110. package/dashboard/dist/pricing.html +6 -5
  111. package/dashboard/dist/privacy.html +3 -3
  112. package/dashboard/dist/share.html +2 -2
  113. package/dashboard/dist/terms.html +6 -6
  114. package/package.json +7 -2
  115. package/src/commands/device-login.js +60 -33
  116. package/src/commands/init.js +26 -7
  117. package/src/commands/serve.js +3 -3
  118. package/src/commands/sync.js +43 -22
  119. package/src/lib/atomic-json.js +27 -0
  120. package/src/lib/bearer-token.js +11 -0
  121. package/src/lib/cloud-account.js +4 -1
  122. package/src/lib/local-api.js +282 -69
  123. package/src/lib/openclaw-cli.js +104 -0
  124. package/src/lib/openclaw-hook.js +1 -46
  125. package/src/lib/openclaw-session-plugin.js +1 -59
  126. package/src/lib/pricing/seed-snapshot.json +1 -1
  127. package/src/lib/proxy-env.js +8 -3
  128. package/src/lib/rollout.js +15 -10
  129. package/src/lib/runtime-config.js +84 -14
  130. package/src/lib/skills-manager.js +8 -1
  131. package/src/lib/static-server.js +19 -4
  132. package/src/lib/upload-throttle.js +18 -4
  133. package/dashboard/dist/assets/AchievementBadge-B67_Cp1T.js +0 -1
  134. package/dashboard/dist/assets/AchievementsPage-DNJ5n0Bn.js +0 -2
  135. package/dashboard/dist/assets/BadgeDetailModal-DFL1MPcg.js +0 -1
  136. package/dashboard/dist/assets/Card-dqzakOoX.js +0 -1
  137. package/dashboard/dist/assets/CommunityStatsModal-DnbCiGms.js +0 -1
  138. package/dashboard/dist/assets/Controls-BgQflA-3.js +0 -1
  139. package/dashboard/dist/assets/DashboardPage-DeLRhWU_.js +0 -1
  140. package/dashboard/dist/assets/DialogClose-DUxjaRqf.js +0 -1
  141. package/dashboard/dist/assets/DialogDescription-h6XMtzIU.js +0 -1
  142. package/dashboard/dist/assets/DialogTitle-C8vpXqg8.js +0 -1
  143. package/dashboard/dist/assets/LandingPage-cjoagPAb.js +0 -2
  144. package/dashboard/dist/assets/LeaderboardAvatar-CJdG51hR.js +0 -1
  145. package/dashboard/dist/assets/LeaderboardPage-D-yf2rOQ.js +0 -2
  146. package/dashboard/dist/assets/LeaderboardProfileModal--hrfpUPF.js +0 -73
  147. package/dashboard/dist/assets/LoginCard-BiMyV2Uf.js +0 -1
  148. package/dashboard/dist/assets/LoginModal-D79CMZmf.js +0 -1
  149. package/dashboard/dist/assets/LoginPage-BLyGuPlG.js +0 -1
  150. package/dashboard/dist/assets/PetPage-Bv0K4k2t.js +0 -1
  151. package/dashboard/dist/assets/PopoverPopup-3eucO8QU.js +0 -1
  152. package/dashboard/dist/assets/ResetPasswordPage-VYMl84_-.js +0 -1
  153. package/dashboard/dist/assets/Select-D8N2TJz1.js +0 -1
  154. package/dashboard/dist/assets/SelectItemText-CoTR0Uwm.js +0 -1
  155. package/dashboard/dist/assets/SessionsPage-BngTWN7Q.css +0 -1
  156. package/dashboard/dist/assets/SessionsPage-BtH5iLbi.js +0 -3
  157. package/dashboard/dist/assets/SettingsPage-huGkex5G.js +0 -2
  158. package/dashboard/dist/assets/SkillsPage-B9usVOTU.js +0 -1
  159. package/dashboard/dist/assets/TrendMonitor-B8SKBsWO.js +0 -19
  160. package/dashboard/dist/assets/WidgetsPage-o_91L3Zi.js +0 -1
  161. package/dashboard/dist/assets/__vite-browser-external-Cj9D7QBh.js +0 -45
  162. package/dashboard/dist/assets/__vite-browser-external-gKkiQad5.css +0 -1
  163. package/dashboard/dist/assets/composite-DO7_ilHE.js +0 -1
  164. package/dashboard/dist/assets/download-kGPw24XQ.js +0 -1
  165. package/dashboard/dist/assets/info-Qgc5VctK.js +0 -1
  166. package/dashboard/dist/assets/monitor-smartphone-wFv5VQQf.js +0 -1
  167. package/dashboard/dist/assets/plus-0xHQei42.js +0 -1
  168. package/dashboard/dist/assets/provider-display-DNqVkqfp.js +0 -42
  169. package/dashboard/dist/assets/skills-api-BeN184fz.js +0 -1
  170. package/dashboard/dist/assets/use-limits-display-prefs-Drs82lSi.js +0 -1
  171. package/dashboard/dist/assets/use-pet-settings-DvaQ7XrL.js +0 -2
  172. package/dashboard/dist/assets/use-reduced-motion-Dg10dVuu.js +0 -1
  173. package/dashboard/dist/assets/use-session-efficiency-pref-BiYRXVlN.js +0 -1
  174. package/dashboard/dist/assets/use-usage-limits-B0uafB4O.js +0 -1
  175. package/dashboard/dist/assets/useTokenFormat-JjQCKdIr.js +0 -1
  176. package/dashboard/dist/assets/zap-Cqur2X5s.js +0 -1
@@ -1 +0,0 @@
1
- import{aF as Gt,bH as Ke,bI as _t,bh as je,aL as W,bf as Ut,bn as V,bJ as Ot,bK as ze,j as ve,bL as Je,r as m,bl as Y,bM as st,bN as Vt,aP as it,bk as Ne,bO as Xt,bP as ct,bp as I,bo as Pe,bG as me,bQ as qe,bR as fe,bS as de,aK as w,bq as Kt,bT as wt,bU as Qe,bV as qt,bD as ut,bx as lt,bz as $t,bW as jt,bX as xt,bY as Ze,aS as Le,aJ as ye,bZ as zt,bC as Jt,b_ as Qt,x as ke,bw as Zt,b$ as Ye,bt as en,bj as We,bu as tn,bm as Ie,c0 as Ge,c1 as nn,c2 as rn,c3 as on,aM as sn,c4 as be,aV as cn,aG as un,E as _e,c5 as ln,c6 as an,c7 as fn}from"./__vite-browser-external-Cj9D7QBh.js";const dn="data-open",pn="data-closed",gn="data-anchor-hidden",It="data-popup-open",hn="data-pressed",mn={[It]:""},bn={[It]:"",[hn]:""},yn={[dn]:""},En={[pn]:""},Tn={[gn]:""},Qn={open(e){return e?mn:null}},Zn={open(e){return e?bn:null}},Rn={open(e){return e?yn:En},anchorHidden(e){return e?Tn:null}},er={...Rn,...Gt};function Fe(e,t,n=!0){return e.filter(o=>o.parentId===t).flatMap(o=>[...!n||o.context?.open?[o]:[],...Fe(e,o.id,n)])}function at(e,t){let n=[],r=e.find(o=>o.id===t)?.parentId;for(;r;){const o=e.find(s=>s.id===r);r=o?.parentId,o&&(n=n.concat(o))}return n}function vn(e){e.preventDefault(),e.stopPropagation()}function Sn(e){return"nativeEvent"in e}function Pt(e){return e.pointerType===""&&e.isTrusted?!0:Ke&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function Cn(e){return _t?!1:!Ke&&e.width===0&&e.height===0||Ke&&e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType==="mouse"||e.width<1&&e.height<1&&e.pressure===0&&e.detail===0&&e.pointerType==="touch"}function tr(e,t){const n=["mouse","pen"];return t||n.push("",void 0),n.includes(e)}function On(e){const t=e.type;return t==="click"||t==="mousedown"||t==="keydown"||t==="keyup"}function Ae(e){const t=je(wn,e).current;return t.next=e,W(t.effect),t}function wn(e){const t={current:e,next:e,effect:()=>{t.current=t.next}};return t}let De=0;function Ue(e,t={}){const{preventScroll:n=!1,sync:r=!1,shouldFocus:o}=t;cancelAnimationFrame(De);function s(){o&&!o()||e?.focus({preventScroll:n})}if(r)return s(),Ut;const i=requestAnimationFrame(s);return De=i,()=>{De===i&&(cancelAnimationFrame(i),De=0)}}const Ve={inert:new WeakMap,"aria-hidden":new WeakMap},ft="data-base-ui-inert",$e={inert:new WeakSet,"aria-hidden":new WeakSet};let xe=new WeakMap,Xe=0;function xn(e){return $e[e]}function kt(e){return e?Ot(e)?e.host:kt(e.parentNode):null}const dt=(e,t)=>t.map(n=>{if(e.contains(n))return n;const r=kt(n);return e.contains(r)?r:null}).filter(n=>n!=null),pt=e=>{const t=new Set;return e.forEach(n=>{let r=n;for(;r&&!t.has(r);)t.add(r),r=r.parentNode}),t},gt=(e,t,n)=>{const r=[],o=s=>{!s||n.has(s)||Array.from(s.children).forEach(i=>{ze(i)!=="script"&&(t.has(i)?o(i):r.push(i))})};return o(e),r};function In(e,t,n,r,{mark:o=!0}){let s=null;r?s="inert":n&&(s="aria-hidden");let i=null,l=null;const a=dt(t,e),f=o?gt(t,pt(a),new Set(a)):[],v=[],O=[];if(s){const d=Ve[s],b=xn(s);l=b,i=d;const C=dt(t,Array.from(t.querySelectorAll("[aria-live]"))),X=a.concat(C);gt(t,pt(X),new Set(X)).forEach(R=>{const T=R.getAttribute(s),j=T!==null&&T!=="false",q=(d.get(R)||0)+1;d.set(R,q),v.push(R),q===1&&j&&b.add(R),j||R.setAttribute(s,s==="inert"?"":"true")})}return o&&f.forEach(d=>{const b=(xe.get(d)||0)+1;xe.set(d,b),O.push(d),b===1&&d.setAttribute(ft,"")}),Xe+=1,()=>{i&&v.forEach(d=>{const C=(i.get(d)||0)-1;i.set(d,C),C||(!l?.has(d)&&s&&d.removeAttribute(s),l?.delete(d))}),o&&O.forEach(d=>{const b=(xe.get(d)||0)-1;xe.set(d,b),b||d.removeAttribute(ft)}),Xe-=1,Xe||(Ve.inert=new WeakMap,Ve["aria-hidden"]=new WeakMap,$e.inert=new WeakSet,$e["aria-hidden"]=new WeakSet,xe=new WeakMap)}}function ht(e,t={}){const{ariaHidden:n=!1,inert:r=!1,mark:o=!0}=t,s=V(e[0]).body;return In(e,s,n,r,{mark:o})}function Ft(){const e=new Map;return{emit(t,n){e.get(t)?.forEach(r=>r(n))},on(t,n){e.has(t)||e.set(t,new Set),e.get(t).add(n)},off(t,n){e.get(t)?.delete(n)}}}class Pn{nodesRef={current:[]};events=Ft();addNode(t){this.nodesRef.current.push(t)}removeNode(t){const n=this.nodesRef.current.findIndex(r=>r===t);n!==-1&&this.nodesRef.current.splice(n,1)}}const Mt=m.createContext(null),At=m.createContext(null),et=()=>m.useContext(Mt)?.id||null,tt=e=>{const t=m.useContext(At);return e??t};function nr(e){const t=Je(),n=tt(e),r=et();return W(()=>{if(!t)return;const o={id:t,parentId:r};return n?.addNode(o),()=>{n?.removeNode(o)}},[n,t,r]),t}function rr(e){const{children:t,id:n}=e,r=et();return ve.jsx(Mt.Provider,{value:m.useMemo(()=>({id:n,parentId:r}),[n,r]),children:t})}function or(e){const{children:t,externalTree:n}=e,r=je(()=>n??new Pn).current;return ve.jsx(At.Provider,{value:r,children:t})}function kn(e,t){const n=Le(ye(e));return e instanceof n.KeyboardEvent?"keyboard":e instanceof n.FocusEvent?t||"keyboard":"pointerType"in e?e.pointerType||"keyboard":"touches"in e?"touch":e instanceof n.MouseEvent?t||(e.detail===0?"keyboard":"mouse"):""}const mt=20;let pe=[];function nt(){pe=pe.filter(e=>e.deref()?.isConnected)}function bt(e){nt(),e&&ze(e)!=="body"&&(pe.push(new WeakRef(e)),pe.length>mt&&(pe=pe.slice(-mt)))}function yt(){return nt(),pe[pe.length-1]?.deref()}function Fn(e){return e?Ze(e)?e:xt(e)[0]||e:null}function Et(e){if(e.hasAttribute("tabindex")&&!e.hasAttribute("data-tabindex")||!e.getAttribute("role")?.includes("dialog"))return;const n=zt(e).filter(o=>{const s=o.getAttribute("data-tabindex")||"";return Ze(o)||o.hasAttribute("data-tabindex")&&!s.startsWith("-")}),r=e.getAttribute("tabindex");n.length===0?r!=="0"&&(e.setAttribute("tabindex","0"),e.setAttribute("data-tabindex","0")):(r!=="-1"||e.hasAttribute("data-tabindex")&&e.getAttribute("data-tabindex")!=="-1")&&(e.setAttribute("tabindex","-1"),e.setAttribute("data-tabindex","-1"))}function sr(e){const{context:t,children:n,disabled:r=!1,initialFocus:o=!0,returnFocus:s=!0,restoreFocus:i=!1,modal:l=!0,closeOnFocusOut:a=!0,openInteractionType:f="",nextFocusableElement:v,previousFocusableElement:O,beforeContentFocusGuardRef:d,externalTree:b,getInsideElements:C}=e,X="rootStore"in t?t.rootStore:t,F=X.useState("open"),R=X.useState("domReferenceElement"),T=X.useState("floatingElement"),{events:j,dataRef:q}=X.context,$=Y(()=>q.current.floatingContext?.nodeId),le=o===!1,M=st(R)&&le,Z=Ae(o),se=Ae(s),ee=Ae(f),B=Ae(F),G=tt(b),S=Vt(),D=m.useRef(!1),ae=m.useRef(!1),te=m.useRef(!1),Ee=m.useRef(null),ie=m.useRef(""),z=m.useRef(""),ge=m.useRef(null),he=m.useRef(null),Se=it(ge,d,S?.beforeInsideRef),Me=it(he,S?.afterInsideRef),y=Ne(),L=Ne(),A=Xt(),Te=S!=null,E=ct(T),ne=Y((h=E)=>h?xt(h):[]),re=Y(()=>C?.().filter(h=>h!=null)??[]);m.useEffect(()=>{if(r||!l)return;function h(N){N.key==="Tab"&&w(E,de(V(E)))&&ne().length===0&&!M&&vn(N)}const P=V(E);return I(P,"keydown",h)},[r,E,l,M,ne]),m.useEffect(()=>{if(r||!F)return;const h=V(E);function P(){te.current=!1}function N(oe){const g=ye(oe),x=re(),p=w(T,g)||w(R,g)||w(S?.portalNode,g)||x.some(k=>k===g||w(k,g));te.current=!p,z.current=oe.pointerType||"keyboard",g?.closest(`[${Jt}]`)&&(ae.current=!0,L.start(0,()=>{ae.current=!1}))}function _(){z.current="keyboard"}return Pe(I(h,"pointerdown",N,!0),I(h,"pointerup",P,!0),I(h,"pointercancel",P,!0),I(h,"keydown",_,!0),P)},[r,T,R,E,F,S,L,re]),m.useEffect(()=>{if(r||!a)return;const h=V(E);function P(){ae.current=!0,L.start(0,()=>{ae.current=!1})}function N(x){const p=ye(x);Ze(p)&&(Ee.current=p)}function _(x){const p=x.relatedTarget,k=x.currentTarget,K=ye(x);l&&p==null&&K!=null&&w(T,K)&&bt(K),queueMicrotask(()=>{const J=$(),Q=X.context.triggerElements,Ce=re(),Re=p?.hasAttribute(qe("focus-guard"))&&[ge.current,he.current,S?.beforeInsideRef.current,S?.afterInsideRef.current,S?.beforeOutsideRef.current,S?.afterOutsideRef.current,fe(O),fe(v)].includes(p),u=!(w(R,p)||w(T,p)||w(p,T)||w(S?.portalNode,p)||Ce.some(c=>c===p||w(c,p))||Q.hasMatchingElement(c=>w(c,p))||Re||G&&(Fe(G.nodesRef.current,J).find(c=>w(c.context?.elements.floating,p)||w(c.context?.elements.domReference,p))||at(G.nodesRef.current,J).find(c=>[c.context?.elements.floating,ct(c.context?.elements.floating)].includes(p)||c.context?.elements.domReference===p)));if(k===R&&E&&Et(E),i&&k!==R&&!Qt(K)&&de(h)===h.body){if(me(E)&&(E.focus(),i==="popup")){A.request(()=>{E.focus()});return}const c=ne(),H=Ee.current,U=(H&&c.includes(H)?H:null)||c[c.length-1]||E;me(U)&&U.focus()}if(q.current.insideReactTree){q.current.insideReactTree=!1;return}(M||!l)&&p&&u&&!ae.current&&(M||p!==yt())&&(D.current=!0,X.setOpen(!1,ke(Zt,x)))})}function oe(){te.current||(q.current.insideReactTree=!0,y.start(0,()=>{q.current.insideReactTree=!1}))}const g=me(R)?R:null;if(!(!T&&!g))return Pe(g&&I(g,"focusout",_),g&&I(g,"pointerdown",P),T&&I(T,"focusin",N),T&&I(T,"focusout",_),T&&S&&I(T,"focusout",oe,!0))},[r,R,T,E,l,G,S,X,a,i,ne,M,$,q,y,L,A,v,O,re]),m.useEffect(()=>{if(r||!T||!F)return;const h=Array.from(S?.portalNode?.querySelectorAll(`[${qe("portal")}]`)||[]),N=(G?at(G.nodesRef.current,$()):[]).find(k=>st(k.context?.elements.domReference||null))?.context?.elements.domReference,oe=[...[T,...h,ge.current,he.current,S?.beforeOutsideRef.current,S?.afterOutsideRef.current,...re()],N,fe(O),fe(v),M?R:null].filter(k=>k!=null),g=ht(oe,{ariaHidden:l||M,mark:!1}),x=[T,...h].filter(k=>k!=null),p=ht(x);return()=>{p(),g()}},[F,r,R,T,l,S,M,G,$,v,O,re]),W(()=>{if(!F||r||!me(E))return;ie.current="",z.current="";const h=V(E),P=de(h);queueMicrotask(()=>{const N=Z.current,_=typeof N=="function"?N(ee.current||""):N;if(_===void 0||_===!1||w(E,P))return;let g=null;const x=()=>(g==null&&(g=ne(E)),g[0]||E);let p;_===!0||_===null?p=x():p=fe(_),p=p||x();const k=w(E,de(h));Ue(p,{preventScroll:p===E,shouldFocus(){if(!B.current)return!1;if(k)return!0;const K=de(h);return!(K!==p&&w(E,K))}})})},[r,F,E,ne,Z,ee,B]),W(()=>{if(r||!E)return;const h=V(E),P=de(h),N=ee.current==null;bt(P);function _(g){if(g.open||(ie.current=kn(g.nativeEvent,z.current)),g.reason===Kt&&g.nativeEvent.type==="mouseleave"&&(D.current=!0),g.reason===wt)if(g.nested)D.current=!1;else if(Pt(g.nativeEvent)||Cn(g.nativeEvent))D.current=!1;else{let x=!1;V(E).createElement("div").focus({get preventScroll(){return x=!0,!1}}),x?D.current=!1:D.current=!0}}j.on("openchange",_);function oe(g){const x=se.current;let p=typeof x=="function"?x(g):x;if(p===void 0||p===!1)return null;p===null&&(p=!0);const k=R?.isConnected?R:null,K=P?.isConnected&&ze(P)!=="body"?P:null;let J=N?K||k:k||K;return J||(J=yt()||null),typeof p=="boolean"?J:fe(p)||J||null}return()=>{j.off("openchange",_);const g=de(h),x=re(),p=w(T,g)||x.some(Q=>Q===g||w(Q,g))||G&&Fe(G.nodesRef.current,$(),!1).some(Q=>w(Q.context?.elements.floating,g)),k=se.current,K=ie.current,J=oe(K);queueMicrotask(()=>{const Q=Fn(J),Ce=typeof k!="boolean";if(k&&!D.current&&me(Q)&&(!(!Ce&&Q!==g&&g!==h.body)||p)){const Re={preventScroll:!0};K==="keyboard"&&(Re.focusVisible=!0),Q.focus(Re)}D.current=!1})}},[r,T,E,se,ee,j,G,R,$,re]),W(()=>{if(!Qe||F||!T)return;const h=de(V(T));!me(h)||!qt(h)||w(T,h)&&h.blur()},[F,T]),W(()=>{if(!(r||!S))return S.setFocusManagerState({modal:l,closeOnFocusOut:a,open:F,onOpenChange:X.setOpen,domReference:R}),()=>{S.setFocusManagerState(null)}},[r,S,l,F,X,a,R]),W(()=>{if(!(r||!E))return Et(E),()=>{queueMicrotask(nt)}},[r,E]);const ce=!r&&(l?!M:!0)&&(Te||l);return ve.jsxs(m.Fragment,{children:[ce&&ve.jsx(ut,{"data-type":"inside",ref:Se,onFocus:h=>{if(l){const P=ne();Ue(P[P.length-1])}else S?.portalNode&&(D.current=!1,lt(h,S.portalNode)?$t(R)?.focus():fe(O??S.beforeOutsideRef)?.focus())}}),n,ce&&ve.jsx(ut,{"data-type":"inside",ref:Me,onFocus:h=>{l?Ue(ne()[0]):S?.portalNode&&(a&&(D.current=!0),lt(h,S.portalNode)?jt(R)?.focus():fe(v??S.afterOutsideRef)?.focus())}})]})}function Mn(){return!1}function An(e){return{escapeKey:typeof e=="boolean"?e:e?.escapeKey??!1,outsidePress:typeof e=="boolean"?e:e?.outsidePress??!0}}function ir(e,t={}){const{enabled:n=!0,escapeKey:r=!0,outsidePress:o=!0,outsidePressEvent:s="sloppy",referencePress:i=Mn,bubbles:l,externalTree:a}=t,f="rootStore"in e?e.rootStore:e,v=f.useState("open"),O=f.useState("floatingElement"),{dataRef:d,events:b}=f.context,C=tt(a),X=Y(typeof o=="function"?o:()=>!1),F=typeof o=="function"?X:o,R=F!==!1,T=Y(()=>s),{escapeKey:j,outsidePress:q}=An(l),$=m.useRef(!1),le=m.useRef(!1),M=m.useRef(!1),Z=m.useRef(!1),se=m.useRef(!1),ee=m.useRef(""),B=m.useRef(null),G=Ne(),S=Ne(),D=Y(()=>{S.clear(),d.current.insideReactTree=!1}),ae=Y(y=>{const L=d.current.floatingContext?.nodeId;return(C?Fe(C.nodesRef.current,L):[]).some(Te=>Te.context?.open&&!Te.context.dataRef.current[y])}),te=Y(y=>Ye(y,f.select("floatingElement"))||Ye(y,f.select("domReferenceElement"))),Ee=Y(y=>{i()&&f.setOpen(!1,ke(en,y.nativeEvent))}),ie=Y(y=>{if(!v||!n||!r||y.key!=="Escape"||se.current||!j&&ae("__escapeKeyBubbles"))return;const L=Sn(y)?y.nativeEvent:y,A=ke(tn,L);f.setOpen(!1,A),A.isCanceled||y.preventDefault(),!j&&!A.isPropagationAllowed&&y.stopPropagation()}),z=Y(()=>{d.current.insideReactTree=!0,S.start(0,D)}),ge=Y(y=>{if(!v||!n||y.button!==0)return;const L=ye(y.nativeEvent);w(f.select("floatingElement"),L)&&($.current||($.current=!0,le.current=!1))}),he=Y(y=>{!v||!n||(y.defaultPrevented||y.nativeEvent.defaultPrevented)&&$.current&&(le.current=!0)});m.useEffect(()=>{function y(L){L.open||(Z.current=!1)}return b.on("openchange",y),()=>{b.off("openchange",y)}},[b]),m.useEffect(()=>{if(!v||!n)return v||(Z.current=!1),D;d.current.__escapeKeyBubbles=j,d.current.__outsidePressBubbles=q;const y=new We,L=new We,A=V(O);function Te(){y.clear(),se.current=!0}function E(){y.start(Qe?5:0,()=>{se.current=!1})}function ne(){M.current=!0,L.start(0,()=>{M.current=!1})}function re(){$.current=!1,le.current=!1}function ce(){const u=ee.current,c=u==="pen"||!u?"mouse":u,H=T(),U=typeof H=="function"?H():H;return typeof U=="string"?U:U[c]}function h(u){const c=ce();return c==="intentional"&&u.type!=="click"||c==="sloppy"&&u.type==="click"}function P(u){const c=d.current.floatingContext?.nodeId,H=C&&Fe(C.nodesRef.current,c).some(U=>Ye(u,U.context?.elements.floating));return te(u)||H}function N(u){if(h(u)){u.type!=="click"&&!te(u)&&(L.clear(),M.current=!1),D();return}if(d.current.insideReactTree){D();return}const c=ye(u),H=`[${qe("inert")}]`,U=Ie(c)?c.getRootNode():null,Oe=Array.from((Ot(U)?U:V(f.select("floatingElement"))).querySelectorAll(H)),rt=f.context.triggerElements;if(c&&(rt.hasElement(c)||rt.hasMatchingElement(ue=>w(ue,c))))return;let we=Ie(c)?c:null;for(;we&&!Ge(we);){const ue=nn(we);if(Ge(ue)||!Ie(ue))break;we=ue}if(!(Oe.length&&Ie(c)&&!rn(c)&&!w(c,f.select("floatingElement"))&&Oe.every(ue=>!w(we,ue)))){if(me(c)&&!("touches"in u)){const ue=Ge(c),He=on(c),ot=/auto|scroll/,Dt=ue||ot.test(He.overflowX),Nt=ue||ot.test(He.overflowY),Wt=Dt&&c.clientWidth>0&&c.scrollWidth>c.clientWidth,Lt=Nt&&c.clientHeight>0&&c.scrollHeight>c.clientHeight,Bt=He.direction==="rtl",Ht=Lt&&(Bt?u.offsetX<=c.offsetWidth-c.clientWidth:u.offsetX>c.clientWidth),Yt=Wt&&u.offsetY>c.clientHeight;if(Ht||Yt)return}if(!P(u)){if(ce()==="intentional"){if(u.detail!==0&&!Pt(u)&&!Z.current)return;if(M.current){L.clear(),M.current=!1;return}}typeof F=="function"&&!F(u)||ae("__outsidePressBubbles")||(f.setOpen(!1,ke(wt,u)),D())}}}function _(u){ce()!=="sloppy"||u.pointerType==="touch"||!f.select("open")||!n||te(u)||N(u)}function oe(u){if(ce()!=="sloppy"||!f.select("open")||!n||te(u))return;const c=u.touches[0];c&&(B.current={startTime:Date.now(),startX:c.clientX,startY:c.clientY,dismissOnTouchEnd:!1,dismissOnMouseDown:!0},G.start(1e3,()=>{B.current&&(B.current.dismissOnTouchEnd=!1,B.current.dismissOnMouseDown=!1)}))}function g(u,c){const H=ye(u);if(!H)return;const U=I(H,u.type,()=>{c(u),U()})}function x(u){ee.current="touch",g(u,oe)}function p(u){G.clear(),u.type==="pointerdown"&&(u.button===0&&(Z.current=!0),ee.current=u.pointerType),!(u.type==="mousedown"&&B.current&&!B.current.dismissOnMouseDown)&&g(u,c=>{c.type==="pointerdown"?_(c):N(c)})}function k(u){if(u.type==="pointercancel"&&(Z.current=!1),!$.current)return;const c=le.current;if(re(),ce()==="intentional"){if(u.type==="pointercancel"){c&&ne();return}if(!P(u)){if(c){ne();return}typeof F=="function"&&!F(u)||(L.clear(),M.current=!0,D())}}}function K(u){if(ce()!=="sloppy"||!B.current||te(u))return;const c=u.touches[0];if(!c)return;const H=Math.abs(c.clientX-B.current.startX),U=Math.abs(c.clientY-B.current.startY),Oe=Math.sqrt(H*H+U*U);Oe>5&&(B.current.dismissOnTouchEnd=!0),Oe>10&&(N(u),G.clear(),B.current=null)}function J(u){g(u,K)}function Q(u){ce()!=="sloppy"||!B.current||te(u)||(B.current.dismissOnTouchEnd&&N(u),G.clear(),B.current=null)}function Ce(u){g(u,Q)}const Re=Pe(r&&Pe(I(A,"keydown",ie),I(A,"compositionstart",Te),I(A,"compositionend",E)),R&&Pe(I(A,"click",p,!0),I(A,"pointerdown",p,!0),I(A,"pointerup",k,!0),I(A,"pointercancel",k,!0),I(A,"mousedown",p,!0),I(A,"mouseup",k,!0),I(A,"touchstart",x,{capture:!0,passive:!0}),I(A,"touchmove",J,{capture:!0,passive:!0}),I(A,"touchend",Ce,{capture:!0,passive:!0})));return()=>{Re(),y.clear(),L.clear(),re(),M.current=!1,D()}},[d,O,r,R,F,v,n,j,q,ie,D,T,ae,te,C,f,G]);const Se=m.useMemo(()=>({onKeyDown:ie,onPointerDown:Ee,onClick:Ee}),[ie,Ee]),Me=m.useMemo(()=>({onKeyDown:ie,onPointerDown:he,onMouseDown:he,onClickCapture:z,onMouseDownCapture(y){z(),ge(y)},onPointerDownCapture(y){z(),ge(y)},onMouseUpCapture:z,onTouchEndCapture:z,onTouchMoveCapture:z}),[ie,z,ge,he]);return m.useMemo(()=>n?{reference:Se,floating:Me,trigger:Se}:{},[n,Se,Me])}const Dn={open:e=>e.open,transitionStatus:e=>e.transitionStatus,domReferenceElement:e=>e.domReferenceElement,referenceElement:e=>e.positionReference??e.referenceElement,floatingElement:e=>e.floatingElement,floatingId:e=>e.floatingId};class Nn extends sn{constructor(t){const{syncOnly:n,nested:r,onOpenChange:o,triggerElements:s,...i}=t;super({...i,positionReference:i.referenceElement,domReferenceElement:i.referenceElement},{onOpenChange:o,dataRef:{current:{}},events:Ft(),nested:r,triggerElements:s},Dn),this.syncOnly=n}syncOpenEvent=(t,n)=>{(!t||!this.state.open||n!=null&&On(n))&&(this.context.dataRef.current.openEvent=t?n:void 0)};dispatchOpenChange=(t,n)=>{this.syncOpenEvent(t,n.event);const r={open:t,reason:n.reason,nativeEvent:n.event,nested:this.context.nested,triggerElement:n.trigger};this.context.events.emit("openchange",r)};setOpen=(t,n)=>{if(this.syncOnly){this.context.onOpenChange?.(t,n);return}this.dispatchOpenChange(t,n),this.context.onOpenChange?.(t,n)}}function Wn(e){const{popupStore:t,treatPopupAsFloatingElement:n=!1,floatingRootContext:r,floatingId:o,nested:s,onOpenChange:i}=e,l=t.useState("open"),a=t.useState("activeTriggerElement"),f=t.useState(n?"popupElement":"positionerElement"),v=t.context.triggerElements,O=i,d=m.useRef(null);r===void 0&&d.current===null&&(d.current=new Nn({open:l,transitionStatus:void 0,referenceElement:a,floatingElement:f,triggerElements:v,onOpenChange:O,floatingId:o,syncOnly:!0,nested:s}));const b=r??d.current;return t.useSyncedValue("floatingId",o),W(()=>{const C={open:l,floatingId:o,referenceElement:a,floatingElement:f};Ie(a)&&(C.domReferenceElement=a),b.state.positionReference===b.state.referenceElement&&(C.positionReference=a),b.update(C)},[l,o,a,f,b]),b.context.onOpenChange=O,b.context.nested=s,b}function Ln(e,t=!1,n=!1,r=!1){const[o,s]=m.useState(e&&t?"idle":void 0),[i,l]=m.useState(e&&!r);return e&&!i&&(l(!0),s("starting")),!e&&i&&o!=="ending"&&!n&&s("ending"),!e&&!i&&o==="ending"&&s(void 0),W(()=>{if(!e&&i&&o!=="ending"&&n){const a=be.request(()=>{s("ending")});return()=>{be.cancel(a)}}},[e,i,o,n]),W(()=>{if(!e||t)return;const a=be.request(()=>{s(void 0)});return()=>{be.cancel(a)}},[t,e]),W(()=>{if(!e||!t)return;e&&i&&o!=="idle"&&s("starting");const a=be.request(()=>{s("idle")});return()=>{be.cancel(a)}},[t,e,i,o]),{mounted:i,setMounted:l,transitionStatus:o}}const cr={tabIndex:-1,[ln]:""};function ur(e){return t=>t==="touch"?e.current:!0}function lr(e,t=!1){const n=Je(),r=et()!=null,o=je(()=>e(n,r)).current;return Wn({popupStore:o,treatPopupAsFloatingElement:t,floatingRootContext:o.state.floatingRootContext,floatingId:n,nested:r,onOpenChange:o.setOpen}),o}function ar({handle:e,store:t}){return W(()=>e.attachStore(t),[e,t]),null}function Tt(e){const t=e.context.triggerElements.size;e.select("open")&&e.state.triggerCount!==t&&e.set("triggerCount",t)}function Bn(e,t){const n=m.useRef(null);return Y(r=>{const o=n.current;if(o!==null){if(o.element===r&&o.store===t&&o.id===e)return;n.current=null;const s=o.store;s.context.triggerElements.getById(o.id)===o.element&&(s.context.triggerElements.delete(o.id),Tt(s))}r!==null&&e!==void 0&&(n.current={store:t,id:e,element:r},t.context.triggerElements.add(e,r),Tt(t))})}function fr(e,t,n,r=!1){let o=e.preventUnmountingOnClose;t?o=!1:r&&(o=!0);const s=n?.id??null;let i=e.activeTriggerId,l=e.activeTriggerElement;return(s||t)&&(i=s,l=n??null),{open:t,preventUnmountingOnClose:o,activeTriggerId:i,activeTriggerElement:l}}function dr(e){let t=!1;return e.preventUnmountOnClose=()=>{t=!0},()=>t}function pr(e,t,n,r){const o=n.useState("isMountedByTrigger",e),s=Bn(e,n),i=Y(a=>{const f=n.select("open"),v=n.select("activeTriggerId");if(v===e){const O={activeTriggerElement:a,...f?r:null};n.update(O);return}if(v==null&&f){const O={activeTriggerId:e??null,activeTriggerElement:a,...r};n.update(O)}}),l=Y(a=>{s(a),a&&i(a)});return W(()=>(l(t.current),()=>l(null)),[l,t,n,e]),W(()=>{if(o){const a={activeTriggerElement:t.current,...r};n.update(a)}},[o,n,t,...Object.values(r)]),{registerTrigger:l,isMountedByThisTrigger:o}}function gr(e,t={}){const{closeOnActiveTriggerUnmount:n=!1}=t,r=m.useRef(null),o=e.useState("open"),s=e.useState("triggerCount"),i=e.useState("activeTriggerId"),l=e.useState("activeTriggerElement");W(()=>{if(!o){r.current=null,e.state.triggerCount!==0&&e.set("triggerCount",0);return}const a=e.context.triggerElements.size,f={};e.state.triggerCount!==a&&(f.triggerCount=a);const v=e.select("activeTriggerId");let O=null;if(v){const d=e.context.triggerElements.getById(v);if(d)r.current=v,d!==e.state.activeTriggerElement&&(f.activeTriggerElement=d);else{for(const[b,C]of e.context.triggerElements.entries())if(C===e.state.activeTriggerElement){f.activeTriggerId=b,f.activeTriggerElement=C,r.current=b;break}f.activeTriggerId===void 0&&(r.current===v?O=v:r.current=null)}}else r.current=null;if(!O&&!v&&a===1){const d=e.context.triggerElements.entries().next();if(!d.done){const[b,C]=d.value;f.activeTriggerId=b,f.activeTriggerElement=C,r.current=b}}(f.triggerCount!==void 0||f.activeTriggerId!==void 0||f.activeTriggerElement!==void 0)&&e.update(f),O&&n&&queueMicrotask(()=>{if(e.select("open")&&e.select("activeTriggerId")===O&&!e.context.triggerElements.getById(O)){const d=ke(cn);e.setOpen(!1,d),d.isCanceled||e.update({activeTriggerId:null,activeTriggerElement:null})}})},[o,e,s,i,l,n])}function hr(e,t,n,r){const{mounted:o,setMounted:s,transitionStatus:i}=Ln(e,!1,!1,r),l=t.useState("preventUnmountingOnClose"),a=e?!1:l;t.useSyncedValues({mounted:o,transitionStatus:i,preventUnmountingOnClose:a});const f=Y(()=>{s(!1),t.update({activeTriggerId:null,activeTriggerElement:null,mounted:!1,preventUnmountingOnClose:!1}),n?.(),t.context.onOpenChangeComplete?.(!1)});return un({enabled:o&&!e&&!a,open:e,ref:t.context.popupRef,onComplete(){e||f()}}),{forceUnmount:f,transitionStatus:i}}function mr(e,t){e.useSyncedValues(t),W(()=>()=>{e.update({activeTriggerProps:_e,inactiveTriggerProps:_e,popupProps:_e})},[e])}function br(e,t){W(()=>{!t&&e.state.openMethod!==null&&e.set("openMethod",null)},[t,e]),W(()=>()=>{e.state.openMethod!==null&&e.set("openMethod",null)},[e])}class yr{constructor(){this.idMap=new Map}add(t,n){this.idMap.set(t,n)}delete(t){this.idMap.delete(t)}hasElement(t){for(const n of this.idMap.values())if(n===t)return!0;return!1}hasMatchingElement(t){for(const n of this.idMap.values())if(t(n))return!0;return!1}getById(t){return this.idMap.get(t)}entries(){return this.idMap.entries()}elements(){return this.idMap.values()}get size(){return this.idMap.size}}function Er(e){return Je(e,"base-ui")}const Tr=m.forwardRef(function(t,n){const{cutout:r,...o}=t;let s;if(r){const i=r.getBoundingClientRect();s=`polygon(0% 0%,100% 0%,100% 100%,0% 100%,0% 0%,${i.left}px ${i.top}px,${i.left}px ${i.bottom}px,${i.right}px ${i.bottom}px,${i.right}px ${i.top}px,${i.left}px ${i.top}px)`}return ve.jsx("div",{ref:n,role:"presentation","data-base-ui-inert":"",...o,style:{position:"fixed",inset:0,userSelect:"none",WebkitUserSelect:"none",clipPath:s}})});let Rt={},vt={},St="";function Be(e,t){return fn(e)?e:t}function Ct(e,t,n){return/hidden|clip/.test(e.getComputedStyle(Be(t,n)).overflowY)}function Hn(e){if(typeof document>"u")return!1;const t=V(e);return Le(t).innerWidth-t.documentElement.clientWidth>0}function Yn(e){if(!(typeof CSS<"u"&&CSS.supports&&CSS.supports("scrollbar-gutter","stable"))||typeof document>"u")return!1;const n=V(e),r=n.documentElement,o=n.body,s=Be(r,o),i=s.style.overflowY,l=r.style.scrollbarGutter;r.style.scrollbarGutter="stable",s.style.overflowY="scroll";const a=s.offsetWidth;s.style.overflowY="hidden";const f=s.offsetWidth;return s.style.overflowY=i,r.style.scrollbarGutter=l,a===f}function Gn(e){const t=V(e),n=t.documentElement,r=t.body,o=Be(n,r),s={overflowY:o.style.overflowY,overflowX:o.style.overflowX};return Object.assign(o.style,{overflowY:"hidden",overflowX:"hidden"}),()=>{Object.assign(o.style,s)}}function _n(e){const t=V(e),n=t.documentElement,r=t.body,o=Le(n);let s=0,i=0,l=!1;const a=be.create();if(Qe&&(o.visualViewport?.scale??1)!==1)return()=>{};function f(){const b=o.getComputedStyle(n),C=o.getComputedStyle(r),R=(b.scrollbarGutter||"").includes("both-edges")?"stable both-edges":"stable";s=n.scrollTop,i=n.scrollLeft,Rt={scrollbarGutter:n.style.scrollbarGutter,overflowY:n.style.overflowY,overflowX:n.style.overflowX},St=n.style.scrollBehavior,vt={position:r.style.position,height:r.style.height,width:r.style.width,boxSizing:r.style.boxSizing,overflowY:r.style.overflowY,overflowX:r.style.overflowX,scrollBehavior:r.style.scrollBehavior};const T=n.scrollHeight>n.clientHeight,j=n.scrollWidth>n.clientWidth,q=b.overflowY==="scroll"||C.overflowY==="scroll",$=b.overflowX==="scroll"||C.overflowX==="scroll",le=Math.max(0,o.innerWidth-r.clientWidth),M=Math.max(0,o.innerHeight-r.clientHeight),Z=parseFloat(C.marginTop)+parseFloat(C.marginBottom),se=parseFloat(C.marginLeft)+parseFloat(C.marginRight),ee=Be(n,r);if(l=Yn(e),l){n.style.scrollbarGutter=R,ee.style.overflowY="hidden",ee.style.overflowX="hidden";return}Object.assign(n.style,{scrollbarGutter:R,overflowY:"hidden",overflowX:"hidden"}),(T||q)&&(n.style.overflowY="scroll"),(j||$)&&(n.style.overflowX="scroll"),Object.assign(r.style,{position:"relative",height:Z||M?`calc(100dvh - ${Z+M}px)`:"100dvh",width:se||le?`calc(100vw - ${se+le}px)`:"100vw",boxSizing:"border-box",overflowY:"hidden",overflowX:"hidden",scrollBehavior:"unset"}),r.scrollTop=s,r.scrollLeft=i,n.setAttribute("data-base-ui-scroll-locked",""),n.style.scrollBehavior="unset"}function v(){Object.assign(n.style,Rt),Object.assign(r.style,vt),l||(n.scrollTop=s,n.scrollLeft=i,n.removeAttribute("data-base-ui-scroll-locked"),n.style.scrollBehavior=St)}function O(){v(),a.request(f)}f();const d=I(o,"resize",O);return()=>{a.cancel(),v(),typeof o.removeEventListener=="function"&&d()}}class Un{lockCount=0;restore=null;timeoutLock=We.create();timeoutUnlock=We.create();acquire(t){return this.lockCount+=1,this.lockCount===1&&this.restore===null&&this.timeoutLock.start(0,()=>this.lock(t)),this.release}release=()=>{this.lockCount-=1,this.lockCount===0&&this.restore&&this.timeoutUnlock.start(0,this.unlock)};unlock=()=>{this.lockCount===0&&this.restore&&(this.restore?.(),this.restore=null)};lock(t){if(this.lockCount===0||this.restore!==null)return;const n=V(t),r=n.documentElement,o=n.body,s=Le(r);if(Ct(s,r,o)){const l=new s.MutationObserver(()=>{Ct(s,r,o)||(l.disconnect(),this.restore=null,this.lock(t))}),a={attributes:!0};l.observe(r,a),l.observe(o,a),this.restore=()=>l.disconnect();return}const i=an||!Hn(t);this.restore=i?Gn(t):_n(t)}}const Vn=new Un;function Rr(e=!0,t=null){W(()=>{if(e)return Vn.acquire(t)},[e,t])}const Xn="ArrowUp",Kn="ArrowDown",qn="ArrowLeft",$n="ArrowRight",jn="Home",zn="End",vr=new Set([Xn,Kn,qn,$n,jn,zn]);export{nr as A,rr as B,vr as C,Cn as D,Ue as E,Nn as F,vn as G,Pt as H,Tr as I,yr as P,Rn as a,sr as b,ur as c,cr as d,ir as e,Rr as f,mr as g,fr as h,lr as i,br as j,gr as k,hr as l,ar as m,Ln as n,tr as o,er as p,tt as q,et as r,Fe as s,Qn as t,Er as u,Ae as v,dr as w,or as x,pr as y,Zn as z};
@@ -1 +0,0 @@
1
- import{q as o}from"./__vite-browser-external-Cj9D7QBh.js";const a={name:"download",size:24,node:[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]]};a.node;const n=o(a);export{n as D};
@@ -1 +0,0 @@
1
- import{q as o}from"./__vite-browser-external-Cj9D7QBh.js";const e={name:"info",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]};e.node;const a=o(e);export{a as I};
@@ -1 +0,0 @@
1
- import{q as o}from"./__vite-browser-external-Cj9D7QBh.js";const e={name:"monitor-smartphone",size:24,node:[["path",{d:"M18 8V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h8",key:"10dyio"}],["path",{d:"M10 19v-3.96 3.15",key:"1irgej"}],["path",{d:"M7 19h5",key:"qswx4l"}],["rect",{width:"6",height:"10",x:"16",y:"12",rx:"2",key:"1egngj"}]]};e.node;const a=o(e);export{a as M};
@@ -1 +0,0 @@
1
- import{q as a}from"./__vite-browser-external-Cj9D7QBh.js";const e={name:"plus",size:24,node:[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]};e.node;const s=a(e);export{s as P};
@@ -1,42 +0,0 @@
1
- import{q as Ne,r as l,j as e,c as o,a2 as qe,ab as Ke,ac as Ve,X as Ze,a6 as Je,n as Qe}from"./__vite-browser-external-Cj9D7QBh.js";import{u as et}from"./useCurrency-CaOhUMcm.js";import{u as Ee}from"./useTokenFormat-JjQCKdIr.js";import{M as tt,T as at}from"./terminal-Y3qDL50U.js";import{I as rt}from"./info-Qgc5VctK.js";const Re={name:"pause",size:24,node:[["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"}]]};Re.node;const ot=Ne(Re);const Pe={name:"play",size:24,node:[["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"}]]};Pe.node;const nt=Ne(Pe);const Le={name:"rotate-ccw",size:24,node:[["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"}]]};Le.node;const st=Ne(Le),ae={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 it(s,d){const p=/^#([0-9a-f]{6})$/i.exec(s);if(!p)return s;const c=parseInt(p[1],16),f=c>>16&255,$=c>>8&255,Y=c&255,P=A=>Math.max(0,Math.min(255,Math.round(A*d)));return`rgb(${P(f)}, ${P($)}, ${P(Y)})`}function q(s,d,p,c,f){const $=Math.cos(c),Y=Math.sin(c),P=s*$-d*Y,A=s*Y+d*$,R=p,E=Math.cos(f),S=Math.sin(f),K=P,h=A*E-R*S,v=A*S+R*E;return{x:K,y:h,z:v}}function lt(s,d,p,c,f){return q(s,d,p,c,f)}function De(s,d,p=c=>Number(c).toLocaleString()){const c=p(d);if(s>=4){const f=Math.floor(Math.random()*3)+1;return o(`heatmap.3d.voxel.joke.${f}`,{value:c})}else return s===3?o("heatmap.3d.voxel.level3",{value:c}):s===2?o("heatmap.3d.voxel.level2",{value:c}):s===1?o("heatmap.3d.voxel.level1",{value:c}):o("heatmap.3d.voxel.level0")}function Ae({weeks:s,palette:d="auto",isDark:p=!1,interactive:c=!1,autoRotateInit:f=!1,onResetViewRef:$=null}){const{formatTokens:Y,formatTokensTooltip:P}=Ee(),A=ae[d]||(d==="auto"?ae.emerald:null),R=A?p?A.dark:A.light:Array.isArray(d)?d:p?ae.emerald.dark:ae.emerald.light,E=A?p?A.gridColor.dark:A.gridColor.light:p?"rgba(255,255,255,0.06)":"rgba(0,0,0,0.06)",S=-.2,K=.88,[h,v]=l.useState({yaw:S,pitch:K}),[ie,V]=l.useState(f),[he,L]=l.useState(1),j=c?13:10.5,fe=l.useMemo(()=>{const t=[],r=s.length;if(r===0||!c)return[];for(let n=0;n<=7;n++){const i=(n-3.5)*j,m=q(-r/2*j,i,0,h.yaw,h.pitch),x=q(r/2*j,i,0,h.yaw,h.pitch);t.push({d:`M${m.x},${m.y} L${x.x},${x.y}`,key:`horiz-${n}`})}for(let n=0;n<=r;n+=4){const i=(n-r/2)*j,m=q(i,-3.5*j,0,h.yaw,h.pitch),x=q(i,3.5*j,0,h.yaw,h.pitch);t.push({d:`M${m.x},${m.y} L${x.x},${x.y}`,key:`vert-${n}`})}if(r%4!==0){const n=(r-r/2)*j,i=q(n,-3.5*j,0,h.yaw,h.pitch),m=q(n,3.5*j,0,h.yaw,h.pitch);t.push({d:`M${i.x},${i.y} L${m.x},${m.y}`,key:"vert-last"})}return t},[s.length,h,j,c]);l.useEffect(()=>{$&&($.current={reset:()=>{v({yaw:S,pitch:K}),V(!1),L(1),be()},toggleAutoRotate:t=>{V(t)}})},[$]);const Z=l.useRef(null),F=l.useRef(null),B=l.useRef(!1),le=l.useRef({x:0,y:0}),J=l.useRef({yaw:S,pitch:K}),U=l.useRef({x:0,y:0}),oe=l.useRef({x:0,y:0,time:0}),ne=l.useRef(null),[ge,ye]=l.useState(0),Q=l.useRef(null),se=l.useRef(!0);l.useEffect(()=>(se.current=!0,()=>{se.current=!1}),[]);const be=()=>{Q.current&&cancelAnimationFrame(Q.current),ye(0);const t=performance.now(),r=1200,n=i=>{if(!se.current)return;const m=i-t,x=Math.min(1,m/r),C=1-Math.pow(1-x,3);ye(C),x<1?Q.current=requestAnimationFrame(n):Q.current=null};Q.current=requestAnimationFrame(n)};l.useEffect(()=>(be(),()=>{Q.current&&cancelAnimationFrame(Q.current)}),[c]),l.useEffect(()=>{if(!ie||B.current||typeof window>"u"||typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches)return;let r;const n=()=>{if(typeof document<"u"&&document.visibilityState==="hidden"){r=requestAnimationFrame(n);return}v(i=>({yaw:i.yaw+.002,pitch:i.pitch})),r=requestAnimationFrame(n)};return r=requestAnimationFrame(n),()=>cancelAnimationFrame(r)},[ie]);const ce=(t,r)=>{c&&(B.current=!0,le.current={x:t,y:r},J.current={yaw:h.yaw,pitch:h.pitch},U.current={x:0,y:0},oe.current={x:t,y:r,time:performance.now()},ne.current&&cancelAnimationFrame(ne.current))},I=(t,r)=>{if(!B.current)return;const n=t-le.current.x,i=r-le.current.y,m=performance.now(),x=m-oe.current.time;x>0&&(U.current={x:(t-oe.current.x)/x,y:(r-oe.current.y)/x}),oe.current={x:t,y:r,time:m};const C=.005,M=J.current.yaw-n*C,k=Math.PI/2.3,b=Math.max(-k,Math.min(k,J.current.pitch-i*C));v({yaw:M,pitch:b})},ve=()=>{if(!B.current)return;B.current=!1;let t=-U.current.x*12,r=-U.current.y*12;const n=.95,i=()=>{B.current||(t*=n,r*=n,!(Math.abs(t)<.01&&Math.abs(r)<.01)&&(v(m=>{const x=m.yaw+t*.005,C=Math.PI/2.3,M=Math.max(-C,Math.min(C,m.pitch+r*.005));return{yaw:x,pitch:M}}),ne.current=requestAnimationFrame(i)))};ne.current=requestAnimationFrame(i)},[g,de]=l.useState(null),[ee,xe]=l.useState({x:0,y:0,shiftX:0}),y=l.useRef(null);l.useEffect(()=>()=>{y.current&&clearTimeout(y.current)},[]),l.useEffect(()=>{if(!c||!F.current)return;const t=n=>{n.preventDefault();const i=-n.deltaY*.0025;L(m=>{const x=m+i;return Math.max(.5,Math.min(3,x))})},r=F.current;return r.addEventListener("wheel",t,{passive:!1}),()=>{r.removeEventListener("wheel",t)}},[c]);const T=l.useMemo(()=>{const t=[];return s.forEach((r,n)=>{(Array.isArray(r)?r:[]).forEach((i,m)=>{i&&t.push({key:i.day||`${n}-${m}`,col:n,row:m,level:i.level||0,value:i.value||0,day:i.day,models:i.models||null})})}),t},[s]),pe=j-(c?1.8:1.5),ke=c?38:28,we=t=>Math.max(1.8,Number(t)/4*ke),te=l.useMemo(()=>{if(T.length===0)return[];const t=s.length;return T.map(r=>{const n=we(r.level),i=Math.sqrt(Math.pow(r.col-t/2,2)+Math.pow(r.row-3.5,2)),m=Math.sqrt(Math.pow(t/2,2)+Math.pow(3.5,2)),x=i/m*.4,C=Math.min(1,Math.max(0,(ge-x)*(1/.6))),M=n*C,k=(r.col-t/2)*j,b=(r.row-3.5)*j,w=pe/2,H=[{x:k-w,y:b-w,z:0},{x:k+w,y:b-w,z:0},{x:k+w,y:b+w,z:0},{x:k-w,y:b+w,z:0},{x:k-w,y:b-w,z:M},{x:k+w,y:b-w,z:M},{x:k+w,y:b+w,z:M},{x:k-w,y:b+w,z:M}].map(X=>q(X.x,X.y,X.z,h.yaw,h.pitch)),ue=q(k,b,M/2,h.yaw,h.pitch),Ue=[{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]}],Ie=R[Math.min(4,Math.max(0,Number(r.level)||0))],ze=[],We=.35,Xe=-.4,Be=.83;return Ue.forEach(X=>{const je=lt(X.normal[0],X.normal[1],X.normal[2],h.yaw,h.pitch);if(je.z>.001){const _e=H[X.indices[0]],Me=H[X.indices[1]],Te=H[X.indices[2]],$e=H[X.indices[3]],Fe=`M${_e.x},${_e.y} L${Me.x},${Me.y} L${Te.x},${Te.y} L${$e.x},${$e.y} Z`,Oe=je.x*We+je.y*Xe+je.z*Be,He=p?.18:0,Ge=X.scale*(.82+.28*Math.max(0,Oe))+He;ze.push({name:X.name,d:Fe,fill:it(Ie,Ge)})}}),{...r,centerProj:ue,renderedFaces:ze}})},[T,h,R,s.length,ge,j,pe,ke]),G=l.useMemo(()=>[...te].sort((t,r)=>t.centerProj.z-r.centerProj.z),[te]),_=l.useMemo(()=>{if(G.length===0)return{minX:-100,minY:-100,maxX:100,maxY:100};let t=1/0,r=1/0,n=-1/0,i=-1/0;return G.forEach(m=>{const x=j*2,C=m.centerProj.x,M=m.centerProj.y;C-x<t&&(t=C-x),C+x>n&&(n=C+x),M-x<r&&(r=M-x),M+x>i&&(i=M+x)}),{minX:t,minY:r,maxX:n,maxY:i}},[G,j]),D=12,me=_.maxX-_.minX+D*2,a=_.maxY-_.minY+D*2,u=me/he,z=a/he,N=_.minX-D+(me-u)/2,W=_.minY-D+(a-z)/2,O=`${N} ${W} ${u} ${z}`;return T.length===0?e.jsx("div",{className:"py-8 text-center text-sm text-oai-gray-500",children:o("heatmap.empty")}):e.jsxs("div",{ref:F,className:`relative select-none outline-none ${c?"cursor-grab active:cursor-grabbing w-full h-full flex items-center justify-center":"w-full overflow-hidden flex justify-center"}`,onMouseDown:t=>{if(!c)return;ce(t.clientX,t.clientY);const r=i=>I(i.clientX,i.clientY),n=()=>{ve(),window.removeEventListener("mousemove",r),window.removeEventListener("mouseup",n)};window.addEventListener("mousemove",r),window.addEventListener("mouseup",n)},onTouchStart:t=>{!c||t.touches.length===0||ce(t.touches[0].clientX,t.touches[0].clientY)},onTouchMove:t=>{!c||t.touches.length===0||I(t.touches[0].clientX,t.touches[0].clientY)},onTouchEnd:()=>{c&&ve()},children:[e.jsxs("svg",{ref:Z,viewBox:O,width:c?"95%":"100%",height:c?"95%":"auto",role:"img","aria-label":o("heatmap.iso.aria")||"3D interactive activity heatmap",style:{display:"block",width:"100%",height:"auto",maxWidth:c?"none":`${me}px`,maxHeight:c?"78vh":"none"},className:"transition-transform duration-300 ease-out",children:[c&&fe.map(t=>e.jsx("path",{d:t.d,fill:"none",stroke:E,strokeWidth:.25,strokeDasharray:"1.5 2.5",strokeLinecap:"round"},t.key)),G.map(t=>{const r=g&&g.key===t.key;return e.jsxs("g",{onMouseEnter:n=>{if(y.current&&(clearTimeout(y.current),y.current=null),de(t),c&&Z.current){const i=q((t.col-s.length/2)*j,(t.row-3.5)*j,we(t.level),h.yaw,h.pitch);let m=0,x=0;const C=Z.current;if(F.current&&typeof C.createSVGPoint=="function"&&typeof C.getScreenCTM=="function")try{const w=C.createSVGPoint();w.x=i.x,w.y=i.y;const re=C.getScreenCTM();if(re){const H=w.matrixTransform(re),ue=F.current.getBoundingClientRect();m=H.x-ue.left,x=H.y-ue.top}}catch{const re=C.getBoundingClientRect(),H=_.maxX-_.minX+D*2,ue=_.maxY-_.minY+D*2;m=(i.x-(_.minX-D))/H*re.width,x=(i.y-(_.minY-D))/ue*re.height}else{const w=C.getBoundingClientRect(),re=_.maxX-_.minX+D*2,H=_.maxY-_.minY+D*2;m=(i.x-(_.minX-D))/re*w.width,x=(i.y-(_.minY-D))/H*w.height}const M=140;let k=0;const b=F.current?F.current.getBoundingClientRect().width:C.getBoundingClientRect().width;m<M?k=M-m:m>b-M&&(k=b-M-m),xe({x:m,y:x,shiftX:k})}},onMouseLeave:()=>{y.current&&clearTimeout(y.current),y.current=setTimeout(()=>{de(null)},150)},className:"transition-all duration-200",style:{filter:r?"brightness(1.15) drop-shadow(0 4px 6px rgba(0,0,0,0.15))":"none",cursor:c?"pointer":"default"},children:[!c&&t.day&&e.jsx("title",{children:o("heatmap.tooltip.tokens",{day:t.day,value:P(t.value)})}),t.renderedFaces.map((n,i)=>e.jsx("path",{d:n.d,fill:n.fill,stroke:n.fill,strokeWidth:.25,strokeLinejoin:"round"},i))]},t.key)})]}),c&&g&&e.jsxs("div",{onMouseEnter:()=>{y.current&&(clearTimeout(y.current),y.current=null)},onMouseLeave:()=>{y.current&&clearTimeout(y.current),y.current=setTimeout(()=>{de(null)},150)},className:"absolute z-[9999] w-0 h-0 transition-all duration-100 ease-out",style:{left:`${ee.x}px`,top:`${ee.y}px`},children:[e.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% + ${ee.shiftX}px))`},children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-oai-gray-100 dark:border-oai-gray-800/80 pb-1.5",children:[e.jsx("span",{className:"text-[11px] font-semibold text-oai-gray-500 dark:text-oai-gray-400",children:g.day}),(()=>{const t=g.level===0?p?"#9ca3af":"#6b7280":R[g.level];return e.jsx("span",{className:"text-[10px] px-2 py-0.5 rounded-full font-medium",style:{backgroundColor:t+"22",color:t,border:`1px solid ${t}44`},children:o("heatmap.tooltip.level",{level:g.level})})})()]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs("div",{className:"flex items-baseline gap-1",children:[e.jsx("span",{title:P(g.value),className:"text-lg font-bold text-oai-gray-900 dark:text-white leading-none",children:Y(g.value)}),e.jsx("span",{className:"text-[10px] text-oai-gray-400 uppercase tracking-wider font-semibold",children:o("heatmap.unit.tokens")})]}),g.models&&Object.keys(g.models).length>0?e.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:[e.jsx("div",{className:"text-[10px] font-semibold text-oai-gray-400 dark:text-oai-gray-500 uppercase tracking-wider",children:o("heatmap.tooltip.model_breakdown")}),e.jsx("div",{className:"flex flex-col gap-2 max-h-[150px] overflow-y-auto pr-1.5 scrollbar-thin",children:Object.entries(g.models).map(([t,r])=>({name:t,val:Number(r)})).sort((t,r)=>r.val-t.val).map(({name:t,val:r})=>{const n=Number(g.value)||1,i=Math.round(r/n*100);return e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsxs("div",{className:"flex items-center justify-between text-[11px] gap-3",children:[e.jsx("span",{className:"font-medium text-oai-gray-750 dark:text-oai-gray-200 truncate max-w-[120px]",title:t,children:t}),e.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[e.jsx("span",{title:P(r),className:"font-mono text-oai-gray-900 dark:text-oai-gray-100 font-semibold",children:Y(r)}),e.jsxs("span",{className:"text-[9px] text-oai-gray-450 dark:text-oai-gray-500 min-w-[28px] text-right font-medium",children:[i,"%"]})]})]}),e.jsx("div",{className:"w-full h-1 bg-oai-gray-100 dark:bg-oai-gray-800/85 rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full rounded-full transition-all duration-300",style:{width:`${i}%`,backgroundColor:R[4],boxShadow:`0 0 4px ${R[4]}55`}})})]},t)})})]}):e.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:De(g.level,g.value,Y)})]})]}),e.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 ct=12,dt=3,mt=26,ut=["#ebedf0","#a7f3d0","#6ee7b7","#34d399","#10b981"],xt=["#121212","#065f46","#059669","#10b981","#34d399"];function pt(s){if(typeof s!="string")return null;const d=/^(\d{4})-(\d{2})-(\d{2})$/.exec(s.trim());if(!d)return null;const p=new Date(Date.UTC(Number(d[1]),Number(d[2])-1,Number(d[3])));return Number.isFinite(p.getTime())?p:null}function Ye(s,d){return new Date(Date.UTC(s.getUTCFullYear(),s.getUTCMonth(),s.getUTCDate()+d))}function ht(s,d){return Math.floor((Date.UTC(d.getUTCFullYear(),d.getUTCMonth(),d.getUTCDate())-Date.UTC(s.getUTCFullYear(),s.getUTCMonth(),s.getUTCDate()))/864e5)}function ft(s,d){const p=d==="mon"?1:0,c=s.getUTCDay();return Ye(s,-((c-p+7)%7))}function gt(s,d,p,c){if(!s)return[];const f=pt(d)||new Date,$=[];for(let E=11;E>=0;E-=1)$.push(new Date(Date.UTC(f.getUTCFullYear(),f.getUTCMonth()-E,1)));const Y=ft(f,p),P=Ye(Y,-(s-1)*7),A=[],R=new Set;for(const E of $){const S=Math.floor(ht(P,E)/7);S<0||S>=s||R.has(S)||(R.add(S),A.push({label:c[E.getUTCMonth()],index:S}))}return A}function _t({heatmap:s,timeZoneLabel:d,timeZoneShortLabel:p,hideLegend:c=!1,embedded:f=!1}){const{resolvedTheme:$}=qe(),{currency:Y,rate:P}=et(),{formatTokens:A,formatTokensTooltip:R}=Ee(),E=$==="dark",S=E?xt:ut,K=l.useRef(null),h=l.useRef(null),[v,ie]=l.useState(null),[V,he]=l.useState({x:0,y:0,shiftX:0,flipY:!1}),L=l.useRef(null);l.useEffect(()=>()=>{L.current&&clearTimeout(L.current)},[]);const[j,fe]=l.useState(!1),[Z,F]=l.useState(!1),[B,le]=l.useState(!1),J=l.useRef(null),[U,oe]=l.useState("emerald"),ne=[o("heatmap.month.jan"),o("heatmap.month.feb"),o("heatmap.month.mar"),o("heatmap.month.apr"),o("heatmap.month.may"),o("heatmap.month.jun"),o("heatmap.month.jul"),o("heatmap.month.aug"),o("heatmap.month.sep"),o("heatmap.month.oct"),o("heatmap.month.nov"),o("heatmap.month.dec")],ge=(a,u)=>{if(!u||!u.day)return;L.current&&(clearTimeout(L.current),L.current=null),ie(u);const z=a.currentTarget.getBoundingClientRect(),N=typeof window<"u"?window.innerWidth:1024,W=z.left+z.width/2,O=z.top<300,t=O?z.bottom:z.top,r=140;let n=0;W<r?n=r-W:W>N-r&&(n=N-r-W),he({x:W,y:t,shiftX:n,flipY:O})},ye=()=>{L.current&&clearTimeout(L.current),L.current=setTimeout(()=>{ie(null)},150)},Q=()=>{F(!1),fe(!0)},se=()=>{F(!0)},be=a=>{a.target===a.currentTarget&&Z&&(fe(!1),F(!1))};l.useEffect(()=>{if(!j||Z)return;const a=u=>{u.key==="Escape"&&se()};return window.addEventListener("keydown",a),()=>{window.removeEventListener("keydown",a)}},[j,Z]);const ce=l.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"}}),[]),I=ce[U]||ce.emerald,ve=ae[U]?E?ae[U].dark:ae[U].light:E?ae.emerald.dark:ae.emerald.light,[g,de]=l.useState(()=>{if(f)return"2d";try{return window.localStorage?.getItem("tt:heatmap-view")==="3d"?"3d":"2d"}catch{return"2d"}});l.useEffect(()=>{if(!f)try{window.localStorage?.setItem("tt:heatmap-view",g)}catch{}},[g,f]),l.useEffect(()=>{if(g!=="2d")return;const a=K.current;a&&(a.scrollLeft=a.scrollWidth)},[s?.weeks,g]),l.useEffect(()=>{const a=K.current;if(!a)return;const u=()=>{L.current&&(clearTimeout(L.current),L.current=null),ie(null)};return a.addEventListener("scroll",u),()=>a.removeEventListener("scroll",u)},[]);const ee=s?.week_starts_on==="mon"?"mon":"sun",xe=l.useMemo(()=>{const a=Array.isArray(s?.weeks)?s.weeks:[];if(!a.length)return{weeks:[]};const u=[];for(const z of a)for(const N of Array.isArray(z)?z:[])N?.day&&u.push({day:N.day,total_tokens:N.total_tokens??N.value??0,billable_total_tokens:N.billable_total_tokens??N.value??N.total_tokens??0,models:N.models??null});return Ke({dailyRows:u,weeks:Math.max(52,a.length),to:s?.to,weekStartsOn:ee})},[s?.to,s?.weeks,ee]),y=xe?.weeks||[],T=l.useMemo(()=>{let a=0,u=0,z={day:null,value:0},N=0,W=0;const O=[];y.forEach(k=>{(Array.isArray(k)?k:[]).forEach(b=>{b&&b.day&&O.push(b)})}),O.sort((k,b)=>k.day.localeCompare(b.day)),O.forEach(k=>{const b=Number(k.value)||0;a+=b,b>0?(u++,N++,N>W&&(W=N)):N=0,b>z.value&&(z={day:k.day,value:b})});const t=O.length||365,r=(u/t*100).toFixed(1);let n="heatmap.3d.modal.ai.eval.default",i="heatmap.3d.modal.ai.title.default";a>=15e6?(i="heatmap.3d.modal.ai.title.peak",n="heatmap.3d.modal.ai.eval.peak"):a>=5e6?(i="heatmap.3d.modal.ai.title.heavy",n="heatmap.3d.modal.ai.eval.heavy"):a>=1e6?(i="heatmap.3d.modal.ai.title.core",n="heatmap.3d.modal.ai.eval.core"):a>=2e4&&(i="heatmap.3d.modal.ai.title.steady",n="heatmap.3d.modal.ai.eval.steady");const m=s?.total_cost_usd,x=Number(m),M=m!=null&&(typeof m!="string"||m.trim()!=="")&&Number.isFinite(x)?x:a/15e5;return{totalTokens:a,activeDays:u,activeRate:r,maxSingleDay:z,maxStreak:W,aiEvaluationTitleKey:i,aiEvaluationKey:n,totalCostUsd:M}},[y,s?.total_cost_usd]),Ce=l.useMemo(()=>Ve(T.totalCostUsd,{currency:Y,rate:P}),[T.totalCostUsd,Y,P]),pe=a=>A(a,{mode:Qe.COMPACT,decimals:2}),ke=ee==="mon"?["Mon","Tue","Wed","Thu","Fri","Sat","Sun"].map(a=>o(`heatmap.day.${a.toLowerCase()}`)):["Sun","Mon","Tue","Wed","Thu","Fri","Sat"].map(a=>o(`heatmap.day.${a.toLowerCase()}`)),we=l.useMemo(()=>gt(y.length,xe?.to,ee,ne),[xe?.to,y.length,ee,ne]);if(!y.length)return e.jsx("div",{className:"py-8 text-center text-sm text-oai-gray-500",children:o("heatmap.empty")});const te=f?10:ct,G=f?2:dt,_=f?22:mt,D=_+y.length*te+Math.max(0,y.length-1)*G,me=`${_}px repeat(${y.length}, ${te}px)`;return e.jsxs("div",{ref:h,className:f?"relative":"relative rounded-xl border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-900 p-5",children:[!f&&e.jsxs("div",{className:"flex items-baseline justify-between mb-3",children:[e.jsx("h3",{className:"text-sm font-medium text-oai-gray-500 dark:text-oai-gray-300 uppercase tracking-wide",children:o("heatmap.title")}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.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:[e.jsx("button",{type:"button",role:"tab","aria-selected":g==="2d",onClick:()=>de("2d"),className:g==="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:o("heatmap.view.2d")}),e.jsx("button",{type:"button",role:"tab","aria-selected":g==="3d",onClick:()=>de("3d"),className:g==="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:o("heatmap.view.3d")})]}),e.jsx("span",{className:"text-xs text-oai-gray-400 dark:text-oai-gray-450",children:p||o("heatmap.legend.utc")})]})]}),g==="3d"&&e.jsxs("div",{onClick:Q,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:o("heatmap.3d.hover_tip"),children:[e.jsx(Ae,{weeks:y,isDark:E,palette:U}),e.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:e.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:[e.jsx(tt,{size:9}),o("heatmap.3d.hover_tip")]})})]}),g==="2d"&&e.jsx("div",{ref:K,className:`overflow-x-auto overflow-y-hidden heatmap-scroll-thin${f?"":" pb-1"}`,children:e.jsxs("div",{style:{minWidth:D},children:[e.jsxs("div",{className:"grid text-[10px] uppercase text-oai-gray-400 dark:text-oai-gray-400 mb-1",style:{gridTemplateColumns:me,columnGap:G},children:[e.jsx("span",{}),we.map(a=>e.jsx("span",{style:{gridColumnStart:a.index+2},className:"whitespace-nowrap",children:a.label},`${a.label}-${a.index}`))]}),e.jsxs("div",{className:"grid",style:{gridTemplateColumns:me,columnGap:G},children:[e.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, ${te}px)`,rowGap:G},children:ke.map(a=>e.jsx("span",{className:"leading-none",children:a},a))}),e.jsx("div",{className:"grid",style:{gridAutoFlow:"column",gridTemplateRows:`repeat(7, ${te}px)`,gap:G},children:y.map((a,u)=>(Array.isArray(a)?a:[]).map((z,N)=>{if(!z)return null;const W=z.day||`e-${u}-${N}`,O=Number(z.level)||0,t=S[O]||S[0];return e.jsx("span",{onMouseEnter:r=>ge(r,z),onMouseLeave:ye,className:"rounded-[2px] transition-transform hover:scale-125 hover:z-10 cursor-pointer",style:{width:te,height:te,background:t}},W)}))})]})]})}),!c&&e.jsxs("div",{className:"flex items-center justify-center gap-2 mt-3",children:[e.jsx("span",{className:"text-[10px] text-oai-gray-400 dark:text-oai-gray-400",children:o("heatmap.legend.less")}),e.jsx("div",{className:"flex gap-0.5",children:S.map((a,u)=>e.jsx("span",{className:"rounded-[1px]",style:{width:10,height:10,background:a}},u))}),e.jsx("span",{className:"text-[10px] text-oai-gray-400 dark:text-oai-gray-400",children:o("heatmap.legend.more")})]}),j&&e.jsx("div",{onAnimationEnd:be,onClick:a=>{a.target===a.currentTarget&&se()},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 ${Z?"animate-tt-fade-out":"animate-tt-fade-in"}`,children:e.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 ${Z?"animate-tt-modal-exit":"animate-tt-modal"}`,children:[e.jsx("button",{type:"button",onClick:se,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:e.jsx(Ze,{size:16})}),e.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:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-1.5 select-none",children:[e.jsxs("span",{className:"relative flex h-1.5 w-1.5",children:[e.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full opacity-75",style:{backgroundColor:I.rawColor}}),e.jsx("span",{className:"relative inline-flex rounded-full h-1.5 w-1.5",style:{backgroundColor:I.rawColor}})]}),e.jsx("span",{className:"text-[9px] font-extrabold uppercase tracking-widest font-mono text-zinc-400 dark:text-zinc-500",children:o("heatmap.3d.modal.eyebrow")})]}),e.jsx("h4",{className:"text-xl font-black text-zinc-900 dark:text-zinc-50 tracking-tight leading-none mt-2 select-none",children:o("heatmap.3d.modal.title")}),e.jsx("p",{className:"text-[11px] leading-relaxed text-zinc-400 dark:text-zinc-500 mt-2 font-normal select-none",children:o("heatmap.3d.modal.desc")})]}),e.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:[e.jsxs("div",{className:"flex flex-col gap-1 relative group cursor-help",children:[e.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:e.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:[e.jsx("span",{className:"text-[9px] text-zinc-400 dark:text-zinc-500",children:o("heatmap.3d.modal.stats.precision_total_tokens")}),e.jsxs("span",{className:"mt-0.5 font-bold text-zinc-900 dark:text-zinc-50",children:[R(T.totalTokens)," ",o("heatmap.unit.tokens")]})]})}),e.jsx("span",{className:"text-[9px] font-bold text-zinc-400 dark:text-zinc-500 uppercase tracking-widest font-mono",children:o("heatmap.3d.modal.stats.total_tokens")}),e.jsxs("div",{className:"flex items-baseline gap-1.5",children:[e.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:pe(T.totalTokens)}),e.jsx("div",{className:"opacity-30 group-hover:opacity-60 transition-opacity",children:e.jsx("svg",{width:"24",height:"10",viewBox:"0 0 24 10",fill:"none",children:e.jsx("path",{d:"M1 9C3 7 5 7 7 4C9 1 11 0 13 2C15 4 17 0 23 0",stroke:I.rawColor,strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]}),e.jsxs("div",{className:"flex flex-col gap-1 group cursor-default",children:[e.jsx("span",{className:"text-[9px] font-bold text-zinc-400 dark:text-zinc-500 uppercase tracking-widest font-mono",children:o("heatmap.3d.modal.stats.estimated_cost")}),e.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:Ce})]}),e.jsxs("div",{className:"flex flex-col gap-1 group cursor-default",children:[e.jsx("span",{className:"text-[9px] font-bold text-zinc-400 dark:text-zinc-500 uppercase tracking-widest font-mono",children:o("heatmap.3d.modal.stats.active_rate_days")}),e.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:[T.activeRate,"%"," ",e.jsxs("span",{className:"text-[10px] font-bold text-zinc-400 dark:text-zinc-500 font-mono",children:["(",T.activeDays,o("heatmap.3d.modal.stats.days_suffix"),")"]})]})]}),e.jsxs("div",{className:"flex flex-col gap-1 group cursor-default",children:[e.jsx("span",{className:"text-[9px] font-bold text-zinc-400 dark:text-zinc-500 uppercase tracking-widest font-mono",children:o("heatmap.3d.modal.stats.max_streak")}),e.jsxs("span",{className:"text-xl font-black text-amber-500 tracking-tight font-mono transition-transform duration-200 group-hover:-translate-y-[1px]",children:[T.maxStreak," ",e.jsx("span",{className:"text-[10px] font-bold text-amber-500/80 font-mono",children:o("heatmap.3d.modal.stats.days_suffix")})]})]}),e.jsxs("div",{className:"flex flex-col gap-1 col-span-2 relative group cursor-help",children:[e.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:e.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:[e.jsx("span",{className:"text-[9px] text-zinc-400 dark:text-zinc-500",children:o("heatmap.3d.modal.stats.precision_peak_value")}),e.jsx("span",{className:"mt-0.5 font-bold text-zinc-900 dark:text-zinc-50",children:T.maxSingleDay.value>0?`${R(T.maxSingleDay.value)} ${o("heatmap.unit.tokens")}`:o("heatmap.3d.modal.stats.no_data")}),e.jsx("span",{className:"text-[8px] text-zinc-400 dark:text-zinc-500 mt-0.5",children:T.maxSingleDay.day||o("heatmap.3d.modal.stats.no_data")})]})}),e.jsx("span",{className:"text-[9px] font-bold text-zinc-400 dark:text-zinc-500 uppercase tracking-widest font-mono",children:o("heatmap.3d.modal.stats.peak_day")}),e.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:[T.maxSingleDay.value>0?pe(T.maxSingleDay.value):o("heatmap.3d.modal.stats.no_data")," ",e.jsxs("span",{className:"text-[10px] font-bold text-zinc-400 dark:text-zinc-500 font-mono",children:["(",T.maxSingleDay.day||o("heatmap.3d.modal.stats.no_data"),")"]})]})]})]}),e.jsxs("div",{className:"flex flex-col gap-2.5 py-1",children:[e.jsxs("div",{className:"flex items-center gap-1.5 select-none",children:[e.jsx(at,{size:11,style:{color:I.rawColor}}),e.jsx("span",{className:"text-[9px] font-extrabold uppercase tracking-widest font-mono",style:{color:I.rawColor},children:o(T.aiEvaluationTitleKey)})]}),e.jsxs("div",{className:"pl-3.5 border-l-2 relative transition-all duration-300 group",style:{borderColor:I.rawColor},children:[e.jsx("div",{className:"absolute inset-y-0 left-0 w-[3px] blur-[2px] opacity-15 pointer-events-none rounded-full",style:{backgroundColor:I.rawColor}}),e.jsx("p",{className:"text-[11px] leading-relaxed text-zinc-600 dark:text-zinc-400 font-normal",children:o(T.aiEvaluationKey)})]})]}),e.jsx("div",{className:"mt-auto border-t border-zinc-200/50 dark:border-zinc-800/50 pt-4 select-none",children:e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-[9px] font-bold text-zinc-400 dark:text-zinc-500 uppercase tracking-widest font-mono",children:o("heatmap.3d.modal.legend.title")}),e.jsx("span",{className:"text-[10px] font-medium text-zinc-500 dark:text-zinc-400",children:o(`heatmap.3d.modal.palette.${U}`)})]}),e.jsx("div",{className:"flex gap-1",children:ve.map((a,u)=>e.jsx("div",{className:"flex-1 h-1 rounded-[2px]",style:{backgroundColor:a},title:o("heatmap.tooltip.level",{level:u})},u))})]})})]}),e.jsxs("div",{className:"flex-1 h-full relative flex items-center justify-center overflow-hidden p-4",children:[e.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:I.rawColor+"15"}}),e.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]"}),e.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:[e.jsx("div",{className:"flex items-center gap-1.5 px-2",children:Object.keys(ce).map(a=>{const u=U===a;return e.jsx("button",{type:"button",onClick:()=>oe(a),title:o(`heatmap.3d.modal.palette.${a}`),className:`w-3.5 h-3.5 rounded-full transition-all duration-200 relative hover:scale-125 ${a==="emerald"?"bg-[#10b981]":a==="ocean"?"bg-[#3b82f6]":a==="neon"?"bg-[#a855f7]":"bg-[#f59e0b]"}`,children:u&&e.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"})},a)})}),e.jsx("div",{className:"w-[1px] h-4 bg-oai-gray-200 dark:bg-oai-gray-800"}),e.jsxs("div",{className:"flex items-center gap-1 pr-1",children:[e.jsx("button",{type:"button",onClick:()=>{const a=!B;le(a),J.current&&J.current.toggleAutoRotate(a)},title:B?o("heatmap.3d.modal.control.pause"):o("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 ${B?I.accentText:"text-oai-gray-400 hover:text-oai-gray-600 dark:hover:text-oai-gray-250"}`,children:B?e.jsx(ot,{size:12}):e.jsx(nt,{size:12})}),e.jsx("button",{type:"button",onClick:()=>{le(!1),J.current&&J.current.reset()},title:o("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:e.jsx(st,{size:12})})]})]}),e.jsx(Ae,{weeks:y,isDark:E,interactive:!0,palette:U,autoRotateInit:B,onResetViewRef:J}),e.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:[e.jsx(rt,{size:10,className:I.accentText}),e.jsx("span",{children:o("heatmap.3d.modal.footer.tip")})]})]})]})}),v&&!j&&typeof document<"u"&&Je.createPortal(e.jsxs("div",{className:"fixed z-[9999] w-0 h-0 transition-all duration-100 ease-out pointer-events-none",style:{position:"fixed",left:`${V.x}px`,top:`${V.y}px`},children:[e.jsxs("div",{className:`absolute left-0 ${V.flipY?"top-[10px]":"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% + ${V.shiftX}px))`},children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-oai-gray-100 dark:border-oai-gray-800/80 pb-1.5",children:[e.jsx("span",{className:"text-[11px] font-semibold text-oai-gray-500 dark:text-oai-gray-400",children:v.day}),(()=>{const a=v.level===0?E?"#9ca3af":"#6b7280":S[v.level];return e.jsx("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:o("heatmap.tooltip.level",{level:v.level})})})()]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs("div",{className:"flex items-baseline gap-1",children:[e.jsx("span",{title:R(v.total_tokens??v.value),className:"text-lg font-bold text-oai-gray-900 dark:text-white leading-none",children:A(v.total_tokens??v.value)}),e.jsx("span",{className:"text-[10px] text-oai-gray-400 uppercase tracking-wider font-semibold",children:o("heatmap.unit.tokens")})]}),v.models&&Object.keys(v.models).length>0?e.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:[e.jsx("div",{className:"text-[10px] font-semibold text-oai-gray-400 dark:text-oai-gray-500 uppercase tracking-wider",children:o("heatmap.tooltip.model_breakdown")}),e.jsx("div",{className:"flex flex-col gap-2 max-h-[150px] overflow-y-auto pr-1.5 oai-scrollbar",children:Object.entries(v.models).map(([a,u])=>({name:a,val:Number(u)})).sort((a,u)=>u.val-a.val).map(({name:a,val:u})=>{const z=Number(v.total_tokens??v.value)||1,N=Math.round(u/z*100);return e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsxs("div",{className:"flex items-center justify-between text-[11px] gap-3",children:[e.jsx("span",{className:"font-medium text-oai-gray-750 dark:text-oai-gray-200 truncate max-w-[120px]",title:a,children:a}),e.jsxs("div",{className:"flex items-center gap-1.5 shrink-0",children:[e.jsx("span",{title:R(u),className:"font-mono text-oai-gray-900 dark:text-oai-gray-100 font-semibold",children:A(u)}),e.jsxs("span",{className:"text-[9px] text-oai-gray-450 dark:text-oai-gray-500 min-w-[28px] text-right font-medium",children:[N,"%"]})]})]}),e.jsx("div",{className:"w-full h-1 bg-oai-gray-100 dark:bg-oai-gray-800/85 rounded-full overflow-hidden",children:e.jsx("div",{className:"h-full rounded-full transition-all duration-300",style:{width:`${N}%`,backgroundColor:S[4],boxShadow:`0 0 4px ${S[4]}55`}})})]},a)})})]}):e.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:De(v.level,v.total_tokens??v.value,A)})]})]}),e.jsx("div",{className:`absolute left-0 -translate-x-1/2 w-2.5 h-2.5 rotate-45 bg-white dark:bg-oai-gray-900 shadow-sm ${V.flipY?"top-[6px] border-l border-t":"bottom-[6px] border-r border-b"} border-oai-gray-200/50 dark:border-oai-gray-800/50`,style:V.flipY?{marginTop:"1px"}:{marginBottom:"1px"}})]}),document.body),e.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
- `})]})}const yt={acode:"AStudio",anythingllm:"AnythingLLM",claudescience:"Claude Science",pianthropic:"Pi · Anthropic",pigithubcopilot:"Pi · GitHub Copilot",picopilot:"Pi · Copilot",dots:"Dots",pidots:"Pi · Dots",lmstudio:"LM Studio",unsloth:"Unsloth Studio"},bt={deepseek:"provider.display.deepseek_harness",dsh:"provider.display.deepseek_harness",omp:"provider.display.omp",omo:"provider.display.omo",minimaxcode:"provider.display.minimax_code",commandcode:"provider.display.command_code",trae:"provider.display.trae",traecn:"provider.display.trae_work_cn",traeworkcn:"provider.display.trae_work_cn"};function vt(s){return String(s||"").trim().toLowerCase().replace(/[\s_-]+/g,"")}const kt={ai:"AI",api:"API",cli:"CLI",github:"GitHub",openai:"OpenAI",opencode:"OpenCode",xai:"xAI"};function Se(s){return s.split(/[-_ ]+/).filter(Boolean).map(d=>kt[d.toLowerCase()]??d.charAt(0).toUpperCase()+d.slice(1).toLowerCase()).join(" ")}function Mt(s){const d=String(s||"").trim();if(!d)return"";const p=vt(d);if(p==="primeagent")return"Prime Agent";if(p.startsWith("primeagent")&&p.length>10){const $=Se(d.replace(/^prime[-_ ]?agent[-_ ]?/i,""));return $?`Prime Agent · ${$}`:"Prime Agent"}const c=bt[p];if(c)return o(c);const f=yt[p];if(f)return f;if(/^pi[-_ ]/i.test(d)){const $=Se(d.slice(3));if($)return`Pi · ${$}`}return d.charAt(0).toUpperCase()+d.slice(1)}export{_t as A,Mt as f};
@@ -1 +0,0 @@
1
- import{P as R,Q as E,S as I,U as C,V as L,W as $}from"./__vite-browser-external-Cj9D7QBh.js";function s(e){return typeof e=="string"?e.trim():""}function g(e){return Array.isArray(e)?[...new Set(e.map(s).filter(Boolean))]:[]}function v(e){const t=s(e).replace(/\\/g,"/");if(!t||t.startsWith("/")||/^[A-Za-z]:\//.test(t))return"";const n=t.replace(/\/+$/g,"").split("/").filter(Boolean);return!n.length||n.some(r=>r==="."||r==="..")?"":n.join("/")}function N(e){const t=s(e).replace(/\\/g,"/");return!t||t.startsWith("/")||t.includes(":/")||/[A-Za-z]:\//.test(t)?"":t}function S(e){return s(e?.key)||s(e?.id)||`local:${s(e?.directory)}`}function P(e){return(Array.isArray(e)?e:[]).filter(t=>t?.scope!=="system").map(t=>{const n=v(t?.directory),r=N(S(t));if(!r||!n)return null;const i=t?.scope==="plugin"?"plugin":t?.managed?"managed":"local",o=v(t?.sourceName);return{key:r,name:s(t?.name)||n.split("/").pop()||"Skill",directory:n,targets:g(t?.targets),managed:t?.managed===!0,readOnly:t?.readOnly===!0,scope:i,...o?{sourceName:o}:{}}}).filter(t=>!!t)}function J(e){return{id:s(e?.id),name:s(e?.device_name)||s(e?.id),platform:s(e?.platform)||null,scannedAt:s(e?.scanned_at)||null}}function m(e,t){const n=Array.isArray(e.deviceSources)?e.deviceSources:[];return n.some(r=>r.id===t.id)?e:{...e,deviceSources:[...n,t]}}function H(e,t,n){const r=(Array.isArray(e)?e:[]).filter(o=>o?.scope!=="system").map(o=>({...o})),i=new Map;r.forEach((o,a)=>i.set(S(o).toLowerCase(),a));for(const o of Array.isArray(t?.devices)?t.devices:[]){const a=J(o);if(!(!a.id||a.id===n))for(const c of Array.isArray(o?.skills)?o.skills:[]){if(c?.scope==="system")continue;const u=S(c),p=s(c?.directory);if(!u||!p)continue;const h=u.toLowerCase(),k=g(c.targets),y=i.get(h);if(y!=null){const f=r[y];if(f.remote===!0&&f.inventoryOnly===!0){const A=[...new Set([...g(f.targets),...k])],b=Object.fromEntries(A.map(j=>[j,"synced"]));r[y]=m({...f,targets:A,targetStates:b},a)}else r[y]=m(f,a);continue}const w=k,U=Object.fromEntries(w.map(f=>[f,"synced"])),_=m({id:`remote:${encodeURIComponent(u)}`,key:u,name:s(c.name)||p.split(/[\\/]/).pop()||"Skill",directory:p,description:"",targets:w,targetStates:U,managed:!1,readOnly:!0,inventoryOnly:!0,remote:!0,scope:s(c.scope)||"local",sourceName:s(c.sourceName)||null},a);i.set(h,r.length),r.push(_)}}return r.sort((o,a)=>String(o.name||o.directory).localeCompare(String(a.name||a.directory))||String(o.id||o.key).localeCompare(String(a.id||a.key)))}const T="tokentracker-skills",K="tokentracker-account-skills",q=15e3;async function d(e){const t=new URL(`/functions/${T}`,window.location.origin);if(e)for(const[i,o]of Object.entries(e))o!=null&&o!==""&&t.searchParams.set(i,String(o));const n=await fetch(t.toString(),{headers:{Accept:"application/json"},cache:"no-store"}),r=await n.json().catch(()=>null);if(!n.ok)throw new Error(r?.error||`Request failed with HTTP ${n.status}`);return r}async function l(e){const t=await $(),n=await fetch(`/functions/${T}`,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json",...t},cache:"no-store",body:JSON.stringify(e)}),r=await n.json().catch(()=>null);if(!n.ok||r?.ok===!1)throw new Error(r?.error||`Request failed with HTTP ${n.status}`);return r}function z(){return d({mode:"installed"})}function B(e={}){return d({mode:"discover",...e.force?{force:1}:{}})}function M(e,t=0,n=20){return d({mode:"search",q:e,offset:t,limit:n})}function D(){return d({mode:"repos"})}function F(e,t){return l({action:"install",skill:e,targets:t})}function G(e){return l({action:"update_all",ids:e})}function W(e){return l({action:"uninstall",id:e})}function Q(e){return l({action:"restore",id:e})}function V(e,t){return l({action:"set_targets",id:e,targets:t})}function Z(e,t){return l({action:"import_local",directory:e,targets:t})}function X(e,t){return l({action:"delete_local",directory:e,targets:t||[]})}function Y(e){return l({action:"add_repo",repo:e})}function ee(e,t){return l({action:"remove_repo",owner:e,name:t})}function te(e={}){return d({mode:"popular",...e.force?{force:1}:{}})}function ne(e={}){return d({mode:"updates",...e.force?{force:1}:{}})}function re(e={}){return d({mode:"skill_usage",...e.force?{force:1}:{}})}async function O({accessToken:e,method:t="GET",body:n}){if(!e||!R(e))throw new Error("Skills sync requires sign-in");const r=E();if(!r)throw new Error("InsForge base URL not configured");const i={Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${e}`},o=I();o&&(i.apikey=o);const a=new AbortController,c=setTimeout(()=>a.abort(),q);try{const u=await C(L(r,K),{method:t,headers:i,cache:"no-store",signal:a.signal,...n==null?{}:{body:JSON.stringify(n)}}),p=await u.json().catch(()=>null);if(!u.ok)throw new Error(p?.error||`Request failed with HTTP ${u.status}`);return p}finally{clearTimeout(c)}}function oe(e){return O({accessToken:e})}function se({accessToken:e,deviceId:t,skills:n}){return O({accessToken:e,method:"POST",body:{device_id:t,skills:P(n)}})}export{oe as a,D as b,te as c,B as d,ne as e,re as f,z as g,X as h,F as i,V as j,Z as k,G as l,H as m,ee as n,Y as o,se as p,Q as r,M as s,W as u};
@@ -1 +0,0 @@
1
- import{c as a,r as c,K as N,M as B,N as F,O as H}from"./__vite-browser-external-Cj9D7QBh.js";const Q=["claude","codex","cursor","gemini","kimi","kiro","grok","copilot","antigravity","zcode","opencodeGo","commandCode","qoder","qoderCn","codingPlan","agentPlan","devin"],W={claude:"CLAUDE",codex:"CODEX",cursor:"CURSOR",gemini:"GEMINI",kimi:"KIMI",kiro:"KIRO",grok:"GROK",copilot:"COPILOT",antigravity:"ANTIGRAVITY",zcode:"ZCODE",opencodeGo:"OPENCODE",commandCode:"COMMAND-CODE",qoder:"QODER",qoderCn:"QODER-CN",codingPlan:"VOLCANO-ARK",agentPlan:"VOLCANO-ARK",devin:"DEVIN"};function fe(e){return W[e]||null}function me(e){switch(e){case"claude":return a("limits.provider.claude");case"codex":return a("limits.provider.codex");case"cursor":return a("limits.provider.cursor");case"gemini":return a("limits.provider.gemini");case"kimi":return a("limits.provider.kimi");case"kiro":return a("limits.provider.kiro");case"grok":return a("limits.provider.grok");case"copilot":return a("limits.provider.copilot");case"antigravity":return a("limits.provider.antigravity");case"zcode":return a("limits.provider.zcode");case"opencodeGo":return a("limits.provider.opencode_go");case"commandCode":return a("limits.provider.command_code");case"qoder":return a("limits.provider.qoder");case"qoderCn":return a("limits.provider.qoder_cn");case"codingPlan":return a("limits.provider.ark_coding_plan");case"agentPlan":return a("limits.provider.ark_agent_plan");case"devin":return a("limits.provider.devin");default:return String(e||"")}}const m=Q,E="tt.limits.providerOrder",I="tt.limits.providerVisibility",A="tt.limits.displayMode",D="tt.limits.showSubscriptions",O="tt.limits.updatedAt",C="limitsPreferences",X="limitsDisplayMode",Z="tt:limits-prefs-changed",w=Object.freeze({USED:"used",REMAINING:"remaining"}),g=new Set(Object.values(w)),_=new Set([E,I,A,D,O]);function h(){return[...m]}const $=new Set(["devin"]);function b(){return Object.fromEntries(m.map(e=>[e,!$.has(e)]))}function L(e){const r=[];if(Array.isArray(e))for(const o of e)m.includes(o)&&!r.includes(o)&&r.push(o);for(const o of m)r.includes(o)||r.push(o);return r}function P(e){const r=b();if(!e||typeof e!="object"||Array.isArray(e))return r;for(const o of m)typeof e[o]=="boolean"&&(r[o]=e[o]);return r}function ee(e){return g.has(e)?e:w.USED}function k(e){return typeof e=="boolean"?e:!0}function S(e){if(e!=null){if(typeof e=="number")return Number.isSafeInteger(e)?e:void 0;if(typeof e=="string"){const r=e.trim();if(r==="")return;const o=Number(r);return Number.isSafeInteger(o)?o:void 0}}}function y(e={}){const r=e&&typeof e=="object"?e:{};return{displayMode:ee(r.displayMode),providerOrder:L(r.providerOrder),providerVisibility:P(r.providerVisibility),showSubscriptions:k(r.showSubscriptions),updatedAt:S(r.updatedAt)}}function re(){if(typeof window>"u")return h();try{const e=window.localStorage.getItem(E);return L(e?JSON.parse(e):void 0)}catch{return h()}}function R(){if(typeof window>"u")return b();try{const e=window.localStorage.getItem(I);return P(e?JSON.parse(e):void 0)}catch{return b()}}function Se(e){return e===null||_.has(e)}function we(){return R().devin===!0}function te(){if(typeof window>"u")return w.USED;try{const e=window.localStorage.getItem(A);return g.has(e)?e:w.USED}catch{return w.USED}}function ie(){if(typeof window>"u")return!0;try{const e=window.localStorage.getItem(D);return e===null?!0:k(JSON.parse(e))}catch{return!0}}function ne(){if(!(typeof window>"u"))try{return S(window.localStorage.getItem(O))}catch{return}}function oe(){if(typeof window>"u")return!1;try{for(const e of _)if(window.localStorage.getItem(e)!==null)return!0}catch{return!1}return!1}function v(){return y({displayMode:te(),providerOrder:re(),providerVisibility:R(),showSubscriptions:ie(),updatedAt:ne()})}function se(e){if(typeof window>"u")return;const r=y(e);try{window.localStorage.setItem(E,JSON.stringify(r.providerOrder)),window.localStorage.setItem(I,JSON.stringify(r.providerVisibility)),window.localStorage.setItem(A,r.displayMode),window.localStorage.setItem(D,JSON.stringify(r.showSubscriptions)),r.updatedAt===void 0?window.localStorage.removeItem(O):window.localStorage.setItem(O,String(r.updatedAt))}catch(o){console.warn("[tokentracker] limits preferences localStorage write failed:",o)}}function de(e){const r=y(e);return{displayMode:r.displayMode,providerOrder:[...r.providerOrder],providerVisibility:{...r.providerVisibility},showSubscriptions:r.showSubscriptions,updatedAt:r.updatedAt??null}}function ae(...e){let r;for(const d of e){const l=S(d);l!==void 0&&(r=r===void 0?l:Math.max(r,l))}const o=Date.now();return r!==void 0&&o<=r?r+1:o}function ce(e,r){return e.length===r.length&&e.every((o,d)=>o===r[d])}function ue(e,r){return m.every(o=>e[o]===r[o])}function K(e,r){return e.displayMode===r.displayMode&&ce(e.providerOrder,r.providerOrder)&&ue(e.providerVisibility,r.providerVisibility)&&e.showSubscriptions===r.showSubscriptions}function le(e,r){return K(e,r)&&S(e.updatedAt)===S(r.updatedAt)}function V(e,r){const o=S(e.updatedAt),d=S(r.updatedAt);return o!==void 0&&(d===void 0||o>d)}function ye(){const[e,r]=c.useState(v),o=c.useRef(e),d=c.useCallback((i,t={})=>{const n=y(i);return o.current=n,r(n),t.writeLocal&&se(n),typeof window<"u"&&window.dispatchEvent(new CustomEvent(Z)),n},[]),l=c.useCallback(i=>{N()&&B(C,de(i))},[]),u=c.useCallback(i=>{const t=v(),n=V(t,o.current)?d(t):o.current,s=y(i(n));if(K(n,s))return;const p=ae(t.updatedAt,n.updatedAt),f=d({...s,updatedAt:p},{writeLocal:!0});l(f)},[d,l]),T=c.useCallback(i=>{g.has(i)&&u(t=>({...t,displayMode:i}))},[u]),x=c.useCallback(i=>{u(t=>({...t,showSubscriptions:!!i}))},[u]),M=c.useCallback(i=>{if(!g.has(i))return;const t=v();if(t.updatedAt!==void 0){d(t);return}d({...t,displayMode:i,updatedAt:void 0},{writeLocal:!0})},[d]);c.useEffect(()=>{if(!N())return;const i=F(t=>{const n=t?.[C];if(n&&typeof n=="object"){const s=y(n);if(!oe()){d(s,{writeLocal:!0});return}const p=v();if(V(s,p))d(s,{writeLocal:!0});else{const f=d(p);le(s,p)||l(f)}return}M(t?.[X])});return H(),i},[M,d,l]),c.useEffect(()=>{if(typeof window>"u")return;const i=t=>{(t.key===null||_.has(t.key))&&d(v())};return window.addEventListener("storage",i),()=>window.removeEventListener("storage",i)},[d]);const U=c.useCallback(i=>{m.includes(i)&&u(t=>({...t,providerVisibility:{...t.providerVisibility,[i]:!t.providerVisibility[i]}}))},[u]),Y=c.useCallback(i=>{u(t=>{const n=t.providerOrder.indexOf(i);if(n<=0)return t;const s=[...t.providerOrder];return[s[n-1],s[n]]=[s[n],s[n-1]],{...t,providerOrder:s}})},[u]),z=c.useCallback(i=>{u(t=>{const n=t.providerOrder.indexOf(i);if(n<0||n>=t.providerOrder.length-1)return t;const s=[...t.providerOrder];return[s[n],s[n+1]]=[s[n+1],s[n]],{...t,providerOrder:s}})},[u]),q=c.useCallback((i,t)=>{i!==t&&u(n=>{const s=n.providerOrder.indexOf(i),p=n.providerOrder.indexOf(t);if(s<0||p<0)return n;const f=[...n.providerOrder],[J]=f.splice(s,1);return f.splice(p,0,J),{...n,providerOrder:f}})},[u]),G=c.useCallback(()=>{u(()=>({displayMode:w.USED,providerOrder:h(),providerVisibility:b(),showSubscriptions:!0}))},[u]),j=c.useMemo(()=>e.providerOrder.filter(i=>e.providerVisibility[i]!==!1),[e.providerOrder,e.providerVisibility]);return{order:e.providerOrder,visibility:e.providerVisibility,displayMode:e.displayMode,showSubscriptions:e.showSubscriptions,setDisplayMode:T,setShowSubscriptions:x,visibleOrdered:j,toggle:U,moveUp:Y,moveDown:z,moveToward:q,reset:G}}export{Z as L,Se as a,w as b,Q as c,fe as d,we as i,me as l,ye as u};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/BotAnimated-OQbsVw1O.js","assets/__vite-browser-external-Cj9D7QBh.js","assets/__vite-browser-external-gKkiQad5.css","assets/skins-Mc0sI20C.js"])))=>i.map(i=>d[i]);
2
- import{r as s,j as g,_ as T,$ as B,al as M,am as P,an as $,ao as z,ap as N}from"./__vite-browser-external-Cj9D7QBh.js";const I=Object.assign(Object.create(null),{clawd:"clawd",bot:"vector"});function F(e){return I[f(e)]||"atlas"}function f(e){const t=String(e||"").trim().toLowerCase();return/^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$/.test(t)?t:"clawd"}const D=.84,U=1.35,V=Object.assign(Object.create(null),{clawd:D,bot:U});function R(e){return V[f(e)]??1}const H={idle:{row:0,durations:[280,110,110,140,140,320]},"running-right":{row:1,durations:[120,120,120,120,120,120,120,220]},"running-left":{row:2,durations:[120,120,120,120,120,120,120,220]},waving:{row:3,durations:[140,140,140,280]},jumping:{row:4,durations:[140,140,140,140,280]},failed:{row:5,durations:[140,140,140,140,140,140,140,240]},waiting:{row:6,durations:[150,150,150,150,150,260]},running:{row:7,durations:[120,120,120,120,120,220]},review:{row:8,durations:[150,150,150,150,150,280]}};function q(e){return["error","disconnected","working-overheated"].includes(e)?"failed":["happy","waking","mini-happy","jumping"].includes(e)?"jumping":["working-typing","working-ultrathink","working-juggling","running"].includes(e)?"running":["working-thinking","working-wizard","review"].includes(e)?"review":["sleeping","idle-doze","mini-sleep","waiting"].includes(e)?"waiting":["mini-peek","waving"].includes(e)?"waving":e==="running-left"||e==="running-right"?e:"idle"}function K(){const[e,t]=s.useState(()=>typeof document>"u"?!0:document.visibilityState!=="hidden");return s.useEffect(()=>{if(typeof document>"u")return;const n=()=>t(document.visibilityState!=="hidden");return document.addEventListener("visibilitychange",n),()=>document.removeEventListener("visibilitychange",n)},[]),e}function W(){const[e,t]=s.useState(()=>typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches);return s.useEffect(()=>{if(typeof window.matchMedia!="function")return;const n=window.matchMedia("(prefers-reduced-motion: reduce)"),i=o=>t(o.matches);return n.addEventListener("change",i),()=>n.removeEventListener("change",i)},[]),e}function G({character:e,pet:t=null,state:n="idle-living",dragState:i=null,size:o=48,className:d="",lookDirectionIndex:l=null}){const r=f(e),u=i==="running-left"||i==="running-right"?i:q(n),c=H[u],a=t?.spriteVersionNumber===2?2:1,p=a===2?11:9,w=a===2&&u==="idle"&&Number.isInteger(l)?(l%16+16)%16:null,h=w==null?c.row:9+Math.floor(w/8),m=w==null?null:w%8,k=W(),b=K(),[y,S]=s.useState(0);s.useEffect(()=>{if(S(0),k||!b||w!=null)return;let E=!1,_=0;const A=C=>{_=window.setTimeout(()=>{if(E)return;const L=(C+1)%c.durations.length;S(L),A(L)},c.durations[C])};return A(0),()=>{E=!0,window.clearTimeout(_)}},[w,k,b,c]);const O=s.useMemo(()=>({width:o*(192/208),height:o,backgroundImage:`url(${t?.assetUrl||`/pets/${r}/spritesheet.webp`})`,backgroundRepeat:"no-repeat",backgroundSize:`800% ${p*100}%`,backgroundPosition:`${(m??y)/7*100}% ${h/(p-1)*100}%`,imageRendering:"pixelated"}),[p,m,h,y,r,t?.assetUrl,o]);return g.jsx("div",{"aria-hidden":"true",className:`pet-atlas-animated ${d}`,style:O})}const X=s.lazy(()=>T(()=>import("./BotAnimated-OQbsVw1O.js"),__vite__mapDeps([0,1,2,3])).then(e=>({default:e.BotAnimated}))),x={"idle-living":"idle/living.svg","idle-doze":"idle/doze.svg","idle-follow":"idle/follow.svg","idle-look":"idle/look.svg","idle-yawn":"idle/yawn.svg","idle-collapse":"idle/collapse.svg","working-building":"working/building.svg","working-carrying":"working/carrying.svg","working-conducting":"working/conducting.svg","working-confused":"working/confused.svg","working-debugger":"working/debugger.svg","working-juggling":"working/juggling.svg","working-overheated":"working/overheated.svg","working-pushing":"working/pushing.svg","working-sweeping":"working/sweeping.svg","working-thinking":"working/thinking.svg","working-typing":"working/typing.svg","working-ultrathink":"working/ultrathink.svg","working-wizard":"working/wizard.svg","mini-alert":"mini/alert.svg","mini-crabwalk":"mini/crabwalk.svg","mini-enter":"mini/enter.svg","mini-enter-sleep":"mini/enter-sleep.svg","mini-happy":"mini/happy.svg","mini-idle":"mini/idle.svg","mini-peek":"mini/peek.svg","mini-sleep":"mini/sleep.svg","react-double":"react/double.svg","react-drag":"react/drag.svg","react-left":"react/left.svg","react-right":"react/right.svg","collapse-sleep":"sleep/collapse-sleep.svg",sleeping:"sleep/sleeping.svg",wake:"sleep/wake.svg",disconnected:"status/disconnected.svg",error:"status/error.svg",notification:"status/notification.svg",happy:"happy.svg","static-base":"static-base.svg"},v=new Map;async function J(e){if(v.has(e))return v.get(e);if(typeof fetch!="function")return null;let t;try{t=await fetch(`/clawd/${e}`)}catch{return null}if(!t.ok)return null;const i=(await t.text()).replace(/<svg([^>]*)>/,(o,d)=>`<svg${d.replace(/\s+width="[^"]*"/g,"").replace(/\s+height="[^"]*"/g,"")} width="100%" height="100%">`);return v.set(e,i),i}function Q({state:e="idle-living",size:t=48,className:n=""}){const[i,o]=s.useState(""),d=s.useRef(null),r=Y()?"static-base":e,u=x[r]||x["static-base"];return s.useEffect(()=>{let c=!1;return J(u).then(a=>{!c&&a&&o(a)}),()=>{c=!0}},[u]),s.useEffect(()=>{const c=d.current?.querySelector("svg");if(c)try{const a=c.getBBox();a.width>0&&a.height>0&&c.setAttribute("viewBox",`${a.x-2} ${a.y-2} ${a.width+4} ${a.height+4}`)}catch{}},[i]),g.jsx("div",{ref:d,"aria-hidden":"true",className:`clawd-animated ${n}`,style:{width:t,height:t,display:"inline-flex",alignItems:"center",justifyContent:"center",overflow:"hidden"},dangerouslySetInnerHTML:{__html:i}})}function ae({state:e="idle-living",size:t=48,className:n="",character:i="clawd",pet:o=null,lookDirectionIndex:d=null,botColor:l="auto"}){const r=f(i),u=F(r);return u==="vector"?g.jsx(s.Suspense,{fallback:g.jsx("span",{"aria-hidden":"true",style:{width:t,height:t,display:"inline-block"}}),children:g.jsx(X,{state:e,size:t*R(r),className:n,color:l})}):u==="atlas"?g.jsx(G,{character:r,pet:o,state:e,size:t,className:n,lookDirectionIndex:d}):g.jsx(Q,{state:e,size:t*R(r),className:n})}function Y(){const[e,t]=s.useState(()=>typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches);return s.useEffect(()=>{if(typeof window.matchMedia!="function")return;const n=window.matchMedia("(prefers-reduced-motion: reduce)"),i=o=>t(o.matches);return n.addEventListener("change",i),()=>n.removeEventListener("change",i)},[]),e}const le="cercle",Z="neutre",ee="encre",te="creme",ce={light:"#f8fafc",dark:"#0f172a"};function ne(e){return e?te:ee}const j=["auto","bleu","turquoise","vert","ambre","rose","violet"];function de(e,t){const n=String(e||"auto");return n==="auto"||!j.includes(n)?ne(t):n}const ie={"idle-living":{state:"idle",expression:"neutre"},"idle-look":{state:"idle",expression:"curieux"},"idle-follow":{state:"idle",expression:"attentif"},"idle-yawn":{state:"idle",expression:"somnolent"},"static-base":{state:"idle",expression:"neutre"},sleeping:{state:"sleep"},"idle-doze":{state:"sleep"},"idle-collapse":{state:"sleep"},"collapse-sleep":{state:"sleep"},"mini-enter-sleep":{state:"sleep"},"mini-sleep":{state:"sleep"},waiting:{state:"sleep"},"working-typing":{state:"thinking"},"working-thinking":{state:"thinking"},"working-building":{state:"thinking"},"working-debugger":{state:"thinking"},running:{state:"thinking"},review:{state:"thinking"},"working-juggling":{state:"orbit"},"working-wizard":{state:"orbit"},"working-carrying":{state:"orbit"},"working-conducting":{state:"orbit"},"working-ultrathink":{state:"swirl"},"working-overheated":{state:"burst"},"working-confused":{state:"wide"},error:{state:"alert"},disconnected:{state:"alert"},happy:{state:"play"},jumping:{state:"play"},"mini-happy":{state:"play"},waking:{state:"play"},wake:{state:"play"},"react-double":{state:"play"},notification:{state:"notify"},"mini-alert":{state:"notify"},"mini-peek":{state:"wink"},waving:{state:"wink"},"mini-idle":{state:"idle",expression:"neutre"},"mini-enter":{state:"wink"},"running-left":{state:"comet"},"running-right":{state:"comet"},"react-drag":{state:"comet"}},re={state:"idle",expression:Z};function ue(e){return ie[e]||re}const se={visible:!1,character:"clawd",size:"medium",botColor:"auto"};function ge(){const e=(B()||M())&&P(),[t,n]=s.useState(se),[i,o]=s.useState(!1);s.useEffect(()=>{if(!e)return;const l=$(r=>{o(!0),n({visible:!!r.visible,character:f(r.character),size:["small","medium","large"].includes(r.size)?r.size:"medium",botColor:j.includes(r.botColor)?r.botColor:"auto"})});return z(),l},[e]);const d=s.useCallback((l,r)=>{n(u=>({...u,[l]:r})),e&&N(l,r)},[e]);return{available:e,loaded:i,settings:t,setSetting:d}}export{j as B,ae as C,ee as a,te as b,le as c,ce as d,ue as e,F as p,de as r,ge as u};
@@ -1 +0,0 @@
1
- import{r as o}from"./__vite-browser-external-Cj9D7QBh.js";import{h as r,i as t,p as s}from"./react-CfB5zBqR.js";function i(){!r.current&&t();const[e]=o.useState(s.current);return e}export{i as u};
@@ -1 +0,0 @@
1
- import{q as f,r as n}from"./__vite-browser-external-Cj9D7QBh.js";const u={name:"pencil",size:24,node:[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]};u.node;const E=f(u),i="tt.qualityPerDollar.enabled";function l(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(i)==="1"}catch{return!1}}function y(){const[r,o]=n.useState(l);n.useEffect(()=>{if(typeof window>"u")return;const t=e=>{(e.key===null||e.key===i)&&o(l())};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)},[]);const a=n.useCallback(t=>{const e=!!t;o(e);try{window.localStorage.setItem(i,e?"1":"0")}catch{}},[]),s=n.useCallback(()=>a(!l()),[a]);return{enabled:r,setEnabled:a,toggle:s}}const d="tt.sessionEfficiency.enabled";function c(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(d)==="1"}catch{return!1}}function g(){const[r,o]=n.useState(c);n.useEffect(()=>{if(typeof window>"u")return;const t=e=>{(e.key===null||e.key===d)&&o(c())};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)},[]);const a=n.useCallback(t=>{const e=!!t;o(e);try{window.localStorage.setItem(d,e?"1":"0")}catch{}},[]),s=n.useCallback(()=>a(!c()),[a]);return{enabled:r,setEnabled:a,toggle:s}}export{E as P,g as a,y as u};
@@ -1 +0,0 @@
1
- import{K as S,ae as M,r as w,c as P,af as O,ag as R,ah as g,ai as q}from"./__vite-browser-external-Cj9D7QBh.js";import{l as z,i as _,L as F,a as j}from"./use-limits-display-prefs-Drs82lSi.js";import{u as T}from"./use-latest-request-guard-BpfCferm.js";const L="native:notificationPermission";let I=null;function D(){return typeof window<"u"&&!!window.chrome?.webview}function x(){return S()?I||"unknown":D()?"granted":typeof Notification>"u"?"unsupported":Notification.permission}function $(e){if(typeof window>"u")return()=>{};const i=n=>{const s=n?.detail?.status;typeof s=="string"&&(I=s),e(x())};return window.addEventListener(L,i),e(x()),S()&&M({type:"getNotificationStatus"}),()=>window.removeEventListener(L,i)}async function B(){if(S()){M({type:"requestNotificationPermission"});return}D()||typeof Notification<"u"&&Notification.permission==="default"&&await Notification.requestPermission().catch(()=>"denied")}const v="tt.limitAlerts.enabled";function G(){try{return window.localStorage.getItem(v)==="1"}catch{return!1}}function le(){const[e,i]=w.useState(G),[n,s]=w.useState("unknown");w.useEffect(()=>$(s),[]);const y=w.useCallback(async o=>{const l=!!o;l&&await B();try{window.localStorage.setItem(v,l?"1":"0")}catch{}i(l)},[]);return{enabled:e,setEnabled:y,permissionBlocked:n==="denied"}}function V(e,i){if(!(e>0))return null;const n=(e-i)/e;return Number.isFinite(n)?Math.min(Math.max(n,0),1):null}function H(e,i,n=.03){return e>i+n}function U(e){const i=Math.max(0,Math.floor(e)),n=Math.floor(i/3600);return n>24?`${Math.floor(n/24)}d`:n>0?`${n}h`:`${Math.floor(i/60)}m`}function J(e,i){if(typeof e.windowSeconds=="number")return e.windowSeconds;if(e.windowSecondsField&&i){const n=i[e.windowSecondsField];return typeof n=="number"&&n>0?n:null}return null}function W(e){return e==null?NaN:typeof e=="number"?e*1e3:Date.parse(e)}function Y({usedPercent:e,windowSeconds:i,resetMs:n,mode:s,now:y=Date.now()}){const o=Math.min(Math.max(Number(e)||0,0),100)/100,l={pacePercent:null,paceOver:!1,expectedPercent:null,runsOutEta:null,projectedEnd:null};if(!(i>0)||!Number.isFinite(n)||n<=y)return l;const a=Math.max(0,(n-y)/1e3),r=V(i,a);if(r==null)return l;if(l.expectedPercent=Math.round(r*100),l.paceOver=H(o,r),o>0){const m=s==="remaining"?1-r:r;l.pacePercent=m*100}if(r>.02&&o>0){const m=i*r,u=o/m,f=o/r;f>=1&&u>0?l.runsOutEta=U((1-o)/u):l.projectedEnd=Math.round(Math.min(f,1)*100)}return l}const Q={claude:{windows(e){const i=Array.isArray(e.weekly_scoped)?e.weekly_scoped.map(n=>({key:`scoped-${n.label}`,label:n.label,window:n,pctField:"utilization",resetField:"resets_at",windowSeconds:604800})):[];return[{key:"5h",labelKey:"limits.label.claude_5h",window:e.five_hour,pctField:"utilization",resetField:"resets_at",windowSeconds:5*3600},{key:"7d",labelKey:"limits.label.claude_7d",window:e.seven_day,pctField:"utilization",resetField:"resets_at",windowSeconds:7*86400},{key:"opus",labelKey:"limits.label.claude_opus",window:e.seven_day_opus,pctField:"utilization",resetField:"resets_at",windowSeconds:7*86400},...i]}},codex:{extra:"codex_meta",windows(e){return[{key:"5h",labelKey:"limits.label.codex_5h",window:e.primary_window,windowSecondsField:"limit_window_seconds"},{key:"7d",labelKey:"limits.label.codex_7d",window:e.secondary_window,windowSecondsField:"limit_window_seconds"},{key:"credits",labelKey:"limits.label.codex_credits",window:e.credit_window},{key:"spark-5h",labelKey:"limits.label.codex_spark_5h",window:e.spark_primary_window,windowSecondsField:"limit_window_seconds"},{key:"spark-7d",labelKey:"limits.label.codex_spark_7d",window:e.spark_secondary_window,windowSecondsField:"limit_window_seconds"}]}},cursor:{windows(e){return[{key:"plan",labelKey:"limits.label.cursor_plan",window:e.primary_window,windowSecondsField:"limit_window_seconds"},{key:"auto",labelKey:"limits.label.cursor_auto",window:e.secondary_window,windowSecondsField:"limit_window_seconds"},{key:"api",labelKey:"limits.label.cursor_api",window:e.tertiary_window,windowSecondsField:"limit_window_seconds"},{key:"grok-bot",labelKey:"limits.label.cursor_grok_bot",window:e.quaternary_window,windowSecondsField:"limit_window_seconds"}]}},gemini:{windows(e){return[{key:"pro",labelKey:"limits.label.gemini_pro",window:e.primary_window},{key:"flash",labelKey:"limits.label.gemini_flash",window:e.secondary_window},{key:"lite",labelKey:"limits.label.gemini_lite",window:e.tertiary_window}]}},kimi:{extra:"kimi_parallel",windows(e){return[{key:"weekly",labelKey:"limits.label.kimi_weekly",window:e.primary_window,windowSeconds:7*86400},{key:"5h",labelKey:"limits.label.kimi_5h",window:e.secondary_window,windowSeconds:5*3600},{key:"total",labelKey:"limits.label.kimi_total",window:e.tertiary_window}]}},kiro:{extra:"kiro_credits",windows(e){return[{key:"month",labelKey:"limits.label.kiro_month",window:e.primary_window},{key:"bonus",labelKey:"limits.label.kiro_bonus",window:e.secondary_window}]}},grok:{windows(e){const i=typeof e.period_type=="string"?e.period_type:null,n=i==="weekly"?"limits.label.grok_week":i==="daily"?"limits.label.grok_day":"limits.label.grok_month",s=i==="weekly"?7*86400:i==="daily"?86400:void 0;return[{key:i==="weekly"?"week":i==="daily"?"day":"month",labelKey:n,window:e.primary_window,windowSeconds:s},{key:"ondemand",labelKey:"limits.label.grok_ondemand",window:e.secondary_window}]}},antigravity:{windows(e){return[{key:"claude-weekly",labelKey:"limits.label.antigravity_claude_weekly",window:e.primary_window},{key:"claude-5h",labelKey:"limits.label.antigravity_claude_5h",window:e.secondary_window},{key:"gemini-weekly",labelKey:"limits.label.antigravity_gemini_weekly",window:e.tertiary_window},{key:"gemini-5h",labelKey:"limits.label.antigravity_gemini_5h",window:e.quaternary_window}]}},copilot:{extra:"copilot_otel",windows(e){return[{key:"premium",labelKey:"limits.label.copilot_premium",window:e.primary_window},{key:"chat",labelKey:"limits.label.copilot_chat",window:e.secondary_window}]}},zcode:{windows(e){if(e.plan_kind==="coding-plan")return[{key:"5h",labelKey:"limits.label.zcode_5h",window:e.primary_window},{key:"weekly",labelKey:"limits.label.zcode_weekly",window:e.secondary_window},{key:"tools",labelKey:"limits.label.zcode_tools",window:e.tertiary_window}];const i=Array.isArray(e.buckets)?e.buckets.filter(n=>n?.label&&n.window):[];return i.length?i.map((n,s)=>({key:`bucket-${n.entitlement_id||s}`,label:n.label,window:n.window})):[{key:"glm52",labelKey:"limits.label.zcode_glm52",window:e.primary_window},{key:"glm5t",labelKey:"limits.label.zcode_glm5t",window:e.secondary_window}]}},opencodeGo:{windows(e){return[{key:"5h",labelKey:"limits.label.opencode_go_5h",window:e.primary_window},{key:"weekly",labelKey:"limits.label.opencode_go_weekly",window:e.secondary_window},{key:"monthly",labelKey:"limits.label.opencode_go_monthly",window:e.tertiary_window}]}},qoder:{windows(e){return[{key:"credits",labelKey:"limits.label.qoder_credits",window:e.primary_window},{key:"ultimate",labelKey:"limits.label.qoder_ultimate",window:e.secondary_window,timeKind:"expiry"}]}},qoderCn:{windows(e){return[{key:"credits",labelKey:"limits.label.qoder_cn_credits",window:e.primary_window},{key:"ultimate",labelKey:"limits.label.qoder_cn_ultimate",window:e.secondary_window,timeKind:"expiry"}]}},codingPlan:{windows(e){return[{key:"5h",labelKey:"limits.label.ark_coding_plan_5h",window:e.primary_window},{key:"weekly",labelKey:"limits.label.ark_coding_plan_weekly",window:e.secondary_window},{key:"monthly",labelKey:"limits.label.ark_coding_plan_monthly",window:e.tertiary_window}]}},commandCode:{windows(e){return[{key:"5h",labelKey:"limits.label.command_code_5h",window:e.primary_window},{key:"weekly",labelKey:"limits.label.command_code_weekly",window:e.secondary_window}]}},agentPlan:{windows(e){return[{key:"5h",labelKey:"limits.label.ark_agent_plan_5h",window:e.primary_window},{key:"weekly",labelKey:"limits.label.ark_agent_plan_weekly",window:e.secondary_window},{key:"monthly",labelKey:"limits.label.ark_agent_plan_monthly",window:e.tertiary_window}]}},devin:{windows(e){return[{key:"daily",labelKey:"limits.label.devin_daily",window:e.primary_window,windowSecondsField:"limit_window_seconds"},{key:"weekly",labelKey:"limits.label.devin_weekly",window:e.secondary_window,windowSecondsField:"limit_window_seconds"}]}}},A="tt.limitAlerts.cycles.v1";function X(){try{return JSON.parse(window.localStorage.getItem(A)||"{}")}catch{return{}}}function Z(e){try{window.localStorage.setItem(A,JSON.stringify(e))}catch{}}function ee(e,{now:i=Date.now()}={}){const n=[],s=Q;for(const[y,o]of Object.entries(e||{})){const l=s[y];if(!(!o?.configured||o.error||!l))for(const a of l.windows(o)){if(!a.window)continue;const r=Number(a.pctField==="utilization"?a.window.utilization:a.window.used_percent),m=a.resetField==="resets_at"?a.window.resets_at:a.window.reset_at,u=W(m),f=Y({usedPercent:r,windowSeconds:J(a,a.window),resetMs:u,mode:"used",now:i});!f.runsOutEta||!f.paceOver||r<20||!(u>i)||n.push({id:`${y}:${a.key}:${u}`,providerId:y,windowKey:a.key,resetMs:u,usedPercent:r,runsOutEta:f.runsOutEta})}}return n}function ie(e){const i=X(),n=ee(e);for(const o of n){if(i[o.id])continue;const l=z(o.providerId),a=P("limits.alert.title",{provider:l}),r=P("limits.alert.body",{eta:o.runsOutEta,percent:Math.round(o.usedPercent)});let m=O({title:a,body:r,id:o.id});!m&&typeof Notification<"u"&&Notification.permission==="granted"&&(new Notification(a,{body:r,tag:o.id}),m=!0),m&&(i[o.id]=Date.now())}const s=Date.now()-864e5,y=Object.fromEntries(Object.entries(i).filter(([o,l])=>{const a=Number(o.split(":").at(-1));return Number.isFinite(a)?a>=s:Number(l)>=s}).slice(-100));return Z(y),n.length}function k(e,i){return!e||i||!e.devin||e.devin.configured===!1&&Object.keys(e.devin).length===1?e:{...e,devin:{configured:!1}}}function re(e){const i=q(),n=i&&!!e?.initialState,[s,y]=w.useState(_),[o,l]=w.useState(()=>n?k(e?.initialState?.data??null,_()):null),[a,r]=w.useState(()=>n?e?.initialState?.error??null:null),[m,u]=w.useState(i&&!n),f=!!e?.initialRefresh,K=!!e?.publishToPreloadCache,b=T([s,i]);w.useEffect(()=>{if(typeof window>"u")return;const d=()=>y(_()),t=c=>{j(c.key)&&d()};return window.addEventListener(F,d),window.addEventListener("storage",t),()=>{window.removeEventListener(F,d),window.removeEventListener("storage",t)}},[]),w.useEffect(()=>{if(!(!i||!o||typeof window>"u"))try{window.localStorage.getItem(v)==="1"&&ie(o)}catch{}},[o,i]);const p=w.useCallback((d,t)=>{!i||!K||!d||typeof d!="object"||R(k(d,_()),{source:t})},[i,K]),C=w.useCallback(async()=>{if(!i)return;const d=b();try{const t=await g({refresh:!0,devinEnabled:_()});if(!d())return;const c=t&&typeof t=="object"?t:null;l(k(c,_())),r(null),u(!1),p(c,"manual-refresh")}catch(t){if(!d())return;r(t?.message||String(t)),u(!1)}},[b,i,p]),h=w.useCallback(async()=>{if(!i)return;const d=b();try{const t=await g({devinEnabled:_()});if(!d())return;const c=t&&typeof t=="object"?t:null;l(k(c,_())),r(null),u(!1),p(c,"page-load")}catch(t){if(!d())return;r(t?.message||String(t)),u(!1)}},[b,i,p]);w.useEffect(()=>{if(!i||typeof window>"u"||typeof document>"u")return;const d=15e3;let t=Date.now();const c=()=>{if(document.visibilityState!=="visible")return;const N=Date.now();N-t<d||(t=N,h())};return window.addEventListener("focus",c),document.addEventListener("visibilitychange",c),()=>{window.removeEventListener("focus",c),document.removeEventListener("visibilitychange",c)}},[i,h]);const E=w.useRef(s);return w.useEffect(()=>{E.current!==s&&(E.current=s,i&&(s||l(d=>k(d,!1)),h()))},[s,i,h]),w.useEffect(()=>{if(!i){l(null),r(null),u(!1);return}if(n&&!f)return;const d=b();(async()=>{try{const t=await g({devinEnabled:_()});if(!d())return;const c=t&&typeof t=="object"?t:null;l(k(c,_())),r(null),p(c,"page-load")}catch(t){if(!d())return;r(t?.message||String(t))}finally{d()&&u(!1)}})()},[b,n,f,i,p]),{data:o,error:a,isLoading:m,refresh:C}}export{Q as P,J as a,le as b,Y as c,W as r,ie as s,re as u};
@@ -1 +0,0 @@
1
- import{r as e,T as r,m as n,n as s,o as a,p as T}from"./__vite-browser-external-Cj9D7QBh.js";const m=Object.freeze({mode:s.COMPACT,setMode:()=>{},grouping:n.THOUSAND,setGrouping:()=>{},formatTokens:(o,t={})=>T(o,t),formatTokensTooltip:(o,t={})=>a(o,t)});function u(){return e.useContext(r)??m}export{u};
@@ -1 +0,0 @@
1
- import{q as e}from"./__vite-browser-external-Cj9D7QBh.js";const a={name:"zap",size:24,node:[["path",{d:"M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z",key:"1v7up4"}]]};a.node;const n=e(a);export{n as Z};