tokentracker-cli 1.4.1 → 1.4.3

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 (122) hide show
  1. package/README.de.md +5 -4
  2. package/README.ja.md +5 -4
  3. package/README.ko.md +5 -4
  4. package/README.md +5 -4
  5. package/README.zh-CN.md +5 -4
  6. package/dashboard/dist/assets/{AchievementBadge-DWECUOAX.js → AchievementBadge-3IYidbrI.js} +1 -1
  7. package/dashboard/dist/assets/{AchievementsPage-Bakfwwn_.js → AchievementsPage-DmZ_ojyM.js} +2 -2
  8. package/dashboard/dist/assets/{AchievementsSection-DiEX2_5U.js → AchievementsSection-DIYrrzhw.js} +1 -1
  9. package/dashboard/dist/assets/{BadgeDetailModal-ClVMnxVW.js → BadgeDetailModal-DMMExCe4.js} +1 -1
  10. package/dashboard/dist/assets/{BotAnimated-D7eyrAPs.js → BotAnimated-y6vZNRvC.js} +1 -1
  11. package/dashboard/dist/assets/{Card-CsAQxZZ8.js → Card-LJX3G3zo.js} +1 -1
  12. package/dashboard/dist/assets/{CloudCheckoutPage-BAN-DtXB.js → CloudCheckoutPage-BGBgSXNE.js} +1 -1
  13. package/dashboard/dist/assets/{CloudPage-D9sNlUAy.js → CloudPage-Dij2GTXi.js} +2 -2
  14. package/dashboard/dist/assets/{CommandPalette-D9TNT6un.js → CommandPalette-BIky6Fk0.js} +1 -1
  15. package/dashboard/dist/assets/{CommunityStatsModal-CotRRQNH.js → CommunityStatsModal-DbM99i0s.js} +1 -1
  16. package/dashboard/dist/assets/{ConfirmModal-C_il5anp.js → ConfirmModal-C_NH8vgO.js} +1 -1
  17. package/dashboard/dist/assets/{Controls-Bd1kODP4.js → Controls-BEAj_kvr.js} +1 -1
  18. package/dashboard/dist/assets/{DashboardPage-De0EL8Hn.js → DashboardPage-DO7h2dfu.js} +1 -1
  19. package/dashboard/dist/assets/{DateRangePopover-quw6hpxy.js → DateRangePopover-PQXB8v0k.js} +1 -1
  20. package/dashboard/dist/assets/{DevicePage-CP20lVYv.js → DevicePage-0JZ3OIWZ.js} +1 -1
  21. package/dashboard/dist/assets/{DialogClose-BEUL9bD6.js → DialogClose-BpWoD5h9.js} +1 -1
  22. package/dashboard/dist/assets/DialogDescription-ne_rYSD7.js +1 -0
  23. package/dashboard/dist/assets/{DialogTitle-C--sXGjf.js → DialogTitle-DoQgdh5w.js} +1 -1
  24. package/dashboard/dist/assets/{ElectricLogo-DhP7S1Cu.js → ElectricLogo-0O87VjKv.js} +1 -1
  25. package/dashboard/dist/assets/{FadeIn-BPH15_jE.js → FadeIn-9ph1h_AG.js} +1 -1
  26. package/dashboard/dist/assets/{HeaderGithubStar-DziE8s6w.js → HeaderGithubStar-DCZ92xbH.js} +1 -1
  27. package/dashboard/dist/assets/{HoverTooltip-tQyY2CuV.js → HoverTooltip-CCKdmuOP.js} +1 -1
  28. package/dashboard/dist/assets/{IpCheckPage-BjoB05O7.js → IpCheckPage-CpyhpmdS.js} +1 -1
  29. package/dashboard/dist/assets/{LandingPage-Cav49COr.js → LandingPage-spvsPkYy.js} +2 -2
  30. package/dashboard/dist/assets/{LeaderboardPage-CHjFKLvs.js → LeaderboardPage-2nJ08ohw.js} +2 -2
  31. package/dashboard/dist/assets/{LeaderboardProBadge-D97MfK5W.js → LeaderboardProBadge-D6FSL3Qy.js} +1 -1
  32. package/dashboard/dist/assets/{LeaderboardProfileModal-NNTwtWSu.js → LeaderboardProfileModal-DD1jX-rD.js} +3 -3
  33. package/dashboard/dist/assets/{LeaderboardProfilePage-xI81GH3D.js → LeaderboardProfilePage-DYqRrntL.js} +1 -1
  34. package/dashboard/dist/assets/{LimitsPage-BPOo3FOW.js → LimitsPage-DXHikunk.js} +1 -1
  35. package/dashboard/dist/assets/{LocalOnlyNotice-j8Tijts2.js → LocalOnlyNotice-BURiQAtP.js} +1 -1
  36. package/dashboard/dist/assets/{LoginCard-C7_n6J7k.js → LoginCard-Cv2ijoJx.js} +1 -1
  37. package/dashboard/dist/assets/{LoginModal-DwlNscw5.js → LoginModal-DyOideDA.js} +1 -1
  38. package/dashboard/dist/assets/{LoginPage-BqhWatt2.js → LoginPage-BKNvqvYi.js} +1 -1
  39. package/dashboard/dist/assets/{PetPage-CJlC0V0i.js → PetPage-BBmozE0L.js} +2 -2
  40. package/dashboard/dist/assets/{PopoverPopup-wleZ4DTI.js → PopoverPopup-DDnISLKM.js} +1 -1
  41. package/dashboard/dist/assets/{ProviderIcon-biLVsOGr.js → ProviderIcon-Da90GDcM.js} +1 -1
  42. package/dashboard/dist/assets/{ResetPasswordPage-5Sl45OsN.js → ResetPasswordPage-DsETr50j.js} +1 -1
  43. package/dashboard/dist/assets/{Select-77l2QNqa.js → Select-pZDawyxt.js} +1 -1
  44. package/dashboard/dist/assets/{SelectItemText-BQbmtjd3.js → SelectItemText-D5wuuN7G.js} +1 -1
  45. package/dashboard/dist/assets/{SelfHostPage-C8hlgVu4.js → SelfHostPage-sm-PARYj.js} +1 -1
  46. package/dashboard/dist/assets/{ServiceStatusPage-DrY9Mef8.js → ServiceStatusPage-D4f8h0sL.js} +1 -1
  47. package/dashboard/dist/assets/{SessionsPage-BDTsH3Mk.js → SessionsPage-xVLsTN4m.js} +1 -1
  48. package/dashboard/dist/assets/{SettingsPage-C_id9Go3.js → SettingsPage-Dt9iFheY.js} +3 -3
  49. package/dashboard/dist/assets/{SkillsPage-kb6_5uUk.js → SkillsPage-BdWalPpd.js} +1 -1
  50. package/dashboard/dist/assets/{TokenGalaxy-BoS0yUFS.js → TokenGalaxy-d2_ml0tE.js} +1 -1
  51. package/dashboard/dist/assets/{TooltipPopup-LV1aWIRZ.js → TooltipPopup-B4masxDW.js} +1 -1
  52. package/dashboard/dist/assets/{TrendMonitor-DN-nwcSA.js → TrendMonitor-CceYpa2O.js} +1 -1
  53. package/dashboard/dist/assets/{WidgetsPage-C6lvwceS.js → WidgetsPage-CSN0829H.js} +1 -1
  54. package/dashboard/dist/assets/{WrappedPage-CfC39wWP.js → WrappedPage-gP4WfO_m.js} +1 -1
  55. package/dashboard/dist/assets/{__vite-browser-external-DpZbUcLL.js → __vite-browser-external-BtJVmciH.js} +2 -2
  56. package/dashboard/dist/assets/{agent-logos-CvcdCGj5.js → agent-logos-wxccxfWz.js} +1 -1
  57. package/dashboard/dist/assets/{arrow-left-BX4LX5TF.js → arrow-left-Bd5C77R2.js} +1 -1
  58. package/dashboard/dist/assets/{arrow-right-Aktjo2RL.js → arrow-right-C1RqrK4A.js} +1 -1
  59. package/dashboard/dist/assets/{arrow-up-right-kkQt6Du0.js → arrow-up-right-B_b2i8hn.js} +1 -1
  60. package/dashboard/dist/assets/{calendar-days-OvLTNZBH.js → calendar-days-C8eYygme.js} +1 -1
  61. package/dashboard/dist/assets/{check-v5Ie379p.js → check-BlBHefQ7.js} +1 -1
  62. package/dashboard/dist/assets/{chevron-down-CPlz1cYW.js → chevron-down-mjUspqZv.js} +1 -1
  63. package/dashboard/dist/assets/{cloud-checkout-C_Rhiwno.js → cloud-checkout-CEkMnWXf.js} +1 -1
  64. package/dashboard/dist/assets/{composite-DD_boZdD.js → composite-CzXFY9IC.js} +1 -1
  65. package/dashboard/dist/assets/{download-NqHXZ-zn.js → download-CQvg59w1.js} +1 -1
  66. package/dashboard/dist/assets/{external-link-B0D03J0f.js → external-link-CDYfIZ3Z.js} +1 -1
  67. package/dashboard/dist/assets/{flame-av87we58.js → flame-C9NXQRil.js} +1 -1
  68. package/dashboard/dist/assets/{format-tokens-B43Ehkbb.js → format-tokens-fKy_3qpW.js} +1 -1
  69. package/dashboard/dist/assets/{gift-CZus7M21.js → gift-WmV4SBGR.js} +1 -1
  70. package/dashboard/dist/assets/{host-mode-Dd9fzAdq.js → host-mode-C5MvZ7SV.js} +1 -1
  71. package/dashboard/dist/assets/{icons-CnScwnf_.js → icons-B1EtsaZs.js} +1 -1
  72. package/dashboard/dist/assets/{index-Cj9NdXOj.js → index-9EZ3o2RV.js} +1 -1
  73. package/dashboard/dist/assets/{index-D3XPaYEL.js → index-BEecBW06.js} +1 -1
  74. package/dashboard/dist/assets/{index-BZTIoCof.js → index-DXNwBFNi.js} +1 -1
  75. package/dashboard/dist/assets/{info-BUmCmjwd.js → info-CWDhggIW.js} +1 -1
  76. package/dashboard/dist/assets/{link-2-t-wSLB2a.js → link-2-DEWNkK7s.js} +1 -1
  77. package/dashboard/dist/assets/{loader-circle-DM-FdXeX.js → loader-circle-DotT5gVp.js} +1 -1
  78. package/dashboard/dist/assets/{modifiers.esm-D5AKZNa7.js → modifiers.esm-qZnGgJAz.js} +1 -1
  79. package/dashboard/dist/assets/{monitor-smartphone-CDHFLZS-.js → monitor-smartphone-DOP5eqBD.js} +1 -1
  80. package/dashboard/dist/assets/{play-BIQH--yZ.js → play-BUsybi9m.js} +1 -1
  81. package/dashboard/dist/assets/{plus-CztG5eum.js → plus-DAjojh_m.js} +1 -1
  82. package/dashboard/dist/assets/{provider-display-B2gZ38Oh.js → provider-display-BCQQYPWD.js} +2 -2
  83. package/dashboard/dist/assets/{react-D1u6HsZx.js → react-BgpqhoCj.js} +1 -1
  84. package/dashboard/dist/assets/{safePolygon-ClG4WM06.js → safePolygon-C-PFpZSA.js} +1 -1
  85. package/dashboard/dist/assets/{search-NNy_fIbJ.js → search-W1A-6ugo.js} +1 -1
  86. package/dashboard/dist/assets/{server-N94HJtJY.js → server-CE7pFjDr.js} +1 -1
  87. package/dashboard/dist/assets/{shield-check-BGfaKXG9.js → shield-check-KL5xc2FR.js} +1 -1
  88. package/dashboard/dist/assets/{skills-api-CWydQc4G.js → skills-api-DL_zLjKA.js} +1 -1
  89. package/dashboard/dist/assets/{sortable.esm-BF83ljWQ.js → sortable.esm-CehJQvFH.js} +1 -1
  90. package/dashboard/dist/assets/{store-l5WfCa7P.js → store-BHAXkHPR.js} +1 -1
  91. package/dashboard/dist/assets/{terminal-CRBThKUQ.js → terminal-Br5vyD6Q.js} +1 -1
  92. package/dashboard/dist/assets/{trash-BXN5tg81.js → trash-CzaCJP6G.js} +1 -1
  93. package/dashboard/dist/assets/{use-community-stats-dHketgyF.js → use-community-stats-DbJrecQw.js} +1 -1
  94. package/dashboard/dist/assets/{use-latest-request-guard-CdM1Pn_p.js → use-latest-request-guard-DGhwmlX8.js} +1 -1
  95. package/dashboard/dist/assets/{use-limits-display-prefs-dOm4SCFU.js → use-limits-display-prefs-T7KWAWZ6.js} +1 -1
  96. package/dashboard/dist/assets/{use-native-settings-GL9uAidm.js → use-native-settings-MZJhS328.js} +1 -1
  97. package/dashboard/dist/assets/{use-ordered-list-Btz_NSiA.js → use-ordered-list-BDN24weA.js} +1 -1
  98. package/dashboard/dist/assets/use-reduced-motion-CfCY-K-a.js +1 -0
  99. package/dashboard/dist/assets/{use-session-efficiency-pref-BPZel3HL.js → use-session-efficiency-pref-DUu16y8Z.js} +1 -1
  100. package/dashboard/dist/assets/{use-transform-D2xePGbE.js → use-transform-BczE46xm.js} +1 -1
  101. package/dashboard/dist/assets/{use-usage-limits-vEmyPwMY.js → use-usage-limits-CjyDfH-M.js} +1 -1
  102. package/dashboard/dist/assets/{useCurrency-DnhS0llv.js → useCurrency-BgZmWbkx.js} +1 -1
  103. package/dashboard/dist/assets/{usePositioner-7yozJJJ0.js → usePositioner-dWENyY8z.js} +1 -1
  104. package/dashboard/dist/assets/{useTokenFormat-DvjyXv8i.js → useTokenFormat-D7s1-Zuk.js} +1 -1
  105. package/dashboard/dist/assets/{zap-CElRpX2w.js → zap-Dr__bKlq.js} +1 -1
  106. package/dashboard/dist/index.html +13 -11
  107. package/dashboard/dist/ip-check.html +1 -1
  108. package/dashboard/dist/leaderboard.html +1 -1
  109. package/dashboard/dist/llms.txt +3 -2
  110. package/dashboard/dist/share.html +1 -1
  111. package/package.json +2 -2
  112. package/src/commands/doctor.js +15 -1
  113. package/src/commands/init.js +9 -0
  114. package/src/commands/status.js +20 -2
  115. package/src/commands/sync.js +25 -0
  116. package/src/lib/cloud-device-token.js +77 -10
  117. package/src/lib/diagnostics.js +4 -1
  118. package/src/lib/pricing/index.js +2 -1
  119. package/src/lib/pricing/seed-snapshot.json +1 -1
  120. package/src/lib/rollout.js +402 -0
  121. package/dashboard/dist/assets/DialogDescription-DpkD2qwW.js +0 -1
  122. package/dashboard/dist/assets/use-reduced-motion-D9n2I_eN.js +0 -1
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/__vite-browser-external-DpZbUcLL.js","assets/__vite-browser-external-B0m8a6Te.css"])))=>i.map(i=>d[i]);
2
- import{o as ne,bO as Gt,bE as Mt,r as l,M as $t,K as Ft,bP as Bt,j as e,c as a,y as le,a as lt,cL as Ht,cM as Vt,cN as ct,cO as dt,a7 as me,cP as Be,bj as qt,cQ as Kt,bi as He,cR as we,aP as ut,cS as Wt,cT as Zt,ag as mt,u as gt,B as O,V as Pe,aM as pt,X as Yt,x as Oe,a8 as H,cU as Jt,a9 as ee,ar as ht,cV as Ne,a5 as ce,aB as ft,ai as Ve,cW as Xt,ak as Qt,aj as ea,ah as ta,cX as qe,cY as aa,a1 as sa,af as na,au as fe,av as Ae,cZ as ia,R as De,L as ye,al as ra,am as Ue,ac as oa,d as xt,aa as Le,ab as bt,c_ as Ke,c$ as We,d0 as Ze,d1 as la,d2 as ca,d3 as da,ao as ua,Z as yt,l as Se,d4 as Ye,k as Je,d5 as ma,d6 as ga,d7 as pa,z as ha,d8 as fa,d9 as xa,da as ba,db as ya,dc as va,dd as ja,de as ka,v as vt,cm as _a,df as wa,bk as Xe,_ as Na,e as Sa,dg as Ca,dh as Ea,bm as Pa}from"./__vite-browser-external-DpZbUcLL.js";import{a as Oa,b as Qe,s as Aa,K as La,P as Ta,D as Ra,c as Ia,S as Da,v as Ua,u as za,C as Ga}from"./sortable.esm-BF83ljWQ.js";import{a as Ma}from"./modifiers.esm-D5AKZNa7.js";import{d as et,l as tt,u as $a,b as at}from"./use-limits-display-prefs-dOm4SCFU.js";import{P as Fa}from"./ProviderIcon-biLVsOGr.js";import{a as R,S as se,T as z,b as Y,c as ve}from"./Controls-Bd1kODP4.js";import{m as jt}from"./react-D1u6HsZx.js";import{P as Ba,u as Ha,a as Va}from"./use-session-efficiency-pref-BPZel3HL.js";import{C as qa}from"./check-v5Ie379p.js";import{C as Ka,i as Wa}from"./host-mode-Dd9fzAdq.js";import{A as kt}from"./index-D3XPaYEL.js";import{r as Za,C as Ce,o as Ya}from"./cloud-checkout-C_Rhiwno.js";import{u as Ja,D as Xa,a as Qa,b as es,c as ts,d as as,e as ss}from"./DialogTitle-C--sXGjf.js";import{u as ns,q as is,t as rs}from"./composite-DD_boZdD.js";import{j as os,k as ls}from"./SelectItemText-BQbmtjd3.js";import{u as cs}from"./safePolygon-ClG4WM06.js";import{D as ds}from"./DialogClose-BEUL9bD6.js";import{G as Te}from"./gift-CZus7M21.js";import{C as Re}from"./chevron-down-CPlz1cYW.js";import{D as us}from"./DateRangePopover-quw6hpxy.js";import{C as ms}from"./calendar-days-OvLTNZBH.js";import{D as Ie}from"./download-NqHXZ-zn.js";import{P as gs,a as ps,b as hs,c as fs,d as xs}from"./PopoverPopup-wleZ4DTI.js";import{C as st}from"./Card-CsAQxZZ8.js";import{E as nt}from"./external-link-B0D03J0f.js";import{a as bs,P as ys}from"./play-BIQH--yZ.js";import{I as _t}from"./info-BUmCmjwd.js";import{a as vs,b as js,c as ks,d as _s,e as ws}from"./TooltipPopup-LV1aWIRZ.js";import{C as wt}from"./ConfirmModal-C_il5anp.js";import{L as xe}from"./loader-circle-DM-FdXeX.js";import{u as Ns}from"./useCurrency-DnhS0llv.js";import{u as Ss}from"./useTokenFormat-DvjyXv8i.js";import{S as ze}from"./Select-77l2QNqa.js";import{u as je}from"./use-native-settings-GL9uAidm.js";import{A as Cs}from"./arrow-up-right-kkQt6Du0.js";import"./store-l5WfCa7P.js";import"./usePositioner-7yozJJJ0.js";import"./DialogDescription-DpkD2qwW.js";const Nt={name:"credit-card",size:24,node:[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}],["path",{d:"M6 14h2",key:"mk7k0u"}]]};Nt.node;const Es=ne(Nt);const St={name:"flask-conical",size:24,node:[["path",{d:"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2",key:"18mbvz"}],["path",{d:"M6.453 15h11.094",key:"3shlmq"}],["path",{d:"M8.5 2h7",key:"csnxdl"}]]};St.node;const Ps=ne(St);const Ct={name:"grip-vertical",size:24,node:[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]};Ct.node;const Os=ne(Ct);const Et={name:"languages",size:24,node:[["path",{d:"m5 8 6 6",key:"1wu5hv"}],["path",{d:"m4 14 6-6 2-3",key:"1k1g8d"}],["path",{d:"M2 5h12",key:"or177f"}],["path",{d:"M7 2h1",key:"1t2jsx"}],["path",{d:"m22 22-5-10-5 10",key:"don7ne"}],["path",{d:"M14 18h6",key:"1m8k6r"}]]};Et.node;const As=ne(Et);const Pt={name:"log-out",size:24,node:[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]]};Pt.node;const Ls=ne(Pt);const Ot={name:"palette",size:24,node:[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]]};Ot.node;const Ts=ne(Ot);const At={name:"user-round",size:24,node:[["circle",{cx:"12",cy:"8",r:"5",key:"1hypcn"}],["path",{d:"M20 21a8 8 0 0 0-16 0",key:"rfgkzh"}]],aliases:["user-2"]};At.node;const Rs=ne(At),Is=Gt(function(s,n){const{render:r,className:i,style:c,disabled:g=!1,nativeButton:o=!0,id:d,payload:p,handle:h,...m}=s,j=Ja(!0),x=cs(h)??j;if(!x)throw new Error(Mt(79));const _=ns(d),b=x.useState("floatingRootContext"),u=x.useState("isOpenedByTrigger",_),y=x.useState("triggerPopupId",_),k=l.useRef(null),{registerTrigger:f,isMountedByThisTrigger:N}=is(_,k,x,{payload:p}),{getButtonProps:E,buttonRef:v}=$t({disabled:g,native:o}),C=os(b),A=ls(()=>x.select("open"),M=>{x.set("openMethod",M)}),S={disabled:g,open:u},P=x.useState("triggerProps",N);return Ft("button",s,{state:S,ref:[v,n,f,k],props:[C.reference,P,A,{[Bt]:"",id:_,"aria-haspopup":"dialog","aria-expanded":u,"aria-controls":y},m,E],stateAttributesMapping:rs})}),Ds="shrink-0 text-oai-gray-900 dark:text-oai-gray-200";function Us({id:t,visible:s,onToggle:n}){const{attributes:r,listeners:i,setNodeRef:c,transform:g,transition:o,isDragging:d}=za({id:t}),p={transform:Ga.Transform.toString(g)||void 0,transition:o,zIndex:d?20:void 0};return e.jsxs("div",{ref:c,style:p,className:le("flex items-center gap-3 py-2 rounded-md select-none touch-none","cursor-grab active:cursor-grabbing","hover:bg-oai-gray-100/60 dark:hover:bg-oai-gray-800/60","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",d&&"relative bg-oai-gray-100 dark:bg-oai-gray-800"),...r,...i,children:[e.jsx(Os,{className:"h-4 w-4 shrink-0 text-oai-gray-400 dark:text-oai-gray-500",strokeWidth:1.75,"aria-hidden":!0}),et(t)?e.jsx(Fa,{provider:et(t),size:18,className:le("pointer-events-none",Ds)}):null,e.jsx("span",{className:"flex-1 text-sm text-oai-gray-900 dark:text-oai-gray-200",children:tt(t)}),e.jsx("div",{onPointerDown:h=>h.stopPropagation(),children:e.jsx(z,{checked:s,onChange:n,ariaLabel:`${a("limits.settings.toggle_visible")}: ${tt(t)}`})})]})}function zs({prefs:t}){const{order:s,visibility:n,toggle:r,setAllVisible:i,moveToward:c}=t,g=s.every(m=>n[m]!==!1),o=s.every(m=>n[m]===!1),d=s.filter(m=>n[m]!==!1).length,p=Oa(Qe(Ta,{activationConstraint:{distance:6}}),Qe(La,{coordinateGetter:Aa})),h=({active:m,over:j})=>{j&&m.id!==j.id&&c(m.id,j.id)};return e.jsxs(e.Fragment,{children:[e.jsx(R,{label:a("limits.settings.bulk_visibility"),hint:a("limits.settings.enabled_count",{enabled:d,total:s.length}),control:e.jsx(se,{options:[{value:"enabled",label:a("limits.settings.enable_all")},{value:"disabled",label:a("limits.settings.disable_all")}],value:g?"enabled":o?"disabled":null,onChange:m=>i(m==="enabled")})}),e.jsx(Ra,{sensors:p,collisionDetection:Ia,modifiers:[Ma],onDragEnd:h,children:e.jsx(Da,{items:s,strategy:Ua,children:e.jsx("div",{className:"flex flex-col",children:s.map(m=>e.jsx(Us,{id:m,visible:n[m]!==!1,onToggle:()=>r(m)},m))})})})]})}function Gs(t){if(!t||typeof t!="object")return"";const s=t.user_metadata&&typeof t.user_metadata=="object"?t.user_metadata:{},n=t.profile&&typeof t.profile=="object"?t.profile:{},r=s.full_name||s.name||n.name||s.user_name||s.preferred_username;return typeof r=="string"&&r.trim()?r.trim():typeof t.email=="string"&&t.email.includes("@")?t.email.split("@")[0].trim()||t.email.trim():typeof t.email=="string"?t.email.trim():""}function Ms(t){return!t||typeof t!="object"?"":typeof t.email=="string"?t.email.trim():""}function $s(t){const s=typeof t=="string"?t.trim():"";if(!s)return null;const n=s.match(/^@?([A-Za-z0-9][A-Za-z0-9-]{0,38})$/),r=s.match(/^https:\/\/github\.com\/([A-Za-z0-9][A-Za-z0-9-]{0,38})\/?$/i),i=n?.[1]||r?.[1];return i?`https://github.com/${i}`:null}function Ge(t,s){console.warn(`[tokentracker] settings ${t}:`,s)}function Fs(t,s,n,r){const[i,c]=l.useState(()=>me()),g=s&&n&&mt(),o=l.useMemo(()=>({active:!0,busy:!1}),[t,s,n,r]),d=l.useRef(o);d.current=o;const[p,h]=l.useState(null),m=p?.scope===o?p:null;l.useEffect(()=>{o.active=!0;const _=()=>{const u=me();c(u),u||h(y=>y?.scope===o?{...y,error:null}:y)},b=()=>{h(u=>u?.scope===o?{...u,error:null}:u),we(r,"cloud-sync")};return _(),window.addEventListener("tt.cloudSyncChanged",_),window.addEventListener("storage",_),window.addEventListener(Be,b),()=>{o.active=!1,window.removeEventListener("tt.cloudSyncChanged",_),window.removeEventListener("storage",_),window.removeEventListener(Be,b)}},[o,r]);const j=l.useCallback(async()=>{if(!g||!me()||o.busy||!o.active||d.current!==o)return;o.busy=!0,h({scope:o,pending:!0,error:null});const _=()=>o.active&&d.current===o&&me();try{await qt(()=>t())}catch(b){if(!_())return;["cloud_membership_required","cloud_read_only_expired","cloud_history_window_exceeded","cloud_machine_limit","machine_limit_exceeded","cloud_machine_paused"].includes(b?.code)?Kt(r,b.code,b.membership,"cloud-sync"):h({scope:o,pending:!0,error:{code:"billing_network_error"}}),Ge("cloud sync",b)}finally{o.busy=!1,o.active&&d.current===o&&h(b=>b?.scope===o?{...b,pending:!1}:b)}},[g,o,t,r]),w=l.useCallback(async()=>{if(!g||o.busy||!o.active||d.current!==o)return;const _=!me();h({scope:o,pending:!1,error:null}),He(_),c(_),_?await j():we(r,"cloud-sync")},[g,o,j,r]),x=l.useCallback(()=>{!g||!o.active||d.current!==o||(He(!1),c(!1),h(_=>_?.scope===o?{..._,error:null}:_),we(r,"cloud-sync"))},[g,o,r]);return{cloudSyncOn:i,cloudSyncPending:!!m?.pending,cloudSyncError:m?.error,handleCloudSyncToggle:w,handleCloudSyncRetry:j,handleCloudSyncDisable:x,showLocalCloudSync:g}}function Bs(t){const[s,n]=l.useState(!1),[r,i]=l.useState(!1),[c,g]=l.useState(!1),[o,d]=l.useState(!1),[p,h]=l.useState(null),[m,j]=l.useState(!1),[w,x]=l.useState(""),[_,b]=l.useState(!1),[u,y]=l.useState(""),[k,f]=l.useState(""),[N,E]=l.useState(!1),[v,C]=l.useState(null),A=l.useMemo(()=>Gs(t),[t]),S=l.useMemo(()=>Ms(t),[t]),P=l.useMemo(()=>typeof t?.id=="string"?t.id.trim():"",[t]),M=l.useMemo(()=>({setAnonymousOn:i,setCustomDisplayName:h,setGithubUrl:y,setProfileLoading:g,setPublicProfileOn:n,setShowGithubOn:b}),[]);return{anonymousOn:r,customDisplayName:p,displayName:A,editingGithub:N,editingName:m,email:S,githubError:v,githubInput:k,githubUrl:u,loadSetters:M,nameInput:w,profileLoading:c,profileSaving:o,publicProfileOn:s,setAnonymousOn:i,setCustomDisplayName:h,setEditingGithub:E,setEditingName:j,setGithubError:C,setGithubInput:f,setGithubUrl:y,setNameInput:x,setProfileLoading:g,setProfileSaving:d,setPublicProfileOn:n,setShowGithubOn:b,showGithubOn:_,userId:P}}function Hs(t,s,n){l.useEffect(()=>{if(!s)return;let r=!0;return n.setProfileLoading(!0),(async()=>{try{const i=await ut({getAccessToken:t});if(!r||!i)return;const c=await Wt({accessToken:i});if(!r)return;n.setPublicProfileOn(!!c?.enabled),n.setAnonymousOn(!!c?.anonymous),c?.display_name&&n.setCustomDisplayName(c.display_name),n.setShowGithubOn(!!c?.show_github_url),n.setGithubUrl(c?.github_url||"")}catch(i){Ge("load public profile",i)}finally{r&&n.setProfileLoading(!1)}})(),()=>{r=!1}},[t,s,n])}function Vs(t,s,n){return l.useCallback(async(r,{label:i,onError:c,onSuccess:g}={})=>{if(!n||s.profileSaving)return!1;s.setProfileSaving(!0);try{const o=await ut({getAccessToken:t});if(!o)return!1;const d=await Zt({accessToken:o,...r});return g?.(d),!0}catch(o){return c?c(o):Ge(i||"mutate profile",o),!1}finally{s.setProfileSaving(!1)}},[t,s,n])}function qs(t,s){return{anonymousOn:t.anonymousOn,customDisplayName:t.customDisplayName,displayName:t.displayName,editingName:t.editingName,handleAnonymousToggle:s.handleAnonymousToggle,handleSaveName:s.handleSaveName,nameInput:t.nameInput,profileLoading:t.profileLoading,profileSaving:t.profileSaving,setEditingName:t.setEditingName,setNameInput:t.setNameInput,startEditingName:s.startEditingName}}function Ks(t,s){return{editingGithub:t.editingGithub,githubError:t.githubError,githubInput:t.githubInput,githubUrl:t.githubUrl,handleSaveGithub:s.handleSaveGithub,handleShowGithubToggle:s.handleShowGithubToggle,profileLoading:t.profileLoading,profileSaving:t.profileSaving,setEditingGithub:t.setEditingGithub,setGithubError:t.setGithubError,setGithubInput:t.setGithubInput,showGithubOn:t.showGithubOn,startEditingGithub:s.startEditingGithub}}function Ws(t,s){const n=l.useCallback(async()=>{const i=!t.publicProfileOn;await s({enabled:i},{label:"toggle public profile",onSuccess:()=>t.setPublicProfileOn(i)})},[s,t]);return{handleAnonymousToggle:l.useCallback(async()=>{const i=!t.anonymousOn;await s({anonymous:i},{label:"toggle anonymous",onSuccess:()=>t.setAnonymousOn(i)})},[s,t]),handlePublicProfileToggle:n}}function Zs(t,s,n){const r=l.useCallback(async()=>{const c=t.nameInput.trim().slice(0,50);c&&await s({display_name:c},{label:"save display name",onSuccess:()=>{t.setCustomDisplayName(c),t.setEditingName(!1),n?.()}})},[s,t,n]),i=l.useCallback(()=>{t.setNameInput(t.customDisplayName||t.displayName),t.setEditingName(!0)},[t]);return{handleSaveName:r,startEditingName:i}}function Ys(t,s){const n=l.useCallback(async()=>{if(!t.showGithubOn&&!t.githubUrl){t.setEditingGithub(!0),t.setGithubInput(""),t.setGithubError(null);return}const c=!t.showGithubOn;await s({show_github_url:c},{label:"toggle GitHub profile",onSuccess:()=>t.setShowGithubOn(c)})},[s,t]),r=l.useCallback(async()=>{const c=$s(t.githubInput);if(t.githubInput.trim()&&!c){t.setGithubError(a("settings.account.githubUrlInvalid"));return}t.setGithubError(null),await s({github_url:c,show_github_url:!!c},{label:"save GitHub profile",onError:g=>t.setGithubError(g?.message||a("settings.account.githubUrlInvalid")),onSuccess:g=>{t.setGithubUrl(g?.github_url||c||""),t.setShowGithubOn(!!c),t.setEditingGithub(!1)}})},[s,t]),i=l.useCallback(()=>{t.setGithubInput(t.githubUrl),t.setGithubError(null),t.setEditingGithub(!0)},[t]);return{handleSaveGithub:r,handleShowGithubToggle:n,startEditingGithub:i}}function Me(){const t=lt();l.useSyncExternalStore(Ht,Vt,()=>0);const s=ct(t.user?.id),r=!(s.membership?.status==="self_hosted"||s.catalog?.policy?.hosting_mode==="self_hosted")&&(dt()||s.membership?.hosting_mode==="hosted"),i=Bs(t.user),c=Fs(t.getAccessToken,t.enabled,t.signedIn,t.user?.id);Hs(t.getAccessToken,t.signedIn&&r,i.loadSetters);const g=Vs(t.getAccessToken,i,r),o=Ws(i,g),d=Zs(i,g,t.refreshDisplayName),p=Ys(i,g);return{...t,...c,email:i.email,handlePublicProfileToggle:o.handlePublicProfileToggle,userId:i.userId,name:qs(i,{...o,...d}),github:Ks(i,p),profileLoading:i.profileLoading,profileSaving:i.profileSaving,publicProfileOn:r&&i.publicProfileOn,publicProfileAvailable:r}}function Lt({disabled:t,onCancel:s,onSave:n,saveLabel:r=a("settings.account.save")}){return e.jsxs(e.Fragment,{children:[e.jsx(O,{variant:"primary",size:"sm",onClick:n,disabled:t,children:r}),e.jsx(O,{variant:"ghost",size:"sm",onClick:s,className:"text-oai-gray-500 hover:text-oai-gray-700 dark:hover:text-oai-gray-300",children:a("settings.account.cancel")})]})}function Js({nameInput:t,setEditingName:s,setNameInput:n,profileSaving:r,handleSaveName:i}){return e.jsxs("div",{className:"mt-2 flex items-center gap-2",children:[e.jsx("input",{type:"text",value:t,onChange:c=>n(c.target.value),onKeyDown:c=>{c.key==="Enter"&&i(),c.key==="Escape"&&s(!1)},maxLength:50,autoFocus:!0,className:`flex-1 ${ve}`,placeholder:a("settings.account.displayName")}),e.jsx(Lt,{disabled:r||!t.trim(),onCancel:()=>s(!1),onSave:i,saveLabel:r?a("settings.account.saving"):void 0})]})}function Xs({githubError:t,githubInput:s,handleSaveGithub:n,profileSaving:r,setEditingGithub:i,setGithubError:c,setGithubInput:g}){return e.jsxs("div",{className:"mt-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("input",{type:"text",value:s,onChange:o=>{g(o.target.value),t&&c(null)},onKeyDown:o=>{o.key==="Enter"&&n(),o.key==="Escape"&&(i(!1),c(null))},maxLength:100,autoFocus:!0,className:`flex-1 ${ve}`,placeholder:a("settings.account.githubUrlPlaceholder")}),e.jsx(Lt,{disabled:r,onCancel:()=>{i(!1),c(null)},onSave:n,saveLabel:r?a("settings.account.saving"):void 0})]}),t?e.jsx("div",{className:"mt-1.5 text-xs text-red-600 dark:text-red-400",children:t}):null]})}function Tt({disabled:t=!1,label:s,onClick:n,title:r}){return e.jsxs(O,{variant:"secondary",size:"sm",onClick:n,disabled:t,title:r,className:"gap-1.5",children:[e.jsx(Ba,{className:"h-3.5 w-3.5","aria-hidden":!0}),e.jsx("span",{children:s})]})}function Rt({actions:t,editing:s,editor:n,hint:r,label:i}){return e.jsx("div",{className:"py-3",children:e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"text-sm text-oai-gray-900 dark:text-oai-gray-200",children:i}),s?n:e.jsx("div",{className:"mt-0.5 truncate text-xs text-oai-gray-500 dark:text-oai-gray-400",children:r})]}),s?null:t]})})}function Qs({name:t}){const s=t.anonymousOn?a("settings.account.displayNameDisabledWhileAnon"):void 0;return e.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[e.jsx(Tt,{disabled:t.anonymousOn,label:a("settings.account.edit"),onClick:t.startEditingName,title:s}),e.jsx(z,{checked:!t.anonymousOn,onChange:t.handleAnonymousToggle,disabled:t.profileLoading||t.profileSaving,ariaLabel:a("settings.account.displayName")})]})}function en({name:t}){const{anonymousOn:s,customDisplayName:n,displayName:r,editingName:i,handleAnonymousToggle:c,handleSaveName:g,nameInput:o,profileLoading:d,profileSaving:p,setEditingName:h,setNameInput:m,startEditingName:j}=t,w=s?a("settings.account.displayNameAnonymousHint"):n||r;return e.jsx(Rt,{label:a("settings.account.displayName"),editing:i,hint:w,editor:e.jsx(Js,{nameInput:o,setEditingName:h,setNameInput:m,profileSaving:p,handleSaveName:g}),actions:e.jsx(Qs,{name:t})})}function tn({github:t}){const{editingGithub:s,githubError:n,githubInput:r,githubUrl:i,handleSaveGithub:c,handleShowGithubToggle:g,profileLoading:o,profileSaving:d,setEditingGithub:p,setGithubError:h,setGithubInput:m,showGithubOn:j,startEditingGithub:w}=t;return e.jsx(e.Fragment,{children:e.jsx(Rt,{label:a("settings.account.githubUrl"),editing:s,hint:i||a("settings.account.githubUrlHint"),editor:e.jsx(Xs,{githubError:n,githubInput:r,handleSaveGithub:c,profileSaving:d,setEditingGithub:p,setGithubError:h,setGithubInput:m}),actions:e.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[e.jsx(Tt,{label:a("settings.account.edit"),onClick:w}),e.jsx(z,{checked:j,onChange:g,disabled:o||d,ariaLabel:a("settings.account.githubUrl")})]})})})}function an(){const{openLoginModal:t}=gt();return e.jsx(Y,{title:a("settings.section.account"),children:e.jsxs("div",{className:"flex flex-col gap-3 py-3 sm:flex-row sm:items-center sm:justify-between sm:gap-4",children:[e.jsx("p",{className:"text-sm text-oai-gray-500 dark:text-oai-gray-400",children:a("settings.account.signedOutHint")}),e.jsx(O,{variant:"primary",size:"sm",onClick:t,children:a("settings.account.signIn")})]})})}function sn({name:t,github:s}){return e.jsxs(e.Fragment,{children:[e.jsx(en,{name:t}),e.jsx(tn,{github:s})]})}function nn({settings:t}={}){return t?e.jsx(It,{settings:t}):e.jsx(rn,{})}function rn(){const t=Me();return e.jsx(It,{settings:t})}function It({settings:t}){return t.enabled?t.signedIn?e.jsxs(Y,{title:a("settings.section.account"),subtitle:t.email||t.name.customDisplayName||t.name.displayName,action:e.jsx(ln,{onSignOut:t.signOut}),children:[e.jsx(on,{userId:t.userId}),e.jsx(cn,{checked:t.publicProfileOn,disabled:t.profileLoading||t.profileSaving||t.publicProfileAvailable===!1,onChange:t.handlePublicProfileToggle,unavailable:t.publicProfileAvailable===!1}),e.jsx(dn,{visible:t.publicProfileOn,name:t.name,github:t.github})]}):e.jsx(an,{}):null}function on({userId:t}){const[s,n]=Pe.useState(!1);if(!t)return null;const r=async()=>{try{if(typeof navigator>"u"||!navigator.clipboard?.writeText)return;await navigator.clipboard.writeText(t),n(!0),globalThis.setTimeout(()=>n(!1),1200)}catch{n(!1)}};return e.jsx(R,{label:a("settings.account.userId"),hint:e.jsx("span",{className:"font-mono",children:t}),control:e.jsxs(O,{variant:"secondary",size:"sm",onClick:r,"aria-label":a("settings.account.copyUserId"),className:"gap-1.5",children:[s?e.jsx(qa,{className:"h-3.5 w-3.5","aria-hidden":!0}):e.jsx(Ka,{className:"h-3.5 w-3.5","aria-hidden":!0}),e.jsx("span",{children:s?a("settings.account.copied"):a("settings.account.copy")})]})})}function ln({onSignOut:t}){return e.jsxs(O,{variant:"ghost",size:"sm",onClick:()=>t(),className:"!h-7 !px-2 text-xs text-oai-gray-500 hover:text-oai-gray-700 dark:hover:text-oai-gray-300",children:[e.jsx(Ls,{className:"h-3.5 w-3.5 mr-1.5","aria-hidden":!0}),e.jsx("span",{children:a("settings.account.signOut")})]})}function cn({checked:t,disabled:s,onChange:n,unavailable:r}){return e.jsx(R,{label:a("settings.account.publicProfile"),hint:a(r?"cloud.self_host.public_profile_disabled":"settings.account.publicProfileHint"),control:e.jsx(z,{checked:t,onChange:n,disabled:s,ariaLabel:a("settings.account.publicProfile")})})}function dn({visible:t,name:s,github:n}){return e.jsx(kt,{initial:!1,children:t?e.jsx(jt.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{height:{duration:.28,ease:[.22,1,.36,1]},opacity:{duration:.2,ease:[.22,1,.36,1]}},style:{overflow:"hidden"},className:"divide-y divide-oai-gray-200/60 dark:divide-oai-gray-800/60",children:e.jsx(sn,{name:s,github:n})},"public-profile-fields"):null})}function $e({open:t,onOpenChange:s,title:n,triggerLabel:r=n,icon:i,wide:c=!1,preventClose:g=!1,initialFocus:o,children:d}){return e.jsxs(Xa,{open:t,onOpenChange:(p,h)=>{if(!p&&g){h.cancel();return}s(p)},children:[e.jsxs(Is,{className:"inline-flex h-11 w-full items-center gap-3 rounded-md border-0 bg-transparent p-0 text-left text-sm font-medium text-oai-black transition-colors hover:bg-oai-gray-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-oai-gray-500 dark:text-oai-white dark:hover:bg-oai-gray-800",children:[i?e.jsx(i,{size:16,className:"shrink-0","aria-hidden":!0}):null,e.jsx("span",{className:"min-w-0 flex-1",children:r}),e.jsx(pt,{size:16,className:"shrink-0 text-oai-gray-500 dark:text-oai-gray-400","aria-hidden":!0})]}),e.jsxs(Qa,{children:[e.jsx(es,{className:"tt-cloud-action-backdrop fixed inset-0 z-[100] bg-black/40 dark:bg-black/60"}),e.jsx(ts,{className:"tt-cloud-settings fixed inset-0 z-[101] flex items-center justify-center overflow-y-auto overscroll-contain p-4",children:e.jsxs(as,{initialFocus:o,"aria-modal":"true",className:`tt-cloud-action-popup tt-cloud-theme relative max-h-[calc(100dvh-2rem)] w-full ${c?"max-w-2xl":"max-w-lg"} overflow-y-auto overscroll-contain rounded-xl bg-white p-5 shadow-xl outline-none dark:bg-oai-gray-900`,children:[e.jsxs("div",{className:"mb-3 flex min-h-11 items-center justify-between gap-4",children:[e.jsx(ss,{className:"min-w-0 text-lg font-semibold text-oai-black dark:text-oai-white",children:n}),e.jsx(ds,{disabled:g,"aria-label":a("shared.dialog.close"),className:"inline-flex size-11 min-h-11 min-w-11 shrink-0 items-center justify-center rounded-md border-0 bg-transparent p-0 text-oai-gray-500 transition-colors hover:bg-oai-gray-100 hover:text-oai-black focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-oai-gray-500 disabled:cursor-wait disabled:opacity-40 dark:text-oai-gray-400 dark:hover:bg-oai-gray-800 dark:hover:text-oai-white",children:e.jsx(Yt,{size:18,"aria-hidden":!0})})]}),e.jsx("div",{"data-settings-panel":"cloud",className:"min-w-0",children:d})]})})]})]})}function he(t){return t.replace(/[\t\n\r\f\v -]/g,"").toUpperCase()}function un({account:t,auth:s,refresh:n,compact:r=!1,panelContainer:i=null,layout:c="default",dialogOpen:g,onDialogOpenChange:o}){const d=c==="settings-row",[p,h]=l.useState(!1),m=d&&typeof g=="boolean"?g:p,[j,w]=l.useState(""),[x,_]=l.useState(!1),[b,u]=l.useState(null),[y,k]=l.useState(null),[f,N]=l.useState(!1),E=l.useId(),v=l.useRef(null),C=l.useRef(null),A=l.useRef(!1),S=l.useRef(!1),P=l.useRef(0),M=`${Oe()}.${t?.environment||"unknown"}.${s?.signedIn?s.user?.id:""}`,G=l.useRef(M);G.current=M,l.useEffect(()=>(S.current=!0,P.current+=1,C.current=null,A.current=!1,h(!1),w(""),_(!1),u(null),k(null),N(!1),()=>{S.current=!1,P.current+=1}),[M]);const J=t?.membership?.status==="self_hosted"||t?.membership?.hosting_mode==="self_hosted",V=t?.gift_redemption_available===!0,te=d?t?.gifts||[]:[];if(!s?.signedIn||J||!V&&!te.length)return null;const $=t.redemption_restriction,F=T=>{!T&&A.current||(typeof g!="boolean"&&h(T),o?.(T))},K=async(T,ie)=>{const re=await n();ie()&&N(!!re?.gifts?.some(W=>W.id===T?.id))},q=async T=>{if(A.current||T&&(!V||!j.trim()))return;if(T&&$&&$!=="gift_checkout_pending"){u(new Ne($));return}A.current=!0;const ie=++P.current,re=M,W=()=>S.current&&P.current===ie&&G.current===re;_(!0),u(null);try{if(T){const ae=j.trim();(!C.current||he(C.current.code)!==he(ae))&&(C.current={code:ae,request_id:crypto.randomUUID()});const oe=await ce("redeem-gift",{auth:async()=>{const de=await ft(s.getAccessToken);if(!W())throw new Ne("authentication_required",401);return de},body:C.current});if(!W())return;if(!oe?.gift?.id)throw new Ne("billing_operation_failed");k(oe),N(!1),w(""),C.current=null,await K(oe.gift,W)}else await K(y?.gift,W)}catch(ae){W()&&u(ae)}finally{W()&&(A.current=!1,_(!1))}};let L=null;return(d||m)&&(L=e.jsxs("div",{id:`${E}-panel`,className:d?"space-y-3":r?"w-full space-y-3 rounded-lg bg-oai-gray-50 p-4 dark:bg-oai-gray-950/50":"mt-3 space-y-3",children:[V?e.jsxs(e.Fragment,{children:[e.jsx("p",{id:`${E}-detail`,className:d?"sr-only":"text-xs leading-5 text-oai-gray-600 dark:text-oai-gray-300",children:a("cloud.gift.detail")}),y?e.jsxs("div",{role:"status",className:"space-y-2 text-sm leading-6",children:[d&&f?null:e.jsx("p",{children:a(f?y.already_redeemed?"cloud.gift.already_redeemed":"cloud.gift.redeemed":"cloud.gift.refresh_needed")}),y.gift?d&&f?e.jsxs("div",{className:"py-1",children:[e.jsx("p",{className:"text-base font-medium text-oai-black dark:text-oai-white",children:a("cloud.gift.duration",{days:y.gift.duration_days})}),e.jsx("p",{className:"mt-1 text-sm text-oai-gray-500 dark:text-oai-gray-400",children:a("cloud.history.term",{start:H(y.gift.starts_at),end:H(y.gift.ends_at)})})]}):e.jsx("p",{className:"text-xs text-oai-gray-600 dark:text-oai-gray-300",children:a("cloud.gift.term",{days:y.gift.duration_days,start:H(y.gift.starts_at),end:H(y.gift.ends_at)})}):null,f?e.jsxs("div",{className:"flex flex-wrap justify-end gap-2 pt-3",children:[e.jsx(O,{type:"button",variant:"secondary",size:"sm",onClick:()=>{k(null),N(!1),requestAnimationFrame(()=>v.current?.focus())},children:a("cloud.gift.redeem_another")}),d?e.jsx(O,{type:"button",size:"sm",className:"min-w-20",disabled:x,onClick:()=>F(!1),children:a("cloud.gift.done")}):null]}):e.jsx(O,{type:"button",variant:"secondary",disabled:x,onClick:()=>{q(!1)},children:a("cloud.action.refresh_membership")})]}):e.jsxs("form",{onSubmit:T=>{T.preventDefault(),q(!0)},"aria-busy":x,children:[e.jsx("label",{htmlFor:E,className:d?"sr-only":"text-sm font-medium",children:a("cloud.gift.code_label")}),e.jsxs("div",{className:"mt-2 flex flex-col gap-2 sm:flex-row",children:[e.jsx("input",{id:E,ref:v,value:j,disabled:x,maxLength:128,autoComplete:"off",spellCheck:!1,autoCapitalize:"characters","data-ph-no-capture":"true","aria-describedby":`${E}-detail${b?` ${E}-error`:""}`,"aria-invalid":!!b,onChange:T=>{he(T.target.value)!==he(j)&&(C.current=null),w(T.target.value),u(null)},className:"min-h-10 min-w-0 flex-1 rounded-md border border-oai-gray-300 bg-transparent px-3 font-mono text-sm outline-none focus:border-oai-brand focus:ring-2 focus:ring-inset focus:ring-oai-brand/30 dark:border-oai-gray-700"}),e.jsx(O,{type:"submit",variant:"secondary",disabled:x||!j.trim(),children:a(x?"cloud.gift.redeeming":"cloud.gift.confirm")})]})]}),b?e.jsx("div",{id:`${E}-error`,children:["gift_checkout_pending","gift_requires_renewal_cancel"].includes(b.code)?e.jsx("p",{role:"alert",className:"text-xs leading-5 text-oai-gray-600 dark:text-oai-gray-300",children:Jt(b,"gift")}):e.jsx(ee,{error:b,context:"gift"})}):null]}):null,te.length&&!y?e.jsx("ul",{"aria-label":a("cloud.gift.history_title"),className:"divide-y divide-oai-gray-200 dark:divide-oai-gray-800",children:te.map(T=>e.jsxs("li",{className:"py-3",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2 text-sm",children:[e.jsx("span",{children:a("cloud.gift.duration",{days:T.duration_days})}),e.jsx("span",{children:a(["active","pending","expired","revoked"].includes(T.state)?`cloud.gift.state_${T.state}`:"cloud.status.unknown")})]}),e.jsx("p",{className:"mt-1 text-xs leading-5 text-oai-gray-600 dark:text-oai-gray-300",children:a("cloud.history.term",{start:H(T.starts_at),end:H(T.ends_at)})})]},T.id))}):null]})),d?e.jsx($e,{open:m,onOpenChange:F,title:a(y&&f?"cloud.gift.redeemed":V?"cloud.gift.redeem_action":"cloud.gift.history_title"),triggerLabel:a(V?"cloud.gift.redeem_action":"cloud.gift.history_title"),icon:Te,preventClose:x,initialFocus:V&&!y?v:void 0,children:L}):e.jsxs("div",{className:d?void 0:r?"contents":"mt-4",children:[e.jsxs(O,{type:"button",variant:"ghost",size:r||d?"sm":"md",className:d?"!h-11 !w-full !justify-start !px-0 !text-oai-black dark:!text-oai-white hover:!bg-oai-gray-100 dark:hover:!bg-oai-gray-800 active:!scale-100":r?"!h-10 !px-0":void 0,"aria-expanded":m,"aria-controls":d||m?`${E}-panel`:void 0,onClick:()=>h(T=>!T),disabled:x,children:[r||d?e.jsx(Te,{size:16,className:`${d?"mr-3":"mr-2"} shrink-0`,"aria-hidden":!0}):null,a(V?"cloud.gift.redeem_action":"cloud.gift.history_title"),d?e.jsx(Re,{size:16,className:`ml-auto shrink-0 transition-transform motion-reduce:transition-none ${m?"rotate-180":""}`,"aria-hidden":!0}):null]}),!d&&i&&L?ht.createPortal(L,i):L]})}const be=["total_tokens","billable_total_tokens","input_tokens","output_tokens","cached_input_tokens","cache_creation_input_tokens","reasoning_output_tokens","conversation_count","total_cost_usd"];class U extends Error{constructor(s,n=0){super(s),this.code=s,this.status=n}code;status}function ge(t){return typeof t=="string"&&/^\d{4}-\d{2}-\d{2}$/.test(t)&&Number.isFinite(Date.parse(t+"T00:00:00Z"))&&new Date(t+"T00:00:00Z").toISOString().slice(0,10)===t}function mn(t,s){if(!ta(t))throw new U("export_auth_required",401);try{const n=t.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),r=JSON.parse(atob(n.padEnd(Math.ceil(n.length/4)*4,"=")));if((r.sub||r.user_id)!==s||r.role!=="authenticated"||!Number.isFinite(r.exp)||r.exp*1e3<=Date.now())throw Error()}catch{throw new U("export_auth_required",401)}}function it(t){if(typeof t?.membership?.can_read_cloud!="boolean")throw new U("export_invalid_data",503);if(!t.membership.can_read_cloud)throw new U("export_access_denied",402);const s=t.membership;return JSON.stringify([t.environment,s.phase,s.status,s.hosting_mode,s.expires_at,s.trial_ends_at,s.transition_ends_at,s.read_only_until])}async function gn({userId:t,auth:s,from:n,to:r,deviceId:i=null,signal:c,assertCurrent:g=()=>{},fetchImpl:o=fetch}){if(!ge(n)||!ge(r)||n>r)throw new U("export_invalid_dates",400);if(typeof s!="function")throw new U("export_auth_required",401);if(!t||i&&!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(i))throw new U("export_invalid_scope",400);const d=Oe(),p=Ve();if(!d)throw new U("export_instance_changed",409);const h=()=>{if(c?.aborted)throw new U("export_cancelled",409);if(g(),d!==Oe()||p!==Ve())throw new U("export_instance_changed",409)};async function m(u,y){h();const k=await ft(s);h(),mn(k||"",t);const f=new URL(Qt(d,u));for(const[C,A]of Object.entries(y))f.searchParams.set(C,A);const N=new AbortController,E=()=>N.abort();c?.addEventListener("abort",E,{once:!0});const v=setTimeout(E,25e3);try{const C=await ea(f.toString(),{method:"GET",cache:"no-store",redirect:"error",signal:N.signal,headers:{Accept:"application/json",Authorization:"Bearer "+k,...p?{apikey:p}:{}}},o);if(h(),!C.ok)throw new U(C.status===401?"export_auth_required":C.status===402||C.status===403?"export_access_denied":"export_failed",C.status);const A=await C.json();return h(),A}finally{clearTimeout(v),c?.removeEventListener("abort",E)}}const j=it(await m("tokentracker-billing",{action:"account"})),w={from:n,to:r,tz_offset_minutes:"0",...i?{device_id:i}:{}};if(await m("tokentracker-account-daily",w),it(await m("tokentracker-billing",{action:"account"}))!==j)throw new U("export_access_changed",409);const x=await m("tokentracker-account-daily",w);if(!ge(x?.from)||!ge(x?.to)||x.from<n||x.to>r||x.from>x.to||!Array.isArray(x.data)||x.data.length>1096)throw new U("export_invalid_data",503);const _=new Set,b=x.data.map(u=>{if(!ge(u?.day)||u.day<x.from||u.day>x.to||_.has(u.day))throw new U("export_invalid_data",503);_.add(u.day);const y={day:u.day};for(const k of be){const f=u[k];if(typeof f!="number"||!Number.isFinite(f)||f<0||k!=="total_cost_usd"&&!Number.isSafeInteger(f))throw new U("export_invalid_data",503);y[k==="total_cost_usd"?"estimated_cost_usd":k]=f}return y}).sort((u,y)=>u.day.localeCompare(y.day));return h(),{schema:"tokentracker.cloud-usage.v1",metadata:{source:"cloud",backend_origin:new URL(d).origin,exported_at:new Date().toISOString(),timezone:"UTC",requested_range:{from:n,to:r},effective_range:{from:x.from,to:x.to},device_scope:i?"selected":"all",aggregation:"daily_all_providers",cost_currency:"USD",cost_basis:"estimated",row_count:b.length},rows:b}}function pn(t){const s=String(t??"");return'"'+(/^[\s]*[=+\-@]/.test(s)?"'"+s:s).replace(/"/g,'""')+'"'}function hn(t,s){if(s==="json")return JSON.stringify(t,null,2)+`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/__vite-browser-external-BtJVmciH.js","assets/__vite-browser-external-B0m8a6Te.css"])))=>i.map(i=>d[i]);
2
+ import{o as ne,bO as Gt,bE as Mt,r as l,M as $t,K as Ft,bP as Bt,j as e,c as a,y as le,a as lt,cL as Ht,cM as Vt,cN as ct,cO as dt,a7 as me,cP as Be,bj as qt,cQ as Kt,bi as He,cR as we,aP as ut,cS as Wt,cT as Zt,ag as mt,u as gt,B as O,V as Pe,aM as pt,X as Yt,x as Oe,a8 as H,cU as Jt,a9 as ee,ar as ht,cV as Ne,a5 as ce,aB as ft,ai as Ve,cW as Xt,ak as Qt,aj as ea,ah as ta,cX as qe,cY as aa,a1 as sa,af as na,au as fe,av as Ae,cZ as ia,R as De,L as ye,al as ra,am as Ue,ac as oa,d as xt,aa as Le,ab as bt,c_ as Ke,c$ as We,d0 as Ze,d1 as la,d2 as ca,d3 as da,ao as ua,Z as yt,l as Se,d4 as Ye,k as Je,d5 as ma,d6 as ga,d7 as pa,z as ha,d8 as fa,d9 as xa,da as ba,db as ya,dc as va,dd as ja,de as ka,v as vt,cm as _a,df as wa,bk as Xe,_ as Na,e as Sa,dg as Ca,dh as Ea,bm as Pa}from"./__vite-browser-external-BtJVmciH.js";import{a as Oa,b as Qe,s as Aa,K as La,P as Ta,D as Ra,c as Ia,S as Da,v as Ua,u as za,C as Ga}from"./sortable.esm-CehJQvFH.js";import{a as Ma}from"./modifiers.esm-qZnGgJAz.js";import{d as et,l as tt,u as $a,b as at}from"./use-limits-display-prefs-T7KWAWZ6.js";import{P as Fa}from"./ProviderIcon-Da90GDcM.js";import{a as R,S as se,T as z,b as Y,c as ve}from"./Controls-BEAj_kvr.js";import{m as jt}from"./react-BgpqhoCj.js";import{P as Ba,u as Ha,a as Va}from"./use-session-efficiency-pref-DUu16y8Z.js";import{C as qa}from"./check-BlBHefQ7.js";import{C as Ka,i as Wa}from"./host-mode-C5MvZ7SV.js";import{A as kt}from"./index-BEecBW06.js";import{r as Za,C as Ce,o as Ya}from"./cloud-checkout-CEkMnWXf.js";import{u as Ja,D as Xa,a as Qa,b as es,c as ts,d as as,e as ss}from"./DialogTitle-DoQgdh5w.js";import{u as ns,q as is,t as rs}from"./composite-CzXFY9IC.js";import{j as os,k as ls}from"./SelectItemText-D5wuuN7G.js";import{u as cs}from"./safePolygon-C-PFpZSA.js";import{D as ds}from"./DialogClose-BpWoD5h9.js";import{G as Te}from"./gift-WmV4SBGR.js";import{C as Re}from"./chevron-down-mjUspqZv.js";import{D as us}from"./DateRangePopover-PQXB8v0k.js";import{C as ms}from"./calendar-days-C8eYygme.js";import{D as Ie}from"./download-CQvg59w1.js";import{P as gs,a as ps,b as hs,c as fs,d as xs}from"./PopoverPopup-DDnISLKM.js";import{C as st}from"./Card-LJX3G3zo.js";import{E as nt}from"./external-link-CDYfIZ3Z.js";import{a as bs,P as ys}from"./play-BUsybi9m.js";import{I as _t}from"./info-CWDhggIW.js";import{a as vs,b as js,c as ks,d as _s,e as ws}from"./TooltipPopup-B4masxDW.js";import{C as wt}from"./ConfirmModal-C_NH8vgO.js";import{L as xe}from"./loader-circle-DotT5gVp.js";import{u as Ns}from"./useCurrency-BgZmWbkx.js";import{u as Ss}from"./useTokenFormat-D7s1-Zuk.js";import{S as ze}from"./Select-pZDawyxt.js";import{u as je}from"./use-native-settings-MZJhS328.js";import{A as Cs}from"./arrow-up-right-B_b2i8hn.js";import"./store-BHAXkHPR.js";import"./usePositioner-dWENyY8z.js";import"./DialogDescription-ne_rYSD7.js";const Nt={name:"credit-card",size:24,node:[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}],["path",{d:"M6 14h2",key:"mk7k0u"}]]};Nt.node;const Es=ne(Nt);const St={name:"flask-conical",size:24,node:[["path",{d:"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2",key:"18mbvz"}],["path",{d:"M6.453 15h11.094",key:"3shlmq"}],["path",{d:"M8.5 2h7",key:"csnxdl"}]]};St.node;const Ps=ne(St);const Ct={name:"grip-vertical",size:24,node:[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]};Ct.node;const Os=ne(Ct);const Et={name:"languages",size:24,node:[["path",{d:"m5 8 6 6",key:"1wu5hv"}],["path",{d:"m4 14 6-6 2-3",key:"1k1g8d"}],["path",{d:"M2 5h12",key:"or177f"}],["path",{d:"M7 2h1",key:"1t2jsx"}],["path",{d:"m22 22-5-10-5 10",key:"don7ne"}],["path",{d:"M14 18h6",key:"1m8k6r"}]]};Et.node;const As=ne(Et);const Pt={name:"log-out",size:24,node:[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]]};Pt.node;const Ls=ne(Pt);const Ot={name:"palette",size:24,node:[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]]};Ot.node;const Ts=ne(Ot);const At={name:"user-round",size:24,node:[["circle",{cx:"12",cy:"8",r:"5",key:"1hypcn"}],["path",{d:"M20 21a8 8 0 0 0-16 0",key:"rfgkzh"}]],aliases:["user-2"]};At.node;const Rs=ne(At),Is=Gt(function(s,n){const{render:r,className:i,style:c,disabled:g=!1,nativeButton:o=!0,id:d,payload:p,handle:h,...m}=s,j=Ja(!0),x=cs(h)??j;if(!x)throw new Error(Mt(79));const _=ns(d),b=x.useState("floatingRootContext"),u=x.useState("isOpenedByTrigger",_),y=x.useState("triggerPopupId",_),k=l.useRef(null),{registerTrigger:f,isMountedByThisTrigger:N}=is(_,k,x,{payload:p}),{getButtonProps:E,buttonRef:v}=$t({disabled:g,native:o}),C=os(b),A=ls(()=>x.select("open"),M=>{x.set("openMethod",M)}),S={disabled:g,open:u},P=x.useState("triggerProps",N);return Ft("button",s,{state:S,ref:[v,n,f,k],props:[C.reference,P,A,{[Bt]:"",id:_,"aria-haspopup":"dialog","aria-expanded":u,"aria-controls":y},m,E],stateAttributesMapping:rs})}),Ds="shrink-0 text-oai-gray-900 dark:text-oai-gray-200";function Us({id:t,visible:s,onToggle:n}){const{attributes:r,listeners:i,setNodeRef:c,transform:g,transition:o,isDragging:d}=za({id:t}),p={transform:Ga.Transform.toString(g)||void 0,transition:o,zIndex:d?20:void 0};return e.jsxs("div",{ref:c,style:p,className:le("flex items-center gap-3 py-2 rounded-md select-none touch-none","cursor-grab active:cursor-grabbing","hover:bg-oai-gray-100/60 dark:hover:bg-oai-gray-800/60","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",d&&"relative bg-oai-gray-100 dark:bg-oai-gray-800"),...r,...i,children:[e.jsx(Os,{className:"h-4 w-4 shrink-0 text-oai-gray-400 dark:text-oai-gray-500",strokeWidth:1.75,"aria-hidden":!0}),et(t)?e.jsx(Fa,{provider:et(t),size:18,className:le("pointer-events-none",Ds)}):null,e.jsx("span",{className:"flex-1 text-sm text-oai-gray-900 dark:text-oai-gray-200",children:tt(t)}),e.jsx("div",{onPointerDown:h=>h.stopPropagation(),children:e.jsx(z,{checked:s,onChange:n,ariaLabel:`${a("limits.settings.toggle_visible")}: ${tt(t)}`})})]})}function zs({prefs:t}){const{order:s,visibility:n,toggle:r,setAllVisible:i,moveToward:c}=t,g=s.every(m=>n[m]!==!1),o=s.every(m=>n[m]===!1),d=s.filter(m=>n[m]!==!1).length,p=Oa(Qe(Ta,{activationConstraint:{distance:6}}),Qe(La,{coordinateGetter:Aa})),h=({active:m,over:j})=>{j&&m.id!==j.id&&c(m.id,j.id)};return e.jsxs(e.Fragment,{children:[e.jsx(R,{label:a("limits.settings.bulk_visibility"),hint:a("limits.settings.enabled_count",{enabled:d,total:s.length}),control:e.jsx(se,{options:[{value:"enabled",label:a("limits.settings.enable_all")},{value:"disabled",label:a("limits.settings.disable_all")}],value:g?"enabled":o?"disabled":null,onChange:m=>i(m==="enabled")})}),e.jsx(Ra,{sensors:p,collisionDetection:Ia,modifiers:[Ma],onDragEnd:h,children:e.jsx(Da,{items:s,strategy:Ua,children:e.jsx("div",{className:"flex flex-col",children:s.map(m=>e.jsx(Us,{id:m,visible:n[m]!==!1,onToggle:()=>r(m)},m))})})})]})}function Gs(t){if(!t||typeof t!="object")return"";const s=t.user_metadata&&typeof t.user_metadata=="object"?t.user_metadata:{},n=t.profile&&typeof t.profile=="object"?t.profile:{},r=s.full_name||s.name||n.name||s.user_name||s.preferred_username;return typeof r=="string"&&r.trim()?r.trim():typeof t.email=="string"&&t.email.includes("@")?t.email.split("@")[0].trim()||t.email.trim():typeof t.email=="string"?t.email.trim():""}function Ms(t){return!t||typeof t!="object"?"":typeof t.email=="string"?t.email.trim():""}function $s(t){const s=typeof t=="string"?t.trim():"";if(!s)return null;const n=s.match(/^@?([A-Za-z0-9][A-Za-z0-9-]{0,38})$/),r=s.match(/^https:\/\/github\.com\/([A-Za-z0-9][A-Za-z0-9-]{0,38})\/?$/i),i=n?.[1]||r?.[1];return i?`https://github.com/${i}`:null}function Ge(t,s){console.warn(`[tokentracker] settings ${t}:`,s)}function Fs(t,s,n,r){const[i,c]=l.useState(()=>me()),g=s&&n&&mt(),o=l.useMemo(()=>({active:!0,busy:!1}),[t,s,n,r]),d=l.useRef(o);d.current=o;const[p,h]=l.useState(null),m=p?.scope===o?p:null;l.useEffect(()=>{o.active=!0;const _=()=>{const u=me();c(u),u||h(y=>y?.scope===o?{...y,error:null}:y)},b=()=>{h(u=>u?.scope===o?{...u,error:null}:u),we(r,"cloud-sync")};return _(),window.addEventListener("tt.cloudSyncChanged",_),window.addEventListener("storage",_),window.addEventListener(Be,b),()=>{o.active=!1,window.removeEventListener("tt.cloudSyncChanged",_),window.removeEventListener("storage",_),window.removeEventListener(Be,b)}},[o,r]);const j=l.useCallback(async()=>{if(!g||!me()||o.busy||!o.active||d.current!==o)return;o.busy=!0,h({scope:o,pending:!0,error:null});const _=()=>o.active&&d.current===o&&me();try{await qt(()=>t())}catch(b){if(!_())return;["cloud_membership_required","cloud_read_only_expired","cloud_history_window_exceeded","cloud_machine_limit","machine_limit_exceeded","cloud_machine_paused"].includes(b?.code)?Kt(r,b.code,b.membership,"cloud-sync"):h({scope:o,pending:!0,error:{code:"billing_network_error"}}),Ge("cloud sync",b)}finally{o.busy=!1,o.active&&d.current===o&&h(b=>b?.scope===o?{...b,pending:!1}:b)}},[g,o,t,r]),w=l.useCallback(async()=>{if(!g||o.busy||!o.active||d.current!==o)return;const _=!me();h({scope:o,pending:!1,error:null}),He(_),c(_),_?await j():we(r,"cloud-sync")},[g,o,j,r]),x=l.useCallback(()=>{!g||!o.active||d.current!==o||(He(!1),c(!1),h(_=>_?.scope===o?{..._,error:null}:_),we(r,"cloud-sync"))},[g,o,r]);return{cloudSyncOn:i,cloudSyncPending:!!m?.pending,cloudSyncError:m?.error,handleCloudSyncToggle:w,handleCloudSyncRetry:j,handleCloudSyncDisable:x,showLocalCloudSync:g}}function Bs(t){const[s,n]=l.useState(!1),[r,i]=l.useState(!1),[c,g]=l.useState(!1),[o,d]=l.useState(!1),[p,h]=l.useState(null),[m,j]=l.useState(!1),[w,x]=l.useState(""),[_,b]=l.useState(!1),[u,y]=l.useState(""),[k,f]=l.useState(""),[N,E]=l.useState(!1),[v,C]=l.useState(null),A=l.useMemo(()=>Gs(t),[t]),S=l.useMemo(()=>Ms(t),[t]),P=l.useMemo(()=>typeof t?.id=="string"?t.id.trim():"",[t]),M=l.useMemo(()=>({setAnonymousOn:i,setCustomDisplayName:h,setGithubUrl:y,setProfileLoading:g,setPublicProfileOn:n,setShowGithubOn:b}),[]);return{anonymousOn:r,customDisplayName:p,displayName:A,editingGithub:N,editingName:m,email:S,githubError:v,githubInput:k,githubUrl:u,loadSetters:M,nameInput:w,profileLoading:c,profileSaving:o,publicProfileOn:s,setAnonymousOn:i,setCustomDisplayName:h,setEditingGithub:E,setEditingName:j,setGithubError:C,setGithubInput:f,setGithubUrl:y,setNameInput:x,setProfileLoading:g,setProfileSaving:d,setPublicProfileOn:n,setShowGithubOn:b,showGithubOn:_,userId:P}}function Hs(t,s,n){l.useEffect(()=>{if(!s)return;let r=!0;return n.setProfileLoading(!0),(async()=>{try{const i=await ut({getAccessToken:t});if(!r||!i)return;const c=await Wt({accessToken:i});if(!r)return;n.setPublicProfileOn(!!c?.enabled),n.setAnonymousOn(!!c?.anonymous),c?.display_name&&n.setCustomDisplayName(c.display_name),n.setShowGithubOn(!!c?.show_github_url),n.setGithubUrl(c?.github_url||"")}catch(i){Ge("load public profile",i)}finally{r&&n.setProfileLoading(!1)}})(),()=>{r=!1}},[t,s,n])}function Vs(t,s,n){return l.useCallback(async(r,{label:i,onError:c,onSuccess:g}={})=>{if(!n||s.profileSaving)return!1;s.setProfileSaving(!0);try{const o=await ut({getAccessToken:t});if(!o)return!1;const d=await Zt({accessToken:o,...r});return g?.(d),!0}catch(o){return c?c(o):Ge(i||"mutate profile",o),!1}finally{s.setProfileSaving(!1)}},[t,s,n])}function qs(t,s){return{anonymousOn:t.anonymousOn,customDisplayName:t.customDisplayName,displayName:t.displayName,editingName:t.editingName,handleAnonymousToggle:s.handleAnonymousToggle,handleSaveName:s.handleSaveName,nameInput:t.nameInput,profileLoading:t.profileLoading,profileSaving:t.profileSaving,setEditingName:t.setEditingName,setNameInput:t.setNameInput,startEditingName:s.startEditingName}}function Ks(t,s){return{editingGithub:t.editingGithub,githubError:t.githubError,githubInput:t.githubInput,githubUrl:t.githubUrl,handleSaveGithub:s.handleSaveGithub,handleShowGithubToggle:s.handleShowGithubToggle,profileLoading:t.profileLoading,profileSaving:t.profileSaving,setEditingGithub:t.setEditingGithub,setGithubError:t.setGithubError,setGithubInput:t.setGithubInput,showGithubOn:t.showGithubOn,startEditingGithub:s.startEditingGithub}}function Ws(t,s){const n=l.useCallback(async()=>{const i=!t.publicProfileOn;await s({enabled:i},{label:"toggle public profile",onSuccess:()=>t.setPublicProfileOn(i)})},[s,t]);return{handleAnonymousToggle:l.useCallback(async()=>{const i=!t.anonymousOn;await s({anonymous:i},{label:"toggle anonymous",onSuccess:()=>t.setAnonymousOn(i)})},[s,t]),handlePublicProfileToggle:n}}function Zs(t,s,n){const r=l.useCallback(async()=>{const c=t.nameInput.trim().slice(0,50);c&&await s({display_name:c},{label:"save display name",onSuccess:()=>{t.setCustomDisplayName(c),t.setEditingName(!1),n?.()}})},[s,t,n]),i=l.useCallback(()=>{t.setNameInput(t.customDisplayName||t.displayName),t.setEditingName(!0)},[t]);return{handleSaveName:r,startEditingName:i}}function Ys(t,s){const n=l.useCallback(async()=>{if(!t.showGithubOn&&!t.githubUrl){t.setEditingGithub(!0),t.setGithubInput(""),t.setGithubError(null);return}const c=!t.showGithubOn;await s({show_github_url:c},{label:"toggle GitHub profile",onSuccess:()=>t.setShowGithubOn(c)})},[s,t]),r=l.useCallback(async()=>{const c=$s(t.githubInput);if(t.githubInput.trim()&&!c){t.setGithubError(a("settings.account.githubUrlInvalid"));return}t.setGithubError(null),await s({github_url:c,show_github_url:!!c},{label:"save GitHub profile",onError:g=>t.setGithubError(g?.message||a("settings.account.githubUrlInvalid")),onSuccess:g=>{t.setGithubUrl(g?.github_url||c||""),t.setShowGithubOn(!!c),t.setEditingGithub(!1)}})},[s,t]),i=l.useCallback(()=>{t.setGithubInput(t.githubUrl),t.setGithubError(null),t.setEditingGithub(!0)},[t]);return{handleSaveGithub:r,handleShowGithubToggle:n,startEditingGithub:i}}function Me(){const t=lt();l.useSyncExternalStore(Ht,Vt,()=>0);const s=ct(t.user?.id),r=!(s.membership?.status==="self_hosted"||s.catalog?.policy?.hosting_mode==="self_hosted")&&(dt()||s.membership?.hosting_mode==="hosted"),i=Bs(t.user),c=Fs(t.getAccessToken,t.enabled,t.signedIn,t.user?.id);Hs(t.getAccessToken,t.signedIn&&r,i.loadSetters);const g=Vs(t.getAccessToken,i,r),o=Ws(i,g),d=Zs(i,g,t.refreshDisplayName),p=Ys(i,g);return{...t,...c,email:i.email,handlePublicProfileToggle:o.handlePublicProfileToggle,userId:i.userId,name:qs(i,{...o,...d}),github:Ks(i,p),profileLoading:i.profileLoading,profileSaving:i.profileSaving,publicProfileOn:r&&i.publicProfileOn,publicProfileAvailable:r}}function Lt({disabled:t,onCancel:s,onSave:n,saveLabel:r=a("settings.account.save")}){return e.jsxs(e.Fragment,{children:[e.jsx(O,{variant:"primary",size:"sm",onClick:n,disabled:t,children:r}),e.jsx(O,{variant:"ghost",size:"sm",onClick:s,className:"text-oai-gray-500 hover:text-oai-gray-700 dark:hover:text-oai-gray-300",children:a("settings.account.cancel")})]})}function Js({nameInput:t,setEditingName:s,setNameInput:n,profileSaving:r,handleSaveName:i}){return e.jsxs("div",{className:"mt-2 flex items-center gap-2",children:[e.jsx("input",{type:"text",value:t,onChange:c=>n(c.target.value),onKeyDown:c=>{c.key==="Enter"&&i(),c.key==="Escape"&&s(!1)},maxLength:50,autoFocus:!0,className:`flex-1 ${ve}`,placeholder:a("settings.account.displayName")}),e.jsx(Lt,{disabled:r||!t.trim(),onCancel:()=>s(!1),onSave:i,saveLabel:r?a("settings.account.saving"):void 0})]})}function Xs({githubError:t,githubInput:s,handleSaveGithub:n,profileSaving:r,setEditingGithub:i,setGithubError:c,setGithubInput:g}){return e.jsxs("div",{className:"mt-2",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("input",{type:"text",value:s,onChange:o=>{g(o.target.value),t&&c(null)},onKeyDown:o=>{o.key==="Enter"&&n(),o.key==="Escape"&&(i(!1),c(null))},maxLength:100,autoFocus:!0,className:`flex-1 ${ve}`,placeholder:a("settings.account.githubUrlPlaceholder")}),e.jsx(Lt,{disabled:r,onCancel:()=>{i(!1),c(null)},onSave:n,saveLabel:r?a("settings.account.saving"):void 0})]}),t?e.jsx("div",{className:"mt-1.5 text-xs text-red-600 dark:text-red-400",children:t}):null]})}function Tt({disabled:t=!1,label:s,onClick:n,title:r}){return e.jsxs(O,{variant:"secondary",size:"sm",onClick:n,disabled:t,title:r,className:"gap-1.5",children:[e.jsx(Ba,{className:"h-3.5 w-3.5","aria-hidden":!0}),e.jsx("span",{children:s})]})}function Rt({actions:t,editing:s,editor:n,hint:r,label:i}){return e.jsx("div",{className:"py-3",children:e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("div",{className:"text-sm text-oai-gray-900 dark:text-oai-gray-200",children:i}),s?n:e.jsx("div",{className:"mt-0.5 truncate text-xs text-oai-gray-500 dark:text-oai-gray-400",children:r})]}),s?null:t]})})}function Qs({name:t}){const s=t.anonymousOn?a("settings.account.displayNameDisabledWhileAnon"):void 0;return e.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[e.jsx(Tt,{disabled:t.anonymousOn,label:a("settings.account.edit"),onClick:t.startEditingName,title:s}),e.jsx(z,{checked:!t.anonymousOn,onChange:t.handleAnonymousToggle,disabled:t.profileLoading||t.profileSaving,ariaLabel:a("settings.account.displayName")})]})}function en({name:t}){const{anonymousOn:s,customDisplayName:n,displayName:r,editingName:i,handleAnonymousToggle:c,handleSaveName:g,nameInput:o,profileLoading:d,profileSaving:p,setEditingName:h,setNameInput:m,startEditingName:j}=t,w=s?a("settings.account.displayNameAnonymousHint"):n||r;return e.jsx(Rt,{label:a("settings.account.displayName"),editing:i,hint:w,editor:e.jsx(Js,{nameInput:o,setEditingName:h,setNameInput:m,profileSaving:p,handleSaveName:g}),actions:e.jsx(Qs,{name:t})})}function tn({github:t}){const{editingGithub:s,githubError:n,githubInput:r,githubUrl:i,handleSaveGithub:c,handleShowGithubToggle:g,profileLoading:o,profileSaving:d,setEditingGithub:p,setGithubError:h,setGithubInput:m,showGithubOn:j,startEditingGithub:w}=t;return e.jsx(e.Fragment,{children:e.jsx(Rt,{label:a("settings.account.githubUrl"),editing:s,hint:i||a("settings.account.githubUrlHint"),editor:e.jsx(Xs,{githubError:n,githubInput:r,handleSaveGithub:c,profileSaving:d,setEditingGithub:p,setGithubError:h,setGithubInput:m}),actions:e.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[e.jsx(Tt,{label:a("settings.account.edit"),onClick:w}),e.jsx(z,{checked:j,onChange:g,disabled:o||d,ariaLabel:a("settings.account.githubUrl")})]})})})}function an(){const{openLoginModal:t}=gt();return e.jsx(Y,{title:a("settings.section.account"),children:e.jsxs("div",{className:"flex flex-col gap-3 py-3 sm:flex-row sm:items-center sm:justify-between sm:gap-4",children:[e.jsx("p",{className:"text-sm text-oai-gray-500 dark:text-oai-gray-400",children:a("settings.account.signedOutHint")}),e.jsx(O,{variant:"primary",size:"sm",onClick:t,children:a("settings.account.signIn")})]})})}function sn({name:t,github:s}){return e.jsxs(e.Fragment,{children:[e.jsx(en,{name:t}),e.jsx(tn,{github:s})]})}function nn({settings:t}={}){return t?e.jsx(It,{settings:t}):e.jsx(rn,{})}function rn(){const t=Me();return e.jsx(It,{settings:t})}function It({settings:t}){return t.enabled?t.signedIn?e.jsxs(Y,{title:a("settings.section.account"),subtitle:t.email||t.name.customDisplayName||t.name.displayName,action:e.jsx(ln,{onSignOut:t.signOut}),children:[e.jsx(on,{userId:t.userId}),e.jsx(cn,{checked:t.publicProfileOn,disabled:t.profileLoading||t.profileSaving||t.publicProfileAvailable===!1,onChange:t.handlePublicProfileToggle,unavailable:t.publicProfileAvailable===!1}),e.jsx(dn,{visible:t.publicProfileOn,name:t.name,github:t.github})]}):e.jsx(an,{}):null}function on({userId:t}){const[s,n]=Pe.useState(!1);if(!t)return null;const r=async()=>{try{if(typeof navigator>"u"||!navigator.clipboard?.writeText)return;await navigator.clipboard.writeText(t),n(!0),globalThis.setTimeout(()=>n(!1),1200)}catch{n(!1)}};return e.jsx(R,{label:a("settings.account.userId"),hint:e.jsx("span",{className:"font-mono",children:t}),control:e.jsxs(O,{variant:"secondary",size:"sm",onClick:r,"aria-label":a("settings.account.copyUserId"),className:"gap-1.5",children:[s?e.jsx(qa,{className:"h-3.5 w-3.5","aria-hidden":!0}):e.jsx(Ka,{className:"h-3.5 w-3.5","aria-hidden":!0}),e.jsx("span",{children:s?a("settings.account.copied"):a("settings.account.copy")})]})})}function ln({onSignOut:t}){return e.jsxs(O,{variant:"ghost",size:"sm",onClick:()=>t(),className:"!h-7 !px-2 text-xs text-oai-gray-500 hover:text-oai-gray-700 dark:hover:text-oai-gray-300",children:[e.jsx(Ls,{className:"h-3.5 w-3.5 mr-1.5","aria-hidden":!0}),e.jsx("span",{children:a("settings.account.signOut")})]})}function cn({checked:t,disabled:s,onChange:n,unavailable:r}){return e.jsx(R,{label:a("settings.account.publicProfile"),hint:a(r?"cloud.self_host.public_profile_disabled":"settings.account.publicProfileHint"),control:e.jsx(z,{checked:t,onChange:n,disabled:s,ariaLabel:a("settings.account.publicProfile")})})}function dn({visible:t,name:s,github:n}){return e.jsx(kt,{initial:!1,children:t?e.jsx(jt.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{height:{duration:.28,ease:[.22,1,.36,1]},opacity:{duration:.2,ease:[.22,1,.36,1]}},style:{overflow:"hidden"},className:"divide-y divide-oai-gray-200/60 dark:divide-oai-gray-800/60",children:e.jsx(sn,{name:s,github:n})},"public-profile-fields"):null})}function $e({open:t,onOpenChange:s,title:n,triggerLabel:r=n,icon:i,wide:c=!1,preventClose:g=!1,initialFocus:o,children:d}){return e.jsxs(Xa,{open:t,onOpenChange:(p,h)=>{if(!p&&g){h.cancel();return}s(p)},children:[e.jsxs(Is,{className:"inline-flex h-11 w-full items-center gap-3 rounded-md border-0 bg-transparent p-0 text-left text-sm font-medium text-oai-black transition-colors hover:bg-oai-gray-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-oai-gray-500 dark:text-oai-white dark:hover:bg-oai-gray-800",children:[i?e.jsx(i,{size:16,className:"shrink-0","aria-hidden":!0}):null,e.jsx("span",{className:"min-w-0 flex-1",children:r}),e.jsx(pt,{size:16,className:"shrink-0 text-oai-gray-500 dark:text-oai-gray-400","aria-hidden":!0})]}),e.jsxs(Qa,{children:[e.jsx(es,{className:"tt-cloud-action-backdrop fixed inset-0 z-[100] bg-black/40 dark:bg-black/60"}),e.jsx(ts,{className:"tt-cloud-settings fixed inset-0 z-[101] flex items-center justify-center overflow-y-auto overscroll-contain p-4",children:e.jsxs(as,{initialFocus:o,"aria-modal":"true",className:`tt-cloud-action-popup tt-cloud-theme relative max-h-[calc(100dvh-2rem)] w-full ${c?"max-w-2xl":"max-w-lg"} overflow-y-auto overscroll-contain rounded-xl bg-white p-5 shadow-xl outline-none dark:bg-oai-gray-900`,children:[e.jsxs("div",{className:"mb-3 flex min-h-11 items-center justify-between gap-4",children:[e.jsx(ss,{className:"min-w-0 text-lg font-semibold text-oai-black dark:text-oai-white",children:n}),e.jsx(ds,{disabled:g,"aria-label":a("shared.dialog.close"),className:"inline-flex size-11 min-h-11 min-w-11 shrink-0 items-center justify-center rounded-md border-0 bg-transparent p-0 text-oai-gray-500 transition-colors hover:bg-oai-gray-100 hover:text-oai-black focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-oai-gray-500 disabled:cursor-wait disabled:opacity-40 dark:text-oai-gray-400 dark:hover:bg-oai-gray-800 dark:hover:text-oai-white",children:e.jsx(Yt,{size:18,"aria-hidden":!0})})]}),e.jsx("div",{"data-settings-panel":"cloud",className:"min-w-0",children:d})]})})]})]})}function he(t){return t.replace(/[\t\n\r\f\v -]/g,"").toUpperCase()}function un({account:t,auth:s,refresh:n,compact:r=!1,panelContainer:i=null,layout:c="default",dialogOpen:g,onDialogOpenChange:o}){const d=c==="settings-row",[p,h]=l.useState(!1),m=d&&typeof g=="boolean"?g:p,[j,w]=l.useState(""),[x,_]=l.useState(!1),[b,u]=l.useState(null),[y,k]=l.useState(null),[f,N]=l.useState(!1),E=l.useId(),v=l.useRef(null),C=l.useRef(null),A=l.useRef(!1),S=l.useRef(!1),P=l.useRef(0),M=`${Oe()}.${t?.environment||"unknown"}.${s?.signedIn?s.user?.id:""}`,G=l.useRef(M);G.current=M,l.useEffect(()=>(S.current=!0,P.current+=1,C.current=null,A.current=!1,h(!1),w(""),_(!1),u(null),k(null),N(!1),()=>{S.current=!1,P.current+=1}),[M]);const J=t?.membership?.status==="self_hosted"||t?.membership?.hosting_mode==="self_hosted",V=t?.gift_redemption_available===!0,te=d?t?.gifts||[]:[];if(!s?.signedIn||J||!V&&!te.length)return null;const $=t.redemption_restriction,F=T=>{!T&&A.current||(typeof g!="boolean"&&h(T),o?.(T))},K=async(T,ie)=>{const re=await n();ie()&&N(!!re?.gifts?.some(W=>W.id===T?.id))},q=async T=>{if(A.current||T&&(!V||!j.trim()))return;if(T&&$&&$!=="gift_checkout_pending"){u(new Ne($));return}A.current=!0;const ie=++P.current,re=M,W=()=>S.current&&P.current===ie&&G.current===re;_(!0),u(null);try{if(T){const ae=j.trim();(!C.current||he(C.current.code)!==he(ae))&&(C.current={code:ae,request_id:crypto.randomUUID()});const oe=await ce("redeem-gift",{auth:async()=>{const de=await ft(s.getAccessToken);if(!W())throw new Ne("authentication_required",401);return de},body:C.current});if(!W())return;if(!oe?.gift?.id)throw new Ne("billing_operation_failed");k(oe),N(!1),w(""),C.current=null,await K(oe.gift,W)}else await K(y?.gift,W)}catch(ae){W()&&u(ae)}finally{W()&&(A.current=!1,_(!1))}};let L=null;return(d||m)&&(L=e.jsxs("div",{id:`${E}-panel`,className:d?"space-y-3":r?"w-full space-y-3 rounded-lg bg-oai-gray-50 p-4 dark:bg-oai-gray-950/50":"mt-3 space-y-3",children:[V?e.jsxs(e.Fragment,{children:[e.jsx("p",{id:`${E}-detail`,className:d?"sr-only":"text-xs leading-5 text-oai-gray-600 dark:text-oai-gray-300",children:a("cloud.gift.detail")}),y?e.jsxs("div",{role:"status",className:"space-y-2 text-sm leading-6",children:[d&&f?null:e.jsx("p",{children:a(f?y.already_redeemed?"cloud.gift.already_redeemed":"cloud.gift.redeemed":"cloud.gift.refresh_needed")}),y.gift?d&&f?e.jsxs("div",{className:"py-1",children:[e.jsx("p",{className:"text-base font-medium text-oai-black dark:text-oai-white",children:a("cloud.gift.duration",{days:y.gift.duration_days})}),e.jsx("p",{className:"mt-1 text-sm text-oai-gray-500 dark:text-oai-gray-400",children:a("cloud.history.term",{start:H(y.gift.starts_at),end:H(y.gift.ends_at)})})]}):e.jsx("p",{className:"text-xs text-oai-gray-600 dark:text-oai-gray-300",children:a("cloud.gift.term",{days:y.gift.duration_days,start:H(y.gift.starts_at),end:H(y.gift.ends_at)})}):null,f?e.jsxs("div",{className:"flex flex-wrap justify-end gap-2 pt-3",children:[e.jsx(O,{type:"button",variant:"secondary",size:"sm",onClick:()=>{k(null),N(!1),requestAnimationFrame(()=>v.current?.focus())},children:a("cloud.gift.redeem_another")}),d?e.jsx(O,{type:"button",size:"sm",className:"min-w-20",disabled:x,onClick:()=>F(!1),children:a("cloud.gift.done")}):null]}):e.jsx(O,{type:"button",variant:"secondary",disabled:x,onClick:()=>{q(!1)},children:a("cloud.action.refresh_membership")})]}):e.jsxs("form",{onSubmit:T=>{T.preventDefault(),q(!0)},"aria-busy":x,children:[e.jsx("label",{htmlFor:E,className:d?"sr-only":"text-sm font-medium",children:a("cloud.gift.code_label")}),e.jsxs("div",{className:"mt-2 flex flex-col gap-2 sm:flex-row",children:[e.jsx("input",{id:E,ref:v,value:j,disabled:x,maxLength:128,autoComplete:"off",spellCheck:!1,autoCapitalize:"characters","data-ph-no-capture":"true","aria-describedby":`${E}-detail${b?` ${E}-error`:""}`,"aria-invalid":!!b,onChange:T=>{he(T.target.value)!==he(j)&&(C.current=null),w(T.target.value),u(null)},className:"min-h-10 min-w-0 flex-1 rounded-md border border-oai-gray-300 bg-transparent px-3 font-mono text-sm outline-none focus:border-oai-brand focus:ring-2 focus:ring-inset focus:ring-oai-brand/30 dark:border-oai-gray-700"}),e.jsx(O,{type:"submit",variant:"secondary",disabled:x||!j.trim(),children:a(x?"cloud.gift.redeeming":"cloud.gift.confirm")})]})]}),b?e.jsx("div",{id:`${E}-error`,children:["gift_checkout_pending","gift_requires_renewal_cancel"].includes(b.code)?e.jsx("p",{role:"alert",className:"text-xs leading-5 text-oai-gray-600 dark:text-oai-gray-300",children:Jt(b,"gift")}):e.jsx(ee,{error:b,context:"gift"})}):null]}):null,te.length&&!y?e.jsx("ul",{"aria-label":a("cloud.gift.history_title"),className:"divide-y divide-oai-gray-200 dark:divide-oai-gray-800",children:te.map(T=>e.jsxs("li",{className:"py-3",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2 text-sm",children:[e.jsx("span",{children:a("cloud.gift.duration",{days:T.duration_days})}),e.jsx("span",{children:a(["active","pending","expired","revoked"].includes(T.state)?`cloud.gift.state_${T.state}`:"cloud.status.unknown")})]}),e.jsx("p",{className:"mt-1 text-xs leading-5 text-oai-gray-600 dark:text-oai-gray-300",children:a("cloud.history.term",{start:H(T.starts_at),end:H(T.ends_at)})})]},T.id))}):null]})),d?e.jsx($e,{open:m,onOpenChange:F,title:a(y&&f?"cloud.gift.redeemed":V?"cloud.gift.redeem_action":"cloud.gift.history_title"),triggerLabel:a(V?"cloud.gift.redeem_action":"cloud.gift.history_title"),icon:Te,preventClose:x,initialFocus:V&&!y?v:void 0,children:L}):e.jsxs("div",{className:d?void 0:r?"contents":"mt-4",children:[e.jsxs(O,{type:"button",variant:"ghost",size:r||d?"sm":"md",className:d?"!h-11 !w-full !justify-start !px-0 !text-oai-black dark:!text-oai-white hover:!bg-oai-gray-100 dark:hover:!bg-oai-gray-800 active:!scale-100":r?"!h-10 !px-0":void 0,"aria-expanded":m,"aria-controls":d||m?`${E}-panel`:void 0,onClick:()=>h(T=>!T),disabled:x,children:[r||d?e.jsx(Te,{size:16,className:`${d?"mr-3":"mr-2"} shrink-0`,"aria-hidden":!0}):null,a(V?"cloud.gift.redeem_action":"cloud.gift.history_title"),d?e.jsx(Re,{size:16,className:`ml-auto shrink-0 transition-transform motion-reduce:transition-none ${m?"rotate-180":""}`,"aria-hidden":!0}):null]}),!d&&i&&L?ht.createPortal(L,i):L]})}const be=["total_tokens","billable_total_tokens","input_tokens","output_tokens","cached_input_tokens","cache_creation_input_tokens","reasoning_output_tokens","conversation_count","total_cost_usd"];class U extends Error{constructor(s,n=0){super(s),this.code=s,this.status=n}code;status}function ge(t){return typeof t=="string"&&/^\d{4}-\d{2}-\d{2}$/.test(t)&&Number.isFinite(Date.parse(t+"T00:00:00Z"))&&new Date(t+"T00:00:00Z").toISOString().slice(0,10)===t}function mn(t,s){if(!ta(t))throw new U("export_auth_required",401);try{const n=t.split(".")[1].replace(/-/g,"+").replace(/_/g,"/"),r=JSON.parse(atob(n.padEnd(Math.ceil(n.length/4)*4,"=")));if((r.sub||r.user_id)!==s||r.role!=="authenticated"||!Number.isFinite(r.exp)||r.exp*1e3<=Date.now())throw Error()}catch{throw new U("export_auth_required",401)}}function it(t){if(typeof t?.membership?.can_read_cloud!="boolean")throw new U("export_invalid_data",503);if(!t.membership.can_read_cloud)throw new U("export_access_denied",402);const s=t.membership;return JSON.stringify([t.environment,s.phase,s.status,s.hosting_mode,s.expires_at,s.trial_ends_at,s.transition_ends_at,s.read_only_until])}async function gn({userId:t,auth:s,from:n,to:r,deviceId:i=null,signal:c,assertCurrent:g=()=>{},fetchImpl:o=fetch}){if(!ge(n)||!ge(r)||n>r)throw new U("export_invalid_dates",400);if(typeof s!="function")throw new U("export_auth_required",401);if(!t||i&&!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(i))throw new U("export_invalid_scope",400);const d=Oe(),p=Ve();if(!d)throw new U("export_instance_changed",409);const h=()=>{if(c?.aborted)throw new U("export_cancelled",409);if(g(),d!==Oe()||p!==Ve())throw new U("export_instance_changed",409)};async function m(u,y){h();const k=await ft(s);h(),mn(k||"",t);const f=new URL(Qt(d,u));for(const[C,A]of Object.entries(y))f.searchParams.set(C,A);const N=new AbortController,E=()=>N.abort();c?.addEventListener("abort",E,{once:!0});const v=setTimeout(E,25e3);try{const C=await ea(f.toString(),{method:"GET",cache:"no-store",redirect:"error",signal:N.signal,headers:{Accept:"application/json",Authorization:"Bearer "+k,...p?{apikey:p}:{}}},o);if(h(),!C.ok)throw new U(C.status===401?"export_auth_required":C.status===402||C.status===403?"export_access_denied":"export_failed",C.status);const A=await C.json();return h(),A}finally{clearTimeout(v),c?.removeEventListener("abort",E)}}const j=it(await m("tokentracker-billing",{action:"account"})),w={from:n,to:r,tz_offset_minutes:"0",...i?{device_id:i}:{}};if(await m("tokentracker-account-daily",w),it(await m("tokentracker-billing",{action:"account"}))!==j)throw new U("export_access_changed",409);const x=await m("tokentracker-account-daily",w);if(!ge(x?.from)||!ge(x?.to)||x.from<n||x.to>r||x.from>x.to||!Array.isArray(x.data)||x.data.length>1096)throw new U("export_invalid_data",503);const _=new Set,b=x.data.map(u=>{if(!ge(u?.day)||u.day<x.from||u.day>x.to||_.has(u.day))throw new U("export_invalid_data",503);_.add(u.day);const y={day:u.day};for(const k of be){const f=u[k];if(typeof f!="number"||!Number.isFinite(f)||f<0||k!=="total_cost_usd"&&!Number.isSafeInteger(f))throw new U("export_invalid_data",503);y[k==="total_cost_usd"?"estimated_cost_usd":k]=f}return y}).sort((u,y)=>u.day.localeCompare(y.day));return h(),{schema:"tokentracker.cloud-usage.v1",metadata:{source:"cloud",backend_origin:new URL(d).origin,exported_at:new Date().toISOString(),timezone:"UTC",requested_range:{from:n,to:r},effective_range:{from:x.from,to:x.to},device_scope:i?"selected":"all",aggregation:"daily_all_providers",cost_currency:"USD",cost_basis:"estimated",row_count:b.length},rows:b}}function pn(t){const s=String(t??"");return'"'+(/^[\s]*[=+\-@]/.test(s)?"'"+s:s).replace(/"/g,'""')+'"'}function hn(t,s){if(s==="json")return JSON.stringify(t,null,2)+`
3
3
  `;const n=t.metadata,r=["row_type","source","backend_origin","exported_at","timezone","cost_currency","cost_basis","requested_from","requested_to","effective_from","effective_to","device_scope","aggregation","row_count","day",...be.map(c=>c==="total_cost_usd"?"estimated_cost_usd":c)],i=[n.source,n.backend_origin,n.exported_at,n.timezone,n.cost_currency,n.cost_basis,n.requested_range.from,n.requested_range.to,n.effective_range.from,n.effective_range.to,n.device_scope,n.aggregation,n.row_count];return[r,["metadata",...i,"",...be.map(()=>"")],...t.rows.map(c=>["usage",...i,c.day,...be.map(g=>c[g==="total_cost_usd"?"estimated_cost_usd":g])])].map(c=>c.map(pn).join(",")).join(`\r
4
4
  `)+`\r
5
- `}async function fn(t,s,{signal:n,assertCurrent:r=()=>{}}={}){const i=hn(t,s),c=`tokentracker-cloud-usage-${t.metadata.effective_range.from}-${t.metadata.effective_range.to}.${s}`,g=()=>{if(n?.aborted)throw new U("export_cancelled",409);r()};g();const o=await Xt({filename:c,content:i,format:s,signal:n});if(g(),o?.saved===!0)return;if(o!==null)throw new U("export_failed",503);const d=new Blob([i],{type:s==="csv"?"text/csv;charset=utf-8":"application/json;charset=utf-8"}),p=URL.createObjectURL(d);try{const h=document.createElement("a");h.href=p,h.download=c,document.body.appendChild(h);try{h.click()}finally{h.remove()}}finally{setTimeout(()=>URL.revokeObjectURL(p),1e3)}}function xn(t){return t?.status===401?a("cloud.export.error_auth"):t?.status===402||t?.status===403?a("cloud.export.error_access"):t?.code==="export_invalid_dates"?a("cloud.export.error_dates"):t?.status===409?a("cloud.export.error_changed"):a("cloud.export.error_failed")}function bn({from:t,to:s,deviceId:n=null,auth:r,compact:i=!1,panelContainer:c=null,layout:g="default",dialogOpen:o,onDialogOpenChange:d}){const p=g==="settings-row",h=lt(),m=r||h,j=m?.signedIn?m.user?.id:null,w=new Date().toISOString().slice(0,10),x=new Date(Date.now()-29*864e5).toISOString().slice(0,10),[_,b]=l.useState(t||x),[u,y]=l.useState(s||w),[k,f]=l.useState(!1),N=p&&typeof o=="boolean"?o:k,[E,v]=l.useState(!1),[C,A]=l.useState(null),[S,P]=l.useState(null),[M,G]=l.useState(!1),[J,V]=l.useState(2),te=l.useId(),$=l.useRef(null),F=l.useRef(0),K=l.useRef(null),q=l.useRef(!1),L=l.useRef(!1),T=l.useRef(N);T.current=N;const ie=l.useRef(N);if($.current={userId:j,client:m?.client,start:_,end:u,deviceId:n,from:t,to:s},l.useEffect(()=>{L.current=!0;const I=()=>{++F.current,K.current?.abort(),q.current=!1,v(!1),P(null),A(null),G(!1)};return window.addEventListener(qe,I),()=>{L.current=!1,++F.current,K.current?.abort(),window.removeEventListener(qe,I)}},[]),l.useEffect(()=>{++F.current,K.current?.abort(),q.current=!1,v(!1),A(null),P(null),G(!1),t&&b(t),s&&y(s)},[j,m?.client,t,s,n]),l.useEffect(()=>{p&&ie.current&&!N&&re(),ie.current=N},[N,p]),l.useEffect(()=>{const I=window.matchMedia?.("(max-width: 639px)");if(!I)return;const D=()=>V(I.matches?1:2);return D(),I.addEventListener("change",D),()=>I.removeEventListener("change",D)},[]),!j||m?.enabled===!1)return null;function re(){++F.current,K.current?.abort(),q.current=!1,v(!1),A(null),P(null),G(!1)}function W(I){I||re(),typeof o!="boolean"&&f(I),d?.(I)}function ae(I,D){++F.current,K.current?.abort(),q.current=!1,v(!1),A(null),P(null),I(D)}async function oe(I){if(q.current)return;q.current=!0;const D=$.current,ke=++F.current,_e=new AbortController;K.current=_e,v(!0),A(null),P(null);const pe=()=>{const X=$.current;if(!L.current||ke!==F.current||p&&!T.current||!X||Object.keys(D).some(Q=>D[Q]!==X[Q])||D.client&&!aa(D.client))throw new U("export_cancelled",409)};try{const X=await gn({userId:D.userId,auth:m.getAccessToken,from:D.start,to:D.end,deviceId:D.deviceId,signal:_e.signal,assertCurrent:pe});pe(),await fn(X,I,{signal:_e.signal,assertCurrent:pe}),pe();const Q=X.metadata.effective_range,Fe=X.rows.length?a("cloud.export.success",{count:X.rows.length,from:Q.from,to:Q.to}):a("cloud.export.empty");P(Q.from!==D.start||Q.to!==D.end?`${Fe} ${a("cloud.export.truncated",{from:Q.from,to:Q.to})}`:Fe)}catch(X){L.current&&ke===F.current&&A(xn(X))}finally{ke===F.current&&(q.current=!1,L.current&&v(!1))}}const de="hover:!text-oai-black dark:hover:!text-oai-white hover:!bg-oai-gray-100 dark:hover:!bg-oai-gray-800 focus:!ring-oai-gray-500/40";let ue=null;return(p||N)&&(ue=e.jsxs("div",{id:te,className:p?void 0:i?"w-full rounded-lg bg-oai-gray-50 p-4 dark:bg-oai-gray-950/50":"mt-2 border-l-2 border-oai-gray-200 pl-3 dark:border-oai-gray-700","aria-busy":E,children:[p?null:e.jsx("p",{className:"text-xs leading-5 text-oai-gray-600 dark:text-oai-gray-300",children:a("cloud.export.description")}),e.jsxs("div",{className:p?"space-y-4":"mt-3 flex flex-wrap items-end gap-3",children:[p?e.jsxs(gs,{open:M,onOpenChange:G,children:[e.jsxs(ps,{disabled:E,"aria-label":a("trend.zoom.pick_range"),className:"inline-flex h-10 min-h-10 w-full items-center gap-2 rounded-md border border-oai-gray-300 bg-transparent px-3 text-sm text-oai-black transition-colors hover:bg-oai-gray-50 focus-visible:outline focus-visible:outline-2 focus-visible:outline-oai-gray-500 disabled:opacity-50 dark:border-oai-gray-700 dark:text-oai-white dark:hover:bg-oai-gray-800",children:[e.jsx(ms,{size:16,className:"shrink-0 text-oai-gray-500","aria-hidden":!0}),e.jsxs("span",{className:"flex-1 text-left tabular-nums",children:[_," → ",u]}),e.jsx(Re,{size:14,className:"shrink-0 text-oai-gray-500","aria-hidden":!0})]}),e.jsx(hs,{children:e.jsx(fs,{sideOffset:8,side:"bottom",align:"start",className:"z-[110]",children:e.jsx(xs,{className:"max-w-[calc(100vw-2rem)] rounded-xl border border-oai-gray-200 bg-white shadow-lg outline-none dark:border-oai-gray-700 dark:bg-oai-gray-900",children:e.jsx(us,{from:_,to:u,numberOfMonths:J,onApply:(I,D)=>{ae(b,I),y(D),G(!1)},onCancel:()=>G(!1)})})})})]}):e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"min-w-0 text-xs text-oai-gray-700 dark:text-oai-gray-200",children:[a("cloud.export.from"),e.jsx("input",{type:"date",value:_,onChange:I=>ae(b,I.target.value),className:`${p?"min-h-10 min-w-0 w-full ":""}mt-1 block rounded-md border border-oai-gray-300 bg-white px-2 py-1.5 text-sm text-oai-black focus:outline-none focus:ring-2 focus:ring-inset focus:ring-oai-gray-500/40 dark:border-oai-gray-700 dark:bg-oai-gray-900 dark:text-oai-white`})]}),e.jsxs("label",{className:"min-w-0 text-xs text-oai-gray-700 dark:text-oai-gray-200",children:[a("cloud.export.to"),e.jsx("input",{type:"date",value:u,onChange:I=>ae(y,I.target.value),className:`${p?"min-h-10 min-w-0 w-full ":""}mt-1 block rounded-md border border-oai-gray-300 bg-white px-2 py-1.5 text-sm text-oai-black focus:outline-none focus:ring-2 focus:ring-inset focus:ring-oai-gray-500/40 dark:border-oai-gray-700 dark:bg-oai-gray-900 dark:text-oai-white`})]})]}),e.jsxs("div",{className:p?"flex justify-end gap-2":"flex gap-2",children:[e.jsx(O,{type:"button",variant:p?"secondary":"ghost",size:"sm",className:`${de} ${p?"!min-h-8 !h-8":""}`,disabled:E,onClick:()=>oe("csv"),children:a("cloud.export.csv")}),e.jsx(O,{type:"button",variant:p?"secondary":"ghost",size:"sm",className:`${de} ${p?"!min-h-8 !h-8":""}`,disabled:E,onClick:()=>oe("json"),children:a("cloud.export.json")})]})]}),E?e.jsx("p",{role:"status",className:"mt-2 text-xs text-oai-gray-600 dark:text-oai-gray-300",children:a("cloud.export.busy")}):null,C?e.jsx("p",{role:"alert",className:"mt-2 text-xs text-red-700 dark:text-red-300",children:C}):null,S?e.jsx("p",{role:"status",className:"mt-2 text-xs text-oai-gray-600 dark:text-oai-gray-300",children:S}):null]})),p?e.jsx($e,{open:N,onOpenChange:W,title:a("cloud.export.open"),icon:Ie,children:ue}):e.jsxs("section",{className:i&&!p?"tt-cloud-theme contents":"tt-cloud-theme","aria-label":a("cloud.export.open"),children:[e.jsxs(O,{type:"button",variant:"ghost",size:"sm",className:`${de} ${p?"!h-11 !w-full !justify-start !px-0 !text-oai-black dark:!text-oai-white active:!scale-100":i?"!h-10 !px-0":""}`,"aria-expanded":N,"aria-controls":te,onClick:()=>f(I=>!I),children:[e.jsx(Ie,{className:`${p?"mr-3":"mr-2"} h-4 w-4 shrink-0`,"aria-hidden":"true"}),a("cloud.export.open"),p?e.jsx(Re,{size:16,className:`ml-auto shrink-0 transition-transform motion-reduce:transition-none ${N?"rotate-180":""}`,"aria-hidden":!0}):null]}),!p&&c&&ue?ht.createPortal(ue,c):ue]})}function yn({text:t,label:s}){const[n,r]=l.useState(!1);return e.jsxs(vs,{open:n,onOpenChange:r,children:[e.jsx(js,{delay:0,closeOnClick:!1,"aria-label":s,onClick:()=>r(!0),className:"inline-flex size-8 shrink-0 items-center justify-center rounded-md text-oai-gray-400 transition-colors hover:bg-oai-gray-100 hover:text-oai-gray-700 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-gray-500/40 dark:hover:bg-oai-gray-800 dark:hover:text-oai-gray-200",children:e.jsx(_t,{size:14,"aria-hidden":!0})}),e.jsx(ks,{children:e.jsx(_s,{side:"bottom",sideOffset:6,className:"z-[110]",children:e.jsx(ws,{role:"tooltip",className:"max-w-[min(320px,calc(100vw-2rem))] rounded-lg border border-oai-gray-200 bg-white px-3 py-2 text-xs leading-5 text-oai-gray-600 shadow-lg dark:border-oai-gray-700 dark:bg-oai-gray-900 dark:text-oai-gray-300",children:t})})})]})}function vn(t){return typeof t!="string"||!t.trim()?a("cloud.devices.platform_unknown"):/^(mac|darwin)/i.test(t)?a("leaderboard.community.modal.platform.darwin"):/^win/i.test(t)?a("leaderboard.community.modal.platform.win32"):/^linux/i.test(t)?a("leaderboard.community.modal.platform.linux"):t}function jn(t,s){if(!t)return null;const n=t.status==="active"&&t.access_source==="gift";if(s&&Number.isFinite(Date.parse(s))){const r=t.status==="transition"?"cloud.membership.transition_until":t.status==="trial"?"cloud.membership.trial_until":t.status==="active"?n?"cloud.membership.gift_until":"cloud.membership.active_until":t.status==="expired"&&Date.parse(s)<=Date.now()?"cloud.membership.expired_on":null;if(r)return a(r,{date:H(s)})}return n?a("cloud.gift.membership_label"):Ae(t.status)}function kn({auth:t,machineLimit:s,accountRevision:n,selfHosted:r=!1}){const[i,c]=l.useState(null),[g,o]=l.useState(null),[d,p]=l.useState(null),[h,m]=l.useState(!1),[j,w]=l.useState(null),x=l.useRef(!1),_=l.useRef(0),b=l.useRef(!0),u=t?.user?.id,y=t?.getAccessToken,k=l.useCallback(async()=>{const S=++_.current;try{let P;if(mt())try{const G=await ra(),J=await fetch("/functions/tokentracker-machine-id",{headers:G});J.ok&&(P=(await J.json())?.machineId)}catch{}const M=await ce("devices",{auth:y,params:P?{current_machine_id:P}:{}});S===_.current&&(c(M),o(null))}catch(P){S===_.current&&o({...P,code:"billing_devices_unavailable"})}},[y,u]);l.useEffect(()=>(b.current=!0,k(),()=>{b.current=!1,_.current+=1}),[k,n]);const f=async S=>{if(!x.current){x.current=!0,m(!0),o(null),w(null);try{if(await ce("remove-device",{auth:y,body:{machine_id:S}}),!b.current)return;i?.machines?.find(P=>P.machine_id===S)?.is_current&&We(),p(null),await k()}catch(P){b.current&&o(P)}finally{x.current=!1,m(!1)}}},N=async S=>{if(!x.current){x.current=!0,m(!0),o(null),w(null);try{if(await ce("resume-device",{auth:y,body:{machine_id:S.machine_id}}),!b.current)return;S.is_current&&We(),w(a("cloud.devices.resumed")),await k()}catch(P){b.current&&o(P)}finally{x.current=!1,m(!1)}}},E=i?.machines||[],v=i?.machine_count??E.filter(S=>S.status!=="paused").length,C=i?.machine_limit??s,A=C==null||v<C;return e.jsxs("div",{children:[e.jsxs("div",{className:"mb-1 flex items-center justify-between gap-3",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-1",children:[e.jsx("h3",{className:"text-sm font-semibold",children:a("cloud.devices.title")}),e.jsx(yn,{label:a("cloud.devices.detail"),text:a("cloud.devices.detail")})]}),e.jsx("span",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-400 tabular-nums",children:i?C==null?a(r?"cloud.devices.unlimited_self_hosted":"cloud.devices.unlimited",{count:v}):a("cloud.devices.count",{count:v,limit:C}):g?a("cloud.devices.count_unknown"):a("cloud.catalog.loading")})]}),i?.over_machine_limit||C!=null&&C<v?e.jsx("div",{className:"mb-4",children:e.jsx(ee,{children:a("cloud.devices.over_limit")})}):null,g?e.jsx(ee,{error:g,onRetry:k,context:"account"}):null,j?e.jsx("div",{className:"mb-3",children:e.jsx(ee,{children:j})}):null,!g&&i&&E.length===0?e.jsx("p",{className:"text-sm text-oai-gray-500 dark:text-oai-gray-400",children:a("cloud.devices.empty")}):null,E.length!==0?e.jsx("ul",{className:"divide-y divide-oai-gray-200 dark:divide-oai-gray-800",children:E.map(S=>e.jsxs("li",{className:"py-1.5",children:[e.jsxs("div",{className:"grid grid-cols-[17px_minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1",children:[e.jsx(Ue,{size:17,className:"col-start-1 row-start-1 text-oai-gray-500 dark:text-oai-gray-400","aria-hidden":!0}),e.jsx("p",{title:S.name||a("cloud.devices.unnamed"),className:"col-start-2 row-start-1 min-w-0 truncate text-sm font-medium",children:S.name||a("cloud.devices.unnamed")}),e.jsxs("div",{className:"col-span-2 col-start-2 row-start-2 flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-xs text-oai-gray-500 dark:text-oai-gray-400 sm:col-span-1 sm:col-start-2",children:[e.jsx("span",{children:vn(S.platform)}),e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsx("span",{children:S.last_seen_at?a("cloud.devices.last_seen",{date:oa(S.last_seen_at)}):a("cloud.devices.last_seen_unknown")}),S.is_current?e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsx("span",{children:a("cloud.devices.current")})]}):null,S.status==="paused"?e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsx("span",{children:a("cloud.devices.paused")})]}):null]}),S.status==="paused"&&!A?e.jsx("p",{className:"col-start-2 row-start-3 text-xs text-oai-gray-500 dark:text-oai-gray-400",children:a("cloud.devices.no_slot")}):null,e.jsxs(O,{variant:"ghost",size:"sm",className:"col-start-3 row-start-1 !min-h-10 !px-2 sm:row-span-2","aria-expanded":S.status!=="paused"?d===S.machine_id:void 0,"aria-controls":d===S.machine_id?`cloud-machine-confirm-${S.machine_id}`:void 0,onClick:()=>S.status==="paused"?N(S):p(P=>P===S.machine_id?null:S.machine_id),disabled:h||S.status==="paused"&&!A,children:[S.status==="paused"?e.jsx(bs,{size:14,className:"mr-1.5 shrink-0","aria-hidden":!0}):e.jsx(ys,{size:14,className:"mr-1.5 shrink-0","aria-hidden":!0}),S.status==="paused"?a("cloud.devices.resume"):a("cloud.devices.remove")]})]}),d===S.machine_id?e.jsxs("div",{id:`cloud-machine-confirm-${S.machine_id}`,className:"mt-3 rounded-lg bg-oai-gray-50 p-3 dark:bg-oai-gray-800",children:[e.jsx("p",{className:"text-xs leading-5",children:a("cloud.devices.remove_detail")}),e.jsxs("div",{className:"mt-3 flex gap-2",children:[e.jsx(O,{variant:"secondary",onClick:()=>f(S.machine_id),disabled:h,children:a("cloud.devices.confirm_remove")}),e.jsx(O,{variant:"ghost",onClick:()=>p(null),disabled:h,children:a("cloud.action.keep")})]})]}):null]},S.machine_id))}):null]})}function _n({recent:t,pendingOrders:s,conflictOrders:n,userId:r,payments:i=[],footerActions:c}){const g=xt(),[o,d]=l.useState(t?.order_id&&Ce.test(t.order_id)?t.order_id:""),[p,h]=l.useState(!1),[m,j]=l.useState(!1),w=l.useId(),x=l.useRef(null);l.useEffect(()=>{m&&x.current?.focus()},[m]);const _=new Set([...i.map(u=>u.order_id).filter(u=>typeof u=="string"),...(s||[]).filter(u=>u.status==="paid"||["paid","partially_refunded","refunded"].includes(u.payment_state)).map(u=>u.id)].map(u=>u.toLowerCase())),b=[...n||[],...(s||[]).filter(u=>u.retry_payment_conflict_at||!_.has(u.id.toLowerCase()))].filter((u,y,k)=>k.findIndex(f=>f.id===u.id)===y);return e.jsxs("div",{className:"mt-2 space-y-3",children:[t?.request_id&&!t.order_id?e.jsx(ye,{to:`/billing/checkout?sku=${encodeURIComponent(t.sku)}`,className:"mt-3 inline-flex min-h-10 items-center text-sm text-oai-brand underline underline-offset-4",children:a("cloud.action.resume_purchase")}):null,b.length||i.length?e.jsxs("div",{className:"sm:grid sm:grid-cols-[minmax(0,1fr)_auto_minmax(7rem,auto)] sm:gap-x-4",children:[e.jsxs("div",{"aria-hidden":!0,className:"hidden gap-x-4 pb-1 text-xs text-oai-gray-500 dark:text-oai-gray-400 sm:col-span-3 sm:grid sm:grid-cols-subgrid",children:[e.jsx("span",{children:a("cloud.history.date")}),e.jsx("span",{className:"text-right",children:a("cloud.history.amount")}),e.jsx("span",{className:"text-right",children:a("cloud.history.status")})]}),e.jsxs("ul",{className:"divide-y divide-oai-gray-200 dark:divide-oai-gray-800 sm:col-span-3 sm:grid sm:grid-cols-subgrid",children:[b.map(u=>{const y=typeof u.created_at=="string"&&Number.isFinite(Date.parse(u.created_at))?H(u.created_at):null;let k=null;Number.isInteger(u.amount_cents)&&u.amount_cents>=0&&["USD","CNY"].includes(u.currency)&&(k=Le(u.amount_cents,u.currency));const f=a(u.retry_payment_conflict_at?"cloud.action.review_duplicate_payment":"cloud.history.pending");return e.jsxs("li",{className:"grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-4 gap-y-1 py-3 sm:col-span-3 sm:grid-cols-subgrid",children:[e.jsx("p",{className:"col-start-1 row-start-1 text-sm tabular-nums",children:y||f}),e.jsx("p",{className:"col-start-2 row-start-1 text-right text-sm font-medium tabular-nums",children:k}),u.provider||y?e.jsxs("div",{className:"col-start-1 row-start-2 flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-xs text-oai-gray-500 dark:text-oai-gray-400",children:[u.provider?e.jsx("span",{children:bt(u.provider)}):null,y?e.jsxs(e.Fragment,{children:[u.provider?e.jsx("span",{"aria-hidden":!0,children:"·"}):null,e.jsx("span",{children:f})]}):null]}):null,e.jsx(ye,{to:`/billing/checkout?order=${encodeURIComponent(u.id)}`,onClick:N=>{u.retry_payment_conflict_at||N.button!==0||N.metaKey||N.ctrlKey||N.shiftKey||N.altKey||!Ce.test(u.id)||(N.preventDefault(),g(Ke({orderId:u.id,userId:r})))},className:"col-start-2 row-start-2 inline-flex min-h-10 items-center justify-end rounded-sm text-right text-sm underline-offset-4 hover:underline focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 sm:col-start-3 sm:row-span-2 sm:row-start-1 sm:self-start sm:items-start",children:e.jsx("span",{children:u.retry_payment_conflict_at?a("cloud.action.review_duplicate_payment"):a("cloud.action.resume_order")})})]},u.id)}),e.jsx(wn,{payments:i})]})]}):e.jsx(e.Fragment,{children:(!t?.request_id||t.order_id)&&e.jsx("p",{className:"py-2 text-sm text-oai-gray-500 dark:text-oai-gray-400",children:a("cloud.history.empty")})}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-x-4 gap-y-1",children:[e.jsx(O,{variant:"ghost",size:"sm",className:"!h-10 !px-0","aria-expanded":m,"aria-controls":`${w}-panel`,onClick:()=>j(u=>!u),children:a("cloud.restore.title")}),c]}),m?e.jsxs("div",{id:`${w}-panel`,className:"mt-2",children:[e.jsx("p",{className:"text-xs leading-5 text-oai-gray-500 dark:text-oai-gray-400",children:a("cloud.restore.detail")}),e.jsxs("form",{className:"mt-4",onSubmit:u=>{if(u.preventDefault(),!Ce.test(o.trim())){h(!0);return}const y=o.trim(),k=b.some(f=>f.id.toLowerCase()===y.toLowerCase()&&f.retry_payment_conflict_at);g(k?`/billing/checkout?order=${encodeURIComponent(y)}`:Ke({orderId:y,userId:r}))},children:[e.jsx("label",{htmlFor:`${w}-input`,className:"text-xs text-oai-gray-500 dark:text-oai-gray-400",children:a("cloud.checkout.order_id")}),e.jsxs("div",{className:"mt-2 flex flex-col gap-2 sm:flex-row",children:[e.jsx("input",{id:`${w}-input`,ref:x,value:o,onChange:u=>{d(u.target.value),h(!1)},placeholder:a("cloud.restore.placeholder"),className:"min-h-10 min-w-0 flex-1 rounded-md border border-oai-gray-300 bg-transparent px-3 text-sm outline-none focus:border-oai-brand focus:ring-2 focus:ring-inset focus:ring-oai-brand/30 dark:border-oai-gray-700","aria-invalid":p,"aria-describedby":p?`${w}-error`:void 0}),e.jsx(O,{type:"submit",variant:"secondary",children:a("cloud.action.restore")})]}),p?e.jsx("p",{id:`${w}-error`,role:"alert",className:"mt-2 text-xs text-red-600 dark:text-red-400",children:a("cloud.restore.invalid")}):null]})]}):null]})]})}function wn({payments:t}){return e.jsx(e.Fragment,{children:t.map(s=>e.jsxs("li",{className:"grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-4 gap-y-1 py-3 sm:col-span-3 sm:grid-cols-subgrid",children:[e.jsx("p",{className:"col-start-1 row-start-1 text-sm tabular-nums",children:H(s.paid_at)}),e.jsx("p",{className:"col-start-2 row-start-1 text-right text-sm font-medium tabular-nums",children:Le(s.amount_cents,s.currency)}),e.jsxs("div",{className:"col-start-1 row-start-2 flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-xs text-oai-gray-500 dark:text-oai-gray-400",children:[e.jsx("span",{children:bt(s.provider)}),e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsx("span",{children:a("cloud.history.term",{start:H(s.starts_at),end:H(s.ends_at)})})]}),e.jsx("p",{className:`col-start-2 row-start-2 text-right text-sm font-medium sm:col-start-3 sm:row-span-1 sm:row-start-1 sm:self-start ${s.refunded_cents>0?"text-amber-700 dark:text-amber-400":"text-oai-gray-600 dark:text-oai-gray-300"}`,children:s.refunded_cents>0?a("cloud.history.refunded",{amount:Le(s.refunded_cents,s.currency)}):a("cloud.history.paid")})]},s.id))})}function Nn({showTitle:t=!0,heading:s,syncControl:n,active:r=!0}){const i=sa();return e.jsx(Sn,{showTitle:t,heading:s,syncControl:n,active:r,...i},i.auth?.signedIn?i.auth.user?.id:"signed-out")}function Sn({account:t,auth:s,loading:n,error:r,refresh:i,showTitle:c,heading:g,syncControl:o,active:d=!0}){const{openLoginModal:p}=gt(),[h,m]=l.useState(null),[j,w]=l.useState(null),[x,_]=l.useState(!1),[b,u]=l.useState(null),y=l.useRef(!1),k=l.useRef(!0);l.useEffect(()=>{d||m(null)},[d]),l.useEffect(()=>(k.current=!0,()=>{k.current=!1}),[]);const f=t?.membership,N=f?.status==="self_hosted"||f?.hosting_mode==="self_hosted",E=[...t?.conflict_orders||[],...t?.pending_orders||[]].some(L=>L.retry_payment_conflict_at),v=!N&&t?.subscriptions?.find(L=>["active","trialing","past_due","paused","canceling"].includes(L.status)),C=!N&&(v?v.provider==="waffo":t?.payments?.some(L=>L.provider==="waffo")),A=v&&!v.cancel_at_period_end&&v.status!=="canceling",S=A&&v.status!=="paused",P=v?.next_billed_at,M=P&&Number.isFinite(Date.parse(P));l.useEffect(()=>{b&&t&&!A&&(u(null),w(null))},[t,b,A]);const G=N?null:f?.status==="trial"?f.trial_ends_at:f?.status==="transition"?f.transition_ends_at:f?.expires_at,J=async L=>{if(!y.current){y.current=!0,_(!0),w(null);try{await L()}catch(T){k.current&&w(T)}finally{y.current=!1,_(!1)}}},V=()=>J(async()=>{const L=await ce("portal",{auth:s.getAccessToken,body:v?{subscription_id:v.provider_subscription_id}:{}});k.current&&await Ya(L.url||L.portal_url)}),te=()=>J(async()=>{await ce("cancel",{auth:s.getAccessToken,body:{subscription_id:b}}),k.current&&(u(null),await i())}),$=jn(f,G),F=f?.status==="active"&&f?.access_source==="gift",K=C&&!v||f?.can_read_cloud||!N&&t?.gift_redemption_available===!0;if(!s?.signedIn)return e.jsx("div",{className:"space-y-4",children:e.jsx(Y,{title:g||(c?a("cloud.membership.title"):a("settings.section.cloud")),children:e.jsxs("div",{className:"flex flex-col gap-3 py-3 sm:flex-row sm:items-center sm:justify-between sm:gap-4",children:[e.jsx("p",{className:"text-sm text-oai-gray-500 dark:text-oai-gray-400",children:a("cloud.membership.signed_out")}),e.jsx(O,{variant:"primary",size:"sm",onClick:()=>p({subtitle:a("cloud.membership.signed_out")}),children:a("cloud.action.sign_in_continue")})]})})});const q=g||(c?a("cloud.membership.title"):a("settings.section.cloud"));return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("section",{"aria-label":a("cloud.membership.title"),className:"tt-cloud-theme space-y-3",children:[t?.environment==="sandbox"?e.jsx(ee,{children:a("cloud.catalog.sandbox")}):null,E?e.jsx(na,{showBillingLink:!1}):null,e.jsxs(Y,{title:q,action:e.jsx(O,{onClick:i,variant:"ghost",size:"sm",className:"!h-8 !w-8 shrink-0 !p-0 text-oai-gray-500 hover:text-oai-black dark:text-oai-gray-400 dark:hover:text-white",disabled:n,"aria-label":a("cloud.action.refresh_membership"),children:e.jsx(De,{size:14,className:n?"motion-safe:animate-spin":void 0,"aria-hidden":!0})}),children:[e.jsx("div",{className:"pt-0.5 pb-2.5",children:F?e.jsxs("div",{className:"flex items-center gap-3.5",children:[e.jsx("div",{className:"flex h-11 w-11 shrink-0 items-center justify-center rounded-lg border border-oai-gray-200 bg-oai-gray-50 text-oai-gray-700 dark:border-oai-gray-800 dark:bg-oai-gray-800/60 dark:text-oai-gray-300",children:e.jsx(Te,{className:"h-[30px] w-[30px]","aria-hidden":!0})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"text-sm font-semibold text-oai-black dark:text-white",children:a("cloud.gift.membership_label")}),e.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-oai-gray-200 bg-oai-gray-50 px-2 py-0.5 text-[11px] font-medium text-oai-gray-700 dark:border-oai-gray-800 dark:bg-oai-gray-800/60 dark:text-oai-gray-300",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 dark:bg-emerald-400"}),a("cloud.gift.state_active")]})]}),$&&$!==a("cloud.gift.membership_label")?e.jsx("p",{className:"mt-1 text-xs text-oai-gray-500 dark:text-oai-gray-400",children:$}):null]})]}):e.jsxs("div",{className:"flex items-center gap-3.5",children:[e.jsx("div",{className:"flex h-11 w-11 shrink-0 items-center justify-center rounded-lg border border-oai-gray-200 bg-oai-gray-50 text-oai-gray-700 dark:border-oai-gray-800 dark:bg-oai-gray-800/60 dark:text-oai-gray-300",children:e.jsx(fe,{className:"h-[30px] w-[30px]","aria-hidden":!0})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"text-sm font-semibold text-oai-black dark:text-white",children:Ae(f?.status)}),f?.status==="active"?e.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-oai-gray-200 bg-oai-gray-50 px-2 py-0.5 text-[11px] font-medium text-oai-gray-700 dark:border-oai-gray-800 dark:bg-oai-gray-800/60 dark:text-oai-gray-300",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 dark:bg-emerald-400"}),a("cloud.gift.state_active")]}):null]}),$&&$!==Ae(f?.status)?e.jsx("p",{className:"mt-1 text-xs text-oai-gray-500 dark:text-oai-gray-400",children:$}):null]})]})}),f?.status==="expired"?e.jsx("p",{className:"py-2.5 text-xs leading-5 text-oai-gray-500 dark:text-oai-gray-400",children:f.can_read_cloud?a("cloud.membership.read_only",{date:H(f.read_only_until)}):a("cloud.membership.expired_detail")}):null,f?e.jsx(ia,{userId:s.user?.id,membership:f,subscriptions:t?.subscriptions,className:"py-2.5"}):null,!f&&n?e.jsx("p",{role:"status",className:"py-2.5 text-sm text-oai-gray-500 dark:text-oai-gray-400",children:a("cloud.catalog.loading")}):null,v?e.jsx("div",{className:"flex flex-wrap items-center justify-between gap-3 py-2.5",children:e.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1",children:[e.jsx("p",{className:"text-xs leading-5 text-oai-gray-500 dark:text-oai-gray-400",children:v.status==="paused"?a("cloud.membership.renewal_paused"):v.status==="past_due"?a("cloud.membership.payment_due"):S?M?a("cloud.membership.renews",{date:H(P)}):a("cloud.membership.renewal_unknown"):a("cloud.membership.renewal_off")}),A?e.jsx(O,{"aria-expanded":!!b,"aria-controls":b?"cloud-cancel-confirm":void 0,onClick:()=>u(L=>L===v.provider_subscription_id?null:v.provider_subscription_id),variant:"ghost",size:"sm",className:"!h-8 !px-2 text-xs",disabled:x,children:a("cloud.action.cancel_renewal")}):null]})}):null,b?e.jsxs("div",{id:"cloud-cancel-confirm",className:"my-3 rounded-lg border border-oai-gray-200 p-4 dark:border-oai-gray-800",children:[e.jsx("p",{className:"text-sm leading-6",children:G?a("cloud.cancel.detail",{date:H(G)}):a("cloud.cancel.no_term")}),e.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[e.jsx(O,{onClick:te,variant:"secondary",disabled:x,children:a("cloud.cancel.confirm")}),e.jsx(O,{onClick:()=>u(null),variant:"ghost",disabled:x,children:a("cloud.action.keep")})]})]}):null,r?e.jsx("div",{className:"py-2.5",children:e.jsx(ee,{error:r,onRetry:i,context:"account"})}):null,j&&h!=="billing"?e.jsx("div",{className:"py-2.5",children:e.jsx(ee,{error:j,context:"account"})}):null]})]}),f?e.jsx(st,{className:"tt-cloud-theme !rounded-lg",bodyClassName:"!py-3",children:e.jsx(kn,{auth:s,machineLimit:f.machine_limit,accountRevision:t,selfHosted:N})}):null,K||t&&!N||o?e.jsx(st,{className:"tt-cloud-theme !rounded-lg",bodyClassName:"!py-2",children:e.jsxs("section",{"aria-label":a("cloud.membership.tools_title"),className:"divide-y divide-oai-gray-200 dark:divide-oai-gray-800",children:[N?null:v?e.jsxs("button",{type:"button",onClick:V,disabled:x,className:"inline-flex h-11 w-full items-center gap-3 rounded-md border-0 bg-transparent p-0 text-left text-sm font-medium text-oai-black transition-colors hover:bg-oai-gray-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-oai-gray-500 disabled:opacity-50 dark:text-oai-white dark:hover:bg-oai-gray-800",children:[e.jsx(fe,{size:16,className:"shrink-0","aria-hidden":!0}),e.jsx("span",{className:"min-w-0 flex-1",children:a("cloud.action.manage_subscription")}),e.jsx(nt,{size:16,className:"shrink-0 text-oai-gray-500 dark:text-oai-gray-400","aria-hidden":!0})]}):e.jsxs(ye,{to:"/cloud",className:"inline-flex h-11 w-full items-center gap-3 rounded-md border-0 bg-transparent p-0 text-left text-sm font-medium text-oai-black transition-colors hover:bg-oai-gray-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-oai-gray-500 dark:text-oai-white dark:hover:bg-oai-gray-800",children:[e.jsx(fe,{size:16,className:"shrink-0","aria-hidden":!0}),e.jsx("span",{className:"min-w-0 flex-1",children:a("cloud.action.subscribe")}),e.jsx(pt,{size:16,className:"shrink-0 text-oai-gray-500 dark:text-oai-gray-400","aria-hidden":!0})]}),t&&!N?e.jsxs($e,{open:h==="billing",onOpenChange:L=>m(L?"billing":null),title:a("cloud.billing.title"),icon:Es,wide:!0,children:[j?e.jsx("div",{className:"mb-3",children:e.jsx(ee,{error:j,context:"account"})}):null,e.jsx(_n,{userId:s.user?.id,recent:Za(s.user?.id),pendingOrders:t?.pending_orders,conflictOrders:t?.conflict_orders,payments:t.payments,footerActions:C&&!v?e.jsx("div",{className:"flex items-center gap-0.5",children:e.jsxs(O,{onClick:V,variant:"ghost",size:"sm",className:"!h-10 !px-0",disabled:x,children:[a("cloud.action.view_bills"),e.jsx(nt,{size:14,className:"ml-2","aria-hidden":!0})]})}):null})]}):null,f?.can_read_cloud?e.jsx(bn,{auth:s,layout:"settings-row",dialogOpen:h==="export",onDialogOpenChange:L=>m(L?"export":null)}):null,e.jsx(un,{account:t,auth:s,refresh:i,layout:"settings-row",dialogOpen:h==="redeem",onDialogOpenChange:L=>m(L?"redeem":null)}),o?e.jsx("section",{children:o}):null]})}):null]})}function Cn({settings:t,active:s=!0}={}){return t?e.jsx(Dt,{settings:t,active:s}):e.jsx(En,{active:s})}function En({active:t}){const s=Me();return e.jsx(Dt,{settings:s,active:t})}function Dt({settings:t,active:s}){return e.jsx(Nn,{showTitle:!1,active:s,syncControl:t.showLocalCloudSync?e.jsx(Pn,{settings:t}):null})}function Pn({settings:t}){const s=ct(t.userId),n=dt()&&s.membership?.status!=="self_hosted"&&s.membership?.hosting_mode!=="self_hosted"&&s.catalog?.policy?.hosting_mode!=="self_hosted";return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex min-h-11 items-center justify-between gap-3",children:[e.jsxs("span",{className:"inline-flex min-w-0 items-center gap-3 text-sm font-medium",children:[e.jsx(De,{size:16,className:"shrink-0","aria-hidden":!0}),a("settings.account.cloudSync")]}),e.jsx("span",{className:"tt-cloud-theme tt-cloud-sync-control inline-flex","aria-busy":t.cloudSyncPending||void 0,children:e.jsx(z,{checked:t.cloudSyncOn,disabled:t.cloudSyncPending,onChange:()=>(t.cloudSyncOn?Ze(t.userId):la(t.userId,"sync"),t.handleCloudSyncToggle()),ariaLabel:a("settings.account.cloudSync")})})]}),t.cloudSyncOn&&t.cloudSyncPending?e.jsxs("p",{role:"status",className:"flex items-center gap-2 py-3 text-xs text-oai-gray-500 dark:text-oai-gray-400",children:[e.jsx(xe,{size:14,className:"motion-safe:animate-spin","aria-hidden":!0}),a("settings.account.cloudSyncPending")]}):null,t.cloudSyncOn&&t.cloudSyncError&&!t.cloudSyncPending?e.jsx("div",{className:"tt-cloud-theme py-3",children:e.jsx(ee,{role:"alert",onRetry:t.handleCloudSyncRetry,children:a("settings.account.cloudSyncError")})}):null,e.jsx(ca,{userId:t.userId,panel:"sync",localHost:!0,className:"py-3",onContinueLocal:()=>{Ze(t.userId),t.cloudSyncOn&&t.handleCloudSyncDisable()}}),t.cloudSyncOn&&n?e.jsx(On,{settings:t}):null]})}function On({settings:t}){const[s,n]=l.useState(!1),[r,i]=l.useState(null),[c,g]=l.useState(!1),o=l.useMemo(()=>({active:!0,busy:!1}),[t.userId,t.getAccessToken]);l.useEffect(()=>(o.active=!0,n(!1),i(null),g(!1),()=>{o.active=!1}),[o]);const d=async()=>{if(!(!o.active||o.busy||!t.cloudSyncOn)){o.busy=!0,g(!0),i(null);try{const p=await da(t.getAccessToken);o.active&&(i(p.pending?"pending":"complete"),n(!1))}catch(p){o.active&&i(p.code==="cloud_usage_reset_sync_busy"?"busy":"error")}finally{o.busy=!1,o.active&&g(!1)}}};return e.jsxs("div",{className:"border-t border-oai-gray-200 py-3 dark:border-oai-gray-800",children:[e.jsx(O,{size:"sm",variant:"secondary",disabled:c||t.cloudSyncPending,onClick:()=>{i(null),n(!0)},children:a("cloud.rebuild.action")}),r==="pending"||r==="complete"?e.jsx("p",{role:"status",className:"mt-2 text-xs text-oai-gray-500",children:a(r==="pending"?"cloud.rebuild.pending":"cloud.rebuild.complete")}):null,e.jsx(wt,{open:s,title:a("cloud.rebuild.title"),description:a("cloud.rebuild.description"),destructive:!0,busy:c,confirmLabel:a("cloud.rebuild.action"),cancelLabel:a("shared.action.cancel"),error:r==="error"?a("cloud.rebuild.error"):r==="busy"?a("cloud.rebuild.busy"):null,onConfirm:d,onCancel:()=>n(!1)})]})}function An(){return[{value:"light",label:a("settings.appearance.theme.light"),Icon:ma},{value:"dark",label:a("settings.appearance.theme.dark"),Icon:ga},{value:"system",label:a("settings.appearance.theme.system"),Icon:Ue}]}function Ln(){return[{value:fa,label:a("settings.appearance.language.system")},{value:xa,label:a("settings.appearance.language.english")},{value:ba,label:a("settings.appearance.language.chinese")},{value:ya,label:a("settings.appearance.language.traditional_chinese")},{value:va,label:a("settings.appearance.language.japanese")},{value:ja,label:a("settings.appearance.language.korean")},{value:ka,label:a("settings.appearance.language.german")}]}function Tn(t){if(!t)return null;try{const s=new Date(t);return Number.isNaN(s.getTime())?null:s.toLocaleString()}catch{return null}}function Rn(t,s){const n=a(`settings.appearance.currency.rate_source.${t}`),r=Tn(s),i=r?a("settings.appearance.currency.rate_updated",{when:r}):a("settings.appearance.currency.rate_never");return`${n} · ${i}`}function In({locale:t,setLocale:s}){const n=Ln();return e.jsx(ze,{value:t,onValueChange:s,options:n,ariaLabel:a("settings.appearance.language.label"),className:"px-2.5 py-1.5 text-xs font-medium",leadingIcon:e.jsx(As,{className:"h-3.5 w-3.5 text-oai-gray-500 dark:text-oai-gray-400","aria-hidden":!0})})}function Dn({currency:t,setCurrency:s}){const n=pa().map(r=>({value:r.code,label:a(r.labelKey)}));return e.jsx(ze,{value:t,onValueChange:s,options:n,ariaLabel:a("settings.appearance.currency.label"),className:"px-3 py-1.5 text-xs font-medium"})}function Un({currency:t,rate:s,rateSource:n,rateFetchedAt:r}){if(t===ha)return e.jsx(e.Fragment,{children:a("settings.appearance.currency.hint")});const i=Rn(n,r);return e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx("span",{children:`1 USD = ${s.toFixed(4)} ${t}`}),e.jsx("span",{role:"img","aria-label":i,title:i,className:"inline-flex h-4 w-4 cursor-help items-center justify-center text-oai-gray-400 hover:text-oai-gray-600 dark:text-oai-gray-500 dark:hover:text-oai-gray-300",children:e.jsx(_t,{className:"h-3.5 w-3.5","aria-hidden":!0})})]})}function zn(){const{theme:t,setTheme:s}=ua(),{locale:n,setLocale:r}=yt(),{currency:i,rate:c,rateSource:g,rateFetchedAt:o,setCurrency:d}=Ns(),{mode:p,setMode:h,unitSystem:m,setUnitSystem:j,grouping:w,setGrouping:x}=Ss();return e.jsxs(Y,{title:a("settings.section.appearance"),children:[e.jsx(R,{label:a("settings.appearance.theme.label"),hint:a("settings.appearance.theme.hint"),control:e.jsx(se,{options:An(),value:t,onChange:s})}),e.jsx(R,{label:a("settings.appearance.language.label"),hint:a("settings.appearance.language.hint"),control:e.jsx(In,{locale:n,setLocale:r})}),e.jsx(R,{label:a("settings.appearance.currency.label"),hint:e.jsx(Un,{currency:i,rate:c,rateSource:g,rateFetchedAt:o}),control:e.jsx(Dn,{currency:i,setCurrency:d})}),e.jsx(R,{label:a("settings.appearance.token_format.label"),hint:a("settings.appearance.token_format.hint"),control:e.jsx(se,{options:[{value:Se.COMPACT,label:a("settings.appearance.token_format.compact")},{value:Se.FULL,label:a("settings.appearance.token_format.full")}],value:p,onChange:h})}),e.jsx(R,{label:a("settings.appearance.token_unit.label"),hint:a("settings.appearance.token_unit.hint"),control:e.jsx(se,{disabled:p!==Se.COMPACT,options:[{value:Ye.ENGLISH,label:a("settings.appearance.token_unit.english")},{value:Ye.CHINESE,label:a("settings.appearance.token_unit.chinese")}],value:m,onChange:j})}),e.jsx(R,{label:a("settings.appearance.token_grouping.label"),hint:a("settings.appearance.token_grouping.hint"),control:e.jsx(se,{options:[{value:Je.THOUSAND,label:a("settings.appearance.token_grouping.thousand")},{value:Je.WAN,label:a("settings.appearance.token_grouping.wan")}],value:w,onChange:x})})]})}function Ee({labelKey:t}){return e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{children:a(t)}),e.jsx("span",{className:"px-1.5 py-0.5 text-[8px] font-semibold tracking-wider text-oai-gray-500 bg-oai-gray-100 dark:text-oai-gray-400 dark:bg-oai-gray-800/80 rounded uppercase scale-90 origin-left",children:a("qpd.card.badge")})]})}function Gn(){const{enabled:t,toggle:s}=Ha(),{enabled:n,toggle:r}=Va(),{available:i,settings:c,setSetting:g}=je(),o=i&&!!c?.dynamicIslandSupported,d=!!c?.dynamicIslandEnabled;return e.jsxs(Y,{title:a("settings.section.labs"),children:[o&&e.jsxs(e.Fragment,{children:[e.jsx(R,{label:e.jsx(Ee,{labelKey:"settings.labs.island.label"}),hint:a("settings.labs.island.hint"),control:e.jsx(z,{checked:d,onChange:()=>g("dynamicIslandEnabled",!d),ariaLabel:a("settings.labs.island.aria")})}),d&&e.jsx(R,{label:a("settings.labs.island_hide_menubar.label"),hint:a("settings.labs.island_hide_menubar.hint"),control:e.jsx(z,{checked:!!c?.hideMenuBarIcon,onChange:()=>g("hideMenuBarIcon",!c?.hideMenuBarIcon),ariaLabel:a("settings.labs.island_hide_menubar.aria")})})]}),e.jsx(R,{label:e.jsx(Ee,{labelKey:"settings.labs.qpd.label"}),hint:a("settings.labs.qpd.hint"),control:e.jsx(z,{checked:t,onChange:s,ariaLabel:a("settings.labs.qpd.aria")})}),e.jsx(R,{label:e.jsx(Ee,{labelKey:"settings.labs.sessions.label"}),hint:a("settings.labs.sessions.hint"),control:e.jsx(z,{checked:n,onChange:r,ariaLabel:a("settings.labs.sessions.aria")})})]})}function Mn(){const{available:t,settings:s,setSetting:n,runAction:r}=je();if(!t)return null;const i=vt(),c=!!s?.launchAtLogin,g=s?.toastOnReset!==!1,o=s?.confettiOnReset!==!1,d=s?.launchAtLoginSupported!==!1,p=s?.autoUpdateEnabled!==!1,h=s?.updateStatus||null,m=!!s?.updateBusy,j=!!s?.isSyncing;return e.jsxs(Y,{title:a("settings.section.menubar"),children:[i?null:e.jsxs(e.Fragment,{children:[e.jsx(R,{label:a("settings.menubar.appearance"),hint:a("settings.menubar.appearanceHint"),control:e.jsxs(O,{as:ye,to:"/widgets",variant:"secondary",size:"sm",className:"gap-1.5 no-underline",children:[e.jsx("span",{children:a("settings.menubar.appearanceLink")}),e.jsx(Cs,{className:"h-3.5 w-3.5","aria-hidden":!0})]})}),e.jsx(R,{label:a("settings.menubar.toastOnReset"),hint:a("settings.menubar.toastOnResetHint"),control:e.jsx(z,{checked:g,onChange:()=>n("toastOnReset",!g),ariaLabel:a("settings.menubar.toastOnReset")})}),e.jsx(R,{label:a("settings.menubar.confettiOnReset"),hint:a("settings.menubar.confettiOnResetHint"),control:e.jsx(z,{checked:o,onChange:()=>n("confettiOnReset",!o),ariaLabel:a("settings.menubar.confettiOnReset")})})]}),d?e.jsx(R,{label:a("settings.menubar.launchAtLogin"),hint:a("settings.menubar.launchAtLoginHint"),control:e.jsx(z,{checked:c,onChange:()=>n("launchAtLogin",!c),ariaLabel:a("settings.menubar.launchAtLogin")})}):null,e.jsx(R,{label:a("settings.menubar.syncNow"),hint:a("settings.menubar.syncNowHint"),control:e.jsxs(O,{variant:"secondary",size:"sm",onClick:()=>r("syncNow"),disabled:j,className:"gap-1.5",children:[e.jsx(De,{className:le("h-3.5 w-3.5",j&&"animate-spin"),"aria-hidden":!0}),e.jsx("span",{children:j?a("settings.menubar.syncing"):a("settings.menubar.syncNow")})]})}),e.jsx(R,{label:a("settings.menubar.autoUpdate"),hint:a("settings.menubar.autoUpdateHint"),control:e.jsx(z,{checked:p,onChange:()=>n("autoUpdateEnabled",!p),ariaLabel:a("settings.menubar.autoUpdate")})}),e.jsx(R,{label:a("settings.menubar.updates"),hint:h||void 0,control:e.jsxs(O,{variant:"secondary",size:"sm",onClick:()=>r("checkForUpdates"),disabled:m,className:"gap-1.5",children:[e.jsx(Ie,{className:"h-3.5 w-3.5","aria-hidden":!0}),e.jsx("span",{children:a("settings.menubar.checkUpdates")})]})})]})}function $n(t,s){function n(c){return c.replace(/^v/,"").split(".").map(Number)}const r=n(t),i=n(s);for(let c=0;c<Math.max(r.length,i.length);c++){const g=r[c]||0,o=i[c]||0;if(g<o)return!0;if(g>o)return!1}return!1}function Fn(){const{available:t,settings:s,runAction:n}=je(),r=t&&s?.version,i=s?.platform||"macos",[c,g]=Pe.useState(!1),[o,d]=Pe.useState({open:!1,latestVersion:"",htmlUrl:""}),{resolvedLocale:p}=yt(),h="1.4.1",m=async()=>{g(!0);try{const b=await fetch("https://api.github.com/repos/xiufengsun/TokenTracker/releases/latest");if(!b.ok)throw new Error("Failed to fetch");const u=await b.json(),y=u.tag_name;$n(h,y)?d({open:!0,latestVersion:y,htmlUrl:u.html_url}):Xe({title:a("settings.menubar.updates.upToDate")})}catch(b){console.error("Check updates failed:",b),Xe({title:a("settings.menubar.updates.failed")})}finally{g(!1)}},j=a("settings.menubar.updates.modalTitle"),w=a("settings.menubar.updates.modalDescription",{version:o.latestVersion}),x=a("settings.menubar.updates.modalConfirm"),_=a("settings.menubar.updates.modalCancel");return e.jsxs("div",{className:"mt-6 flex flex-col items-center justify-center gap-4 text-xs text-oai-gray-500 dark:text-oai-gray-500",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2",children:[r?e.jsxs(e.Fragment,{children:[e.jsx("span",{children:i==="windows"?a("settings.menubar.updates.footerCore",{version:s.version}):a("settings.menubar.updates.footerCombined",{barVersion:s.version,coreVersion:h})}),e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsx("button",{type:"button",onClick:()=>n("openAbout"),className:"underline-offset-2 transition-colors hover:text-oai-gray-700 hover:underline dark:hover:text-oai-gray-300",children:"GitHub"}),e.jsx("span",{"aria-hidden":!0,children:"·"})]}):e.jsxs(e.Fragment,{children:[e.jsx("span",{children:a("settings.menubar.updates.footerCore",{version:h})}),e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsx("button",{type:"button",onClick:m,disabled:c,className:"underline-offset-2 transition-colors hover:text-oai-gray-700 hover:underline dark:hover:text-oai-gray-300 disabled:opacity-50",children:c?a("settings.menubar.updates.checking"):a("settings.menubar.checkUpdates")}),e.jsx("span",{"aria-hidden":!0,children:"·"})]}),e.jsxs("a",{href:_a,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 underline-offset-2 transition-colors hover:text-oai-gray-700 hover:underline dark:hover:text-oai-gray-300",children:[e.jsx(wa,{className:"h-3.5 w-3.5","aria-hidden":!0}),a("settings.footer.statusPage")]})]}),e.jsx(wt,{open:o.open,title:j,description:w,confirmLabel:x,cancelLabel:_,onConfirm:()=>{window.open(o.htmlUrl,"_blank"),d(b=>({...b,open:!1}))},onCancel:()=>d(b=>({...b,open:!1}))})]})}const Bn=()=>[{value:"system",label:a("settings.network.mode.system")},{value:"manual",label:a("settings.network.mode.manual")},{value:"off",label:a("settings.network.mode.off")}],Hn=()=>[{value:"http",label:a("settings.network.protocol.http")},{value:"https",label:a("settings.network.protocol.https")},{value:"socks5",label:a("settings.network.protocol.socks5")}];function rt(t){const s={},n=String(t.host||"").trim();(!n||/:\/\//.test(n)||n.includes("/"))&&(s.host=a("settings.network.error.host"));const r=String(t.port??"").trim(),i=Number(r);return(!r||!/^\d+$/.test(r)||!Number.isInteger(i)||i<1||i>65535)&&(s.port=a("settings.network.error.port")),s}function Vn({proxySettings:t}){const{config:s,save:n,testConnection:r}=t,[i,c]=l.useState(()=>({mode:s.mode,protocol:s.protocol||"http",host:s.host||"",port:s.port||""})),[g,o]=l.useState({}),[d,p]=l.useState(!1),[h,m]=l.useState(""),[j,w]=l.useState(null),[x,_]=l.useState(!1),[b,u]=l.useState(null);l.useEffect(()=>{c({mode:s.mode,protocol:s.protocol||"http",host:s.host||"",port:s.port||""})},[s.mode,s.protocol,s.host,s.port]);const y=l.useMemo(()=>s.effective==="manual"?a("settings.network.effective.manual"):s.effective==="env"?a("settings.network.effective.env"):s.effective==="system"?a("settings.network.effective.system"):s.effective==="blocked"?a("settings.network.effective.blocked"):a("settings.network.effective.none"),[s.effective]),k=l.useMemo(()=>i.mode!==s.mode?!0:i.mode==="manual"?(i.protocol||"http")!==(s.protocol||"http")||(i.host||"")!==(s.host||"")||String(i.port??"")!==String(s.port??""):!1,[i,s]),f=v=>{c(C=>({...C,...v})),o({}),m(""),w(null),u(null)},N=async()=>{if(i.mode==="manual"){const v=rt(i);if(Object.keys(v).length){o(v);return}}p(!0),m(""),w(null);try{await n(i),m("saved")}catch(v){m("error"),w(v)}finally{p(!1)}},E=async()=>{const v=rt(i);if(Object.keys(v).length){o(v);return}_(!0),u(null);try{const C=await r(i);u(C)}catch(C){u({ok:!1,error:C?.message||String(C)})}finally{_(!1)}};return e.jsxs(Y,{title:a("settings.section.network"),subtitle:y,children:[s.applyError?e.jsx("p",{role:"alert",className:"mb-3 text-xs text-red-600 dark:text-red-400",children:a("settings.network.apply_error",{error:s.applyError})}):null,e.jsx(R,{label:a("settings.network.mode.label"),hint:a("settings.network.mode.hint"),control:e.jsx(se,{options:Bn(),value:i.mode,onChange:v=>f({mode:v})})}),e.jsx(kt,{initial:!1,children:i.mode==="manual"?e.jsxs(jt.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{height:{duration:.28,ease:[.22,1,.36,1]},opacity:{duration:.2,ease:[.22,1,.36,1]}},style:{overflow:"hidden"},className:"divide-y divide-oai-gray-200/60 dark:divide-oai-gray-800/60",children:[e.jsx(R,{label:a("settings.network.protocol.label"),control:e.jsx(ze,{value:i.protocol,onValueChange:v=>f({protocol:v}),options:Hn(),ariaLabel:a("settings.network.protocol.label"),className:"px-2.5 py-1.5 text-xs font-medium"})}),e.jsx(R,{label:a("settings.network.host.label"),hint:g.host,control:e.jsx("input",{type:"text",value:i.host,onChange:v=>f({host:v.target.value}),placeholder:a("settings.network.host.placeholder"),autoComplete:"off",spellCheck:!1,"aria-invalid":g.host?!0:void 0,"aria-label":a("settings.network.host.label"),className:ve})}),e.jsx(R,{label:a("settings.network.port.label"),hint:g.port,control:e.jsx("input",{type:"text",inputMode:"numeric",value:i.port,onChange:v=>f({port:v.target.value}),placeholder:a("settings.network.port.placeholder"),autoComplete:"off",spellCheck:!1,"aria-invalid":g.port?!0:void 0,"aria-label":a("settings.network.port.label"),className:ve})}),e.jsxs("div",{className:"flex flex-wrap items-center justify-end gap-2 py-3",children:[e.jsx(O,{variant:"secondary",size:"sm",onClick:E,disabled:x||d,className:"gap-1.5",children:x?e.jsxs(e.Fragment,{children:[e.jsx(xe,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}),e.jsx("span",{children:a("settings.network.test.testing")})]}):a("settings.network.test")}),e.jsx(O,{variant:"primary",size:"sm",onClick:N,disabled:d||x,className:"gap-1.5",children:d?e.jsxs(e.Fragment,{children:[e.jsx(xe,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}),e.jsx("span",{children:a("settings.network.saving")})]}):a("settings.network.save")})]}),b?e.jsx("p",{className:"py-2 text-xs text-oai-gray-500 dark:text-oai-gray-400",children:b.ok?a("settings.network.test.ok",{status:String(b.status??"")}):a("settings.network.test.fail",{error:b.error||""})}):null]},"manual-proxy-fields"):null}),i.mode!=="manual"&&(k||d)?e.jsx("div",{className:"flex justify-end py-3",children:e.jsx(O,{variant:"primary",size:"sm",onClick:N,disabled:d,className:"gap-1.5",children:d?e.jsxs(e.Fragment,{children:[e.jsx(xe,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}),e.jsx("span",{children:a("settings.network.saving")})]}):a("settings.network.save")})},"non-manual-save"):null,h==="saved"?e.jsx("p",{className:"py-2 text-xs text-emerald-600 dark:text-emerald-400",children:a("settings.network.saved")}):null,h==="error"?e.jsx("p",{role:"alert",className:"py-2 text-xs text-red-600 dark:text-red-400",children:j?.unprotected?a("settings.network.save_error_unprotected",{error:j?.message||String(j||"")}):a("settings.network.save_error",{error:j?.message||String(j||"")})}):null]})}const Ut="/functions/tokentracker-proxy-config",qn="/functions/tokentracker-proxy-test",Kn={mode:"system",protocol:"http",host:"",port:"",effective:"none",applyError:null};function zt(t){return!t||typeof t.mode!="string"?null:{mode:t.mode,protocol:typeof t.protocol=="string"?t.protocol:"http",host:typeof t.host=="string"?t.host:"",port:t.port==null||t.port===0?"":String(t.port),effective:typeof t.effective=="string"?t.effective:"none",applyError:typeof t.applyError=="string"&&t.applyError.trim()?t.applyError:null}}async function Wn(){const t=await fetch(Ut,{method:"GET",headers:{Accept:"application/json"},cache:"no-store"});if(!t.ok)return null;const s=await t.json().catch(()=>null);return zt(s)}async function ot(){const{getLocalApiAuthHeaders:t}=await Na(async()=>{const{getLocalApiAuthHeaders:s}=await import("./__vite-browser-external-DpZbUcLL.js").then(n=>n.d_);return{getLocalApiAuthHeaders:s}},__vite__mapDeps([0,1]));return t()}function Zn(){const[t,s]=l.useState(!1),[n,r]=l.useState(!0),[i,c]=l.useState(Kn);l.useEffect(()=>{if(!Wa()){s(!1),r(!1);return}let d=!1;return(async()=>{try{const p=await Wn();if(d)return;if(!p){s(!1),r(!1);return}c(p),s(!0),r(!1)}catch{d||(s(!1),r(!1))}})(),()=>{d=!0}},[]);const g=l.useCallback(async d=>{const p=await ot(),h=await fetch(Ut,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json",...p},cache:"no-store",body:JSON.stringify({mode:d.mode,protocol:d.protocol,host:d.host,port:d.port===""?0:Number(d.port)})}),m=await h.json().catch(()=>null);if(!h.ok){const w=m&&typeof m.error=="string"?m.error:`HTTP ${h.status}`;throw new Error(w)}const j=zt(m);if(j&&c(j),m&&m.ok===!1){const w=m&&typeof m.applyError=="string"&&m.applyError||m&&typeof m.error=="string"&&m.error||`HTTP ${h.status}`,x=new Error(w);throw m.unprotected===!0&&(x.unprotected=!0),x}return j||m},[]),o=l.useCallback(async d=>{const p=await ot(),h=await fetch(qn,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json",...p},cache:"no-store",body:JSON.stringify({protocol:d.protocol,host:d.host,port:d.port===""?0:Number(d.port)})}),m=await h.json().catch(()=>null);if(!m||typeof m.ok!="boolean")throw new Error(m&&typeof m.error=="string"?m.error:`HTTP ${h.status}`);return m},[]);return{available:t,loading:n,config:i,save:g,testConnection:o}}const B={APPEARANCE:"appearance",NATIVE_APP:"native-app",NETWORK:"network",ACCOUNT:"account",CLOUD:"cloud",LIMITS:"limits",LABS:"labs"},Z={PERSONAL:"personal",APP:"app",DEVELOPER:"developer"};function Yn({prefs:t}){return e.jsx(se,{options:[{value:at.USED,label:a("limits.settings.display_mode_used")},{value:at.REMAINING,label:a("limits.settings.display_mode_remaining")}],value:t.displayMode,onChange:t.setDisplayMode})}function Ii(){const t=Me(),s=$a(),{available:n,settings:r,setSetting:i}=je(),c=Zn(),{available:g}=c,o=r?.toastOnReset!==!1,d=r?.confettiOnReset!==!1,p=vt()||r?.platform==="windows",[h,m]=Sa(),j=xt(),w=h.get("section"),_=Object.values(B).includes(w)&&(w!==B.NATIVE_APP||n)&&(w!==B.NETWORK||g)?w:B.APPEARANCE,b=k=>{const f=new URLSearchParams(h);k===B.APPEARANCE?f.delete("section"):f.set("section",k),m(f,{replace:!0})},u=[{id:B.APPEARANCE,label:a("settings.section.appearance"),description:a("settings.section.appearance.description"),group:Z.PERSONAL,Icon:Ts,content:e.jsx(zn,{})},...n?[{id:B.NATIVE_APP,label:a("settings.section.menubar"),description:a("settings.section.menubar.description"),group:Z.APP,Icon:Ue,content:e.jsx(Mn,{})}]:[],...g?[{id:B.NETWORK,label:a("settings.section.network"),description:a("settings.section.network.description"),group:Z.APP,Icon:Ca,content:e.jsx(Vn,{proxySettings:c})}]:[],{id:B.ACCOUNT,label:a("settings.section.account"),description:a("settings.section.account.description"),group:Z.PERSONAL,Icon:Rs,content:e.jsx(nn,{settings:t})},{id:B.CLOUD,label:a("settings.section.cloud"),description:a("settings.section.cloud.description"),group:Z.PERSONAL,Icon:fe,content:e.jsx(Cn,{settings:t,active:_===B.CLOUD})},{id:B.LIMITS,label:a("settings.section.limits"),description:a("settings.section.limits.description"),group:Z.APP,Icon:Ea,content:e.jsxs("div",{className:"space-y-4",children:[e.jsxs(Y,{title:a("settings.section.limits"),children:[e.jsx(R,{label:a("limits.settings.display_mode_label"),control:e.jsx(Yn,{prefs:s})}),p?null:e.jsxs(e.Fragment,{children:[e.jsx(R,{label:a("settings.menubar.toastOnReset"),hint:a("settings.menubar.toastOnResetHint"),control:e.jsx(z,{checked:o,disabled:!n,onChange:()=>i("toastOnReset",!o),ariaLabel:a("settings.menubar.toastOnReset")})}),e.jsx(R,{label:a("settings.menubar.confettiOnReset"),hint:a("settings.menubar.confettiOnResetHint"),control:e.jsx(z,{checked:d,disabled:!n,onChange:()=>i("confettiOnReset",!d),ariaLabel:a("settings.menubar.confettiOnReset")})})]}),e.jsx(R,{label:a("settings.limits.showSubscriptions"),hint:a("settings.limits.showSubscriptionsHint"),control:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(O,{variant:"secondary",size:"sm",onClick:()=>j("/limits?openSubscriptions=1"),"aria-label":a("limits.page.openSubscriptions"),title:a("limits.page.openSubscriptions"),className:"!h-7 !w-7 !p-0 text-oai-gray-500 hover:text-oai-black dark:text-oai-gray-400 dark:hover:text-white",children:e.jsx(Pa,{size:14,"aria-hidden":!0})}),e.jsx(z,{checked:s.showSubscriptions!==!1,onChange:()=>s.setShowSubscriptions(!s.showSubscriptions),ariaLabel:a("settings.limits.showSubscriptions")})]})})]}),e.jsx(Y,{title:a("settings.limits.providers"),children:e.jsx(zs,{prefs:s})})]})},{id:B.LABS,label:a("settings.section.labs"),description:a("settings.section.labs.description"),group:Z.DEVELOPER,Icon:Ps,content:e.jsx(Gn,{})}],y=[{id:Z.PERSONAL,label:a("settings.nav.group.personal")},{id:Z.APP,label:a("settings.nav.group.app")},{id:Z.DEVELOPER,label:a("settings.nav.group.developer")}].map(k=>({...k,sections:u.filter(f=>f.group===k.id)})).filter(k=>k.sections.length>0);return e.jsx("div",{className:le("flex flex-1 flex-col font-oai text-oai-black antialiased dark:text-oai-white",_===B.CLOUD&&"tt-cloud-settings"),children:e.jsx("main",{className:"flex-1 pb-12 pt-8 sm:pb-16 sm:pt-10",children:e.jsxs("div",{className:"mx-auto w-full max-w-5xl px-4 sm:px-6",children:[e.jsxs("div",{className:"mb-7 max-w-2xl",children:[e.jsx("h1",{className:"text-3xl font-semibold tracking-tight text-oai-black dark:text-white sm:text-4xl",children:a("settings.page.title")}),e.jsx("p",{className:"mt-2 text-sm leading-6 text-oai-gray-500 dark:text-oai-gray-400 sm:text-base",children:a("settings.page.subtitle")})]}),e.jsxs("div",{className:"tt-settings-sections grid min-w-0 gap-6 md:grid-cols-[11rem_minmax(0,1fr)] md:gap-8",children:[e.jsx("aside",{className:"min-w-0 rounded-xl border border-oai-gray-200 bg-oai-gray-50/70 p-2 dark:border-oai-gray-800 dark:bg-oai-gray-900/60 md:border-0 md:bg-transparent md:p-0 md:dark:bg-transparent",children:e.jsx("nav",{"aria-label":a("settings.page.title"),className:"flex gap-1 overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden md:sticky md:top-6 md:flex-col md:gap-4 md:overflow-visible",children:y.map(({id:k,label:f,sections:N})=>e.jsxs("div",{className:"flex shrink-0 gap-1 md:block",children:[e.jsx("div",{className:"hidden px-3 pb-1 text-[10px] font-semibold uppercase tracking-[0.16em] text-oai-gray-400 dark:text-oai-gray-500 md:block",children:f}),e.jsx("div",{className:"flex gap-1 md:flex-col",children:N.map(({id:E,label:v,Icon:C})=>{const A=_===E;return e.jsxs("button",{id:`settings-nav-${E}`,type:"button","aria-current":A?"page":void 0,"aria-controls":`settings-panel-${E}`,onClick:()=>b(E),className:le("inline-flex min-h-10 min-w-max shrink-0 items-center gap-1.5 rounded-md px-2 py-2 text-left text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-oai-brand-500 md:w-full md:min-w-0 md:gap-2 md:px-3",A?"bg-oai-gray-100 text-oai-black dark:bg-oai-gray-800 dark:text-white":"text-oai-gray-500 hover:bg-oai-gray-50 hover:text-oai-gray-900 dark:text-oai-gray-400 dark:hover:bg-oai-gray-900 dark:hover:text-oai-gray-200"),children:[e.jsx(C,{className:le("h-4 w-4 shrink-0",A?"text-oai-black dark:text-white":"text-oai-gray-400 dark:text-oai-gray-500"),"aria-hidden":!0}),e.jsx("span",{className:"truncate",children:v})]},E)})})]},k))})}),e.jsxs("div",{className:"min-w-0",children:[u.map(({id:k,label:f,content:N})=>e.jsx("section",{id:`settings-panel-${k}`,"aria-labelledby":`settings-nav-${k}`,"aria-label":f,"data-settings-panel":k,hidden:_!==k,children:N},k)),e.jsx(Fn,{})]})]})]})})})}export{Ii as SettingsPage};
5
+ `}async function fn(t,s,{signal:n,assertCurrent:r=()=>{}}={}){const i=hn(t,s),c=`tokentracker-cloud-usage-${t.metadata.effective_range.from}-${t.metadata.effective_range.to}.${s}`,g=()=>{if(n?.aborted)throw new U("export_cancelled",409);r()};g();const o=await Xt({filename:c,content:i,format:s,signal:n});if(g(),o?.saved===!0)return;if(o!==null)throw new U("export_failed",503);const d=new Blob([i],{type:s==="csv"?"text/csv;charset=utf-8":"application/json;charset=utf-8"}),p=URL.createObjectURL(d);try{const h=document.createElement("a");h.href=p,h.download=c,document.body.appendChild(h);try{h.click()}finally{h.remove()}}finally{setTimeout(()=>URL.revokeObjectURL(p),1e3)}}function xn(t){return t?.status===401?a("cloud.export.error_auth"):t?.status===402||t?.status===403?a("cloud.export.error_access"):t?.code==="export_invalid_dates"?a("cloud.export.error_dates"):t?.status===409?a("cloud.export.error_changed"):a("cloud.export.error_failed")}function bn({from:t,to:s,deviceId:n=null,auth:r,compact:i=!1,panelContainer:c=null,layout:g="default",dialogOpen:o,onDialogOpenChange:d}){const p=g==="settings-row",h=lt(),m=r||h,j=m?.signedIn?m.user?.id:null,w=new Date().toISOString().slice(0,10),x=new Date(Date.now()-29*864e5).toISOString().slice(0,10),[_,b]=l.useState(t||x),[u,y]=l.useState(s||w),[k,f]=l.useState(!1),N=p&&typeof o=="boolean"?o:k,[E,v]=l.useState(!1),[C,A]=l.useState(null),[S,P]=l.useState(null),[M,G]=l.useState(!1),[J,V]=l.useState(2),te=l.useId(),$=l.useRef(null),F=l.useRef(0),K=l.useRef(null),q=l.useRef(!1),L=l.useRef(!1),T=l.useRef(N);T.current=N;const ie=l.useRef(N);if($.current={userId:j,client:m?.client,start:_,end:u,deviceId:n,from:t,to:s},l.useEffect(()=>{L.current=!0;const I=()=>{++F.current,K.current?.abort(),q.current=!1,v(!1),P(null),A(null),G(!1)};return window.addEventListener(qe,I),()=>{L.current=!1,++F.current,K.current?.abort(),window.removeEventListener(qe,I)}},[]),l.useEffect(()=>{++F.current,K.current?.abort(),q.current=!1,v(!1),A(null),P(null),G(!1),t&&b(t),s&&y(s)},[j,m?.client,t,s,n]),l.useEffect(()=>{p&&ie.current&&!N&&re(),ie.current=N},[N,p]),l.useEffect(()=>{const I=window.matchMedia?.("(max-width: 639px)");if(!I)return;const D=()=>V(I.matches?1:2);return D(),I.addEventListener("change",D),()=>I.removeEventListener("change",D)},[]),!j||m?.enabled===!1)return null;function re(){++F.current,K.current?.abort(),q.current=!1,v(!1),A(null),P(null),G(!1)}function W(I){I||re(),typeof o!="boolean"&&f(I),d?.(I)}function ae(I,D){++F.current,K.current?.abort(),q.current=!1,v(!1),A(null),P(null),I(D)}async function oe(I){if(q.current)return;q.current=!0;const D=$.current,ke=++F.current,_e=new AbortController;K.current=_e,v(!0),A(null),P(null);const pe=()=>{const X=$.current;if(!L.current||ke!==F.current||p&&!T.current||!X||Object.keys(D).some(Q=>D[Q]!==X[Q])||D.client&&!aa(D.client))throw new U("export_cancelled",409)};try{const X=await gn({userId:D.userId,auth:m.getAccessToken,from:D.start,to:D.end,deviceId:D.deviceId,signal:_e.signal,assertCurrent:pe});pe(),await fn(X,I,{signal:_e.signal,assertCurrent:pe}),pe();const Q=X.metadata.effective_range,Fe=X.rows.length?a("cloud.export.success",{count:X.rows.length,from:Q.from,to:Q.to}):a("cloud.export.empty");P(Q.from!==D.start||Q.to!==D.end?`${Fe} ${a("cloud.export.truncated",{from:Q.from,to:Q.to})}`:Fe)}catch(X){L.current&&ke===F.current&&A(xn(X))}finally{ke===F.current&&(q.current=!1,L.current&&v(!1))}}const de="hover:!text-oai-black dark:hover:!text-oai-white hover:!bg-oai-gray-100 dark:hover:!bg-oai-gray-800 focus:!ring-oai-gray-500/40";let ue=null;return(p||N)&&(ue=e.jsxs("div",{id:te,className:p?void 0:i?"w-full rounded-lg bg-oai-gray-50 p-4 dark:bg-oai-gray-950/50":"mt-2 border-l-2 border-oai-gray-200 pl-3 dark:border-oai-gray-700","aria-busy":E,children:[p?null:e.jsx("p",{className:"text-xs leading-5 text-oai-gray-600 dark:text-oai-gray-300",children:a("cloud.export.description")}),e.jsxs("div",{className:p?"space-y-4":"mt-3 flex flex-wrap items-end gap-3",children:[p?e.jsxs(gs,{open:M,onOpenChange:G,children:[e.jsxs(ps,{disabled:E,"aria-label":a("trend.zoom.pick_range"),className:"inline-flex h-10 min-h-10 w-full items-center gap-2 rounded-md border border-oai-gray-300 bg-transparent px-3 text-sm text-oai-black transition-colors hover:bg-oai-gray-50 focus-visible:outline focus-visible:outline-2 focus-visible:outline-oai-gray-500 disabled:opacity-50 dark:border-oai-gray-700 dark:text-oai-white dark:hover:bg-oai-gray-800",children:[e.jsx(ms,{size:16,className:"shrink-0 text-oai-gray-500","aria-hidden":!0}),e.jsxs("span",{className:"flex-1 text-left tabular-nums",children:[_," → ",u]}),e.jsx(Re,{size:14,className:"shrink-0 text-oai-gray-500","aria-hidden":!0})]}),e.jsx(hs,{children:e.jsx(fs,{sideOffset:8,side:"bottom",align:"start",className:"z-[110]",children:e.jsx(xs,{className:"max-w-[calc(100vw-2rem)] rounded-xl border border-oai-gray-200 bg-white shadow-lg outline-none dark:border-oai-gray-700 dark:bg-oai-gray-900",children:e.jsx(us,{from:_,to:u,numberOfMonths:J,onApply:(I,D)=>{ae(b,I),y(D),G(!1)},onCancel:()=>G(!1)})})})})]}):e.jsxs(e.Fragment,{children:[e.jsxs("label",{className:"min-w-0 text-xs text-oai-gray-700 dark:text-oai-gray-200",children:[a("cloud.export.from"),e.jsx("input",{type:"date",value:_,onChange:I=>ae(b,I.target.value),className:`${p?"min-h-10 min-w-0 w-full ":""}mt-1 block rounded-md border border-oai-gray-300 bg-white px-2 py-1.5 text-sm text-oai-black focus:outline-none focus:ring-2 focus:ring-inset focus:ring-oai-gray-500/40 dark:border-oai-gray-700 dark:bg-oai-gray-900 dark:text-oai-white`})]}),e.jsxs("label",{className:"min-w-0 text-xs text-oai-gray-700 dark:text-oai-gray-200",children:[a("cloud.export.to"),e.jsx("input",{type:"date",value:u,onChange:I=>ae(y,I.target.value),className:`${p?"min-h-10 min-w-0 w-full ":""}mt-1 block rounded-md border border-oai-gray-300 bg-white px-2 py-1.5 text-sm text-oai-black focus:outline-none focus:ring-2 focus:ring-inset focus:ring-oai-gray-500/40 dark:border-oai-gray-700 dark:bg-oai-gray-900 dark:text-oai-white`})]})]}),e.jsxs("div",{className:p?"flex justify-end gap-2":"flex gap-2",children:[e.jsx(O,{type:"button",variant:p?"secondary":"ghost",size:"sm",className:`${de} ${p?"!min-h-8 !h-8":""}`,disabled:E,onClick:()=>oe("csv"),children:a("cloud.export.csv")}),e.jsx(O,{type:"button",variant:p?"secondary":"ghost",size:"sm",className:`${de} ${p?"!min-h-8 !h-8":""}`,disabled:E,onClick:()=>oe("json"),children:a("cloud.export.json")})]})]}),E?e.jsx("p",{role:"status",className:"mt-2 text-xs text-oai-gray-600 dark:text-oai-gray-300",children:a("cloud.export.busy")}):null,C?e.jsx("p",{role:"alert",className:"mt-2 text-xs text-red-700 dark:text-red-300",children:C}):null,S?e.jsx("p",{role:"status",className:"mt-2 text-xs text-oai-gray-600 dark:text-oai-gray-300",children:S}):null]})),p?e.jsx($e,{open:N,onOpenChange:W,title:a("cloud.export.open"),icon:Ie,children:ue}):e.jsxs("section",{className:i&&!p?"tt-cloud-theme contents":"tt-cloud-theme","aria-label":a("cloud.export.open"),children:[e.jsxs(O,{type:"button",variant:"ghost",size:"sm",className:`${de} ${p?"!h-11 !w-full !justify-start !px-0 !text-oai-black dark:!text-oai-white active:!scale-100":i?"!h-10 !px-0":""}`,"aria-expanded":N,"aria-controls":te,onClick:()=>f(I=>!I),children:[e.jsx(Ie,{className:`${p?"mr-3":"mr-2"} h-4 w-4 shrink-0`,"aria-hidden":"true"}),a("cloud.export.open"),p?e.jsx(Re,{size:16,className:`ml-auto shrink-0 transition-transform motion-reduce:transition-none ${N?"rotate-180":""}`,"aria-hidden":!0}):null]}),!p&&c&&ue?ht.createPortal(ue,c):ue]})}function yn({text:t,label:s}){const[n,r]=l.useState(!1);return e.jsxs(vs,{open:n,onOpenChange:r,children:[e.jsx(js,{delay:0,closeOnClick:!1,"aria-label":s,onClick:()=>r(!0),className:"inline-flex size-8 shrink-0 items-center justify-center rounded-md text-oai-gray-400 transition-colors hover:bg-oai-gray-100 hover:text-oai-gray-700 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-gray-500/40 dark:hover:bg-oai-gray-800 dark:hover:text-oai-gray-200",children:e.jsx(_t,{size:14,"aria-hidden":!0})}),e.jsx(ks,{children:e.jsx(_s,{side:"bottom",sideOffset:6,className:"z-[110]",children:e.jsx(ws,{role:"tooltip",className:"max-w-[min(320px,calc(100vw-2rem))] rounded-lg border border-oai-gray-200 bg-white px-3 py-2 text-xs leading-5 text-oai-gray-600 shadow-lg dark:border-oai-gray-700 dark:bg-oai-gray-900 dark:text-oai-gray-300",children:t})})})]})}function vn(t){return typeof t!="string"||!t.trim()?a("cloud.devices.platform_unknown"):/^(mac|darwin)/i.test(t)?a("leaderboard.community.modal.platform.darwin"):/^win/i.test(t)?a("leaderboard.community.modal.platform.win32"):/^linux/i.test(t)?a("leaderboard.community.modal.platform.linux"):t}function jn(t,s){if(!t)return null;const n=t.status==="active"&&t.access_source==="gift";if(s&&Number.isFinite(Date.parse(s))){const r=t.status==="transition"?"cloud.membership.transition_until":t.status==="trial"?"cloud.membership.trial_until":t.status==="active"?n?"cloud.membership.gift_until":"cloud.membership.active_until":t.status==="expired"&&Date.parse(s)<=Date.now()?"cloud.membership.expired_on":null;if(r)return a(r,{date:H(s)})}return n?a("cloud.gift.membership_label"):Ae(t.status)}function kn({auth:t,machineLimit:s,accountRevision:n,selfHosted:r=!1}){const[i,c]=l.useState(null),[g,o]=l.useState(null),[d,p]=l.useState(null),[h,m]=l.useState(!1),[j,w]=l.useState(null),x=l.useRef(!1),_=l.useRef(0),b=l.useRef(!0),u=t?.user?.id,y=t?.getAccessToken,k=l.useCallback(async()=>{const S=++_.current;try{let P;if(mt())try{const G=await ra(),J=await fetch("/functions/tokentracker-machine-id",{headers:G});J.ok&&(P=(await J.json())?.machineId)}catch{}const M=await ce("devices",{auth:y,params:P?{current_machine_id:P}:{}});S===_.current&&(c(M),o(null))}catch(P){S===_.current&&o({...P,code:"billing_devices_unavailable"})}},[y,u]);l.useEffect(()=>(b.current=!0,k(),()=>{b.current=!1,_.current+=1}),[k,n]);const f=async S=>{if(!x.current){x.current=!0,m(!0),o(null),w(null);try{if(await ce("remove-device",{auth:y,body:{machine_id:S}}),!b.current)return;i?.machines?.find(P=>P.machine_id===S)?.is_current&&We(),p(null),await k()}catch(P){b.current&&o(P)}finally{x.current=!1,m(!1)}}},N=async S=>{if(!x.current){x.current=!0,m(!0),o(null),w(null);try{if(await ce("resume-device",{auth:y,body:{machine_id:S.machine_id}}),!b.current)return;S.is_current&&We(),w(a("cloud.devices.resumed")),await k()}catch(P){b.current&&o(P)}finally{x.current=!1,m(!1)}}},E=i?.machines||[],v=i?.machine_count??E.filter(S=>S.status!=="paused").length,C=i?.machine_limit??s,A=C==null||v<C;return e.jsxs("div",{children:[e.jsxs("div",{className:"mb-1 flex items-center justify-between gap-3",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-1",children:[e.jsx("h3",{className:"text-sm font-semibold",children:a("cloud.devices.title")}),e.jsx(yn,{label:a("cloud.devices.detail"),text:a("cloud.devices.detail")})]}),e.jsx("span",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-400 tabular-nums",children:i?C==null?a(r?"cloud.devices.unlimited_self_hosted":"cloud.devices.unlimited",{count:v}):a("cloud.devices.count",{count:v,limit:C}):g?a("cloud.devices.count_unknown"):a("cloud.catalog.loading")})]}),i?.over_machine_limit||C!=null&&C<v?e.jsx("div",{className:"mb-4",children:e.jsx(ee,{children:a("cloud.devices.over_limit")})}):null,g?e.jsx(ee,{error:g,onRetry:k,context:"account"}):null,j?e.jsx("div",{className:"mb-3",children:e.jsx(ee,{children:j})}):null,!g&&i&&E.length===0?e.jsx("p",{className:"text-sm text-oai-gray-500 dark:text-oai-gray-400",children:a("cloud.devices.empty")}):null,E.length!==0?e.jsx("ul",{className:"divide-y divide-oai-gray-200 dark:divide-oai-gray-800",children:E.map(S=>e.jsxs("li",{className:"py-1.5",children:[e.jsxs("div",{className:"grid grid-cols-[17px_minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1",children:[e.jsx(Ue,{size:17,className:"col-start-1 row-start-1 text-oai-gray-500 dark:text-oai-gray-400","aria-hidden":!0}),e.jsx("p",{title:S.name||a("cloud.devices.unnamed"),className:"col-start-2 row-start-1 min-w-0 truncate text-sm font-medium",children:S.name||a("cloud.devices.unnamed")}),e.jsxs("div",{className:"col-span-2 col-start-2 row-start-2 flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-xs text-oai-gray-500 dark:text-oai-gray-400 sm:col-span-1 sm:col-start-2",children:[e.jsx("span",{children:vn(S.platform)}),e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsx("span",{children:S.last_seen_at?a("cloud.devices.last_seen",{date:oa(S.last_seen_at)}):a("cloud.devices.last_seen_unknown")}),S.is_current?e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsx("span",{children:a("cloud.devices.current")})]}):null,S.status==="paused"?e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsx("span",{children:a("cloud.devices.paused")})]}):null]}),S.status==="paused"&&!A?e.jsx("p",{className:"col-start-2 row-start-3 text-xs text-oai-gray-500 dark:text-oai-gray-400",children:a("cloud.devices.no_slot")}):null,e.jsxs(O,{variant:"ghost",size:"sm",className:"col-start-3 row-start-1 !min-h-10 !px-2 sm:row-span-2","aria-expanded":S.status!=="paused"?d===S.machine_id:void 0,"aria-controls":d===S.machine_id?`cloud-machine-confirm-${S.machine_id}`:void 0,onClick:()=>S.status==="paused"?N(S):p(P=>P===S.machine_id?null:S.machine_id),disabled:h||S.status==="paused"&&!A,children:[S.status==="paused"?e.jsx(bs,{size:14,className:"mr-1.5 shrink-0","aria-hidden":!0}):e.jsx(ys,{size:14,className:"mr-1.5 shrink-0","aria-hidden":!0}),S.status==="paused"?a("cloud.devices.resume"):a("cloud.devices.remove")]})]}),d===S.machine_id?e.jsxs("div",{id:`cloud-machine-confirm-${S.machine_id}`,className:"mt-3 rounded-lg bg-oai-gray-50 p-3 dark:bg-oai-gray-800",children:[e.jsx("p",{className:"text-xs leading-5",children:a("cloud.devices.remove_detail")}),e.jsxs("div",{className:"mt-3 flex gap-2",children:[e.jsx(O,{variant:"secondary",onClick:()=>f(S.machine_id),disabled:h,children:a("cloud.devices.confirm_remove")}),e.jsx(O,{variant:"ghost",onClick:()=>p(null),disabled:h,children:a("cloud.action.keep")})]})]}):null]},S.machine_id))}):null]})}function _n({recent:t,pendingOrders:s,conflictOrders:n,userId:r,payments:i=[],footerActions:c}){const g=xt(),[o,d]=l.useState(t?.order_id&&Ce.test(t.order_id)?t.order_id:""),[p,h]=l.useState(!1),[m,j]=l.useState(!1),w=l.useId(),x=l.useRef(null);l.useEffect(()=>{m&&x.current?.focus()},[m]);const _=new Set([...i.map(u=>u.order_id).filter(u=>typeof u=="string"),...(s||[]).filter(u=>u.status==="paid"||["paid","partially_refunded","refunded"].includes(u.payment_state)).map(u=>u.id)].map(u=>u.toLowerCase())),b=[...n||[],...(s||[]).filter(u=>u.retry_payment_conflict_at||!_.has(u.id.toLowerCase()))].filter((u,y,k)=>k.findIndex(f=>f.id===u.id)===y);return e.jsxs("div",{className:"mt-2 space-y-3",children:[t?.request_id&&!t.order_id?e.jsx(ye,{to:`/billing/checkout?sku=${encodeURIComponent(t.sku)}`,className:"mt-3 inline-flex min-h-10 items-center text-sm text-oai-brand underline underline-offset-4",children:a("cloud.action.resume_purchase")}):null,b.length||i.length?e.jsxs("div",{className:"sm:grid sm:grid-cols-[minmax(0,1fr)_auto_minmax(7rem,auto)] sm:gap-x-4",children:[e.jsxs("div",{"aria-hidden":!0,className:"hidden gap-x-4 pb-1 text-xs text-oai-gray-500 dark:text-oai-gray-400 sm:col-span-3 sm:grid sm:grid-cols-subgrid",children:[e.jsx("span",{children:a("cloud.history.date")}),e.jsx("span",{className:"text-right",children:a("cloud.history.amount")}),e.jsx("span",{className:"text-right",children:a("cloud.history.status")})]}),e.jsxs("ul",{className:"divide-y divide-oai-gray-200 dark:divide-oai-gray-800 sm:col-span-3 sm:grid sm:grid-cols-subgrid",children:[b.map(u=>{const y=typeof u.created_at=="string"&&Number.isFinite(Date.parse(u.created_at))?H(u.created_at):null;let k=null;Number.isInteger(u.amount_cents)&&u.amount_cents>=0&&["USD","CNY"].includes(u.currency)&&(k=Le(u.amount_cents,u.currency));const f=a(u.retry_payment_conflict_at?"cloud.action.review_duplicate_payment":"cloud.history.pending");return e.jsxs("li",{className:"grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-4 gap-y-1 py-3 sm:col-span-3 sm:grid-cols-subgrid",children:[e.jsx("p",{className:"col-start-1 row-start-1 text-sm tabular-nums",children:y||f}),e.jsx("p",{className:"col-start-2 row-start-1 text-right text-sm font-medium tabular-nums",children:k}),u.provider||y?e.jsxs("div",{className:"col-start-1 row-start-2 flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-xs text-oai-gray-500 dark:text-oai-gray-400",children:[u.provider?e.jsx("span",{children:bt(u.provider)}):null,y?e.jsxs(e.Fragment,{children:[u.provider?e.jsx("span",{"aria-hidden":!0,children:"·"}):null,e.jsx("span",{children:f})]}):null]}):null,e.jsx(ye,{to:`/billing/checkout?order=${encodeURIComponent(u.id)}`,onClick:N=>{u.retry_payment_conflict_at||N.button!==0||N.metaKey||N.ctrlKey||N.shiftKey||N.altKey||!Ce.test(u.id)||(N.preventDefault(),g(Ke({orderId:u.id,userId:r})))},className:"col-start-2 row-start-2 inline-flex min-h-10 items-center justify-end rounded-sm text-right text-sm underline-offset-4 hover:underline focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 sm:col-start-3 sm:row-span-2 sm:row-start-1 sm:self-start sm:items-start",children:e.jsx("span",{children:u.retry_payment_conflict_at?a("cloud.action.review_duplicate_payment"):a("cloud.action.resume_order")})})]},u.id)}),e.jsx(wn,{payments:i})]})]}):e.jsx(e.Fragment,{children:(!t?.request_id||t.order_id)&&e.jsx("p",{className:"py-2 text-sm text-oai-gray-500 dark:text-oai-gray-400",children:a("cloud.history.empty")})}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-x-4 gap-y-1",children:[e.jsx(O,{variant:"ghost",size:"sm",className:"!h-10 !px-0","aria-expanded":m,"aria-controls":`${w}-panel`,onClick:()=>j(u=>!u),children:a("cloud.restore.title")}),c]}),m?e.jsxs("div",{id:`${w}-panel`,className:"mt-2",children:[e.jsx("p",{className:"text-xs leading-5 text-oai-gray-500 dark:text-oai-gray-400",children:a("cloud.restore.detail")}),e.jsxs("form",{className:"mt-4",onSubmit:u=>{if(u.preventDefault(),!Ce.test(o.trim())){h(!0);return}const y=o.trim(),k=b.some(f=>f.id.toLowerCase()===y.toLowerCase()&&f.retry_payment_conflict_at);g(k?`/billing/checkout?order=${encodeURIComponent(y)}`:Ke({orderId:y,userId:r}))},children:[e.jsx("label",{htmlFor:`${w}-input`,className:"text-xs text-oai-gray-500 dark:text-oai-gray-400",children:a("cloud.checkout.order_id")}),e.jsxs("div",{className:"mt-2 flex flex-col gap-2 sm:flex-row",children:[e.jsx("input",{id:`${w}-input`,ref:x,value:o,onChange:u=>{d(u.target.value),h(!1)},placeholder:a("cloud.restore.placeholder"),className:"min-h-10 min-w-0 flex-1 rounded-md border border-oai-gray-300 bg-transparent px-3 text-sm outline-none focus:border-oai-brand focus:ring-2 focus:ring-inset focus:ring-oai-brand/30 dark:border-oai-gray-700","aria-invalid":p,"aria-describedby":p?`${w}-error`:void 0}),e.jsx(O,{type:"submit",variant:"secondary",children:a("cloud.action.restore")})]}),p?e.jsx("p",{id:`${w}-error`,role:"alert",className:"mt-2 text-xs text-red-600 dark:text-red-400",children:a("cloud.restore.invalid")}):null]})]}):null]})]})}function wn({payments:t}){return e.jsx(e.Fragment,{children:t.map(s=>e.jsxs("li",{className:"grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-4 gap-y-1 py-3 sm:col-span-3 sm:grid-cols-subgrid",children:[e.jsx("p",{className:"col-start-1 row-start-1 text-sm tabular-nums",children:H(s.paid_at)}),e.jsx("p",{className:"col-start-2 row-start-1 text-right text-sm font-medium tabular-nums",children:Le(s.amount_cents,s.currency)}),e.jsxs("div",{className:"col-start-1 row-start-2 flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1 text-xs text-oai-gray-500 dark:text-oai-gray-400",children:[e.jsx("span",{children:bt(s.provider)}),e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsx("span",{children:a("cloud.history.term",{start:H(s.starts_at),end:H(s.ends_at)})})]}),e.jsx("p",{className:`col-start-2 row-start-2 text-right text-sm font-medium sm:col-start-3 sm:row-span-1 sm:row-start-1 sm:self-start ${s.refunded_cents>0?"text-amber-700 dark:text-amber-400":"text-oai-gray-600 dark:text-oai-gray-300"}`,children:s.refunded_cents>0?a("cloud.history.refunded",{amount:Le(s.refunded_cents,s.currency)}):a("cloud.history.paid")})]},s.id))})}function Nn({showTitle:t=!0,heading:s,syncControl:n,active:r=!0}){const i=sa();return e.jsx(Sn,{showTitle:t,heading:s,syncControl:n,active:r,...i},i.auth?.signedIn?i.auth.user?.id:"signed-out")}function Sn({account:t,auth:s,loading:n,error:r,refresh:i,showTitle:c,heading:g,syncControl:o,active:d=!0}){const{openLoginModal:p}=gt(),[h,m]=l.useState(null),[j,w]=l.useState(null),[x,_]=l.useState(!1),[b,u]=l.useState(null),y=l.useRef(!1),k=l.useRef(!0);l.useEffect(()=>{d||m(null)},[d]),l.useEffect(()=>(k.current=!0,()=>{k.current=!1}),[]);const f=t?.membership,N=f?.status==="self_hosted"||f?.hosting_mode==="self_hosted",E=[...t?.conflict_orders||[],...t?.pending_orders||[]].some(L=>L.retry_payment_conflict_at),v=!N&&t?.subscriptions?.find(L=>["active","trialing","past_due","paused","canceling"].includes(L.status)),C=!N&&(v?v.provider==="waffo":t?.payments?.some(L=>L.provider==="waffo")),A=v&&!v.cancel_at_period_end&&v.status!=="canceling",S=A&&v.status!=="paused",P=v?.next_billed_at,M=P&&Number.isFinite(Date.parse(P));l.useEffect(()=>{b&&t&&!A&&(u(null),w(null))},[t,b,A]);const G=N?null:f?.status==="trial"?f.trial_ends_at:f?.status==="transition"?f.transition_ends_at:f?.expires_at,J=async L=>{if(!y.current){y.current=!0,_(!0),w(null);try{await L()}catch(T){k.current&&w(T)}finally{y.current=!1,_(!1)}}},V=()=>J(async()=>{const L=await ce("portal",{auth:s.getAccessToken,body:v?{subscription_id:v.provider_subscription_id}:{}});k.current&&await Ya(L.url||L.portal_url)}),te=()=>J(async()=>{await ce("cancel",{auth:s.getAccessToken,body:{subscription_id:b}}),k.current&&(u(null),await i())}),$=jn(f,G),F=f?.status==="active"&&f?.access_source==="gift",K=C&&!v||f?.can_read_cloud||!N&&t?.gift_redemption_available===!0;if(!s?.signedIn)return e.jsx("div",{className:"space-y-4",children:e.jsx(Y,{title:g||(c?a("cloud.membership.title"):a("settings.section.cloud")),children:e.jsxs("div",{className:"flex flex-col gap-3 py-3 sm:flex-row sm:items-center sm:justify-between sm:gap-4",children:[e.jsx("p",{className:"text-sm text-oai-gray-500 dark:text-oai-gray-400",children:a("cloud.membership.signed_out")}),e.jsx(O,{variant:"primary",size:"sm",onClick:()=>p({subtitle:a("cloud.membership.signed_out")}),children:a("cloud.action.sign_in_continue")})]})})});const q=g||(c?a("cloud.membership.title"):a("settings.section.cloud"));return e.jsxs("div",{className:"space-y-4",children:[e.jsxs("section",{"aria-label":a("cloud.membership.title"),className:"tt-cloud-theme space-y-3",children:[t?.environment==="sandbox"?e.jsx(ee,{children:a("cloud.catalog.sandbox")}):null,E?e.jsx(na,{showBillingLink:!1}):null,e.jsxs(Y,{title:q,action:e.jsx(O,{onClick:i,variant:"ghost",size:"sm",className:"!h-8 !w-8 shrink-0 !p-0 text-oai-gray-500 hover:text-oai-black dark:text-oai-gray-400 dark:hover:text-white",disabled:n,"aria-label":a("cloud.action.refresh_membership"),children:e.jsx(De,{size:14,className:n?"motion-safe:animate-spin":void 0,"aria-hidden":!0})}),children:[e.jsx("div",{className:"pt-0.5 pb-2.5",children:F?e.jsxs("div",{className:"flex items-center gap-3.5",children:[e.jsx("div",{className:"flex h-11 w-11 shrink-0 items-center justify-center rounded-lg border border-oai-gray-200 bg-oai-gray-50 text-oai-gray-700 dark:border-oai-gray-800 dark:bg-oai-gray-800/60 dark:text-oai-gray-300",children:e.jsx(Te,{className:"h-[30px] w-[30px]","aria-hidden":!0})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"text-sm font-semibold text-oai-black dark:text-white",children:a("cloud.gift.membership_label")}),e.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-oai-gray-200 bg-oai-gray-50 px-2 py-0.5 text-[11px] font-medium text-oai-gray-700 dark:border-oai-gray-800 dark:bg-oai-gray-800/60 dark:text-oai-gray-300",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 dark:bg-emerald-400"}),a("cloud.gift.state_active")]})]}),$&&$!==a("cloud.gift.membership_label")?e.jsx("p",{className:"mt-1 text-xs text-oai-gray-500 dark:text-oai-gray-400",children:$}):null]})]}):e.jsxs("div",{className:"flex items-center gap-3.5",children:[e.jsx("div",{className:"flex h-11 w-11 shrink-0 items-center justify-center rounded-lg border border-oai-gray-200 bg-oai-gray-50 text-oai-gray-700 dark:border-oai-gray-800 dark:bg-oai-gray-800/60 dark:text-oai-gray-300",children:e.jsx(fe,{className:"h-[30px] w-[30px]","aria-hidden":!0})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"text-sm font-semibold text-oai-black dark:text-white",children:Ae(f?.status)}),f?.status==="active"?e.jsxs("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-oai-gray-200 bg-oai-gray-50 px-2 py-0.5 text-[11px] font-medium text-oai-gray-700 dark:border-oai-gray-800 dark:bg-oai-gray-800/60 dark:text-oai-gray-300",children:[e.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-500 dark:bg-emerald-400"}),a("cloud.gift.state_active")]}):null]}),$&&$!==Ae(f?.status)?e.jsx("p",{className:"mt-1 text-xs text-oai-gray-500 dark:text-oai-gray-400",children:$}):null]})]})}),f?.status==="expired"?e.jsx("p",{className:"py-2.5 text-xs leading-5 text-oai-gray-500 dark:text-oai-gray-400",children:f.can_read_cloud?a("cloud.membership.read_only",{date:H(f.read_only_until)}):a("cloud.membership.expired_detail")}):null,f?e.jsx(ia,{userId:s.user?.id,membership:f,subscriptions:t?.subscriptions,className:"py-2.5"}):null,!f&&n?e.jsx("p",{role:"status",className:"py-2.5 text-sm text-oai-gray-500 dark:text-oai-gray-400",children:a("cloud.catalog.loading")}):null,v?e.jsx("div",{className:"flex flex-wrap items-center justify-between gap-3 py-2.5",children:e.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1",children:[e.jsx("p",{className:"text-xs leading-5 text-oai-gray-500 dark:text-oai-gray-400",children:v.status==="paused"?a("cloud.membership.renewal_paused"):v.status==="past_due"?a("cloud.membership.payment_due"):S?M?a("cloud.membership.renews",{date:H(P)}):a("cloud.membership.renewal_unknown"):a("cloud.membership.renewal_off")}),A?e.jsx(O,{"aria-expanded":!!b,"aria-controls":b?"cloud-cancel-confirm":void 0,onClick:()=>u(L=>L===v.provider_subscription_id?null:v.provider_subscription_id),variant:"ghost",size:"sm",className:"!h-8 !px-2 text-xs",disabled:x,children:a("cloud.action.cancel_renewal")}):null]})}):null,b?e.jsxs("div",{id:"cloud-cancel-confirm",className:"my-3 rounded-lg border border-oai-gray-200 p-4 dark:border-oai-gray-800",children:[e.jsx("p",{className:"text-sm leading-6",children:G?a("cloud.cancel.detail",{date:H(G)}):a("cloud.cancel.no_term")}),e.jsxs("div",{className:"mt-3 flex flex-wrap gap-2",children:[e.jsx(O,{onClick:te,variant:"secondary",disabled:x,children:a("cloud.cancel.confirm")}),e.jsx(O,{onClick:()=>u(null),variant:"ghost",disabled:x,children:a("cloud.action.keep")})]})]}):null,r?e.jsx("div",{className:"py-2.5",children:e.jsx(ee,{error:r,onRetry:i,context:"account"})}):null,j&&h!=="billing"?e.jsx("div",{className:"py-2.5",children:e.jsx(ee,{error:j,context:"account"})}):null]})]}),f?e.jsx(st,{className:"tt-cloud-theme !rounded-lg",bodyClassName:"!py-3",children:e.jsx(kn,{auth:s,machineLimit:f.machine_limit,accountRevision:t,selfHosted:N})}):null,K||t&&!N||o?e.jsx(st,{className:"tt-cloud-theme !rounded-lg",bodyClassName:"!py-2",children:e.jsxs("section",{"aria-label":a("cloud.membership.tools_title"),className:"divide-y divide-oai-gray-200 dark:divide-oai-gray-800",children:[N?null:v?e.jsxs("button",{type:"button",onClick:V,disabled:x,className:"inline-flex h-11 w-full items-center gap-3 rounded-md border-0 bg-transparent p-0 text-left text-sm font-medium text-oai-black transition-colors hover:bg-oai-gray-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-oai-gray-500 disabled:opacity-50 dark:text-oai-white dark:hover:bg-oai-gray-800",children:[e.jsx(fe,{size:16,className:"shrink-0","aria-hidden":!0}),e.jsx("span",{className:"min-w-0 flex-1",children:a("cloud.action.manage_subscription")}),e.jsx(nt,{size:16,className:"shrink-0 text-oai-gray-500 dark:text-oai-gray-400","aria-hidden":!0})]}):e.jsxs(ye,{to:"/cloud",className:"inline-flex h-11 w-full items-center gap-3 rounded-md border-0 bg-transparent p-0 text-left text-sm font-medium text-oai-black transition-colors hover:bg-oai-gray-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-oai-gray-500 dark:text-oai-white dark:hover:bg-oai-gray-800",children:[e.jsx(fe,{size:16,className:"shrink-0","aria-hidden":!0}),e.jsx("span",{className:"min-w-0 flex-1",children:a("cloud.action.subscribe")}),e.jsx(pt,{size:16,className:"shrink-0 text-oai-gray-500 dark:text-oai-gray-400","aria-hidden":!0})]}),t&&!N?e.jsxs($e,{open:h==="billing",onOpenChange:L=>m(L?"billing":null),title:a("cloud.billing.title"),icon:Es,wide:!0,children:[j?e.jsx("div",{className:"mb-3",children:e.jsx(ee,{error:j,context:"account"})}):null,e.jsx(_n,{userId:s.user?.id,recent:Za(s.user?.id),pendingOrders:t?.pending_orders,conflictOrders:t?.conflict_orders,payments:t.payments,footerActions:C&&!v?e.jsx("div",{className:"flex items-center gap-0.5",children:e.jsxs(O,{onClick:V,variant:"ghost",size:"sm",className:"!h-10 !px-0",disabled:x,children:[a("cloud.action.view_bills"),e.jsx(nt,{size:14,className:"ml-2","aria-hidden":!0})]})}):null})]}):null,f?.can_read_cloud?e.jsx(bn,{auth:s,layout:"settings-row",dialogOpen:h==="export",onDialogOpenChange:L=>m(L?"export":null)}):null,e.jsx(un,{account:t,auth:s,refresh:i,layout:"settings-row",dialogOpen:h==="redeem",onDialogOpenChange:L=>m(L?"redeem":null)}),o?e.jsx("section",{children:o}):null]})}):null]})}function Cn({settings:t,active:s=!0}={}){return t?e.jsx(Dt,{settings:t,active:s}):e.jsx(En,{active:s})}function En({active:t}){const s=Me();return e.jsx(Dt,{settings:s,active:t})}function Dt({settings:t,active:s}){return e.jsx(Nn,{showTitle:!1,active:s,syncControl:t.showLocalCloudSync?e.jsx(Pn,{settings:t}):null})}function Pn({settings:t}){const s=ct(t.userId),n=dt()&&s.membership?.status!=="self_hosted"&&s.membership?.hosting_mode!=="self_hosted"&&s.catalog?.policy?.hosting_mode!=="self_hosted";return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex min-h-11 items-center justify-between gap-3",children:[e.jsxs("span",{className:"inline-flex min-w-0 items-center gap-3 text-sm font-medium",children:[e.jsx(De,{size:16,className:"shrink-0","aria-hidden":!0}),a("settings.account.cloudSync")]}),e.jsx("span",{className:"tt-cloud-theme tt-cloud-sync-control inline-flex","aria-busy":t.cloudSyncPending||void 0,children:e.jsx(z,{checked:t.cloudSyncOn,disabled:t.cloudSyncPending,onChange:()=>(t.cloudSyncOn?Ze(t.userId):la(t.userId,"sync"),t.handleCloudSyncToggle()),ariaLabel:a("settings.account.cloudSync")})})]}),t.cloudSyncOn&&t.cloudSyncPending?e.jsxs("p",{role:"status",className:"flex items-center gap-2 py-3 text-xs text-oai-gray-500 dark:text-oai-gray-400",children:[e.jsx(xe,{size:14,className:"motion-safe:animate-spin","aria-hidden":!0}),a("settings.account.cloudSyncPending")]}):null,t.cloudSyncOn&&t.cloudSyncError&&!t.cloudSyncPending?e.jsx("div",{className:"tt-cloud-theme py-3",children:e.jsx(ee,{role:"alert",onRetry:t.handleCloudSyncRetry,children:a("settings.account.cloudSyncError")})}):null,e.jsx(ca,{userId:t.userId,panel:"sync",localHost:!0,className:"py-3",onContinueLocal:()=>{Ze(t.userId),t.cloudSyncOn&&t.handleCloudSyncDisable()}}),t.cloudSyncOn&&n?e.jsx(On,{settings:t}):null]})}function On({settings:t}){const[s,n]=l.useState(!1),[r,i]=l.useState(null),[c,g]=l.useState(!1),o=l.useMemo(()=>({active:!0,busy:!1}),[t.userId,t.getAccessToken]);l.useEffect(()=>(o.active=!0,n(!1),i(null),g(!1),()=>{o.active=!1}),[o]);const d=async()=>{if(!(!o.active||o.busy||!t.cloudSyncOn)){o.busy=!0,g(!0),i(null);try{const p=await da(t.getAccessToken);o.active&&(i(p.pending?"pending":"complete"),n(!1))}catch(p){o.active&&i(p.code==="cloud_usage_reset_sync_busy"?"busy":"error")}finally{o.busy=!1,o.active&&g(!1)}}};return e.jsxs("div",{className:"border-t border-oai-gray-200 py-3 dark:border-oai-gray-800",children:[e.jsx(O,{size:"sm",variant:"secondary",disabled:c||t.cloudSyncPending,onClick:()=>{i(null),n(!0)},children:a("cloud.rebuild.action")}),r==="pending"||r==="complete"?e.jsx("p",{role:"status",className:"mt-2 text-xs text-oai-gray-500",children:a(r==="pending"?"cloud.rebuild.pending":"cloud.rebuild.complete")}):null,e.jsx(wt,{open:s,title:a("cloud.rebuild.title"),description:a("cloud.rebuild.description"),destructive:!0,busy:c,confirmLabel:a("cloud.rebuild.action"),cancelLabel:a("shared.action.cancel"),error:r==="error"?a("cloud.rebuild.error"):r==="busy"?a("cloud.rebuild.busy"):null,onConfirm:d,onCancel:()=>n(!1)})]})}function An(){return[{value:"light",label:a("settings.appearance.theme.light"),Icon:ma},{value:"dark",label:a("settings.appearance.theme.dark"),Icon:ga},{value:"system",label:a("settings.appearance.theme.system"),Icon:Ue}]}function Ln(){return[{value:fa,label:a("settings.appearance.language.system")},{value:xa,label:a("settings.appearance.language.english")},{value:ba,label:a("settings.appearance.language.chinese")},{value:ya,label:a("settings.appearance.language.traditional_chinese")},{value:va,label:a("settings.appearance.language.japanese")},{value:ja,label:a("settings.appearance.language.korean")},{value:ka,label:a("settings.appearance.language.german")}]}function Tn(t){if(!t)return null;try{const s=new Date(t);return Number.isNaN(s.getTime())?null:s.toLocaleString()}catch{return null}}function Rn(t,s){const n=a(`settings.appearance.currency.rate_source.${t}`),r=Tn(s),i=r?a("settings.appearance.currency.rate_updated",{when:r}):a("settings.appearance.currency.rate_never");return`${n} · ${i}`}function In({locale:t,setLocale:s}){const n=Ln();return e.jsx(ze,{value:t,onValueChange:s,options:n,ariaLabel:a("settings.appearance.language.label"),className:"px-2.5 py-1.5 text-xs font-medium",leadingIcon:e.jsx(As,{className:"h-3.5 w-3.5 text-oai-gray-500 dark:text-oai-gray-400","aria-hidden":!0})})}function Dn({currency:t,setCurrency:s}){const n=pa().map(r=>({value:r.code,label:a(r.labelKey)}));return e.jsx(ze,{value:t,onValueChange:s,options:n,ariaLabel:a("settings.appearance.currency.label"),className:"px-3 py-1.5 text-xs font-medium"})}function Un({currency:t,rate:s,rateSource:n,rateFetchedAt:r}){if(t===ha)return e.jsx(e.Fragment,{children:a("settings.appearance.currency.hint")});const i=Rn(n,r);return e.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[e.jsx("span",{children:`1 USD = ${s.toFixed(4)} ${t}`}),e.jsx("span",{role:"img","aria-label":i,title:i,className:"inline-flex h-4 w-4 cursor-help items-center justify-center text-oai-gray-400 hover:text-oai-gray-600 dark:text-oai-gray-500 dark:hover:text-oai-gray-300",children:e.jsx(_t,{className:"h-3.5 w-3.5","aria-hidden":!0})})]})}function zn(){const{theme:t,setTheme:s}=ua(),{locale:n,setLocale:r}=yt(),{currency:i,rate:c,rateSource:g,rateFetchedAt:o,setCurrency:d}=Ns(),{mode:p,setMode:h,unitSystem:m,setUnitSystem:j,grouping:w,setGrouping:x}=Ss();return e.jsxs(Y,{title:a("settings.section.appearance"),children:[e.jsx(R,{label:a("settings.appearance.theme.label"),hint:a("settings.appearance.theme.hint"),control:e.jsx(se,{options:An(),value:t,onChange:s})}),e.jsx(R,{label:a("settings.appearance.language.label"),hint:a("settings.appearance.language.hint"),control:e.jsx(In,{locale:n,setLocale:r})}),e.jsx(R,{label:a("settings.appearance.currency.label"),hint:e.jsx(Un,{currency:i,rate:c,rateSource:g,rateFetchedAt:o}),control:e.jsx(Dn,{currency:i,setCurrency:d})}),e.jsx(R,{label:a("settings.appearance.token_format.label"),hint:a("settings.appearance.token_format.hint"),control:e.jsx(se,{options:[{value:Se.COMPACT,label:a("settings.appearance.token_format.compact")},{value:Se.FULL,label:a("settings.appearance.token_format.full")}],value:p,onChange:h})}),e.jsx(R,{label:a("settings.appearance.token_unit.label"),hint:a("settings.appearance.token_unit.hint"),control:e.jsx(se,{disabled:p!==Se.COMPACT,options:[{value:Ye.ENGLISH,label:a("settings.appearance.token_unit.english")},{value:Ye.CHINESE,label:a("settings.appearance.token_unit.chinese")}],value:m,onChange:j})}),e.jsx(R,{label:a("settings.appearance.token_grouping.label"),hint:a("settings.appearance.token_grouping.hint"),control:e.jsx(se,{options:[{value:Je.THOUSAND,label:a("settings.appearance.token_grouping.thousand")},{value:Je.WAN,label:a("settings.appearance.token_grouping.wan")}],value:w,onChange:x})})]})}function Ee({labelKey:t}){return e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{children:a(t)}),e.jsx("span",{className:"px-1.5 py-0.5 text-[8px] font-semibold tracking-wider text-oai-gray-500 bg-oai-gray-100 dark:text-oai-gray-400 dark:bg-oai-gray-800/80 rounded uppercase scale-90 origin-left",children:a("qpd.card.badge")})]})}function Gn(){const{enabled:t,toggle:s}=Ha(),{enabled:n,toggle:r}=Va(),{available:i,settings:c,setSetting:g}=je(),o=i&&!!c?.dynamicIslandSupported,d=!!c?.dynamicIslandEnabled;return e.jsxs(Y,{title:a("settings.section.labs"),children:[o&&e.jsxs(e.Fragment,{children:[e.jsx(R,{label:e.jsx(Ee,{labelKey:"settings.labs.island.label"}),hint:a("settings.labs.island.hint"),control:e.jsx(z,{checked:d,onChange:()=>g("dynamicIslandEnabled",!d),ariaLabel:a("settings.labs.island.aria")})}),d&&e.jsx(R,{label:a("settings.labs.island_hide_menubar.label"),hint:a("settings.labs.island_hide_menubar.hint"),control:e.jsx(z,{checked:!!c?.hideMenuBarIcon,onChange:()=>g("hideMenuBarIcon",!c?.hideMenuBarIcon),ariaLabel:a("settings.labs.island_hide_menubar.aria")})})]}),e.jsx(R,{label:e.jsx(Ee,{labelKey:"settings.labs.qpd.label"}),hint:a("settings.labs.qpd.hint"),control:e.jsx(z,{checked:t,onChange:s,ariaLabel:a("settings.labs.qpd.aria")})}),e.jsx(R,{label:e.jsx(Ee,{labelKey:"settings.labs.sessions.label"}),hint:a("settings.labs.sessions.hint"),control:e.jsx(z,{checked:n,onChange:r,ariaLabel:a("settings.labs.sessions.aria")})})]})}function Mn(){const{available:t,settings:s,setSetting:n,runAction:r}=je();if(!t)return null;const i=vt(),c=!!s?.launchAtLogin,g=s?.toastOnReset!==!1,o=s?.confettiOnReset!==!1,d=s?.launchAtLoginSupported!==!1,p=s?.autoUpdateEnabled!==!1,h=s?.updateStatus||null,m=!!s?.updateBusy,j=!!s?.isSyncing;return e.jsxs(Y,{title:a("settings.section.menubar"),children:[i?null:e.jsxs(e.Fragment,{children:[e.jsx(R,{label:a("settings.menubar.appearance"),hint:a("settings.menubar.appearanceHint"),control:e.jsxs(O,{as:ye,to:"/widgets",variant:"secondary",size:"sm",className:"gap-1.5 no-underline",children:[e.jsx("span",{children:a("settings.menubar.appearanceLink")}),e.jsx(Cs,{className:"h-3.5 w-3.5","aria-hidden":!0})]})}),e.jsx(R,{label:a("settings.menubar.toastOnReset"),hint:a("settings.menubar.toastOnResetHint"),control:e.jsx(z,{checked:g,onChange:()=>n("toastOnReset",!g),ariaLabel:a("settings.menubar.toastOnReset")})}),e.jsx(R,{label:a("settings.menubar.confettiOnReset"),hint:a("settings.menubar.confettiOnResetHint"),control:e.jsx(z,{checked:o,onChange:()=>n("confettiOnReset",!o),ariaLabel:a("settings.menubar.confettiOnReset")})})]}),d?e.jsx(R,{label:a("settings.menubar.launchAtLogin"),hint:a("settings.menubar.launchAtLoginHint"),control:e.jsx(z,{checked:c,onChange:()=>n("launchAtLogin",!c),ariaLabel:a("settings.menubar.launchAtLogin")})}):null,e.jsx(R,{label:a("settings.menubar.syncNow"),hint:a("settings.menubar.syncNowHint"),control:e.jsxs(O,{variant:"secondary",size:"sm",onClick:()=>r("syncNow"),disabled:j,className:"gap-1.5",children:[e.jsx(De,{className:le("h-3.5 w-3.5",j&&"animate-spin"),"aria-hidden":!0}),e.jsx("span",{children:j?a("settings.menubar.syncing"):a("settings.menubar.syncNow")})]})}),e.jsx(R,{label:a("settings.menubar.autoUpdate"),hint:a("settings.menubar.autoUpdateHint"),control:e.jsx(z,{checked:p,onChange:()=>n("autoUpdateEnabled",!p),ariaLabel:a("settings.menubar.autoUpdate")})}),e.jsx(R,{label:a("settings.menubar.updates"),hint:h||void 0,control:e.jsxs(O,{variant:"secondary",size:"sm",onClick:()=>r("checkForUpdates"),disabled:m,className:"gap-1.5",children:[e.jsx(Ie,{className:"h-3.5 w-3.5","aria-hidden":!0}),e.jsx("span",{children:a("settings.menubar.checkUpdates")})]})})]})}function $n(t,s){function n(c){return c.replace(/^v/,"").split(".").map(Number)}const r=n(t),i=n(s);for(let c=0;c<Math.max(r.length,i.length);c++){const g=r[c]||0,o=i[c]||0;if(g<o)return!0;if(g>o)return!1}return!1}function Fn(){const{available:t,settings:s,runAction:n}=je(),r=t&&s?.version,i=s?.platform||"macos",[c,g]=Pe.useState(!1),[o,d]=Pe.useState({open:!1,latestVersion:"",htmlUrl:""}),{resolvedLocale:p}=yt(),h="1.4.3",m=async()=>{g(!0);try{const b=await fetch("https://api.github.com/repos/xiufengsun/TokenTracker/releases/latest");if(!b.ok)throw new Error("Failed to fetch");const u=await b.json(),y=u.tag_name;$n(h,y)?d({open:!0,latestVersion:y,htmlUrl:u.html_url}):Xe({title:a("settings.menubar.updates.upToDate")})}catch(b){console.error("Check updates failed:",b),Xe({title:a("settings.menubar.updates.failed")})}finally{g(!1)}},j=a("settings.menubar.updates.modalTitle"),w=a("settings.menubar.updates.modalDescription",{version:o.latestVersion}),x=a("settings.menubar.updates.modalConfirm"),_=a("settings.menubar.updates.modalCancel");return e.jsxs("div",{className:"mt-6 flex flex-col items-center justify-center gap-4 text-xs text-oai-gray-500 dark:text-oai-gray-500",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-center gap-2",children:[r?e.jsxs(e.Fragment,{children:[e.jsx("span",{children:i==="windows"?a("settings.menubar.updates.footerCore",{version:s.version}):a("settings.menubar.updates.footerCombined",{barVersion:s.version,coreVersion:h})}),e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsx("button",{type:"button",onClick:()=>n("openAbout"),className:"underline-offset-2 transition-colors hover:text-oai-gray-700 hover:underline dark:hover:text-oai-gray-300",children:"GitHub"}),e.jsx("span",{"aria-hidden":!0,children:"·"})]}):e.jsxs(e.Fragment,{children:[e.jsx("span",{children:a("settings.menubar.updates.footerCore",{version:h})}),e.jsx("span",{"aria-hidden":!0,children:"·"}),e.jsx("button",{type:"button",onClick:m,disabled:c,className:"underline-offset-2 transition-colors hover:text-oai-gray-700 hover:underline dark:hover:text-oai-gray-300 disabled:opacity-50",children:c?a("settings.menubar.updates.checking"):a("settings.menubar.checkUpdates")}),e.jsx("span",{"aria-hidden":!0,children:"·"})]}),e.jsxs("a",{href:_a,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 underline-offset-2 transition-colors hover:text-oai-gray-700 hover:underline dark:hover:text-oai-gray-300",children:[e.jsx(wa,{className:"h-3.5 w-3.5","aria-hidden":!0}),a("settings.footer.statusPage")]})]}),e.jsx(wt,{open:o.open,title:j,description:w,confirmLabel:x,cancelLabel:_,onConfirm:()=>{window.open(o.htmlUrl,"_blank"),d(b=>({...b,open:!1}))},onCancel:()=>d(b=>({...b,open:!1}))})]})}const Bn=()=>[{value:"system",label:a("settings.network.mode.system")},{value:"manual",label:a("settings.network.mode.manual")},{value:"off",label:a("settings.network.mode.off")}],Hn=()=>[{value:"http",label:a("settings.network.protocol.http")},{value:"https",label:a("settings.network.protocol.https")},{value:"socks5",label:a("settings.network.protocol.socks5")}];function rt(t){const s={},n=String(t.host||"").trim();(!n||/:\/\//.test(n)||n.includes("/"))&&(s.host=a("settings.network.error.host"));const r=String(t.port??"").trim(),i=Number(r);return(!r||!/^\d+$/.test(r)||!Number.isInteger(i)||i<1||i>65535)&&(s.port=a("settings.network.error.port")),s}function Vn({proxySettings:t}){const{config:s,save:n,testConnection:r}=t,[i,c]=l.useState(()=>({mode:s.mode,protocol:s.protocol||"http",host:s.host||"",port:s.port||""})),[g,o]=l.useState({}),[d,p]=l.useState(!1),[h,m]=l.useState(""),[j,w]=l.useState(null),[x,_]=l.useState(!1),[b,u]=l.useState(null);l.useEffect(()=>{c({mode:s.mode,protocol:s.protocol||"http",host:s.host||"",port:s.port||""})},[s.mode,s.protocol,s.host,s.port]);const y=l.useMemo(()=>s.effective==="manual"?a("settings.network.effective.manual"):s.effective==="env"?a("settings.network.effective.env"):s.effective==="system"?a("settings.network.effective.system"):s.effective==="blocked"?a("settings.network.effective.blocked"):a("settings.network.effective.none"),[s.effective]),k=l.useMemo(()=>i.mode!==s.mode?!0:i.mode==="manual"?(i.protocol||"http")!==(s.protocol||"http")||(i.host||"")!==(s.host||"")||String(i.port??"")!==String(s.port??""):!1,[i,s]),f=v=>{c(C=>({...C,...v})),o({}),m(""),w(null),u(null)},N=async()=>{if(i.mode==="manual"){const v=rt(i);if(Object.keys(v).length){o(v);return}}p(!0),m(""),w(null);try{await n(i),m("saved")}catch(v){m("error"),w(v)}finally{p(!1)}},E=async()=>{const v=rt(i);if(Object.keys(v).length){o(v);return}_(!0),u(null);try{const C=await r(i);u(C)}catch(C){u({ok:!1,error:C?.message||String(C)})}finally{_(!1)}};return e.jsxs(Y,{title:a("settings.section.network"),subtitle:y,children:[s.applyError?e.jsx("p",{role:"alert",className:"mb-3 text-xs text-red-600 dark:text-red-400",children:a("settings.network.apply_error",{error:s.applyError})}):null,e.jsx(R,{label:a("settings.network.mode.label"),hint:a("settings.network.mode.hint"),control:e.jsx(se,{options:Bn(),value:i.mode,onChange:v=>f({mode:v})})}),e.jsx(kt,{initial:!1,children:i.mode==="manual"?e.jsxs(jt.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{height:{duration:.28,ease:[.22,1,.36,1]},opacity:{duration:.2,ease:[.22,1,.36,1]}},style:{overflow:"hidden"},className:"divide-y divide-oai-gray-200/60 dark:divide-oai-gray-800/60",children:[e.jsx(R,{label:a("settings.network.protocol.label"),control:e.jsx(ze,{value:i.protocol,onValueChange:v=>f({protocol:v}),options:Hn(),ariaLabel:a("settings.network.protocol.label"),className:"px-2.5 py-1.5 text-xs font-medium"})}),e.jsx(R,{label:a("settings.network.host.label"),hint:g.host,control:e.jsx("input",{type:"text",value:i.host,onChange:v=>f({host:v.target.value}),placeholder:a("settings.network.host.placeholder"),autoComplete:"off",spellCheck:!1,"aria-invalid":g.host?!0:void 0,"aria-label":a("settings.network.host.label"),className:ve})}),e.jsx(R,{label:a("settings.network.port.label"),hint:g.port,control:e.jsx("input",{type:"text",inputMode:"numeric",value:i.port,onChange:v=>f({port:v.target.value}),placeholder:a("settings.network.port.placeholder"),autoComplete:"off",spellCheck:!1,"aria-invalid":g.port?!0:void 0,"aria-label":a("settings.network.port.label"),className:ve})}),e.jsxs("div",{className:"flex flex-wrap items-center justify-end gap-2 py-3",children:[e.jsx(O,{variant:"secondary",size:"sm",onClick:E,disabled:x||d,className:"gap-1.5",children:x?e.jsxs(e.Fragment,{children:[e.jsx(xe,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}),e.jsx("span",{children:a("settings.network.test.testing")})]}):a("settings.network.test")}),e.jsx(O,{variant:"primary",size:"sm",onClick:N,disabled:d||x,className:"gap-1.5",children:d?e.jsxs(e.Fragment,{children:[e.jsx(xe,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}),e.jsx("span",{children:a("settings.network.saving")})]}):a("settings.network.save")})]}),b?e.jsx("p",{className:"py-2 text-xs text-oai-gray-500 dark:text-oai-gray-400",children:b.ok?a("settings.network.test.ok",{status:String(b.status??"")}):a("settings.network.test.fail",{error:b.error||""})}):null]},"manual-proxy-fields"):null}),i.mode!=="manual"&&(k||d)?e.jsx("div",{className:"flex justify-end py-3",children:e.jsx(O,{variant:"primary",size:"sm",onClick:N,disabled:d,className:"gap-1.5",children:d?e.jsxs(e.Fragment,{children:[e.jsx(xe,{className:"h-3.5 w-3.5 animate-spin","aria-hidden":!0}),e.jsx("span",{children:a("settings.network.saving")})]}):a("settings.network.save")})},"non-manual-save"):null,h==="saved"?e.jsx("p",{className:"py-2 text-xs text-emerald-600 dark:text-emerald-400",children:a("settings.network.saved")}):null,h==="error"?e.jsx("p",{role:"alert",className:"py-2 text-xs text-red-600 dark:text-red-400",children:j?.unprotected?a("settings.network.save_error_unprotected",{error:j?.message||String(j||"")}):a("settings.network.save_error",{error:j?.message||String(j||"")})}):null]})}const Ut="/functions/tokentracker-proxy-config",qn="/functions/tokentracker-proxy-test",Kn={mode:"system",protocol:"http",host:"",port:"",effective:"none",applyError:null};function zt(t){return!t||typeof t.mode!="string"?null:{mode:t.mode,protocol:typeof t.protocol=="string"?t.protocol:"http",host:typeof t.host=="string"?t.host:"",port:t.port==null||t.port===0?"":String(t.port),effective:typeof t.effective=="string"?t.effective:"none",applyError:typeof t.applyError=="string"&&t.applyError.trim()?t.applyError:null}}async function Wn(){const t=await fetch(Ut,{method:"GET",headers:{Accept:"application/json"},cache:"no-store"});if(!t.ok)return null;const s=await t.json().catch(()=>null);return zt(s)}async function ot(){const{getLocalApiAuthHeaders:t}=await Na(async()=>{const{getLocalApiAuthHeaders:s}=await import("./__vite-browser-external-BtJVmciH.js").then(n=>n.d_);return{getLocalApiAuthHeaders:s}},__vite__mapDeps([0,1]));return t()}function Zn(){const[t,s]=l.useState(!1),[n,r]=l.useState(!0),[i,c]=l.useState(Kn);l.useEffect(()=>{if(!Wa()){s(!1),r(!1);return}let d=!1;return(async()=>{try{const p=await Wn();if(d)return;if(!p){s(!1),r(!1);return}c(p),s(!0),r(!1)}catch{d||(s(!1),r(!1))}})(),()=>{d=!0}},[]);const g=l.useCallback(async d=>{const p=await ot(),h=await fetch(Ut,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json",...p},cache:"no-store",body:JSON.stringify({mode:d.mode,protocol:d.protocol,host:d.host,port:d.port===""?0:Number(d.port)})}),m=await h.json().catch(()=>null);if(!h.ok){const w=m&&typeof m.error=="string"?m.error:`HTTP ${h.status}`;throw new Error(w)}const j=zt(m);if(j&&c(j),m&&m.ok===!1){const w=m&&typeof m.applyError=="string"&&m.applyError||m&&typeof m.error=="string"&&m.error||`HTTP ${h.status}`,x=new Error(w);throw m.unprotected===!0&&(x.unprotected=!0),x}return j||m},[]),o=l.useCallback(async d=>{const p=await ot(),h=await fetch(qn,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json",...p},cache:"no-store",body:JSON.stringify({protocol:d.protocol,host:d.host,port:d.port===""?0:Number(d.port)})}),m=await h.json().catch(()=>null);if(!m||typeof m.ok!="boolean")throw new Error(m&&typeof m.error=="string"?m.error:`HTTP ${h.status}`);return m},[]);return{available:t,loading:n,config:i,save:g,testConnection:o}}const B={APPEARANCE:"appearance",NATIVE_APP:"native-app",NETWORK:"network",ACCOUNT:"account",CLOUD:"cloud",LIMITS:"limits",LABS:"labs"},Z={PERSONAL:"personal",APP:"app",DEVELOPER:"developer"};function Yn({prefs:t}){return e.jsx(se,{options:[{value:at.USED,label:a("limits.settings.display_mode_used")},{value:at.REMAINING,label:a("limits.settings.display_mode_remaining")}],value:t.displayMode,onChange:t.setDisplayMode})}function Ii(){const t=Me(),s=$a(),{available:n,settings:r,setSetting:i}=je(),c=Zn(),{available:g}=c,o=r?.toastOnReset!==!1,d=r?.confettiOnReset!==!1,p=vt()||r?.platform==="windows",[h,m]=Sa(),j=xt(),w=h.get("section"),_=Object.values(B).includes(w)&&(w!==B.NATIVE_APP||n)&&(w!==B.NETWORK||g)?w:B.APPEARANCE,b=k=>{const f=new URLSearchParams(h);k===B.APPEARANCE?f.delete("section"):f.set("section",k),m(f,{replace:!0})},u=[{id:B.APPEARANCE,label:a("settings.section.appearance"),description:a("settings.section.appearance.description"),group:Z.PERSONAL,Icon:Ts,content:e.jsx(zn,{})},...n?[{id:B.NATIVE_APP,label:a("settings.section.menubar"),description:a("settings.section.menubar.description"),group:Z.APP,Icon:Ue,content:e.jsx(Mn,{})}]:[],...g?[{id:B.NETWORK,label:a("settings.section.network"),description:a("settings.section.network.description"),group:Z.APP,Icon:Ca,content:e.jsx(Vn,{proxySettings:c})}]:[],{id:B.ACCOUNT,label:a("settings.section.account"),description:a("settings.section.account.description"),group:Z.PERSONAL,Icon:Rs,content:e.jsx(nn,{settings:t})},{id:B.CLOUD,label:a("settings.section.cloud"),description:a("settings.section.cloud.description"),group:Z.PERSONAL,Icon:fe,content:e.jsx(Cn,{settings:t,active:_===B.CLOUD})},{id:B.LIMITS,label:a("settings.section.limits"),description:a("settings.section.limits.description"),group:Z.APP,Icon:Ea,content:e.jsxs("div",{className:"space-y-4",children:[e.jsxs(Y,{title:a("settings.section.limits"),children:[e.jsx(R,{label:a("limits.settings.display_mode_label"),control:e.jsx(Yn,{prefs:s})}),p?null:e.jsxs(e.Fragment,{children:[e.jsx(R,{label:a("settings.menubar.toastOnReset"),hint:a("settings.menubar.toastOnResetHint"),control:e.jsx(z,{checked:o,disabled:!n,onChange:()=>i("toastOnReset",!o),ariaLabel:a("settings.menubar.toastOnReset")})}),e.jsx(R,{label:a("settings.menubar.confettiOnReset"),hint:a("settings.menubar.confettiOnResetHint"),control:e.jsx(z,{checked:d,disabled:!n,onChange:()=>i("confettiOnReset",!d),ariaLabel:a("settings.menubar.confettiOnReset")})})]}),e.jsx(R,{label:a("settings.limits.showSubscriptions"),hint:a("settings.limits.showSubscriptionsHint"),control:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(O,{variant:"secondary",size:"sm",onClick:()=>j("/limits?openSubscriptions=1"),"aria-label":a("limits.page.openSubscriptions"),title:a("limits.page.openSubscriptions"),className:"!h-7 !w-7 !p-0 text-oai-gray-500 hover:text-oai-black dark:text-oai-gray-400 dark:hover:text-white",children:e.jsx(Pa,{size:14,"aria-hidden":!0})}),e.jsx(z,{checked:s.showSubscriptions!==!1,onChange:()=>s.setShowSubscriptions(!s.showSubscriptions),ariaLabel:a("settings.limits.showSubscriptions")})]})})]}),e.jsx(Y,{title:a("settings.limits.providers"),children:e.jsx(zs,{prefs:s})})]})},{id:B.LABS,label:a("settings.section.labs"),description:a("settings.section.labs.description"),group:Z.DEVELOPER,Icon:Ps,content:e.jsx(Gn,{})}],y=[{id:Z.PERSONAL,label:a("settings.nav.group.personal")},{id:Z.APP,label:a("settings.nav.group.app")},{id:Z.DEVELOPER,label:a("settings.nav.group.developer")}].map(k=>({...k,sections:u.filter(f=>f.group===k.id)})).filter(k=>k.sections.length>0);return e.jsx("div",{className:le("flex flex-1 flex-col font-oai text-oai-black antialiased dark:text-oai-white",_===B.CLOUD&&"tt-cloud-settings"),children:e.jsx("main",{className:"flex-1 pb-12 pt-8 sm:pb-16 sm:pt-10",children:e.jsxs("div",{className:"mx-auto w-full max-w-5xl px-4 sm:px-6",children:[e.jsxs("div",{className:"mb-7 max-w-2xl",children:[e.jsx("h1",{className:"text-3xl font-semibold tracking-tight text-oai-black dark:text-white sm:text-4xl",children:a("settings.page.title")}),e.jsx("p",{className:"mt-2 text-sm leading-6 text-oai-gray-500 dark:text-oai-gray-400 sm:text-base",children:a("settings.page.subtitle")})]}),e.jsxs("div",{className:"tt-settings-sections grid min-w-0 gap-6 md:grid-cols-[11rem_minmax(0,1fr)] md:gap-8",children:[e.jsx("aside",{className:"min-w-0 rounded-xl border border-oai-gray-200 bg-oai-gray-50/70 p-2 dark:border-oai-gray-800 dark:bg-oai-gray-900/60 md:border-0 md:bg-transparent md:p-0 md:dark:bg-transparent",children:e.jsx("nav",{"aria-label":a("settings.page.title"),className:"flex gap-1 overflow-x-auto [scrollbar-width:none] [&::-webkit-scrollbar]:hidden md:sticky md:top-6 md:flex-col md:gap-4 md:overflow-visible",children:y.map(({id:k,label:f,sections:N})=>e.jsxs("div",{className:"flex shrink-0 gap-1 md:block",children:[e.jsx("div",{className:"hidden px-3 pb-1 text-[10px] font-semibold uppercase tracking-[0.16em] text-oai-gray-400 dark:text-oai-gray-500 md:block",children:f}),e.jsx("div",{className:"flex gap-1 md:flex-col",children:N.map(({id:E,label:v,Icon:C})=>{const A=_===E;return e.jsxs("button",{id:`settings-nav-${E}`,type:"button","aria-current":A?"page":void 0,"aria-controls":`settings-panel-${E}`,onClick:()=>b(E),className:le("inline-flex min-h-10 min-w-max shrink-0 items-center gap-1.5 rounded-md px-2 py-2 text-left text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-oai-brand-500 md:w-full md:min-w-0 md:gap-2 md:px-3",A?"bg-oai-gray-100 text-oai-black dark:bg-oai-gray-800 dark:text-white":"text-oai-gray-500 hover:bg-oai-gray-50 hover:text-oai-gray-900 dark:text-oai-gray-400 dark:hover:bg-oai-gray-900 dark:hover:text-oai-gray-200"),children:[e.jsx(C,{className:le("h-4 w-4 shrink-0",A?"text-oai-black dark:text-white":"text-oai-gray-400 dark:text-oai-gray-500"),"aria-hidden":!0}),e.jsx("span",{className:"truncate",children:v})]},E)})})]},k))})}),e.jsxs("div",{className:"min-w-0",children:[u.map(({id:k,label:f,content:N})=>e.jsx("section",{id:`settings-panel-${k}`,"aria-labelledby":`settings-nav-${k}`,"aria-label":f,"data-settings-panel":k,hidden:_!==k,children:N},k)),e.jsx(Fn,{})]})]})]})})})}export{Ii as SettingsPage};