tokentracker-cli 0.97.1 → 0.98.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/README.de.md +3 -3
  2. package/README.ja.md +3 -3
  3. package/README.ko.md +3 -3
  4. package/README.md +7 -5
  5. package/README.zh-CN.md +3 -3
  6. package/dashboard/dist/assets/AchievementBadge-DlZklawB.js +1 -0
  7. package/dashboard/dist/assets/{AchievementsPage-CrqvRxnb.js → AchievementsPage-CprbOKnt.js} +2 -2
  8. package/dashboard/dist/assets/AchievementsSection-BKLJBRKw.js +1 -0
  9. package/dashboard/dist/assets/{BadgeDetailModal-CquST3dj.js → BadgeDetailModal-CfVXLh_t.js} +1 -1
  10. package/dashboard/dist/assets/{BotAnimated-EXhdUHSg.js → BotAnimated-wzqeGbEY.js} +1 -1
  11. package/dashboard/dist/assets/{Card-Il2WWgOG.js → Card-B-gcOAn7.js} +1 -1
  12. package/dashboard/dist/assets/{ClawdAnimated-DioF5wa-.js → ClawdAnimated-1c5ezBBN.js} +2 -2
  13. package/dashboard/dist/assets/CommandPalette-CD8ggEF6.js +1 -0
  14. package/dashboard/dist/assets/CommunityStatsModal-b2fPhi1E.js +1 -0
  15. package/dashboard/dist/assets/{ConfirmModal-BHWQLUCM.js → ConfirmModal-ARBkT8AC.js} +1 -1
  16. package/dashboard/dist/assets/{Controls--LFhExZX.js → Controls-WFXDjIYG.js} +1 -1
  17. package/dashboard/dist/assets/DashboardPage-XtiZa2JN.js +1 -0
  18. package/dashboard/dist/assets/{DevicePage-RKTirqz0.js → DevicePage-BCwSpNXa.js} +1 -1
  19. package/dashboard/dist/assets/{DialogClose-DPFsTKmJ.js → DialogClose-D2PE0TAc.js} +1 -1
  20. package/dashboard/dist/assets/DialogDescription-5LunWukT.js +1 -0
  21. package/dashboard/dist/assets/{DialogTitle-DolLpmFL.js → DialogTitle-Bby0zSCw.js} +1 -1
  22. package/dashboard/dist/assets/{FadeIn-92GGNCPe.js → FadeIn-Cx1hl4so.js} +1 -1
  23. package/dashboard/dist/assets/{HeaderGithubStar-GfXudotT.js → HeaderGithubStar-my4zR6Pp.js} +1 -1
  24. package/dashboard/dist/assets/{HoverTooltip-n7gbPEsq.js → HoverTooltip-DOiGAPLE.js} +1 -1
  25. package/dashboard/dist/assets/{IpCheckPage-BaQOTbXi.js → IpCheckPage-4SdHlFuA.js} +1 -1
  26. package/dashboard/dist/assets/{LandingPage-D3JcvxW_.js → LandingPage-bSWc9xiS.js} +2 -2
  27. package/dashboard/dist/assets/{LeaderboardAvatar-tVaWJXZ3.js → LeaderboardAvatar-EN4117E5.js} +1 -1
  28. package/dashboard/dist/assets/LeaderboardPage-Bwjf-xZl.js +2 -0
  29. package/dashboard/dist/assets/{LeaderboardProfileModal-DmvcCVS7.js → LeaderboardProfileModal-B1mgVtfP.js} +4 -4
  30. package/dashboard/dist/assets/{LeaderboardProfilePage-VSv3IlzS.js → LeaderboardProfilePage-DVt5S3lY.js} +1 -1
  31. package/dashboard/dist/assets/{LimitsPage-CtxgT20z.js → LimitsPage-BCXjJE1B.js} +5 -5
  32. package/dashboard/dist/assets/{LocalOnlyNotice-O9o586G8.js → LocalOnlyNotice-CzeH4OoJ.js} +1 -1
  33. package/dashboard/dist/assets/LoginCard-aiqSQInP.js +1 -0
  34. package/dashboard/dist/assets/{LoginModal-CJ3g7tBc.js → LoginModal-DdGKIi8h.js} +1 -1
  35. package/dashboard/dist/assets/{LoginPage-DPWzPywx.js → LoginPage-D7xGSoMn.js} +1 -1
  36. package/dashboard/dist/assets/PetPage-Dlb6rNpF.js +1 -0
  37. package/dashboard/dist/assets/{PopoverPopup-nL3YOLPO.js → PopoverPopup-Xbruj7Zi.js} +1 -1
  38. package/dashboard/dist/assets/{ProviderIcon-C5RX_xPk.js → ProviderIcon-BPxacBzj.js} +1 -1
  39. package/dashboard/dist/assets/{ResetPasswordPage-DW_NCwA_.js → ResetPasswordPage-9wgPnLRj.js} +1 -1
  40. package/dashboard/dist/assets/{SegmentedControl-CS6wQtck.js → SegmentedControl-CYFcZFNE.js} +1 -1
  41. package/dashboard/dist/assets/{Select-YqlqvbT5.js → Select-zpFEMqpk.js} +1 -1
  42. package/dashboard/dist/assets/{SelectItemText-BahqsiIc.js → SelectItemText-Bldm5Y0C.js} +1 -1
  43. package/dashboard/dist/assets/{ServiceStatusPage-DyhutLUy.js → ServiceStatusPage-dgtwFazV.js} +1 -1
  44. package/dashboard/dist/assets/{SessionsPage-wbvi4EHi.js → SessionsPage-DHfpv53M.js} +2 -2
  45. package/dashboard/dist/assets/SettingsPage-DcGToOT7.js +2 -0
  46. package/dashboard/dist/assets/SkillsPage-DiQDLw2l.js +1 -0
  47. package/dashboard/dist/assets/TokenGalaxy-GDx7ftMU.js +4426 -0
  48. package/dashboard/dist/assets/ToolbarRootContext-PoCcP2AV.js +1 -0
  49. package/dashboard/dist/assets/{TrendMonitor-BtBcCjx-.js → TrendMonitor-CIfq_yk8.js} +1 -1
  50. package/dashboard/dist/assets/{WidgetsPage-BSNl2WIL.js → WidgetsPage-Dwy-E3Lf.js} +1 -1
  51. package/dashboard/dist/assets/{WrappedPage-d5oiNV4T.js → WrappedPage-Ce7NV6Ij.js} +1 -1
  52. package/dashboard/dist/assets/__vite-browser-external-D-WLjvZW.js +45 -0
  53. package/dashboard/dist/assets/{agent-logos-CCVzO3uU.js → agent-logos-BY8n7b9g.js} +1 -1
  54. package/dashboard/dist/assets/arrow-up-right-BDiV6Wlk.js +1 -0
  55. package/dashboard/dist/assets/check-Chyo6ujc.js +1 -0
  56. package/dashboard/dist/assets/{composite-CWz1s64R.js → composite-DgBqMs_Z.js} +1 -1
  57. package/dashboard/dist/assets/copy-ENRv4pAy.js +1 -0
  58. package/dashboard/dist/assets/download-D3y3gd-z.js +1 -0
  59. package/dashboard/dist/assets/external-link-VxSAxWnH.js +1 -0
  60. package/dashboard/dist/assets/flame-CPdTWeRo.js +1 -0
  61. package/dashboard/dist/assets/{format-tokens-Bs2YotMr.js → format-tokens-BF2G89Q7.js} +1 -1
  62. package/dashboard/dist/assets/{icons-OKyij2y_.js → icons-D6rfdVyV.js} +1 -1
  63. package/dashboard/dist/assets/{index-CN7xY7j_.js → index-4bHcp2Ep.js} +1 -1
  64. package/dashboard/dist/assets/{index-C8nY1OaT.js → index-CgmpxGym.js} +1 -1
  65. package/dashboard/dist/assets/{index-DOwPCQx2.js → index-mzMCUT_4.js} +1 -1
  66. package/dashboard/dist/assets/info-BMso9PcY.js +1 -0
  67. package/dashboard/dist/assets/link-2-Bg34XOcd.js +1 -0
  68. package/dashboard/dist/assets/loader-circle-C4Vul1Yx.js +1 -0
  69. package/dashboard/dist/assets/maximize-2-BBqcwFFo.js +1 -0
  70. package/dashboard/dist/assets/{modifiers.esm-D_aVVjx5.js → modifiers.esm-B2F4Iiey.js} +1 -1
  71. package/dashboard/dist/assets/module-B5tW98jG.js +3 -0
  72. package/dashboard/dist/assets/monitor-smartphone-k1Ja3ngF.js +1 -0
  73. package/dashboard/dist/assets/plus-BaCIejxc.js +1 -0
  74. package/dashboard/dist/assets/provider-display-BYxmO9Bu.js +42 -0
  75. package/dashboard/dist/assets/{react-jS0-5kwE.js → react-xGx5RIqz.js} +1 -1
  76. package/dashboard/dist/assets/search-LZQC7j6a.js +1 -0
  77. package/dashboard/dist/assets/{skills-api-PwUMTdmV.js → skills-api-yLfQkApo.js} +1 -1
  78. package/dashboard/dist/assets/{sortable.esm-BDdw7tkz.js → sortable.esm-B8XRHrmA.js} +1 -1
  79. package/dashboard/dist/assets/{store-CFdu9yv_.js → store-DfUIKvz3.js} +1 -1
  80. package/dashboard/dist/assets/terminal-CsFh6eZS.js +1 -0
  81. package/dashboard/dist/assets/trash-CVk10mDa.js +1 -0
  82. package/dashboard/dist/assets/{use-community-stats-D55oU9bu.js → use-community-stats-DP7lJyDV.js} +1 -1
  83. package/dashboard/dist/assets/{use-latest-request-guard-BO89yQ3n.js → use-latest-request-guard-B7uLArxV.js} +1 -1
  84. package/dashboard/dist/assets/{use-limits-display-prefs-C358N7B0.js → use-limits-display-prefs-DG97cWcv.js} +1 -1
  85. package/dashboard/dist/assets/{use-ordered-list-B9ZYDS1K.js → use-ordered-list-ChQc2v-Q.js} +1 -1
  86. package/dashboard/dist/assets/use-reduced-motion-BoFF1l9U.js +1 -0
  87. package/dashboard/dist/assets/use-session-efficiency-pref-CtF9JAlF.js +1 -0
  88. package/dashboard/dist/assets/{use-transform-9S4Ruq_s.js → use-transform-DVIBk7FO.js} +1 -1
  89. package/dashboard/dist/assets/{use-usage-limits-CpnM5V06.js → use-usage-limits-BYQuJ9Ud.js} +1 -1
  90. package/dashboard/dist/assets/{useCurrency-BKJGW_4l.js → useCurrency-CNkzJCP9.js} +1 -1
  91. package/dashboard/dist/assets/{useTokenFormat-CTB5svOB.js → useTokenFormat-CU3MtXtS.js} +1 -1
  92. package/dashboard/dist/assets/zap-D5k595AR.js +1 -0
  93. package/dashboard/dist/index.html +13 -11
  94. package/dashboard/dist/ip-check.html +1 -1
  95. package/dashboard/dist/leaderboard.html +1 -1
  96. package/dashboard/dist/llms.txt +3 -2
  97. package/dashboard/dist/share.html +1 -1
  98. package/package.json +2 -2
  99. package/src/commands/init.js +1 -0
  100. package/src/commands/status.js +13 -0
  101. package/src/commands/sync.js +61 -4
  102. package/src/lib/cloud-account.js +108 -0
  103. package/src/lib/grok-limits.js +37 -0
  104. package/src/lib/opencode-config.js +20 -1
  105. package/src/lib/pricing/curated-overrides.json +22 -0
  106. package/src/lib/pricing/index.js +9 -1
  107. package/src/lib/pricing/seed-snapshot.json +1 -1
  108. package/src/lib/rollout.js +1244 -168
  109. package/src/lib/usage-limits.js +7 -1
  110. package/dashboard/dist/assets/AchievementBadge-BdvqY4Qb.js +0 -1
  111. package/dashboard/dist/assets/AchievementsSection-wyLAM9N7.js +0 -1
  112. package/dashboard/dist/assets/CommandPalette-CaDx06tM.js +0 -1
  113. package/dashboard/dist/assets/CommunityStatsModal-BbYWzM07.js +0 -1
  114. package/dashboard/dist/assets/DashboardPage-DuqJOpHL.js +0 -1
  115. package/dashboard/dist/assets/DialogDescription-DgaV8Gtk.js +0 -1
  116. package/dashboard/dist/assets/LeaderboardPage-NqHcStnk.js +0 -2
  117. package/dashboard/dist/assets/LoginCard-JCejigVu.js +0 -1
  118. package/dashboard/dist/assets/PetPage-MSJ3jseK.js +0 -1
  119. package/dashboard/dist/assets/SettingsPage-HGSwpV1O.js +0 -2
  120. package/dashboard/dist/assets/SkillsPage-BbVT9oyh.js +0 -1
  121. package/dashboard/dist/assets/TokenGalaxy-Cej6MLu6.js +0 -4314
  122. package/dashboard/dist/assets/ToolbarRootContext-D9pPY73U.js +0 -1
  123. package/dashboard/dist/assets/__vite-browser-external-CjrP5KfC.js +0 -45
  124. package/dashboard/dist/assets/arrow-up-right-AKItXMyh.js +0 -1
  125. package/dashboard/dist/assets/check-BQw5n0V0.js +0 -1
  126. package/dashboard/dist/assets/copy-CF8XNmv3.js +0 -1
  127. package/dashboard/dist/assets/download-BZvLU_hD.js +0 -1
  128. package/dashboard/dist/assets/external-link-bZrcVkeE.js +0 -1
  129. package/dashboard/dist/assets/flame-CMHolW1z.js +0 -1
  130. package/dashboard/dist/assets/info-CU7bMBhU.js +0 -1
  131. package/dashboard/dist/assets/link-2-wwoUOujz.js +0 -1
  132. package/dashboard/dist/assets/loader-circle-BK3Ltc-j.js +0 -1
  133. package/dashboard/dist/assets/maximize-2-DIPnLqR8.js +0 -1
  134. package/dashboard/dist/assets/module-DUSXqJtA.js +0 -3
  135. package/dashboard/dist/assets/monitor-smartphone-4NOM9BHb.js +0 -1
  136. package/dashboard/dist/assets/plus-JqSTJ28Y.js +0 -1
  137. package/dashboard/dist/assets/provider-display-CEFlg9ho.js +0 -42
  138. package/dashboard/dist/assets/search-CbBetPN7.js +0 -1
  139. package/dashboard/dist/assets/terminal-Dh7Sh6IG.js +0 -1
  140. package/dashboard/dist/assets/trash-B6_OaEVL.js +0 -1
  141. package/dashboard/dist/assets/use-reduced-motion-DWHVI51t.js +0 -1
  142. package/dashboard/dist/assets/use-session-efficiency-pref-CwGRDyVq.js +0 -1
  143. package/dashboard/dist/assets/zap-DGdBuT6m.js +0 -1
@@ -0,0 +1 @@
1
+ import{r as n,v as a}from"./__vite-browser-external-D-WLjvZW.js";import{u as p}from"./DialogTitle-Bby0zSCw.js";import{u as c}from"./composite-DgBqMs_Z.js";const x=n.forwardRef(function(e,r){const{render:l,className:u,style:m,id:s,...t}=e,i=p(),o=c(s);return i.useSyncedValueWithCleanup("descriptionElementId",o),a("p",e,{ref:r,props:[{id:o},t]})});export{x as D};
@@ -1 +1 @@
1
- import{r as c,ay as N,v as I,aH as V,aG as L,j as C,aL as H,aM as K,aN as _,aO as W,ax as G,aP as Q,w as Y,aQ as q,aR as z}from"./__vite-browser-external-CjrP5KfC.js";import{p as J,b as X,c as Z,d as $,e as ee,C as te,I as ne,f as oe,g as se,h as ae,i as re,P as ie,j as le,k as ue,l as ce,m as de,n as pe,u as ge}from"./composite-CWz1s64R.js";import{p as fe,c as me}from"./store-CFdu9yv_.js";const F=c.createContext(void 0);function R(e){const t=c.useContext(F);if(!e&&t===void 0)throw new Error(N(27));return t}const we=c.forwardRef(function(t,o){const{render:a,className:p,style:l,forceRender:u=!1,...d}=t,s=R(),n=s.useState("open"),g=s.useState("nested"),S=s.useState("mounted"),m=s.useState("transitionStatus");return I("div",t,{state:{open:n,transitionStatus:m},ref:[s.context.backdropRef,o],stateAttributesMapping:J,props:[{role:"presentation",hidden:!S,style:{userSelect:"none",WebkitUserSelect:"none"}},d],enabled:u||!g})}),j=c.createContext(void 0);function B(){const e=c.useContext(j);if(e===void 0)throw new Error(N(26));return e}const Se="--nested-dialogs",he="data-nested-dialog-open",A={...X,...V,nestedDialogOpen(e){return e?{[he]:""}:null}},ye=c.forwardRef(function(t,o){const{render:a,className:p,style:l,finalFocus:u,initialFocus:d,...s}=t,n=R(),g=n.useState("descriptionElementId"),S=n.useState("disablePointerDismissal"),m=n.useState("floatingRootContext"),h=n.useState("popupProps"),i=n.useState("modal"),f=n.useState("mounted"),D=n.useState("nested"),P=n.useState("nestedOpenDialogCount"),O=n.useState("open"),x=n.useState("openMethod"),r=n.useState("titleElementId"),b=n.useState("transitionStatus"),w=n.useState("role"),y=m.useState("floatingId");B(),L({open:O,ref:n.context.popupRef,onComplete(){O&&n.context.onOpenChangeComplete?.(!0)}});const E=d===void 0?Z(n.context.popupRef):d,k=P>0,v=n.useStateSetter("popupElement"),U=I("div",t,{state:{open:O,nested:D,transitionStatus:b,nestedDialogOpen:k},props:[h,{id:y,"aria-labelledby":r,"aria-describedby":g,role:w,...ee,hidden:!f,onKeyDown(T){te.has(T.key)&&T.stopPropagation()},style:{[Se]:P}},s],ref:[o,n.context.popupRef,v],stateAttributesMapping:A});return C.jsx($,{context:m,openInteractionType:x,disabled:!f,closeOnFocusOut:!S,initialFocus:E,returnFocus:u,modal:i!==!1,restoreFocus:"popup",children:U})}),ke=c.forwardRef(function(t,o){const{keepMounted:a=!1,...p}=t,l=R(),u=l.useState("mounted"),d=l.useState("modal"),s=l.useState("open");return u||a?C.jsx(j.Provider,{value:a,children:C.jsxs(H,{ref:o,...p,children:[u&&d===!0&&C.jsx(ne,{ref:l.context.internalBackdropRef,inert:K(!s)}),t.children]})}):null});function Pe({store:e,parentContext:t,isDrawer:o}){const a=e.useState("open"),p=e.useState("disablePointerDismissal"),l=e.useState("modal"),u=e.useState("popupElement"),d=e.useState("floatingRootContext"),[s,n]=c.useState(0),[g,S]=c.useState(0),m=s===0,h=oe(d,{outsidePressEvent(){return e.context.internalBackdropRef.current||e.context.backdropRef.current?"intentional":{mouse:l==="trap-focus"?"sloppy":"intentional",touch:"sloppy"}},outsidePress(i){if(!e.context.outsidePressEnabledRef.current||"button"in i&&i.button!==0)return!1;if("touches"in i){if(i.type==="touchend"){if(i.changedTouches.length!==1||i.touches.length!==0)return!1}else if(i.touches.length!==1)return!1}const f=_(i);if(m&&!p){if(l){const D=e.context.internalBackdropRef.current,P=e.context.backdropRef.current;return D||P?D===f||P===f||W(f,u)&&!f?.hasAttribute("data-base-ui-portal"):!0}return!0}return!1},escapeKey:m});return se(a&&l===!0,u),e.useContextCallback("onNestedDialogOpen",(i,f)=>{n(i),S(f)}),G(()=>(t?.onNestedDialogOpen&&(a?t.onNestedDialogOpen(s+1,g+(o?1:0)):t.onNestedDialogOpen(0,0)),()=>{t?.onNestedDialogOpen&&a&&t.onNestedDialogOpen(0,0)}),[o,a,s,g,t]),ae(e,{activeTriggerProps:h.reference,inactiveTriggerProps:h.trigger,popupProps:h.floating,nestedOpenDialogCount:s,nestedOpenDrawerCount:g}),null}const De={...fe,modal:e=>e.modal,nested:e=>e.nested,nestedOpenDialogCount:e=>e.nestedOpenDialogCount,nestedOpenDrawerCount:e=>e.nestedOpenDrawerCount,disablePointerDismissal:e=>e.disablePointerDismissal,openMethod:e=>e.openMethod,descriptionElementId:e=>e.descriptionElementId,titleElementId:e=>e.titleElementId,viewportElement:e=>e.viewportElement,role:e=>e.role};class Ce extends Q{constructor(t,o,a){const p=new ie,l=Oe(t,p,o,a);super(l,Re(p),De)}setOpen=(t,o)=>{o.preventUnmountOnClose=()=>{this.set("preventUnmountingOnClose",!0)},!t&&o.trigger==null&&this.state.activeTriggerId!=null&&(o.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(t,o),!o.isCanceled&&(this.state.floatingRootContext.dispatchOpenChange(t,o),this.update(re(this.state,t,o.trigger)))}}function Oe(e,t,o,a=!1){return{...me(t,o,a),modal:!0,disablePointerDismissal:!1,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,nestedOpenDrawerCount:0,role:"dialog",...e}}function Re(e){return{popupRef:c.createRef(),backdropRef:c.createRef(),internalBackdropRef:c.createRef(),outsidePressEnabledRef:{current:!0},triggerElements:e,onOpenChange:void 0,onOpenChangeComplete:void 0}}function be(e,t){const{children:o,open:a,defaultOpen:p=!1,onOpenChange:l,onOpenChangeComplete:u,disablePointerDismissal:d=!1,modal:s=!0,actionsRef:n,handle:g,triggerId:S,defaultTriggerId:m=null}=t,h=e==="drawer",i=s,f=d,D="dialog",P=R(!0),O=P!=null,x={modal:i,disablePointerDismissal:f,nested:O,role:D},r=le((v,M)=>new Ce({open:p,openProp:a,activeTriggerId:m,triggerIdProp:S,...x},v,M),!0);r.useControlledProp("openProp",a),r.useControlledProp("triggerIdProp",S),r.useSyncedValues(x),r.useContextCallback("onOpenChange",l),r.useContextCallback("onOpenChangeComplete",u);const b=r.useState("open"),w=r.useState("mounted"),y=r.useState("payload");ue(r,b),ce(r);const{forceUnmount:E}=de(b,r);c.useImperativeHandle(n,()=>({unmount:E,close:()=>r.setOpen(!1,Y(q))}),[E,r]);const k=b||w;return C.jsxs(F.Provider,{value:r,children:[g&&C.jsx(pe,{handle:g,store:r}),k&&C.jsx(Pe,{store:r,parentContext:P?.context,isDrawer:h}),typeof o=="function"?o({payload:y}):o]})}const ve=z(function(t){return be("dialog",t)}),Me=c.forwardRef(function(t,o){const{render:a,className:p,style:l,children:u,...d}=t,s=B(),n=R(),g=n.useState("open"),S=n.useState("nested"),m=n.useState("transitionStatus"),h=n.useState("nestedOpenDialogCount"),i=n.useState("mounted"),f=n.useStateSetter("viewportElement"),D=h>0;return I("div",t,{enabled:s||i,state:{open:g,nested:S,transitionStatus:m,nestedDialogOpen:D},ref:[o,f],stateAttributesMapping:A,props:[{role:"presentation",hidden:!i,style:{pointerEvents:g?void 0:"none"},children:u},d]})}),Te=c.forwardRef(function(t,o){const{render:a,className:p,style:l,id:u,...d}=t,s=R(),n=ge(u);return s.useSyncedValueWithCleanup("titleElementId",n),I("h2",t,{ref:o,props:[{id:n},d]})});export{ve as D,ke as a,we as b,Me as c,ye as d,Te as e,R as u};
1
+ import{r as c,ay as N,v as I,aH as V,aG as L,j as C,aL as H,aM as K,aN as _,aO as W,ax as G,aP as Q,w as Y,aQ as q,aR as z}from"./__vite-browser-external-D-WLjvZW.js";import{p as J,b as X,c as Z,d as $,e as ee,C as te,I as ne,f as oe,g as se,h as ae,i as re,P as ie,j as le,k as ue,l as ce,m as de,n as pe,u as ge}from"./composite-DgBqMs_Z.js";import{p as fe,c as me}from"./store-DfUIKvz3.js";const F=c.createContext(void 0);function R(e){const t=c.useContext(F);if(!e&&t===void 0)throw new Error(N(27));return t}const we=c.forwardRef(function(t,o){const{render:a,className:p,style:l,forceRender:u=!1,...d}=t,s=R(),n=s.useState("open"),g=s.useState("nested"),S=s.useState("mounted"),m=s.useState("transitionStatus");return I("div",t,{state:{open:n,transitionStatus:m},ref:[s.context.backdropRef,o],stateAttributesMapping:J,props:[{role:"presentation",hidden:!S,style:{userSelect:"none",WebkitUserSelect:"none"}},d],enabled:u||!g})}),j=c.createContext(void 0);function B(){const e=c.useContext(j);if(e===void 0)throw new Error(N(26));return e}const Se="--nested-dialogs",he="data-nested-dialog-open",A={...X,...V,nestedDialogOpen(e){return e?{[he]:""}:null}},ye=c.forwardRef(function(t,o){const{render:a,className:p,style:l,finalFocus:u,initialFocus:d,...s}=t,n=R(),g=n.useState("descriptionElementId"),S=n.useState("disablePointerDismissal"),m=n.useState("floatingRootContext"),h=n.useState("popupProps"),i=n.useState("modal"),f=n.useState("mounted"),D=n.useState("nested"),P=n.useState("nestedOpenDialogCount"),O=n.useState("open"),x=n.useState("openMethod"),r=n.useState("titleElementId"),b=n.useState("transitionStatus"),w=n.useState("role"),y=m.useState("floatingId");B(),L({open:O,ref:n.context.popupRef,onComplete(){O&&n.context.onOpenChangeComplete?.(!0)}});const E=d===void 0?Z(n.context.popupRef):d,k=P>0,v=n.useStateSetter("popupElement"),U=I("div",t,{state:{open:O,nested:D,transitionStatus:b,nestedDialogOpen:k},props:[h,{id:y,"aria-labelledby":r,"aria-describedby":g,role:w,...ee,hidden:!f,onKeyDown(T){te.has(T.key)&&T.stopPropagation()},style:{[Se]:P}},s],ref:[o,n.context.popupRef,v],stateAttributesMapping:A});return C.jsx($,{context:m,openInteractionType:x,disabled:!f,closeOnFocusOut:!S,initialFocus:E,returnFocus:u,modal:i!==!1,restoreFocus:"popup",children:U})}),ke=c.forwardRef(function(t,o){const{keepMounted:a=!1,...p}=t,l=R(),u=l.useState("mounted"),d=l.useState("modal"),s=l.useState("open");return u||a?C.jsx(j.Provider,{value:a,children:C.jsxs(H,{ref:o,...p,children:[u&&d===!0&&C.jsx(ne,{ref:l.context.internalBackdropRef,inert:K(!s)}),t.children]})}):null});function Pe({store:e,parentContext:t,isDrawer:o}){const a=e.useState("open"),p=e.useState("disablePointerDismissal"),l=e.useState("modal"),u=e.useState("popupElement"),d=e.useState("floatingRootContext"),[s,n]=c.useState(0),[g,S]=c.useState(0),m=s===0,h=oe(d,{outsidePressEvent(){return e.context.internalBackdropRef.current||e.context.backdropRef.current?"intentional":{mouse:l==="trap-focus"?"sloppy":"intentional",touch:"sloppy"}},outsidePress(i){if(!e.context.outsidePressEnabledRef.current||"button"in i&&i.button!==0)return!1;if("touches"in i){if(i.type==="touchend"){if(i.changedTouches.length!==1||i.touches.length!==0)return!1}else if(i.touches.length!==1)return!1}const f=_(i);if(m&&!p){if(l){const D=e.context.internalBackdropRef.current,P=e.context.backdropRef.current;return D||P?D===f||P===f||W(f,u)&&!f?.hasAttribute("data-base-ui-portal"):!0}return!0}return!1},escapeKey:m});return se(a&&l===!0,u),e.useContextCallback("onNestedDialogOpen",(i,f)=>{n(i),S(f)}),G(()=>(t?.onNestedDialogOpen&&(a?t.onNestedDialogOpen(s+1,g+(o?1:0)):t.onNestedDialogOpen(0,0)),()=>{t?.onNestedDialogOpen&&a&&t.onNestedDialogOpen(0,0)}),[o,a,s,g,t]),ae(e,{activeTriggerProps:h.reference,inactiveTriggerProps:h.trigger,popupProps:h.floating,nestedOpenDialogCount:s,nestedOpenDrawerCount:g}),null}const De={...fe,modal:e=>e.modal,nested:e=>e.nested,nestedOpenDialogCount:e=>e.nestedOpenDialogCount,nestedOpenDrawerCount:e=>e.nestedOpenDrawerCount,disablePointerDismissal:e=>e.disablePointerDismissal,openMethod:e=>e.openMethod,descriptionElementId:e=>e.descriptionElementId,titleElementId:e=>e.titleElementId,viewportElement:e=>e.viewportElement,role:e=>e.role};class Ce extends Q{constructor(t,o,a){const p=new ie,l=Oe(t,p,o,a);super(l,Re(p),De)}setOpen=(t,o)=>{o.preventUnmountOnClose=()=>{this.set("preventUnmountingOnClose",!0)},!t&&o.trigger==null&&this.state.activeTriggerId!=null&&(o.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(t,o),!o.isCanceled&&(this.state.floatingRootContext.dispatchOpenChange(t,o),this.update(re(this.state,t,o.trigger)))}}function Oe(e,t,o,a=!1){return{...me(t,o,a),modal:!0,disablePointerDismissal:!1,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,nestedOpenDrawerCount:0,role:"dialog",...e}}function Re(e){return{popupRef:c.createRef(),backdropRef:c.createRef(),internalBackdropRef:c.createRef(),outsidePressEnabledRef:{current:!0},triggerElements:e,onOpenChange:void 0,onOpenChangeComplete:void 0}}function be(e,t){const{children:o,open:a,defaultOpen:p=!1,onOpenChange:l,onOpenChangeComplete:u,disablePointerDismissal:d=!1,modal:s=!0,actionsRef:n,handle:g,triggerId:S,defaultTriggerId:m=null}=t,h=e==="drawer",i=s,f=d,D="dialog",P=R(!0),O=P!=null,x={modal:i,disablePointerDismissal:f,nested:O,role:D},r=le((v,M)=>new Ce({open:p,openProp:a,activeTriggerId:m,triggerIdProp:S,...x},v,M),!0);r.useControlledProp("openProp",a),r.useControlledProp("triggerIdProp",S),r.useSyncedValues(x),r.useContextCallback("onOpenChange",l),r.useContextCallback("onOpenChangeComplete",u);const b=r.useState("open"),w=r.useState("mounted"),y=r.useState("payload");ue(r,b),ce(r);const{forceUnmount:E}=de(b,r);c.useImperativeHandle(n,()=>({unmount:E,close:()=>r.setOpen(!1,Y(q))}),[E,r]);const k=b||w;return C.jsxs(F.Provider,{value:r,children:[g&&C.jsx(pe,{handle:g,store:r}),k&&C.jsx(Pe,{store:r,parentContext:P?.context,isDrawer:h}),typeof o=="function"?o({payload:y}):o]})}const ve=z(function(t){return be("dialog",t)}),Me=c.forwardRef(function(t,o){const{render:a,className:p,style:l,children:u,...d}=t,s=B(),n=R(),g=n.useState("open"),S=n.useState("nested"),m=n.useState("transitionStatus"),h=n.useState("nestedOpenDialogCount"),i=n.useState("mounted"),f=n.useStateSetter("viewportElement"),D=h>0;return I("div",t,{enabled:s||i,state:{open:g,nested:S,transitionStatus:m,nestedDialogOpen:D},ref:[o,f],stateAttributesMapping:A,props:[{role:"presentation",hidden:!i,style:{pointerEvents:g?void 0:"none"},children:u},d]})}),Te=c.forwardRef(function(t,o){const{render:a,className:p,style:l,id:u,...d}=t,s=R(),n=ge(u);return s.useSyncedValueWithCleanup("titleElementId",n),I("h2",t,{ref:o,props:[{id:n},d]})});export{ve as D,ke as a,we as b,Me as c,ye as d,Te as e,R as u};
@@ -1 +1 @@
1
- import{j as o}from"./__vite-browser-external-CjrP5KfC.js";import{m as s}from"./react-jS0-5kwE.js";import{u as d}from"./use-reduced-motion-DWHVI51t.js";function m({children:i,delay:t=0,duration:n=.35,y:e=12,className:r="",once:a=!0}){return d()?o.jsx("div",{className:r,children:i}):o.jsx(s.div,{initial:{opacity:0,y:e},animate:{opacity:1,y:0},transition:{duration:n,delay:t,ease:[.16,1,.3,1]},className:r,children:i})}function p({children:i,staggerDelay:t=.1,initialDelay:n=0,className:e=""}){return d()?o.jsx("div",{className:e,children:i}):o.jsx(s.div,{initial:"hidden",animate:"visible",variants:{hidden:{},visible:{transition:{staggerChildren:t,delayChildren:n}}},className:e,children:i})}function x({children:i,className:t="",y:n=12}){return d()?o.jsx("div",{className:t,children:i}):o.jsx(s.div,{variants:{hidden:{opacity:0,y:n},visible:{opacity:1,y:0,transition:{duration:.35,ease:[.16,1,.3,1]}}},className:t,children:i})}export{m as F,p as S,x as a};
1
+ import{j as o}from"./__vite-browser-external-D-WLjvZW.js";import{m as s}from"./react-xGx5RIqz.js";import{u as d}from"./use-reduced-motion-BoFF1l9U.js";function m({children:i,delay:t=0,duration:n=.35,y:e=12,className:r="",once:a=!0}){return d()?o.jsx("div",{className:r,children:i}):o.jsx(s.div,{initial:{opacity:0,y:e},animate:{opacity:1,y:0},transition:{duration:n,delay:t,ease:[.16,1,.3,1]},className:r,children:i})}function p({children:i,staggerDelay:t=.1,initialDelay:n=0,className:e=""}){return d()?o.jsx("div",{className:e,children:i}):o.jsx(s.div,{initial:"hidden",animate:"visible",variants:{hidden:{},visible:{transition:{staggerChildren:t,delayChildren:n}}},className:e,children:i})}function x({children:i,className:t="",y:n=12}){return d()?o.jsx("div",{className:t,children:i}):o.jsx(s.div,{variants:{hidden:{opacity:0,y:n},visible:{opacity:1,y:0,transition:{duration:.35,ease:[.16,1,.3,1]}}},className:t,children:i})}export{m as F,p as S,x as a};
@@ -1 +1 @@
1
- import{r as s,s as c,j as t,c as d}from"./__vite-browser-external-CjrP5KfC.js";function h({repo:r="xiufengsun/TokenTracker"}){const[a,n]=s.useState(null);return s.useEffect(()=>{if(typeof window>"u")return;const o=typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,i=typeof document<"u"&&(document.documentElement?.classList.contains("screenshot-capture")||document.body?.classList.contains("screenshot-capture"));c({prefersReducedMotion:o,screenshotCapture:i})&&fetch(`https://api.github.com/repos/${r}`).then(e=>e.json()).then(e=>{e&&typeof e.stargazers_count=="number"&&n(e.stargazers_count)}).catch(()=>{})},[r]),t.jsxs("a",{href:`https://github.com/${r}`,target:"_blank",rel:"noopener noreferrer",className:"inline-flex shrink-0 items-center gap-2 px-3 py-1.5 rounded-md border border-oai-gray-200 dark:border-oai-gray-700 bg-oai-gray-50 dark:bg-oai-gray-800 hover:bg-oai-gray-100 dark:hover:bg-oai-gray-700 transition-colors no-underline",children:[t.jsx("svg",{height:"16",viewBox:"0 0 16 16",width:"16",className:"shrink-0 fill-oai-gray-700 dark:fill-oai-gray-300",children:t.jsx("path",{d:"M8 0c4.42 0 8 3.58 8 8a8.013 8.013 0 0 1-5.45 7.59c-.4.08-.55-.17-.55-.38 0-.27.01-1.13.01-2.2 0-.75-.25-1.23-.54-1.48 1.78-.2 3.65-.88 3.65-3.95 0-.88-.31-1.59-.82-2.15.08-.2.36-1.02-.08-2.12 0 0-.67-.22-2.2.82-.64-.18-1.32-.27-2-.27-.68 0-1.36.09-2 .27-1.53-1.03-2.2-.82-2.2-.82-.44 1.1-.16 1.92-.08 2.12-.51.56-.82 1.28-.82 2.15 0 3.06 1.86 3.75 3.64 3.95-.23.2-.44.55-.51 1.07-.46.21-1.61.55-2.33-.66-.15-.24-.6-.83-1.23-.82-.67.01-.27.38.01.53.34.19.73.9.82 1.13.16.45.68 1.31 2.69.94 0 .67.01 1.3.01 1.49 0 .21-.15.45-.55.38A7.995 7.995 0 0 1 0 8c0-4.42 3.58-8 8-8Z"})}),t.jsx("span",{className:"text-xs font-medium text-oai-gray-700 dark:text-oai-gray-300 whitespace-nowrap",children:d("shared.github.star")}),a!==null&&t.jsx("span",{className:"text-xs font-semibold text-oai-gray-900 dark:text-oai-white tabular-nums whitespace-nowrap",children:a})]})}export{h as H};
1
+ import{r as s,s as c,j as t,c as d}from"./__vite-browser-external-D-WLjvZW.js";function h({repo:r="xiufengsun/TokenTracker"}){const[a,n]=s.useState(null);return s.useEffect(()=>{if(typeof window>"u")return;const o=typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,i=typeof document<"u"&&(document.documentElement?.classList.contains("screenshot-capture")||document.body?.classList.contains("screenshot-capture"));c({prefersReducedMotion:o,screenshotCapture:i})&&fetch(`https://api.github.com/repos/${r}`).then(e=>e.json()).then(e=>{e&&typeof e.stargazers_count=="number"&&n(e.stargazers_count)}).catch(()=>{})},[r]),t.jsxs("a",{href:`https://github.com/${r}`,target:"_blank",rel:"noopener noreferrer",className:"inline-flex shrink-0 items-center gap-2 px-3 py-1.5 rounded-md border border-oai-gray-200 dark:border-oai-gray-700 bg-oai-gray-50 dark:bg-oai-gray-800 hover:bg-oai-gray-100 dark:hover:bg-oai-gray-700 transition-colors no-underline",children:[t.jsx("svg",{height:"16",viewBox:"0 0 16 16",width:"16",className:"shrink-0 fill-oai-gray-700 dark:fill-oai-gray-300",children:t.jsx("path",{d:"M8 0c4.42 0 8 3.58 8 8a8.013 8.013 0 0 1-5.45 7.59c-.4.08-.55-.17-.55-.38 0-.27.01-1.13.01-2.2 0-.75-.25-1.23-.54-1.48 1.78-.2 3.65-.88 3.65-3.95 0-.88-.31-1.59-.82-2.15.08-.2.36-1.02-.08-2.12 0 0-.67-.22-2.2.82-.64-.18-1.32-.27-2-.27-.68 0-1.36.09-2 .27-1.53-1.03-2.2-.82-2.2-.82-.44 1.1-.16 1.92-.08 2.12-.51.56-.82 1.28-.82 2.15 0 3.06 1.86 3.75 3.64 3.95-.23.2-.44.55-.51 1.07-.46.21-1.61.55-2.33-.66-.15-.24-.6-.83-1.23-.82-.67.01-.27.38.01.53.34.19.73.9.82 1.13.16.45.68 1.31 2.69.94 0 .67.01 1.3.01 1.49 0 .21-.15.45-.55.38A7.995 7.995 0 0 1 0 8c0-4.42 3.58-8 8-8Z"})}),t.jsx("span",{className:"text-xs font-medium text-oai-gray-700 dark:text-oai-gray-300 whitespace-nowrap",children:d("shared.github.star")}),a!==null&&t.jsx("span",{className:"text-xs font-semibold text-oai-gray-900 dark:text-oai-white tabular-nums whitespace-nowrap",children:a})]})}export{h as H};
@@ -1 +1 @@
1
- import{j as t,e as a}from"./__vite-browser-external-CjrP5KfC.js";function i({text:o,placement:r="top"}){return o?t.jsx("div",{role:"tooltip",className:a("pointer-events-none absolute left-1/2 z-10 w-max max-w-[260px] -translate-x-1/2 whitespace-pre-line rounded-xl border border-oai-gray-200/50 dark:border-oai-gray-800/50 bg-white/90 dark:bg-oai-gray-900/90 backdrop-blur-md px-2.5 py-1.5 text-[10.5px] leading-snug text-oai-gray-700 dark:text-oai-gray-200 shadow-xl opacity-0 transition-opacity duration-150 group-hover:opacity-100",r==="bottom"?"top-full mt-2":"bottom-full mb-2"),children:o}):null}export{i as H};
1
+ import{j as t,e as a}from"./__vite-browser-external-D-WLjvZW.js";function i({text:o,placement:r="top"}){return o?t.jsx("div",{role:"tooltip",className:a("pointer-events-none absolute left-1/2 z-10 w-max max-w-[260px] -translate-x-1/2 whitespace-pre-line rounded-xl border border-oai-gray-200/50 dark:border-oai-gray-800/50 bg-white/90 dark:bg-oai-gray-900/90 backdrop-blur-md px-2.5 py-1.5 text-[10.5px] leading-snug text-oai-gray-700 dark:text-oai-gray-200 shadow-xl opacity-0 transition-opacity duration-150 group-hover:opacity-100",r==="bottom"?"top-full mt-2":"bottom-full mb-2"),children:o}):null}export{i as H};
@@ -1,4 +1,4 @@
1
- import{r as ge,c as t,j as n}from"./__vite-browser-external-CjrP5KfC.js";const Ge=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),j=Ge?"/proxy/ipcheck":"https://ip.net.coffee",fe="claude_ip_history",Se=6,Ue=["CN","HK","MO","RU","KP","IR","SY","CU","BY","VE"],ze={CN:"Asia/Shanghai",TW:"Asia/Taipei",HK:"Asia/Hong_Kong",MO:"Asia/Macau",JP:"Asia/Tokyo",KR:"Asia/Seoul",SG:"Asia/Singapore",MY:"Asia/Kuala_Lumpur",TH:"Asia/Bangkok",VN:"Asia/Ho_Chi_Minh",ID:"Asia/Jakarta",PH:"Asia/Manila",IN:"Asia/Kolkata",PK:"Asia/Karachi",BD:"Asia/Dhaka",IR:"Asia/Tehran",IL:"Asia/Jerusalem",AE:"Asia/Dubai",SA:"Asia/Riyadh",TR:"Europe/Istanbul",RU:"Europe/Moscow",UA:"Europe/Kyiv",GB:"Europe/London",IE:"Europe/Dublin",FR:"Europe/Paris",DE:"Europe/Berlin",IT:"Europe/Rome",ES:"Europe/Madrid",PT:"Europe/Lisbon",NL:"Europe/Amsterdam",BE:"Europe/Brussels",CH:"Europe/Zurich",AT:"Europe/Vienna",SE:"Europe/Stockholm",NO:"Europe/Oslo",DK:"Europe/Copenhagen",FI:"Europe/Helsinki",PL:"Europe/Warsaw",CZ:"Europe/Prague",GR:"Europe/Athens",RO:"Europe/Bucharest",US:"America/Los_Angeles",CA:"America/Toronto",MX:"America/Mexico_City",BR:"America/Sao_Paulo",AR:"America/Argentina/Buenos_Aires",CL:"America/Santiago",AU:"Australia/Sydney",NZ:"Pacific/Auckland",ZA:"Africa/Johannesburg",EG:"Africa/Cairo",NG:"Africa/Lagos",KE:"Africa/Nairobi"},We={CN:["zh"],TW:["zh"],HK:["zh","en"],MO:["zh","en"],JP:["ja"],KR:["ko"],TH:["th"],VN:["vi"],SG:["en","zh","ms","ta"],MY:["ms","en","zh","ta"],ID:["id","en"],PH:["en","tl","fil"],IN:["en","hi"],PK:["ur","en"],BD:["bn","en"],LK:["si","ta","en"],NP:["ne","en"],US:["en"],GB:["en"],IE:["en","ga"],AU:["en"],NZ:["en","mi"],CA:["en","fr"],DE:["de"],AT:["de"],CH:["de","fr","it","rm"],BE:["nl","fr","de"],FR:["fr"],IT:["it"],ES:["es","ca","gl","eu"],PT:["pt"],NL:["nl","fy"],LU:["lb","fr","de"],SE:["sv"],NO:["no","nb","nn"],DK:["da"],FI:["fi","sv"],IS:["is","en"],PL:["pl"],CZ:["cs"],SK:["sk"],HU:["hu"],RO:["ro"],BG:["bg"],GR:["el"],RU:["ru"],UA:["uk","ru"],BY:["be","ru"],TR:["tr"],IL:["he","ar","en"],SA:["ar"],AE:["ar","en"],EG:["ar"],IR:["fa"],IQ:["ar","ku"],ZA:["en","af","zu","xh"],KE:["en","sw"],NG:["en"],ET:["am","en"],BR:["pt"],AR:["es"],MX:["es"],CL:["es"],CO:["es"],PE:["es"],VE:["es"]},Be={jp:"Japan",tw:"Taiwan",hk:"Hong Kong",sg:"Singapore",us:"United States",de:"Germany",kr:"South Korea",fr:"France",nl:"Netherlands",gb:"United Kingdom",au:"Australia",ca:"Canada",br:"Brazil",in:"India"};function Z(p){return!!p&&p.includes(":")}function Ke(p){return!Z(p)||p.length<=20?p:p.substring(0,18)+"..."}function w(p){return p==null?"":String(p).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function B(p){if(!p||!/^[a-zA-Z]{2}$/.test(p))return"";const b=p.toLowerCase();return`<img src="${b==="cn"?`${j}/favicons/cn.png`:b==="tw"?`${j}/favicons/flags/tw.png`:`${j}/favicons/flags/${b}.png`}" alt="${b}" class="inline-block h-4 w-auto align-[-2px]" onerror="this.onerror=null;this.style.display='none'">`}function Fe(p){if(!p)return"";const b=String(p).trim();if(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(b)){const S=b.split(".");return S[0]+"."+S[1]+".*.*"}if(b.includes("…")){const S=b.lastIndexOf("…");return b.substring(0,S+1)+"*"}if(b.includes(":")){const S=b.split(":");if(S.length>=2)return S[0]+":"+S[1]+":*"}return b}function Ve(p){if(!p)return null;try{const S=new Intl.DateTimeFormat("en-US",{timeZone:p,timeZoneName:"longOffset"}).formatToParts(new Date).find(q=>q.type==="timeZoneName");if(!S)return null;if(S.value==="GMT"||S.value==="UTC")return 0;const M=S.value.match(/GMT([+-])(\d{1,2}):?(\d{0,2})/);return M?(M[1]==="+"?1:-1)*(parseInt(M[2],10)*60+parseInt(M[3]||"0",10)):null}catch{return null}}function Ye(p){if(p==null)return"";const b=p>=0?"+":"-",S=Math.abs(p),M=Math.floor(S/60),D=S%60;return"UTC"+b+M+(D?":"+String(D).padStart(2,"0"):"")}const Te={safe:"bg-emerald-50 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300",warn:"bg-amber-50 text-amber-800 dark:bg-amber-500/15 dark:text-amber-300",danger:"bg-red-50 text-red-700 dark:bg-red-500/15 dark:text-red-300",info:"bg-blue-50 text-blue-700 dark:bg-blue-500/15 dark:text-blue-300",neutral:"bg-oai-gray-100 text-oai-gray-600 dark:bg-oai-gray-800 dark:text-oai-gray-400"};function Je(){const p=ge.useRef(null),[b,S]=ge.useState(!1);ge.useEffect(()=>{const _=p.current;if(!_)return;const C=a=>_.querySelector(`#${a}`);let se=!1;const e={unknown:t("ipcheck.common.unknown"),failed:t("ipcheck.ip.failed"),regionAccessible:t("ipcheck.trust.region.accessible"),regionWarnTitle:a=>t("ipcheck.trust.region_warn.title",{region:a}),regionWarnBody:t("ipcheck.trust.region_warn.body"),regionRestrictedText:t("ipcheck.trust.text.restricted"),noData:t("ipcheck.trust.no_data"),noIp:t("ipcheck.trust.no_ip"),noScore:t("ipcheck.trust.no_score"),score:{pristine:t("ipcheck.trust.label.pristine"),clean:t("ipcheck.trust.label.clean"),good:t("ipcheck.trust.label.good"),neutral:t("ipcheck.trust.label.neutral"),suspicious:t("ipcheck.trust.label.suspicious"),unreachable:t("ipcheck.trust.label.unreachable")},scoreText:{excellent:t("ipcheck.trust.text.excellent"),great:t("ipcheck.trust.text.great"),minor:t("ipcheck.trust.text.minor"),moderate:t("ipcheck.trust.text.moderate"),severe:t("ipcheck.trust.text.severe")},propsRegion:t("ipcheck.props.region"),propsCity:t("ipcheck.props.city"),propsType:t("ipcheck.props.type"),propsAsn:t("ipcheck.props.asn"),propsOrg:t("ipcheck.props.org"),propsResidential:t("ipcheck.props.residential"),propsDatacenter:t("ipcheck.props.datacenter"),secVpn:t("ipcheck.security.vpn"),secProxy:t("ipcheck.security.proxy"),secTor:t("ipcheck.security.tor"),secCrawler:t("ipcheck.security.crawler"),secAbuser:t("ipcheck.security.abuser"),secProxyFlag:t("ipcheck.security.proxy_flag"),secCrawlerYes:t("ipcheck.security.crawler_yes"),secCrawlerNo:t("ipcheck.security.crawler_no"),secAbuserYes:t("ipcheck.security.abuser_yes"),secAbuserNo:t("ipcheck.security.abuser_no"),secClean:t("ipcheck.security.clean"),availSvc:t("ipcheck.avail.svc_row"),availLat:{normal:t("ipcheck.avail.latency.normal"),good:t("ipcheck.avail.latency.good"),slow:t("ipcheck.avail.latency.slow"),unreachable:t("ipcheck.avail.latency.unreachable")},availSvcStatus:{none:t("ipcheck.avail.svc.none"),minor:t("ipcheck.avail.svc.minor"),major:t("ipcheck.avail.svc.major"),critical:t("ipcheck.avail.svc.critical"),maintenance:t("ipcheck.avail.svc.maintenance"),other:t("ipcheck.avail.svc.other")},dnsStatus:t("ipcheck.dns.status"),dnsOutlet:t("ipcheck.dns.outlet"),dnsOutletIp:t("ipcheck.dns.outlet_ip"),dnsIsp:t("ipcheck.dns.isp"),dnsLeaked:t("ipcheck.dns.leaked"),dnsNoLeak:t("ipcheck.dns.no_leak"),dnsEncrypted:t("ipcheck.dns.encrypted"),dnsCnTag:t("ipcheck.dns.cn_tag"),udpStatus:t("ipcheck.udp.status"),udpOutlet:t("ipcheck.udp.outlet"),udpOutletIp:t("ipcheck.udp.outlet_ip"),udpOrigin:t("ipcheck.udp.origin"),udpDisabled:t("ipcheck.udp.disabled"),udpNoLeak:t("ipcheck.udp.no_leak"),udpLeaked:t("ipcheck.udp.leaked"),udpAnomaly:t("ipcheck.udp.anomaly"),devTz:t("ipcheck.device.tz"),devLang:t("ipcheck.device.lang"),devOs:t("ipcheck.device.os"),devTouch:t("ipcheck.device.touch"),devNet:t("ipcheck.device.net"),devDnt:t("ipcheck.device.dnt"),devWebglRender:t("ipcheck.device.webgl_render"),devCanvasFp:t("ipcheck.device.canvas_fp"),devWebglFp:t("ipcheck.device.webgl_fp"),devMatch:t("ipcheck.device.match"),devMismatch:t("ipcheck.device.mismatch"),devLocal:t("ipcheck.device.local"),devEstSuffix:t("ipcheck.device.estimate_suffix"),devDiffEqual:t("ipcheck.device.diff_equal"),devDiffAhead:a=>t("ipcheck.device.diff_ahead",{h:a}),devDiffBehind:a=>t("ipcheck.device.diff_behind",{h:a}),devLangExpected:t("ipcheck.device.lang_expected"),devTouchYes:t("ipcheck.device.touch_yes"),devTouchNo:t("ipcheck.device.touch_no"),devDntOn:t("ipcheck.device.dnt_on"),devDntOff:t("ipcheck.device.dnt_off"),devDntUnset:t("ipcheck.device.dnt_unset"),devNetUnsupported:t("ipcheck.device.net_unsupported"),devUnsupported:t("ipcheck.device.unsupported"),histEmpty:t("ipcheck.history.empty"),histCurrent:t("ipcheck.history.current"),histLoading:t("ipcheck.ip.loading")};function f(a,i="neutral"){return`<span class="inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${Te[i]||Te.neutral}">${a}</span>`}function J(a,i,r){return a===!0?f(i,"danger"):a===!1?f(r,"safe"):f(e.unknown,"neutral")}function he(a){if(!a)return`<span class="text-oai-gray-400 dark:text-oai-gray-500">${w(e.failed)}</span>`;const i=w(a);return Z(a)?`<span class="ip-mask-target truncate" title="${i}">${w(Ke(a))}</span>`:`<span class="ip-mask-target">${i}</span>`}function K(a){return a?`<span class="ip-link">${he(a)}</span>`:`<span class="text-oai-gray-400 dark:text-oai-gray-500">${w(e.failed)}</span>`}function d(a,i,r=!1){let u=i;return i===void 0?r?u=`<div class="inline-flex items-center gap-1.5 text-xs text-oai-gray-400">
1
+ import{r as ge,c as t,j as n}from"./__vite-browser-external-D-WLjvZW.js";const Ge=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),j=Ge?"/proxy/ipcheck":"https://ip.net.coffee",fe="claude_ip_history",Se=6,Ue=["CN","HK","MO","RU","KP","IR","SY","CU","BY","VE"],ze={CN:"Asia/Shanghai",TW:"Asia/Taipei",HK:"Asia/Hong_Kong",MO:"Asia/Macau",JP:"Asia/Tokyo",KR:"Asia/Seoul",SG:"Asia/Singapore",MY:"Asia/Kuala_Lumpur",TH:"Asia/Bangkok",VN:"Asia/Ho_Chi_Minh",ID:"Asia/Jakarta",PH:"Asia/Manila",IN:"Asia/Kolkata",PK:"Asia/Karachi",BD:"Asia/Dhaka",IR:"Asia/Tehran",IL:"Asia/Jerusalem",AE:"Asia/Dubai",SA:"Asia/Riyadh",TR:"Europe/Istanbul",RU:"Europe/Moscow",UA:"Europe/Kyiv",GB:"Europe/London",IE:"Europe/Dublin",FR:"Europe/Paris",DE:"Europe/Berlin",IT:"Europe/Rome",ES:"Europe/Madrid",PT:"Europe/Lisbon",NL:"Europe/Amsterdam",BE:"Europe/Brussels",CH:"Europe/Zurich",AT:"Europe/Vienna",SE:"Europe/Stockholm",NO:"Europe/Oslo",DK:"Europe/Copenhagen",FI:"Europe/Helsinki",PL:"Europe/Warsaw",CZ:"Europe/Prague",GR:"Europe/Athens",RO:"Europe/Bucharest",US:"America/Los_Angeles",CA:"America/Toronto",MX:"America/Mexico_City",BR:"America/Sao_Paulo",AR:"America/Argentina/Buenos_Aires",CL:"America/Santiago",AU:"Australia/Sydney",NZ:"Pacific/Auckland",ZA:"Africa/Johannesburg",EG:"Africa/Cairo",NG:"Africa/Lagos",KE:"Africa/Nairobi"},We={CN:["zh"],TW:["zh"],HK:["zh","en"],MO:["zh","en"],JP:["ja"],KR:["ko"],TH:["th"],VN:["vi"],SG:["en","zh","ms","ta"],MY:["ms","en","zh","ta"],ID:["id","en"],PH:["en","tl","fil"],IN:["en","hi"],PK:["ur","en"],BD:["bn","en"],LK:["si","ta","en"],NP:["ne","en"],US:["en"],GB:["en"],IE:["en","ga"],AU:["en"],NZ:["en","mi"],CA:["en","fr"],DE:["de"],AT:["de"],CH:["de","fr","it","rm"],BE:["nl","fr","de"],FR:["fr"],IT:["it"],ES:["es","ca","gl","eu"],PT:["pt"],NL:["nl","fy"],LU:["lb","fr","de"],SE:["sv"],NO:["no","nb","nn"],DK:["da"],FI:["fi","sv"],IS:["is","en"],PL:["pl"],CZ:["cs"],SK:["sk"],HU:["hu"],RO:["ro"],BG:["bg"],GR:["el"],RU:["ru"],UA:["uk","ru"],BY:["be","ru"],TR:["tr"],IL:["he","ar","en"],SA:["ar"],AE:["ar","en"],EG:["ar"],IR:["fa"],IQ:["ar","ku"],ZA:["en","af","zu","xh"],KE:["en","sw"],NG:["en"],ET:["am","en"],BR:["pt"],AR:["es"],MX:["es"],CL:["es"],CO:["es"],PE:["es"],VE:["es"]},Be={jp:"Japan",tw:"Taiwan",hk:"Hong Kong",sg:"Singapore",us:"United States",de:"Germany",kr:"South Korea",fr:"France",nl:"Netherlands",gb:"United Kingdom",au:"Australia",ca:"Canada",br:"Brazil",in:"India"};function Z(p){return!!p&&p.includes(":")}function Ke(p){return!Z(p)||p.length<=20?p:p.substring(0,18)+"..."}function w(p){return p==null?"":String(p).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function B(p){if(!p||!/^[a-zA-Z]{2}$/.test(p))return"";const b=p.toLowerCase();return`<img src="${b==="cn"?`${j}/favicons/cn.png`:b==="tw"?`${j}/favicons/flags/tw.png`:`${j}/favicons/flags/${b}.png`}" alt="${b}" class="inline-block h-4 w-auto align-[-2px]" onerror="this.onerror=null;this.style.display='none'">`}function Fe(p){if(!p)return"";const b=String(p).trim();if(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(b)){const S=b.split(".");return S[0]+"."+S[1]+".*.*"}if(b.includes("…")){const S=b.lastIndexOf("…");return b.substring(0,S+1)+"*"}if(b.includes(":")){const S=b.split(":");if(S.length>=2)return S[0]+":"+S[1]+":*"}return b}function Ve(p){if(!p)return null;try{const S=new Intl.DateTimeFormat("en-US",{timeZone:p,timeZoneName:"longOffset"}).formatToParts(new Date).find(q=>q.type==="timeZoneName");if(!S)return null;if(S.value==="GMT"||S.value==="UTC")return 0;const M=S.value.match(/GMT([+-])(\d{1,2}):?(\d{0,2})/);return M?(M[1]==="+"?1:-1)*(parseInt(M[2],10)*60+parseInt(M[3]||"0",10)):null}catch{return null}}function Ye(p){if(p==null)return"";const b=p>=0?"+":"-",S=Math.abs(p),M=Math.floor(S/60),D=S%60;return"UTC"+b+M+(D?":"+String(D).padStart(2,"0"):"")}const Te={safe:"bg-emerald-50 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300",warn:"bg-amber-50 text-amber-800 dark:bg-amber-500/15 dark:text-amber-300",danger:"bg-red-50 text-red-700 dark:bg-red-500/15 dark:text-red-300",info:"bg-blue-50 text-blue-700 dark:bg-blue-500/15 dark:text-blue-300",neutral:"bg-oai-gray-100 text-oai-gray-600 dark:bg-oai-gray-800 dark:text-oai-gray-400"};function Je(){const p=ge.useRef(null),[b,S]=ge.useState(!1);ge.useEffect(()=>{const _=p.current;if(!_)return;const C=a=>_.querySelector(`#${a}`);let se=!1;const e={unknown:t("ipcheck.common.unknown"),failed:t("ipcheck.ip.failed"),regionAccessible:t("ipcheck.trust.region.accessible"),regionWarnTitle:a=>t("ipcheck.trust.region_warn.title",{region:a}),regionWarnBody:t("ipcheck.trust.region_warn.body"),regionRestrictedText:t("ipcheck.trust.text.restricted"),noData:t("ipcheck.trust.no_data"),noIp:t("ipcheck.trust.no_ip"),noScore:t("ipcheck.trust.no_score"),score:{pristine:t("ipcheck.trust.label.pristine"),clean:t("ipcheck.trust.label.clean"),good:t("ipcheck.trust.label.good"),neutral:t("ipcheck.trust.label.neutral"),suspicious:t("ipcheck.trust.label.suspicious"),unreachable:t("ipcheck.trust.label.unreachable")},scoreText:{excellent:t("ipcheck.trust.text.excellent"),great:t("ipcheck.trust.text.great"),minor:t("ipcheck.trust.text.minor"),moderate:t("ipcheck.trust.text.moderate"),severe:t("ipcheck.trust.text.severe")},propsRegion:t("ipcheck.props.region"),propsCity:t("ipcheck.props.city"),propsType:t("ipcheck.props.type"),propsAsn:t("ipcheck.props.asn"),propsOrg:t("ipcheck.props.org"),propsResidential:t("ipcheck.props.residential"),propsDatacenter:t("ipcheck.props.datacenter"),secVpn:t("ipcheck.security.vpn"),secProxy:t("ipcheck.security.proxy"),secTor:t("ipcheck.security.tor"),secCrawler:t("ipcheck.security.crawler"),secAbuser:t("ipcheck.security.abuser"),secProxyFlag:t("ipcheck.security.proxy_flag"),secCrawlerYes:t("ipcheck.security.crawler_yes"),secCrawlerNo:t("ipcheck.security.crawler_no"),secAbuserYes:t("ipcheck.security.abuser_yes"),secAbuserNo:t("ipcheck.security.abuser_no"),secClean:t("ipcheck.security.clean"),availSvc:t("ipcheck.avail.svc_row"),availLat:{normal:t("ipcheck.avail.latency.normal"),good:t("ipcheck.avail.latency.good"),slow:t("ipcheck.avail.latency.slow"),unreachable:t("ipcheck.avail.latency.unreachable")},availSvcStatus:{none:t("ipcheck.avail.svc.none"),minor:t("ipcheck.avail.svc.minor"),major:t("ipcheck.avail.svc.major"),critical:t("ipcheck.avail.svc.critical"),maintenance:t("ipcheck.avail.svc.maintenance"),other:t("ipcheck.avail.svc.other")},dnsStatus:t("ipcheck.dns.status"),dnsOutlet:t("ipcheck.dns.outlet"),dnsOutletIp:t("ipcheck.dns.outlet_ip"),dnsIsp:t("ipcheck.dns.isp"),dnsLeaked:t("ipcheck.dns.leaked"),dnsNoLeak:t("ipcheck.dns.no_leak"),dnsEncrypted:t("ipcheck.dns.encrypted"),dnsCnTag:t("ipcheck.dns.cn_tag"),udpStatus:t("ipcheck.udp.status"),udpOutlet:t("ipcheck.udp.outlet"),udpOutletIp:t("ipcheck.udp.outlet_ip"),udpOrigin:t("ipcheck.udp.origin"),udpDisabled:t("ipcheck.udp.disabled"),udpNoLeak:t("ipcheck.udp.no_leak"),udpLeaked:t("ipcheck.udp.leaked"),udpAnomaly:t("ipcheck.udp.anomaly"),devTz:t("ipcheck.device.tz"),devLang:t("ipcheck.device.lang"),devOs:t("ipcheck.device.os"),devTouch:t("ipcheck.device.touch"),devNet:t("ipcheck.device.net"),devDnt:t("ipcheck.device.dnt"),devWebglRender:t("ipcheck.device.webgl_render"),devCanvasFp:t("ipcheck.device.canvas_fp"),devWebglFp:t("ipcheck.device.webgl_fp"),devMatch:t("ipcheck.device.match"),devMismatch:t("ipcheck.device.mismatch"),devLocal:t("ipcheck.device.local"),devEstSuffix:t("ipcheck.device.estimate_suffix"),devDiffEqual:t("ipcheck.device.diff_equal"),devDiffAhead:a=>t("ipcheck.device.diff_ahead",{h:a}),devDiffBehind:a=>t("ipcheck.device.diff_behind",{h:a}),devLangExpected:t("ipcheck.device.lang_expected"),devTouchYes:t("ipcheck.device.touch_yes"),devTouchNo:t("ipcheck.device.touch_no"),devDntOn:t("ipcheck.device.dnt_on"),devDntOff:t("ipcheck.device.dnt_off"),devDntUnset:t("ipcheck.device.dnt_unset"),devNetUnsupported:t("ipcheck.device.net_unsupported"),devUnsupported:t("ipcheck.device.unsupported"),histEmpty:t("ipcheck.history.empty"),histCurrent:t("ipcheck.history.current"),histLoading:t("ipcheck.ip.loading")};function f(a,i="neutral"){return`<span class="inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${Te[i]||Te.neutral}">${a}</span>`}function J(a,i,r){return a===!0?f(i,"danger"):a===!1?f(r,"safe"):f(e.unknown,"neutral")}function he(a){if(!a)return`<span class="text-oai-gray-400 dark:text-oai-gray-500">${w(e.failed)}</span>`;const i=w(a);return Z(a)?`<span class="ip-mask-target truncate" title="${i}">${w(Ke(a))}</span>`:`<span class="ip-mask-target">${i}</span>`}function K(a){return a?`<span class="ip-link">${he(a)}</span>`:`<span class="text-oai-gray-400 dark:text-oai-gray-500">${w(e.failed)}</span>`}function d(a,i,r=!1){let u=i;return i===void 0?r?u=`<div class="inline-flex items-center gap-1.5 text-xs text-oai-gray-400">
2
2
  <svg class="animate-spin-subtle h-3.5 w-3.5" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
3
3
  <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="3"></circle>
4
4
  <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>