tokentracker-cli 1.5.10 → 1.5.12

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 (110) hide show
  1. package/dashboard/dist/assets/{AchievementBadge-C1sNmjy1.js → AchievementBadge-DvcPjqX7.js} +1 -1
  2. package/dashboard/dist/assets/{AchievementsPage-CEes3r9C.js → AchievementsPage-C9AkvdHe.js} +2 -2
  3. package/dashboard/dist/assets/{AchievementsSection-DUNbD6b3.js → AchievementsSection-g0JGNGfT.js} +1 -1
  4. package/dashboard/dist/assets/{BadgeDetailModal-Qmr7VqYE.js → BadgeDetailModal-BHxQ8umD.js} +1 -1
  5. package/dashboard/dist/assets/{BotAnimated-jsDF2HFl.js → BotAnimated-C5Byp7Ml.js} +1 -1
  6. package/dashboard/dist/assets/{Card-B_lOewQz.js → Card-BV1iTPCd.js} +1 -1
  7. package/dashboard/dist/assets/{CloudCheckoutPage-C_JuBsD4.js → CloudCheckoutPage-DcAvPHXS.js} +1 -1
  8. package/dashboard/dist/assets/{CloudPage-CzME2Zwr.js → CloudPage-pw82pCP6.js} +2 -2
  9. package/dashboard/dist/assets/{CommandPalette-C9-pZkuM.js → CommandPalette-B88IfMHd.js} +1 -1
  10. package/dashboard/dist/assets/{CommunityStatsModal-CykqgS9V.js → CommunityStatsModal-DwtEZ96Z.js} +1 -1
  11. package/dashboard/dist/assets/{ConfirmModal-fM615n-k.js → ConfirmModal-Cx1-1xUk.js} +1 -1
  12. package/dashboard/dist/assets/{Controls-BUgYy1q2.js → Controls-hHP6yz1h.js} +1 -1
  13. package/dashboard/dist/assets/{DashboardPage-TMedKsgf.js → DashboardPage-Cz98astU.js} +1 -1
  14. package/dashboard/dist/assets/{DateRangePopover-ChqqPFBz.js → DateRangePopover-BjsUociY.js} +1 -1
  15. package/dashboard/dist/assets/{DevicePage-BVM0mnCp.js → DevicePage-C0ZyCHAD.js} +1 -1
  16. package/dashboard/dist/assets/{DialogClose-BSYpqJ7I.js → DialogClose-eeerEmfs.js} +1 -1
  17. package/dashboard/dist/assets/DialogDescription-DG_4qSj0.js +1 -0
  18. package/dashboard/dist/assets/{DialogTitle-Ck0801ZS.js → DialogTitle-Bn14t_Xd.js} +1 -1
  19. package/dashboard/dist/assets/{ElectricLogo-Duu4aJps.js → ElectricLogo-OyoU_h0I.js} +1 -1
  20. package/dashboard/dist/assets/{FadeIn-C0nDQZXG.js → FadeIn-BbC4-H2A.js} +1 -1
  21. package/dashboard/dist/assets/{HeaderGithubStar-9_Cou9eQ.js → HeaderGithubStar-B2CCV29J.js} +1 -1
  22. package/dashboard/dist/assets/{HoverTooltip-Dko6Ml2q.js → HoverTooltip-DiD_l4GJ.js} +1 -1
  23. package/dashboard/dist/assets/{IpCheckPage-CAy4LTD9.js → IpCheckPage-1HwHzeVT.js} +3 -3
  24. package/dashboard/dist/assets/{LandingPage-De_k34Bm.js → LandingPage-Cx_xIavm.js} +2 -2
  25. package/dashboard/dist/assets/{LeaderboardPage-upmKCiU2.js → LeaderboardPage-BsP635cI.js} +2 -2
  26. package/dashboard/dist/assets/{LeaderboardProBadge-Bp_4HRGy.js → LeaderboardProBadge-B7uhXYjD.js} +1 -1
  27. package/dashboard/dist/assets/{LeaderboardProfileModal-CfeTu2mg.js → LeaderboardProfileModal-_QOUdhsi.js} +3 -3
  28. package/dashboard/dist/assets/{LeaderboardProfilePage-dwGCnqt1.js → LeaderboardProfilePage-CSpx6Rw5.js} +1 -1
  29. package/dashboard/dist/assets/{LimitsPage-FxEd8pgt.js → LimitsPage-DOj_2vh6.js} +1 -1
  30. package/dashboard/dist/assets/{LocalOnlyNotice-DITDSNOI.js → LocalOnlyNotice-DnkG5DmI.js} +1 -1
  31. package/dashboard/dist/assets/{LoginCard-B0Y5nGs3.js → LoginCard-Ds9kOBpV.js} +1 -1
  32. package/dashboard/dist/assets/{LoginModal-C7UJchsM.js → LoginModal-B-7fS0gK.js} +1 -1
  33. package/dashboard/dist/assets/{LoginPage-CuSeHCfR.js → LoginPage-B2K2tXvd.js} +1 -1
  34. package/dashboard/dist/assets/{PetPage-DmKwqkVp.js → PetPage-DwsDJxX_.js} +2 -2
  35. package/dashboard/dist/assets/{PopoverPopup-CUOqufwL.js → PopoverPopup-CqUafQx4.js} +1 -1
  36. package/dashboard/dist/assets/{ProviderIcon-RNmBCqqB.js → ProviderIcon-BcE1tBpR.js} +1 -1
  37. package/dashboard/dist/assets/{ResetPasswordPage-DzWUR5w4.js → ResetPasswordPage-CP17McXH.js} +1 -1
  38. package/dashboard/dist/assets/{Select-8FQRH1NU.js → Select-BcFrd0ex.js} +1 -1
  39. package/dashboard/dist/assets/{SelectItemText-Dxwcx_oH.js → SelectItemText-C-FBw54p.js} +1 -1
  40. package/dashboard/dist/assets/{SelfHostPage-B7-Tn3dF.js → SelfHostPage--4KcyhvD.js} +1 -1
  41. package/dashboard/dist/assets/{ServiceStatusPage-BsfvaKsB.js → ServiceStatusPage-C4GQ-8Tm.js} +1 -1
  42. package/dashboard/dist/assets/{SessionsPage-DW87f0ht.js → SessionsPage-DMW3U0i3.js} +1 -1
  43. package/dashboard/dist/assets/{SettingsPage-DGgUxidi.js → SettingsPage-sYLabRGu.js} +3 -3
  44. package/dashboard/dist/assets/{SkillsPage-BVLlMuY6.js → SkillsPage-CkjmvAds.js} +1 -1
  45. package/dashboard/dist/assets/{TokenGalaxy-CO6GVguL.js → TokenGalaxy-BfJtQKzg.js} +1 -1
  46. package/dashboard/dist/assets/{TooltipPopup-Bevc5eEL.js → TooltipPopup-BxvShS92.js} +1 -1
  47. package/dashboard/dist/assets/{TrendMonitor-2BCVwA7W.js → TrendMonitor-C9cHT4G_.js} +1 -1
  48. package/dashboard/dist/assets/{WidgetsPage-BP2OAK7_.js → WidgetsPage-BqlH3M7h.js} +1 -1
  49. package/dashboard/dist/assets/{WrappedPage-DHaMc2cB.js → WrappedPage-D2A1zcGs.js} +1 -1
  50. package/dashboard/dist/assets/{__vite-browser-external-BBQzCxHU.js → __vite-browser-external-RPZeXrAv.js} +2 -2
  51. package/dashboard/dist/assets/{agent-logos-CJnyo7vh.js → agent-logos-CKAwJGNX.js} +1 -1
  52. package/dashboard/dist/assets/{arrow-left-Cc3forJV.js → arrow-left-sB5X7dRY.js} +1 -1
  53. package/dashboard/dist/assets/{arrow-right-CmzbBPo3.js → arrow-right-Cvwg139b.js} +1 -1
  54. package/dashboard/dist/assets/{arrow-up-right-D91fA8Iw.js → arrow-up-right-H5sP370z.js} +1 -1
  55. package/dashboard/dist/assets/{calendar-days-CUz-Kohj.js → calendar-days-B6p2eInB.js} +1 -1
  56. package/dashboard/dist/assets/{check-SYGeJ9ML.js → check-DgFRXvUP.js} +1 -1
  57. package/dashboard/dist/assets/{chevron-down-CNtNmxJK.js → chevron-down-D-ny8IBp.js} +1 -1
  58. package/dashboard/dist/assets/{cloud-checkout-At2YeP3_.js → cloud-checkout-CT_OgBOA.js} +1 -1
  59. package/dashboard/dist/assets/{composite-C01XLAWQ.js → composite-BJuoijSA.js} +1 -1
  60. package/dashboard/dist/assets/{copy-UBZcDOSY.js → copy-JdswLd9u.js} +1 -1
  61. package/dashboard/dist/assets/{download-BSroeXtu.js → download-BI-n3YEd.js} +1 -1
  62. package/dashboard/dist/assets/{external-link-wc6SpmRT.js → external-link-CH7tksO4.js} +1 -1
  63. package/dashboard/dist/assets/{flame-Cwq8Msm_.js → flame-CP7hkBXq.js} +1 -1
  64. package/dashboard/dist/assets/{format-tokens-BuH-wp-o.js → format-tokens-Biw6wloc.js} +1 -1
  65. package/dashboard/dist/assets/{gift-DmQ-nWNf.js → gift-Dz9MeN8q.js} +1 -1
  66. package/dashboard/dist/assets/{icons-DceEefzQ.js → icons-DP4Ni8VA.js} +1 -1
  67. package/dashboard/dist/assets/{index-8CXny7rg.js → index-BkeoJvCA.js} +1 -1
  68. package/dashboard/dist/assets/{index-b-RBn81T.js → index-CIfh9hNs.js} +1 -1
  69. package/dashboard/dist/assets/{index-CNJKLAOc.js → index-SXavLLcl.js} +1 -1
  70. package/dashboard/dist/assets/{index-CuYxRxFQ.js → index-kQETJkOr.js} +1 -1
  71. package/dashboard/dist/assets/{info-BzwD8qDF.js → info-Bba3RZJA.js} +1 -1
  72. package/dashboard/dist/assets/{link-2-0X79vqnY.js → link-2-B2C7-GOt.js} +1 -1
  73. package/dashboard/dist/assets/{loader-circle-Dto5GLrC.js → loader-circle-Dld8yUT7.js} +1 -1
  74. package/dashboard/dist/assets/{local-usage-transfer-DLixSavG.js → local-usage-transfer-CAuRHyVW.js} +1 -1
  75. package/dashboard/dist/assets/{modifiers.esm-CL6p6jBJ.js → modifiers.esm-CtFVyyHC.js} +1 -1
  76. package/dashboard/dist/assets/{monitor-smartphone-Bnaw35Qv.js → monitor-smartphone-iFNG6h_M.js} +1 -1
  77. package/dashboard/dist/assets/{play-xmEUnE2_.js → play-C7GLNAdX.js} +1 -1
  78. package/dashboard/dist/assets/{plus-67TZHqQi.js → plus-CSKQToSA.js} +1 -1
  79. package/dashboard/dist/assets/{provider-display-jd8V87bA.js → provider-display-BwVQXnb2.js} +1 -1
  80. package/dashboard/dist/assets/{react-B68xm5mg.js → react-Cy_Eczdb.js} +1 -1
  81. package/dashboard/dist/assets/{safePolygon-DiBm4xSb.js → safePolygon-DiPfgohh.js} +1 -1
  82. package/dashboard/dist/assets/{search-DFZoQllp.js → search-DKyVdlXG.js} +1 -1
  83. package/dashboard/dist/assets/{server-MOh3NKXh.js → server-DaU0lAOr.js} +1 -1
  84. package/dashboard/dist/assets/{shield-check-CqZ0Vz1G.js → shield-check-DWiYKLWx.js} +1 -1
  85. package/dashboard/dist/assets/{skills-api-CvOFtmbw.js → skills-api-CXotXIRt.js} +1 -1
  86. package/dashboard/dist/assets/{sortable.esm-WjS3aHfu.js → sortable.esm-ON-92Wzk.js} +1 -1
  87. package/dashboard/dist/assets/{store-AWGUrRH9.js → store-C91MN0gm.js} +1 -1
  88. package/dashboard/dist/assets/{terminal-C6wQj1wD.js → terminal-CZUta1FC.js} +1 -1
  89. package/dashboard/dist/assets/{trash-pcTDGbRp.js → trash-dOvHm24W.js} +1 -1
  90. package/dashboard/dist/assets/{use-community-stats-DmweXTA6.js → use-community-stats-BD3O7D_G.js} +1 -1
  91. package/dashboard/dist/assets/{use-latest-request-guard-tDJgPNLH.js → use-latest-request-guard-Geg2sygc.js} +1 -1
  92. package/dashboard/dist/assets/{use-limits-display-prefs-C2cSKBpC.js → use-limits-display-prefs-Ck2CuPqb.js} +1 -1
  93. package/dashboard/dist/assets/{use-native-settings-CwhfcBmO.js → use-native-settings-3DH5xldB.js} +1 -1
  94. package/dashboard/dist/assets/{use-ordered-list-BP0VcBim.js → use-ordered-list-BonkP7AB.js} +1 -1
  95. package/dashboard/dist/assets/use-reduced-motion-uryC1l51.js +1 -0
  96. package/dashboard/dist/assets/{use-transform-BSah0zOz.js → use-transform-C32HObUN.js} +1 -1
  97. package/dashboard/dist/assets/{use-usage-limits-BENTyA06.js → use-usage-limits-6GFRuUdV.js} +1 -1
  98. package/dashboard/dist/assets/{useCurrency-BPBG40V4.js → useCurrency-BsGBVGb5.js} +1 -1
  99. package/dashboard/dist/assets/{usePositioner-f0OVujvk.js → usePositioner-DvFrrUs0.js} +1 -1
  100. package/dashboard/dist/assets/{useTokenFormat-DPbt6lUi.js → useTokenFormat-Dryg74BA.js} +1 -1
  101. package/dashboard/dist/assets/{zap-DLgyM5GN.js → zap-BL_hxkkj.js} +1 -1
  102. package/dashboard/dist/index.html +1 -1
  103. package/dashboard/dist/ip-check.html +1 -1
  104. package/dashboard/dist/leaderboard.html +1 -1
  105. package/dashboard/dist/share.html +1 -1
  106. package/package.json +1 -1
  107. package/src/commands/serve.js +1 -1
  108. package/src/lib/pricing/seed-snapshot.json +1 -1
  109. package/dashboard/dist/assets/DialogDescription-C-V5YErj.js +0 -1
  110. package/dashboard/dist/assets/use-reduced-motion-C_uu1NvN.js +0 -1
@@ -1 +1 @@
1
- import{r as c,bD as F,J as I,cb as K,bU as L,j as b,bQ as _,bT as H,b9 as J,bc as W,b2 as N,bE as z,N as Q,bK as Y,bJ as q}from"./__vite-browser-external-BBQzCxHU.js";import{z as G,p as X,w as Z,x as $,y as ee,C as te,I as ne,n as oe,B as se,o as ae,e as re,P as ie,m as le,h as ue,j as ce,k as de,l as pe,u as ge}from"./composite-C01XLAWQ.js";import{p as fe,c as me}from"./store-AWGUrRH9.js";const B=c.createContext(void 0);function O(e){const n=c.useContext(B);if(!e&&n===void 0)throw new Error(F(27));return n}const we=c.forwardRef(function(n,o){const{render:s,className:d,style:p,forceRender:l=!1,...u}=n,r=O(),t=r.useState("open"),g=r.useState("nested"),f=r.useState("mounted"),S=r.useState("transitionStatus");return I("div",n,{state:{open:t,transitionStatus:S},ref:[r.context.backdropRef,o],stateAttributesMapping:G,props:[{role:"presentation",hidden:!f,style:{userSelect:"none",WebkitUserSelect:"none"}},u],enabled:l||!g})}),j=c.createContext(void 0);function A(){const e=c.useContext(j);if(e===void 0)throw new Error(F(26));return e}const Se="--nested-dialogs",he="data-nested-dialog-open",U={...X,...K,nestedDialogOpen(e){return e?{[he]:""}:null}},ye=c.forwardRef(function(n,o){const{render:s,className:d,style:p,finalFocus:l,initialFocus:u,...r}=n,t=O(),g=t.useState("descriptionElementId"),f=t.useState("disablePointerDismissal"),S=t.useState("floatingRootContext"),P=t.useState("popupProps"),h=t.useState("modal"),i=t.useState("mounted"),m=t.useState("nested"),C=t.useState("nestedOpenDialogCount"),D=t.useState("open"),x=t.useState("openMethod"),a=t.useState("titleElementId"),R=t.useState("transitionStatus"),w=t.useState("role"),y=S.useState("floatingId");A(),L({open:D,ref:t.context.popupRef,onComplete(){D&&t.context.onOpenChangeComplete?.(!0)}});const E=u===void 0?Z(t.context.popupRef):u,k=C>0,T=t.useStateSetter("popupElement"),V=I("div",n,{state:{open:D,nested:m,transitionStatus:R,nestedDialogOpen:k},props:[P,{id:y,"aria-labelledby":a,"aria-describedby":g,role:w,...ee,hidden:!i,onKeyDown(M){te.has(M.key)&&M.stopPropagation()},style:{[Se]:C}},r],ref:[o,t.context.popupRef,T],stateAttributesMapping:U});return b.jsx($,{context:S,openInteractionType:x,disabled:!i,closeOnFocusOut:!f,initialFocus:E,returnFocus:l,modal:h!==!1,restoreFocus:"popup",children:V})}),ke=c.forwardRef(function(n,o){const{keepMounted:s=!1,...d}=n,p=O(),l=p.useState("mounted"),u=p.useState("modal"),r=p.useState("open");return l||s?b.jsx(j.Provider,{value:s,children:b.jsxs(_,{ref:o,...d,children:[l&&u===!0&&b.jsx(ne,{ref:p.context.internalBackdropRef,inert:H(!r)}),n.children]})}):null});function Pe({store:e,parentContext:n,isDrawer:o}){const s=e.useState("open"),d=e.useState("mounted"),p=e.useState("disablePointerDismissal"),l=e.useState("modal"),u=e.useState("popupElement"),r=e.useState("floatingRootContext"),[t,g]=c.useState(0),[f,S]=c.useState(0),P=t===0,h=oe(r,{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 m=J(i);if(P&&!p){if(l){const C=e.context.internalBackdropRef.current,D=e.context.backdropRef.current;return C||D?C===m||D===m||W(m,u)&&!m?.hasAttribute("data-base-ui-portal"):!0}return!0}return!1},escapeKey:P});return se(s&&l===!0,u),e.useContextCallback("onNestedDialogOpen",(i,m)=>{!e.select("open")&&!e.select("mounted")||(g(i),S(m))}),N(()=>{!s&&!d&&(g(0),S(0))},[s,d]),N(()=>(n?.onNestedDialogOpen&&s&&n.onNestedDialogOpen(t+1,f+(o?1:0)),()=>{n?.onNestedDialogOpen&&s&&n.onNestedDialogOpen(0,0)}),[o,s,t,f,n]),ae(e,{activeTriggerProps:h.reference,inactiveTriggerProps:h.trigger,popupProps:h.floating,nestedOpenDialogCount:t,nestedOpenDrawerCount:f}),null}const Ce={...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 De extends z{constructor(n,o,s){const d=new ie,p=be(n,d,o,s);super(p,Oe(d),Ce)}setOpen=(n,o)=>{o.preventUnmountOnClose=()=>{this.set("preventUnmountingOnClose",!0)},!n&&o.trigger==null&&this.state.activeTriggerId!=null&&(o.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(n,o),!o.isCanceled&&(this.state.floatingRootContext.dispatchOpenChange(n,o),this.update(re(this.state,n,o.trigger)))}}function be(e,n,o,s=!1){return{...me(n,o,s),modal:!0,disablePointerDismissal:!1,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,nestedOpenDrawerCount:0,role:"dialog",...e}}function Oe(e){return{popupRef:c.createRef(),backdropRef:c.createRef(),internalBackdropRef:c.createRef(),outsidePressEnabledRef:{current:!0},triggerElements:e,onOpenChange:void 0,onOpenChangeComplete:void 0}}function Re(e,n){const{children:o,open:s,defaultOpen:d=!1,onOpenChange:p,onOpenChangeComplete:l,disablePointerDismissal:u=!1,modal:r=!0,actionsRef:t,handle:g,triggerId:f,defaultTriggerId:S=null}=n,P=e==="drawer",h=r,i=u,m="dialog",C=O(!0),D=C!=null,x={modal:h,disablePointerDismissal:i,nested:D,role:m},a=le((T,v)=>new De({open:d,openProp:s,activeTriggerId:S,triggerIdProp:f,...x},T,v),!0);a.useControlledProp("openProp",s),a.useControlledProp("triggerIdProp",f),a.useSyncedValues(x),a.useContextCallback("onOpenChange",p),a.useContextCallback("onOpenChangeComplete",l);const R=a.useState("open"),w=a.useState("mounted"),y=a.useState("payload");ue(a,R),ce(a);const{forceUnmount:E}=de(R,a);c.useImperativeHandle(t,()=>({unmount:E,close:()=>a.setOpen(!1,Q(Y))}),[E,a]);const k=R||w||g!=null;return b.jsxs(B.Provider,{value:a,children:[g&&b.jsx(pe,{handle:g,store:a}),k&&b.jsx(Pe,{store:a,parentContext:C?.context,isDrawer:P}),typeof o=="function"?o({payload:y}):o]})}const Te=q(function(n){return Re("dialog",n)}),ve=c.forwardRef(function(n,o){const{render:s,className:d,style:p,children:l,...u}=n,r=A(),t=O(),g=t.useState("open"),f=t.useState("nested"),S=t.useState("transitionStatus"),P=t.useState("nestedOpenDialogCount"),h=t.useState("mounted"),i=t.useStateSetter("viewportElement"),m=P>0;return I("div",n,{enabled:r||h,state:{open:g,nested:f,transitionStatus:S,nestedDialogOpen:m},ref:[o,i],stateAttributesMapping:U,props:[{role:"presentation",hidden:!h,style:{pointerEvents:g?void 0:"none"},children:l},u]})}),Me=c.forwardRef(function(n,o){const{render:s,className:d,style:p,id:l,...u}=n,r=O(),t=ge(l);return r.useSyncedValueWithCleanup("titleElementId",t),I("h2",n,{ref:o,props:[{id:t},u]})});export{Te as D,ke as a,we as b,ve as c,ye as d,Me as e,O as u};
1
+ import{r as c,bD as F,J as I,cb as K,bU as L,j as b,bQ as _,bT as H,b9 as J,bc as W,b2 as N,bE as z,N as Q,bK as Y,bJ as q}from"./__vite-browser-external-RPZeXrAv.js";import{z as G,p as X,w as Z,x as $,y as ee,C as te,I as ne,n as oe,B as se,o as ae,e as re,P as ie,m as le,h as ue,j as ce,k as de,l as pe,u as ge}from"./composite-BJuoijSA.js";import{p as fe,c as me}from"./store-C91MN0gm.js";const B=c.createContext(void 0);function O(e){const n=c.useContext(B);if(!e&&n===void 0)throw new Error(F(27));return n}const we=c.forwardRef(function(n,o){const{render:s,className:d,style:p,forceRender:l=!1,...u}=n,r=O(),t=r.useState("open"),g=r.useState("nested"),f=r.useState("mounted"),S=r.useState("transitionStatus");return I("div",n,{state:{open:t,transitionStatus:S},ref:[r.context.backdropRef,o],stateAttributesMapping:G,props:[{role:"presentation",hidden:!f,style:{userSelect:"none",WebkitUserSelect:"none"}},u],enabled:l||!g})}),j=c.createContext(void 0);function A(){const e=c.useContext(j);if(e===void 0)throw new Error(F(26));return e}const Se="--nested-dialogs",he="data-nested-dialog-open",U={...X,...K,nestedDialogOpen(e){return e?{[he]:""}:null}},ye=c.forwardRef(function(n,o){const{render:s,className:d,style:p,finalFocus:l,initialFocus:u,...r}=n,t=O(),g=t.useState("descriptionElementId"),f=t.useState("disablePointerDismissal"),S=t.useState("floatingRootContext"),P=t.useState("popupProps"),h=t.useState("modal"),i=t.useState("mounted"),m=t.useState("nested"),C=t.useState("nestedOpenDialogCount"),D=t.useState("open"),x=t.useState("openMethod"),a=t.useState("titleElementId"),R=t.useState("transitionStatus"),w=t.useState("role"),y=S.useState("floatingId");A(),L({open:D,ref:t.context.popupRef,onComplete(){D&&t.context.onOpenChangeComplete?.(!0)}});const E=u===void 0?Z(t.context.popupRef):u,k=C>0,T=t.useStateSetter("popupElement"),V=I("div",n,{state:{open:D,nested:m,transitionStatus:R,nestedDialogOpen:k},props:[P,{id:y,"aria-labelledby":a,"aria-describedby":g,role:w,...ee,hidden:!i,onKeyDown(M){te.has(M.key)&&M.stopPropagation()},style:{[Se]:C}},r],ref:[o,t.context.popupRef,T],stateAttributesMapping:U});return b.jsx($,{context:S,openInteractionType:x,disabled:!i,closeOnFocusOut:!f,initialFocus:E,returnFocus:l,modal:h!==!1,restoreFocus:"popup",children:V})}),ke=c.forwardRef(function(n,o){const{keepMounted:s=!1,...d}=n,p=O(),l=p.useState("mounted"),u=p.useState("modal"),r=p.useState("open");return l||s?b.jsx(j.Provider,{value:s,children:b.jsxs(_,{ref:o,...d,children:[l&&u===!0&&b.jsx(ne,{ref:p.context.internalBackdropRef,inert:H(!r)}),n.children]})}):null});function Pe({store:e,parentContext:n,isDrawer:o}){const s=e.useState("open"),d=e.useState("mounted"),p=e.useState("disablePointerDismissal"),l=e.useState("modal"),u=e.useState("popupElement"),r=e.useState("floatingRootContext"),[t,g]=c.useState(0),[f,S]=c.useState(0),P=t===0,h=oe(r,{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 m=J(i);if(P&&!p){if(l){const C=e.context.internalBackdropRef.current,D=e.context.backdropRef.current;return C||D?C===m||D===m||W(m,u)&&!m?.hasAttribute("data-base-ui-portal"):!0}return!0}return!1},escapeKey:P});return se(s&&l===!0,u),e.useContextCallback("onNestedDialogOpen",(i,m)=>{!e.select("open")&&!e.select("mounted")||(g(i),S(m))}),N(()=>{!s&&!d&&(g(0),S(0))},[s,d]),N(()=>(n?.onNestedDialogOpen&&s&&n.onNestedDialogOpen(t+1,f+(o?1:0)),()=>{n?.onNestedDialogOpen&&s&&n.onNestedDialogOpen(0,0)}),[o,s,t,f,n]),ae(e,{activeTriggerProps:h.reference,inactiveTriggerProps:h.trigger,popupProps:h.floating,nestedOpenDialogCount:t,nestedOpenDrawerCount:f}),null}const Ce={...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 De extends z{constructor(n,o,s){const d=new ie,p=be(n,d,o,s);super(p,Oe(d),Ce)}setOpen=(n,o)=>{o.preventUnmountOnClose=()=>{this.set("preventUnmountingOnClose",!0)},!n&&o.trigger==null&&this.state.activeTriggerId!=null&&(o.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(n,o),!o.isCanceled&&(this.state.floatingRootContext.dispatchOpenChange(n,o),this.update(re(this.state,n,o.trigger)))}}function be(e,n,o,s=!1){return{...me(n,o,s),modal:!0,disablePointerDismissal:!1,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,nestedOpenDrawerCount:0,role:"dialog",...e}}function Oe(e){return{popupRef:c.createRef(),backdropRef:c.createRef(),internalBackdropRef:c.createRef(),outsidePressEnabledRef:{current:!0},triggerElements:e,onOpenChange:void 0,onOpenChangeComplete:void 0}}function Re(e,n){const{children:o,open:s,defaultOpen:d=!1,onOpenChange:p,onOpenChangeComplete:l,disablePointerDismissal:u=!1,modal:r=!0,actionsRef:t,handle:g,triggerId:f,defaultTriggerId:S=null}=n,P=e==="drawer",h=r,i=u,m="dialog",C=O(!0),D=C!=null,x={modal:h,disablePointerDismissal:i,nested:D,role:m},a=le((T,v)=>new De({open:d,openProp:s,activeTriggerId:S,triggerIdProp:f,...x},T,v),!0);a.useControlledProp("openProp",s),a.useControlledProp("triggerIdProp",f),a.useSyncedValues(x),a.useContextCallback("onOpenChange",p),a.useContextCallback("onOpenChangeComplete",l);const R=a.useState("open"),w=a.useState("mounted"),y=a.useState("payload");ue(a,R),ce(a);const{forceUnmount:E}=de(R,a);c.useImperativeHandle(t,()=>({unmount:E,close:()=>a.setOpen(!1,Q(Y))}),[E,a]);const k=R||w||g!=null;return b.jsxs(B.Provider,{value:a,children:[g&&b.jsx(pe,{handle:g,store:a}),k&&b.jsx(Pe,{store:a,parentContext:C?.context,isDrawer:P}),typeof o=="function"?o({payload:y}):o]})}const Te=q(function(n){return Re("dialog",n)}),ve=c.forwardRef(function(n,o){const{render:s,className:d,style:p,children:l,...u}=n,r=A(),t=O(),g=t.useState("open"),f=t.useState("nested"),S=t.useState("transitionStatus"),P=t.useState("nestedOpenDialogCount"),h=t.useState("mounted"),i=t.useStateSetter("viewportElement"),m=P>0;return I("div",n,{enabled:r||h,state:{open:g,nested:f,transitionStatus:S,nestedDialogOpen:m},ref:[o,i],stateAttributesMapping:U,props:[{role:"presentation",hidden:!h,style:{pointerEvents:g?void 0:"none"},children:l},u]})}),Me=c.forwardRef(function(n,o){const{render:s,className:d,style:p,id:l,...u}=n,r=O(),t=ge(l);return r.useSyncedValueWithCleanup("titleElementId",t),I("h2",n,{ref:o,props:[{id:t},u]})});export{Te as D,ke as a,we as b,ve as c,ye as d,Me as e,O as u};
@@ -1,4 +1,4 @@
1
- import{r as at,j as Ce}from"./__vite-browser-external-BBQzCxHU.js";function pt(e){let t=e[0],i=e[1],s=e[2];return Math.sqrt(t*t+i*i+s*s)}function Pt(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Le(e,t,i,s){return e[0]=t,e[1]=i,e[2]=s,e}function Zt(e,t,i){return e[0]=t[0]+i[0],e[1]=t[1]+i[1],e[2]=t[2]+i[2],e}function Qt(e,t,i){return e[0]=t[0]-i[0],e[1]=t[1]-i[1],e[2]=t[2]-i[2],e}function Ie(e,t,i){return e[0]=t[0]*i[0],e[1]=t[1]*i[1],e[2]=t[2]*i[2],e}function ke(e,t,i){return e[0]=t[0]/i[0],e[1]=t[1]/i[1],e[2]=t[2]/i[2],e}function Ct(e,t,i){return e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i,e}function Ue(e,t){let i=t[0]-e[0],s=t[1]-e[1],r=t[2]-e[2];return Math.sqrt(i*i+s*s+r*r)}function Pe(e,t){let i=t[0]-e[0],s=t[1]-e[1],r=t[2]-e[2];return i*i+s*s+r*r}function Kt(e){let t=e[0],i=e[1],s=e[2];return t*t+i*i+s*s}function Oe(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function De(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function Ot(e,t){let i=t[0],s=t[1],r=t[2],n=i*i+s*s+r*r;return n>0&&(n=1/Math.sqrt(n)),e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function Me(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Jt(e,t,i){let s=t[0],r=t[1],n=t[2],h=i[0],a=i[1],l=i[2];return e[0]=r*l-n*a,e[1]=n*h-s*l,e[2]=s*a-r*h,e}function Be(e,t,i,s){let r=t[0],n=t[1],h=t[2];return e[0]=r+s*(i[0]-r),e[1]=n+s*(i[1]-n),e[2]=h+s*(i[2]-h),e}function Ne(e,t,i,s,r){const n=Math.exp(-s*r);let h=t[0],a=t[1],l=t[2];return e[0]=i[0]+(h-i[0])*n,e[1]=i[1]+(a-i[1])*n,e[2]=i[2]+(l-i[2])*n,e}function Ge(e,t,i){let s=t[0],r=t[1],n=t[2],h=i[3]*s+i[7]*r+i[11]*n+i[15];return h=h||1,e[0]=(i[0]*s+i[4]*r+i[8]*n+i[12])/h,e[1]=(i[1]*s+i[5]*r+i[9]*n+i[13])/h,e[2]=(i[2]*s+i[6]*r+i[10]*n+i[14])/h,e}function qe(e,t,i){let s=t[0],r=t[1],n=t[2],h=i[3]*s+i[7]*r+i[11]*n+i[15];return h=h||1,e[0]=(i[0]*s+i[4]*r+i[8]*n)/h,e[1]=(i[1]*s+i[5]*r+i[9]*n)/h,e[2]=(i[2]*s+i[6]*r+i[10]*n)/h,e}function Xe(e,t,i){let s=t[0],r=t[1],n=t[2];return e[0]=s*i[0]+r*i[3]+n*i[6],e[1]=s*i[1]+r*i[4]+n*i[7],e[2]=s*i[2]+r*i[5]+n*i[8],e}function je(e,t,i){let s=t[0],r=t[1],n=t[2],h=i[0],a=i[1],l=i[2],o=i[3],c=a*n-l*r,d=l*s-h*n,f=h*r-a*s,g=a*f-l*d,u=l*c-h*f,m=h*d-a*c,p=o*2;return c*=p,d*=p,f*=p,g*=2,u*=2,m*=2,e[0]=s+c+g,e[1]=r+d+u,e[2]=n+f+m,e}const $e=(function(){const e=[0,0,0],t=[0,0,0];return function(i,s){Pt(e,i),Pt(t,s),Ot(e,e),Ot(t,t);let r=Me(e,t);return r>1?0:r<-1?Math.PI:Math.acos(r)}})();function We(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}class K extends Array{constructor(t=0,i=t,s=t){return super(t,i,s),this}get x(){return this[0]}get y(){return this[1]}get z(){return this[2]}set x(t){this[0]=t}set y(t){this[1]=t}set z(t){this[2]=t}set(t,i=t,s=t){return t.length?this.copy(t):(Le(this,t,i,s),this)}copy(t){return Pt(this,t),this}add(t,i){return i?Zt(this,t,i):Zt(this,this,t),this}sub(t,i){return i?Qt(this,t,i):Qt(this,this,t),this}multiply(t){return t.length?Ie(this,this,t):Ct(this,this,t),this}divide(t){return t.length?ke(this,this,t):Ct(this,this,1/t),this}inverse(t=this){return De(this,t),this}len(){return pt(this)}distance(t){return t?Ue(this,t):pt(this)}squaredLen(){return Kt(this)}squaredDistance(t){return t?Pe(this,t):Kt(this)}negate(t=this){return Oe(this,t),this}cross(t,i){return i?Jt(this,t,i):Jt(this,this,t),this}scale(t){return Ct(this,this,t),this}normalize(){return Ot(this,this),this}dot(t){return Me(this,t)}equals(t){return We(this,t)}applyMatrix3(t){return Xe(this,this,t),this}applyMatrix4(t){return Ge(this,this,t),this}scaleRotateMatrix4(t){return qe(this,this,t),this}applyQuaternion(t){return je(this,this,t),this}angle(t){return $e(this,t)}lerp(t,i){return Be(this,this,t,i),this}smoothLerp(t,i,s){return Ne(this,this,t,i,s),this}clone(){return new K(this[0],this[1],this[2])}fromArray(t,i=0){return this[0]=t[i],this[1]=t[i+1],this[2]=t[i+2],this}toArray(t=[],i=0){return t[i]=this[0],t[i+1]=this[1],t[i+2]=this[2],t}transformDirection(t){const i=this[0],s=this[1],r=this[2];return this[0]=t[0]*i+t[4]*s+t[8]*r,this[1]=t[1]*i+t[5]*s+t[9]*r,this[2]=t[2]*i+t[6]*s+t[10]*r,this.normalize()}}const te=new K;let Ve=1,Ye=1,ee=!1;class He{constructor(t,i={}){t.canvas||console.error("gl not passed as first argument to Geometry"),this.gl=t,this.attributes=i,this.id=Ve++,this.VAOs={},this.drawRange={start:0,count:0},this.instancedCount=0,this.gl.renderer.bindVertexArray(null),this.gl.renderer.currentGeometry=null,this.glState=this.gl.renderer.state;for(let s in i)this.addAttribute(s,i[s])}addAttribute(t,i){if(this.attributes[t]=i,i.id=Ye++,i.size=i.size||1,i.type=i.type||(i.data.constructor===Float32Array?this.gl.FLOAT:i.data.constructor===Uint16Array?this.gl.UNSIGNED_SHORT:this.gl.UNSIGNED_INT),i.target=t==="index"?this.gl.ELEMENT_ARRAY_BUFFER:this.gl.ARRAY_BUFFER,i.normalized=i.normalized||!1,i.stride=i.stride||0,i.offset=i.offset||0,i.count=i.count||(i.stride?i.data.byteLength/i.stride:i.data.length/i.size),i.divisor=i.instanced||0,i.needsUpdate=!1,i.usage=i.usage||this.gl.STATIC_DRAW,i.buffer||this.updateAttribute(i),i.divisor){if(this.isInstanced=!0,this.instancedCount&&this.instancedCount!==i.count*i.divisor)return console.warn("geometry has multiple instanced buffers of different length"),this.instancedCount=Math.min(this.instancedCount,i.count*i.divisor);this.instancedCount=i.count*i.divisor}else t==="index"?this.drawRange.count=i.count:this.attributes.index||(this.drawRange.count=Math.max(this.drawRange.count,i.count))}updateAttribute(t){const i=!t.buffer;i&&(t.buffer=this.gl.createBuffer()),this.glState.boundBuffer!==t.buffer&&(this.gl.bindBuffer(t.target,t.buffer),this.glState.boundBuffer=t.buffer),i?this.gl.bufferData(t.target,t.data,t.usage):this.gl.bufferSubData(t.target,0,t.data),t.needsUpdate=!1}setIndex(t){this.addAttribute("index",t)}setDrawRange(t,i){this.drawRange.start=t,this.drawRange.count=i}setInstancedCount(t){this.instancedCount=t}createVAO(t){this.VAOs[t.attributeOrder]=this.gl.renderer.createVertexArray(),this.gl.renderer.bindVertexArray(this.VAOs[t.attributeOrder]),this.bindAttributes(t)}bindAttributes(t){t.attributeLocations.forEach((i,{name:s,type:r})=>{if(!this.attributes[s]){console.warn(`active attribute ${s} not being supplied`);return}const n=this.attributes[s];this.gl.bindBuffer(n.target,n.buffer),this.glState.boundBuffer=n.buffer;let h=1;r===35674&&(h=2),r===35675&&(h=3),r===35676&&(h=4);const a=n.size/h,l=h===1?0:h*h*4,o=h===1?0:h*4;for(let c=0;c<h;c++)this.gl.vertexAttribPointer(i+c,a,n.type,n.normalized,n.stride+l,n.offset+c*o),this.gl.enableVertexAttribArray(i+c),this.gl.renderer.vertexAttribDivisor(i+c,n.divisor)}),this.attributes.index&&this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,this.attributes.index.buffer)}draw({program:t,mode:i=this.gl.TRIANGLES}){this.gl.renderer.currentGeometry!==`${this.id}_${t.attributeOrder}`&&(this.VAOs[t.attributeOrder]||this.createVAO(t),this.gl.renderer.bindVertexArray(this.VAOs[t.attributeOrder]),this.gl.renderer.currentGeometry=`${this.id}_${t.attributeOrder}`),t.attributeLocations.forEach((r,{name:n})=>{const h=this.attributes[n];h.needsUpdate&&this.updateAttribute(h)});let s=2;this.attributes.index?.type===this.gl.UNSIGNED_INT&&(s=4),this.isInstanced?this.attributes.index?this.gl.renderer.drawElementsInstanced(i,this.drawRange.count,this.attributes.index.type,this.attributes.index.offset+this.drawRange.start*s,this.instancedCount):this.gl.renderer.drawArraysInstanced(i,this.drawRange.start,this.drawRange.count,this.instancedCount):this.attributes.index?this.gl.drawElements(i,this.drawRange.count,this.attributes.index.type,this.attributes.index.offset+this.drawRange.start*s):this.gl.drawArrays(i,this.drawRange.start,this.drawRange.count)}getPosition(){const t=this.attributes.position;if(t.data)return t;if(!ee)return console.warn("No position buffer data found to compute bounds"),ee=!0}computeBoundingBox(t){t||(t=this.getPosition());const i=t.data,s=t.size;this.bounds||(this.bounds={min:new K,max:new K,center:new K,scale:new K,radius:1/0});const r=this.bounds.min,n=this.bounds.max,h=this.bounds.center,a=this.bounds.scale;r.set(1/0),n.set(-1/0);for(let l=0,o=i.length;l<o;l+=s){const c=i[l],d=i[l+1],f=i[l+2];r.x=Math.min(c,r.x),r.y=Math.min(d,r.y),r.z=Math.min(f,r.z),n.x=Math.max(c,n.x),n.y=Math.max(d,n.y),n.z=Math.max(f,n.z)}a.sub(n,r),h.add(r,n).divide(2)}computeBoundingSphere(t){t||(t=this.getPosition());const i=t.data,s=t.size;this.bounds||this.computeBoundingBox(t);let r=0;for(let n=0,h=i.length;n<h;n+=s)te.fromArray(i,n),r=Math.max(r,this.bounds.center.squaredDistance(te));this.bounds.radius=Math.sqrt(r)}remove(){for(let t in this.VAOs)this.gl.renderer.deleteVertexArray(this.VAOs[t]),delete this.VAOs[t];for(let t in this.attributes)this.gl.deleteBuffer(this.attributes[t].buffer),delete this.attributes[t]}}let Ze=1;const ie={};class Qe{constructor(t,{vertex:i,fragment:s,uniforms:r={},transparent:n=!1,cullFace:h=t.BACK,frontFace:a=t.CCW,depthTest:l=!0,depthWrite:o=!0,depthFunc:c=t.LEQUAL}={}){t.canvas||console.error("gl not passed as first argument to Program"),this.gl=t,this.uniforms=r,this.id=Ze++,i||console.warn("vertex shader not supplied"),s||console.warn("fragment shader not supplied"),this.transparent=n,this.cullFace=h,this.frontFace=a,this.depthTest=l,this.depthWrite=o,this.depthFunc=c,this.blendFunc={},this.blendEquation={},this.stencilFunc={},this.stencilOp={},this.transparent&&!this.blendFunc.src&&(this.gl.renderer.premultipliedAlpha?this.setBlendFunc(this.gl.ONE,this.gl.ONE_MINUS_SRC_ALPHA):this.setBlendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA)),this.vertexShader=t.createShader(t.VERTEX_SHADER),this.fragmentShader=t.createShader(t.FRAGMENT_SHADER),this.program=t.createProgram(),t.attachShader(this.program,this.vertexShader),t.attachShader(this.program,this.fragmentShader),this.setShaders({vertex:i,fragment:s})}setShaders({vertex:t,fragment:i}){if(t&&(this.gl.shaderSource(this.vertexShader,t),this.gl.compileShader(this.vertexShader),this.gl.getShaderInfoLog(this.vertexShader)!==""&&console.warn(`${this.gl.getShaderInfoLog(this.vertexShader)}
1
+ import{r as at,j as Ce}from"./__vite-browser-external-RPZeXrAv.js";function pt(e){let t=e[0],i=e[1],s=e[2];return Math.sqrt(t*t+i*i+s*s)}function Pt(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Le(e,t,i,s){return e[0]=t,e[1]=i,e[2]=s,e}function Zt(e,t,i){return e[0]=t[0]+i[0],e[1]=t[1]+i[1],e[2]=t[2]+i[2],e}function Qt(e,t,i){return e[0]=t[0]-i[0],e[1]=t[1]-i[1],e[2]=t[2]-i[2],e}function Ie(e,t,i){return e[0]=t[0]*i[0],e[1]=t[1]*i[1],e[2]=t[2]*i[2],e}function ke(e,t,i){return e[0]=t[0]/i[0],e[1]=t[1]/i[1],e[2]=t[2]/i[2],e}function Ct(e,t,i){return e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i,e}function Ue(e,t){let i=t[0]-e[0],s=t[1]-e[1],r=t[2]-e[2];return Math.sqrt(i*i+s*s+r*r)}function Pe(e,t){let i=t[0]-e[0],s=t[1]-e[1],r=t[2]-e[2];return i*i+s*s+r*r}function Kt(e){let t=e[0],i=e[1],s=e[2];return t*t+i*i+s*s}function Oe(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function De(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function Ot(e,t){let i=t[0],s=t[1],r=t[2],n=i*i+s*s+r*r;return n>0&&(n=1/Math.sqrt(n)),e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function Me(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Jt(e,t,i){let s=t[0],r=t[1],n=t[2],h=i[0],a=i[1],l=i[2];return e[0]=r*l-n*a,e[1]=n*h-s*l,e[2]=s*a-r*h,e}function Be(e,t,i,s){let r=t[0],n=t[1],h=t[2];return e[0]=r+s*(i[0]-r),e[1]=n+s*(i[1]-n),e[2]=h+s*(i[2]-h),e}function Ne(e,t,i,s,r){const n=Math.exp(-s*r);let h=t[0],a=t[1],l=t[2];return e[0]=i[0]+(h-i[0])*n,e[1]=i[1]+(a-i[1])*n,e[2]=i[2]+(l-i[2])*n,e}function Ge(e,t,i){let s=t[0],r=t[1],n=t[2],h=i[3]*s+i[7]*r+i[11]*n+i[15];return h=h||1,e[0]=(i[0]*s+i[4]*r+i[8]*n+i[12])/h,e[1]=(i[1]*s+i[5]*r+i[9]*n+i[13])/h,e[2]=(i[2]*s+i[6]*r+i[10]*n+i[14])/h,e}function qe(e,t,i){let s=t[0],r=t[1],n=t[2],h=i[3]*s+i[7]*r+i[11]*n+i[15];return h=h||1,e[0]=(i[0]*s+i[4]*r+i[8]*n)/h,e[1]=(i[1]*s+i[5]*r+i[9]*n)/h,e[2]=(i[2]*s+i[6]*r+i[10]*n)/h,e}function Xe(e,t,i){let s=t[0],r=t[1],n=t[2];return e[0]=s*i[0]+r*i[3]+n*i[6],e[1]=s*i[1]+r*i[4]+n*i[7],e[2]=s*i[2]+r*i[5]+n*i[8],e}function je(e,t,i){let s=t[0],r=t[1],n=t[2],h=i[0],a=i[1],l=i[2],o=i[3],c=a*n-l*r,d=l*s-h*n,f=h*r-a*s,g=a*f-l*d,u=l*c-h*f,m=h*d-a*c,p=o*2;return c*=p,d*=p,f*=p,g*=2,u*=2,m*=2,e[0]=s+c+g,e[1]=r+d+u,e[2]=n+f+m,e}const $e=(function(){const e=[0,0,0],t=[0,0,0];return function(i,s){Pt(e,i),Pt(t,s),Ot(e,e),Ot(t,t);let r=Me(e,t);return r>1?0:r<-1?Math.PI:Math.acos(r)}})();function We(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}class K extends Array{constructor(t=0,i=t,s=t){return super(t,i,s),this}get x(){return this[0]}get y(){return this[1]}get z(){return this[2]}set x(t){this[0]=t}set y(t){this[1]=t}set z(t){this[2]=t}set(t,i=t,s=t){return t.length?this.copy(t):(Le(this,t,i,s),this)}copy(t){return Pt(this,t),this}add(t,i){return i?Zt(this,t,i):Zt(this,this,t),this}sub(t,i){return i?Qt(this,t,i):Qt(this,this,t),this}multiply(t){return t.length?Ie(this,this,t):Ct(this,this,t),this}divide(t){return t.length?ke(this,this,t):Ct(this,this,1/t),this}inverse(t=this){return De(this,t),this}len(){return pt(this)}distance(t){return t?Ue(this,t):pt(this)}squaredLen(){return Kt(this)}squaredDistance(t){return t?Pe(this,t):Kt(this)}negate(t=this){return Oe(this,t),this}cross(t,i){return i?Jt(this,t,i):Jt(this,this,t),this}scale(t){return Ct(this,this,t),this}normalize(){return Ot(this,this),this}dot(t){return Me(this,t)}equals(t){return We(this,t)}applyMatrix3(t){return Xe(this,this,t),this}applyMatrix4(t){return Ge(this,this,t),this}scaleRotateMatrix4(t){return qe(this,this,t),this}applyQuaternion(t){return je(this,this,t),this}angle(t){return $e(this,t)}lerp(t,i){return Be(this,this,t,i),this}smoothLerp(t,i,s){return Ne(this,this,t,i,s),this}clone(){return new K(this[0],this[1],this[2])}fromArray(t,i=0){return this[0]=t[i],this[1]=t[i+1],this[2]=t[i+2],this}toArray(t=[],i=0){return t[i]=this[0],t[i+1]=this[1],t[i+2]=this[2],t}transformDirection(t){const i=this[0],s=this[1],r=this[2];return this[0]=t[0]*i+t[4]*s+t[8]*r,this[1]=t[1]*i+t[5]*s+t[9]*r,this[2]=t[2]*i+t[6]*s+t[10]*r,this.normalize()}}const te=new K;let Ve=1,Ye=1,ee=!1;class He{constructor(t,i={}){t.canvas||console.error("gl not passed as first argument to Geometry"),this.gl=t,this.attributes=i,this.id=Ve++,this.VAOs={},this.drawRange={start:0,count:0},this.instancedCount=0,this.gl.renderer.bindVertexArray(null),this.gl.renderer.currentGeometry=null,this.glState=this.gl.renderer.state;for(let s in i)this.addAttribute(s,i[s])}addAttribute(t,i){if(this.attributes[t]=i,i.id=Ye++,i.size=i.size||1,i.type=i.type||(i.data.constructor===Float32Array?this.gl.FLOAT:i.data.constructor===Uint16Array?this.gl.UNSIGNED_SHORT:this.gl.UNSIGNED_INT),i.target=t==="index"?this.gl.ELEMENT_ARRAY_BUFFER:this.gl.ARRAY_BUFFER,i.normalized=i.normalized||!1,i.stride=i.stride||0,i.offset=i.offset||0,i.count=i.count||(i.stride?i.data.byteLength/i.stride:i.data.length/i.size),i.divisor=i.instanced||0,i.needsUpdate=!1,i.usage=i.usage||this.gl.STATIC_DRAW,i.buffer||this.updateAttribute(i),i.divisor){if(this.isInstanced=!0,this.instancedCount&&this.instancedCount!==i.count*i.divisor)return console.warn("geometry has multiple instanced buffers of different length"),this.instancedCount=Math.min(this.instancedCount,i.count*i.divisor);this.instancedCount=i.count*i.divisor}else t==="index"?this.drawRange.count=i.count:this.attributes.index||(this.drawRange.count=Math.max(this.drawRange.count,i.count))}updateAttribute(t){const i=!t.buffer;i&&(t.buffer=this.gl.createBuffer()),this.glState.boundBuffer!==t.buffer&&(this.gl.bindBuffer(t.target,t.buffer),this.glState.boundBuffer=t.buffer),i?this.gl.bufferData(t.target,t.data,t.usage):this.gl.bufferSubData(t.target,0,t.data),t.needsUpdate=!1}setIndex(t){this.addAttribute("index",t)}setDrawRange(t,i){this.drawRange.start=t,this.drawRange.count=i}setInstancedCount(t){this.instancedCount=t}createVAO(t){this.VAOs[t.attributeOrder]=this.gl.renderer.createVertexArray(),this.gl.renderer.bindVertexArray(this.VAOs[t.attributeOrder]),this.bindAttributes(t)}bindAttributes(t){t.attributeLocations.forEach((i,{name:s,type:r})=>{if(!this.attributes[s]){console.warn(`active attribute ${s} not being supplied`);return}const n=this.attributes[s];this.gl.bindBuffer(n.target,n.buffer),this.glState.boundBuffer=n.buffer;let h=1;r===35674&&(h=2),r===35675&&(h=3),r===35676&&(h=4);const a=n.size/h,l=h===1?0:h*h*4,o=h===1?0:h*4;for(let c=0;c<h;c++)this.gl.vertexAttribPointer(i+c,a,n.type,n.normalized,n.stride+l,n.offset+c*o),this.gl.enableVertexAttribArray(i+c),this.gl.renderer.vertexAttribDivisor(i+c,n.divisor)}),this.attributes.index&&this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,this.attributes.index.buffer)}draw({program:t,mode:i=this.gl.TRIANGLES}){this.gl.renderer.currentGeometry!==`${this.id}_${t.attributeOrder}`&&(this.VAOs[t.attributeOrder]||this.createVAO(t),this.gl.renderer.bindVertexArray(this.VAOs[t.attributeOrder]),this.gl.renderer.currentGeometry=`${this.id}_${t.attributeOrder}`),t.attributeLocations.forEach((r,{name:n})=>{const h=this.attributes[n];h.needsUpdate&&this.updateAttribute(h)});let s=2;this.attributes.index?.type===this.gl.UNSIGNED_INT&&(s=4),this.isInstanced?this.attributes.index?this.gl.renderer.drawElementsInstanced(i,this.drawRange.count,this.attributes.index.type,this.attributes.index.offset+this.drawRange.start*s,this.instancedCount):this.gl.renderer.drawArraysInstanced(i,this.drawRange.start,this.drawRange.count,this.instancedCount):this.attributes.index?this.gl.drawElements(i,this.drawRange.count,this.attributes.index.type,this.attributes.index.offset+this.drawRange.start*s):this.gl.drawArrays(i,this.drawRange.start,this.drawRange.count)}getPosition(){const t=this.attributes.position;if(t.data)return t;if(!ee)return console.warn("No position buffer data found to compute bounds"),ee=!0}computeBoundingBox(t){t||(t=this.getPosition());const i=t.data,s=t.size;this.bounds||(this.bounds={min:new K,max:new K,center:new K,scale:new K,radius:1/0});const r=this.bounds.min,n=this.bounds.max,h=this.bounds.center,a=this.bounds.scale;r.set(1/0),n.set(-1/0);for(let l=0,o=i.length;l<o;l+=s){const c=i[l],d=i[l+1],f=i[l+2];r.x=Math.min(c,r.x),r.y=Math.min(d,r.y),r.z=Math.min(f,r.z),n.x=Math.max(c,n.x),n.y=Math.max(d,n.y),n.z=Math.max(f,n.z)}a.sub(n,r),h.add(r,n).divide(2)}computeBoundingSphere(t){t||(t=this.getPosition());const i=t.data,s=t.size;this.bounds||this.computeBoundingBox(t);let r=0;for(let n=0,h=i.length;n<h;n+=s)te.fromArray(i,n),r=Math.max(r,this.bounds.center.squaredDistance(te));this.bounds.radius=Math.sqrt(r)}remove(){for(let t in this.VAOs)this.gl.renderer.deleteVertexArray(this.VAOs[t]),delete this.VAOs[t];for(let t in this.attributes)this.gl.deleteBuffer(this.attributes[t].buffer),delete this.attributes[t]}}let Ze=1;const ie={};class Qe{constructor(t,{vertex:i,fragment:s,uniforms:r={},transparent:n=!1,cullFace:h=t.BACK,frontFace:a=t.CCW,depthTest:l=!0,depthWrite:o=!0,depthFunc:c=t.LEQUAL}={}){t.canvas||console.error("gl not passed as first argument to Program"),this.gl=t,this.uniforms=r,this.id=Ze++,i||console.warn("vertex shader not supplied"),s||console.warn("fragment shader not supplied"),this.transparent=n,this.cullFace=h,this.frontFace=a,this.depthTest=l,this.depthWrite=o,this.depthFunc=c,this.blendFunc={},this.blendEquation={},this.stencilFunc={},this.stencilOp={},this.transparent&&!this.blendFunc.src&&(this.gl.renderer.premultipliedAlpha?this.setBlendFunc(this.gl.ONE,this.gl.ONE_MINUS_SRC_ALPHA):this.setBlendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA)),this.vertexShader=t.createShader(t.VERTEX_SHADER),this.fragmentShader=t.createShader(t.FRAGMENT_SHADER),this.program=t.createProgram(),t.attachShader(this.program,this.vertexShader),t.attachShader(this.program,this.fragmentShader),this.setShaders({vertex:i,fragment:s})}setShaders({vertex:t,fragment:i}){if(t&&(this.gl.shaderSource(this.vertexShader,t),this.gl.compileShader(this.vertexShader),this.gl.getShaderInfoLog(this.vertexShader)!==""&&console.warn(`${this.gl.getShaderInfoLog(this.vertexShader)}
2
2
  Vertex Shader
3
3
  ${se(t)}`)),i&&(this.gl.shaderSource(this.fragmentShader,i),this.gl.compileShader(this.fragmentShader),this.gl.getShaderInfoLog(this.fragmentShader)!==""&&console.warn(`${this.gl.getShaderInfoLog(this.fragmentShader)}
4
4
  Fragment Shader
@@ -1 +1 @@
1
- import{j as o}from"./__vite-browser-external-BBQzCxHU.js";import{m as s}from"./react-B68xm5mg.js";import{u as d}from"./use-reduced-motion-C_uu1NvN.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-RPZeXrAv.js";import{m as s}from"./react-Cy_Eczdb.js";import{u as d}from"./use-reduced-motion-uryC1l51.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-BBQzCxHU.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-RPZeXrAv.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,y as a}from"./__vite-browser-external-BBQzCxHU.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,y as a}from"./__vite-browser-external-RPZeXrAv.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-BBQzCxHU.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-RPZeXrAv.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>
@@ -7,7 +7,7 @@ import{r as ge,c as t,j as n}from"./__vite-browser-external-BBQzCxHU.js";const G
7
7
  <span class="text-sm text-oai-gray-500 dark:text-oai-gray-400 shrink-0">${a}</span>
8
8
  <span class="text-sm font-medium text-oai-black dark:text-white text-right min-w-0">${u}</span>
9
9
  </div>`}function re(a){return a.map(i=>d(i,void 0)).join("")}function oe(){return'<div class="h-7 w-44 rounded bg-oai-gray-100 dark:bg-oai-gray-800 shimmer"></div>'}function ce(){return'<div class="h-3 w-52 mt-2 rounded bg-oai-gray-100 dark:bg-oai-gray-800 shimmer"></div>'}function _e(a){return a>=95?{text:e.score.pristine,variant:"safe"}:a>=80?{text:e.score.clean,variant:"safe"}:a>=50?{text:e.score.good,variant:"info"}:a>=25?{text:e.score.neutral,variant:"warn"}:{text:e.score.suspicious,variant:"danger"}}const m={ip:null,ippure:null,ipapis:null,claudeGeo:null,claudeRisk:null,cfGeo:"",scoreAnimId:null,lastScore:0};function xe(){const a=(m.claudeRisk?.countryCode||"").toUpperCase();return!a||!Ue.includes(a)?null:t(`ipcheck.region.${a}`)}function le(){const a=C("ipv6Warn");a&&a.classList.remove("hidden")}function te(a,i){const r=C(a);r&&(r.textContent=i||"",r.classList.remove("animate-pulse","bg-oai-gray-200","dark:bg-oai-gray-800","w-52","h-3","mt-2","rounded"))}const Le={gaugeScore:'<span class="block h-8 w-16 rounded bg-oai-gray-100 dark:bg-oai-gray-800 shimmer"></span>',ipAddrCN:oe(),ipGeoCN:ce(),ipAddr:oe(),ipGeo:ce(),ipAddrClaude:oe(),ipGeoClaude:ce(),propsContent:re([e.propsRegion,e.propsCity,e.propsType,e.propsAsn,e.propsOrg]),securityContent:re([e.secVpn,e.secProxy,e.secTor,e.secCrawler,e.secAbuser]),claudeAvailContent:d("claude.ai",void 0,!0)+d("anthropic.com",void 0,!0),dnsLeakContent:d(e.dnsStatus,void 0,!0)+d(e.dnsOutletIp,void 0,!0),udpLeakContent:d(e.udpStatus,void 0,!0)+d(e.udpOutletIp,void 0,!0),deviceContent:re([e.devTz,e.devLang,e.devOs,e.devTouch,e.devNet,e.devDnt,e.devWebglRender,e.devCanvasFp]),ipHistoryContent:`<span class="text-sm text-oai-gray-400 dark:text-oai-gray-500">${e.histLoading}</span>`};Object.entries(Le).forEach(([a,i])=>{const r=C(a);r&&(r.innerHTML=i)});let ye=!1;function Ne(a){if(!a)return;a.dataset.realText||(a.dataset.realText=(a.textContent||"").trim());const i=a.dataset.realText,r=ye?Fe(i):i;a.textContent!==r&&(a.textContent=r)}function ke(){_.querySelectorAll(".ip-link, .ip-mask-target").forEach(Ne)}const ve=new MutationObserver(()=>requestAnimationFrame(ke));["ipHeroCN","ipHero","ipHeroClaude","ipHistoryContent","dnsLeakContent","udpLeakContent"].forEach(a=>{const i=C(a);i&&ve.observe(i,{childList:!0,subtree:!0})}),_.__setMaskOn=a=>{ye=!!a,ke()};async function $e(){try{const r=(await(await fetch("https://1.1.1.1/cdn-cgi/trace",{signal:AbortSignal.timeout(5e3)})).text()).match(/ip=([^\n]+)/);r&&(m.ip=r[1].trim())}catch{}}async function je(){try{const i=await(await fetch("https://claude.ai/cdn-cgi/trace",{cache:"no-store",signal:AbortSignal.timeout(8e3)})).text(),r=Object.fromEntries(i.trim().split(`
10
- `).map(u=>u.split("=")));return{ip:r.ip||null,loc:r.loc?.toLowerCase()||null}}catch{return null}}async function Me(){try{const r=(await(await fetch("https://2026.ip138.com/",{signal:AbortSignal.timeout(5e3)})).text()).match(/(\d+\.\d+\.\d+\.\d+)/);if(r)return{ip:r[1]}}catch{}try{const r=(await(await fetch("https://my.ip.cn/",{signal:AbortSignal.timeout(5e3)})).text()).match(/(\d+\.\d+\.\d+\.\d+)/);if(r)return{ip:r[1]}}catch{}return null}async function Ee(a,i,r,u){const g=C(a),o=C(i);if(!(!g||!o)){if(!r){g.innerHTML=`<span class="text-oai-gray-400 dark:text-oai-gray-500">${e.failed}</span>`,o.textContent="";return}Z(r)&&le(),g.innerHTML=`${B(u)+" "}${K(r)}`;try{const l=await fetch(`${j}/api/geoip/${r}`,{signal:AbortSignal.timeout(5e3)});if(l.ok){const h=await l.json(),s=[h.country,h.region,h.city,h.isp].filter(Boolean).join(" · "),x=h.country_code||u||"";g.innerHTML=`${B(x)} ${K(r)}`,te(i,s)}}catch{}}}function Ie(){const a=m.ippure,i=m.claudeRisk,r=m.claudeGeo,u=m.ipapis,g=i?.asn||a?.asn||"",o=i?.asOrganization||a?.asOrganization||u?.company?.name||"",l=xe(),h=!!(i&&i.ip);let s,x=null;h?l?(s=0,x=e.regionRestrictedText):s=typeof i.trust_score=="number"?i.trust_score:null:s=null;const v=C("gaugePointer"),c=C("gaugeScore"),P=C("gaugeText");if(s===null)c.innerHTML=`<span class="text-4xl font-bold tracking-tight tabular-nums text-oai-gray-400 dark:text-oai-gray-500">—</span> ${f(e.noData,"neutral")}`,v.style.left="0%",v.style.opacity="0.3",v.style.borderColor="",v.style.boxShadow="",P.textContent=h?e.noScore:e.noIp;else{const A=l?{text:e.score.unreachable,variant:"danger"}:_e(s),L=s>=50?"text-emerald-500":s>=25?"text-amber-500":"text-red-500",X=s>=50?"#10b981":s>=25?"#f59e0b":"#ef4444";if(m.lastScore!==s){m.scoreAnimId&&cancelAnimationFrame(m.scoreAnimId);const Q=m.lastScore||0;m.lastScore=s;const de=performance.now(),ee=800,ne=ue=>{const N=ue-de,k=Math.min(N/ee,1),$=k*(2-k),I=Math.round(Q+(s-Q)*$),Y=I>=50?"text-emerald-500":I>=25?"text-amber-500":"text-red-500";c&&(c.innerHTML=`<span class="text-4xl font-bold tracking-tight tabular-nums ${Y}">${I}</span> ${f(A.text,A.variant)}`),k<1?m.scoreAnimId=requestAnimationFrame(ne):m.scoreAnimId=null};m.scoreAnimId=requestAnimationFrame(ne)}else c.innerHTML=`<span class="text-4xl font-bold tracking-tight tabular-nums ${L}">${s}</span> ${f(A.text,A.variant)}`;requestAnimationFrame(()=>{requestAnimationFrame(()=>{v&&(v.style.left=Math.min(s,100)+"%",v.style.opacity="1",v.style.borderColor=X,v.style.boxShadow=`0 0 10px ${X}80, 0 2px 6px rgba(0,0,0,0.15)`)})}),P.textContent=x||(s>=95?e.scoreText.excellent:s>=80?e.scoreText.great:s>=50?e.scoreText.minor:s>=25?e.scoreText.moderate:e.scoreText.severe)}const y=C("statusDotClaude");if(y){let A,L;s===null?(A="animate-ping absolute inline-flex h-full w-full rounded-full bg-oai-gray-300 dark:bg-oai-gray-600 opacity-75",L="relative inline-flex h-2 w-2 rounded-full bg-oai-gray-400 dark:bg-oai-gray-500"):l||s<25?(A="animate-ping absolute inline-flex h-full w-full rounded-full bg-red-400 opacity-75",L="relative inline-flex h-2 w-2 rounded-full bg-red-500"):s<50?(A="animate-ping absolute inline-flex h-full w-full rounded-full bg-amber-400 opacity-75",L="relative inline-flex h-2 w-2 rounded-full bg-amber-500"):(A="animate-ping absolute inline-flex h-full w-full rounded-full bg-emerald-400 opacity-75",L="relative inline-flex h-2 w-2 rounded-full bg-emerald-500"),y.innerHTML=`<span class="${A}"></span><span class="${L}"></span>`}const H=C("regionWarn");H&&(l?(H.innerHTML=`<span class="font-medium">⚠️ ${e.regionWarnTitle(l)}</span><br><span class="text-[13px] font-normal mt-1 block opacity-90">${e.regionWarnBody}</span>`,H.classList.remove("hidden")):H.classList.add("hidden"));const G=C("claudeRegionSupportRow"),F=C("claudeRegionSupport");if(G&&F)if(l)G.classList.add("hidden");else{const A=!!(i&&i.ip),L=!!(i&&i.countryCode);F.innerHTML=!A||!L?f(e.unknown,"neutral"):f(e.regionAccessible,"safe"),G.classList.remove("hidden")}const U=i?.isResidential??(u?!u.is_datacenter:null),O=u?.company?.type||"",z=r?.country||i?.country||"",W=r?.city||i?.city||"";let T;if(U===!0?T=f(e.propsResidential,"safe"):U===!1?T=f(e.propsDatacenter,"warn"):T=f(e.unknown,"neutral"),O){const L={hosting:"Hosting",isp:"ISP",business:"Business",education:"Education"}[O]||w(O);T+=` <span class="text-xs text-oai-gray-500 dark:text-oai-gray-400">${L}</span>`}C("propsContent").innerHTML=d(e.propsRegion,z?w(z):f(e.unknown,"neutral"))+d(e.propsCity,W?w(W):f(e.unknown,"neutral"))+d(e.propsType,T)+d(e.propsAsn,g?`<span class="font-mono tabular-nums">AS${w(g)}</span>`:f(e.unknown,"neutral"))+d(e.propsOrg,o?w(o):f(e.unknown,"neutral"));const E=u||{};C("securityContent").innerHTML=d(e.secVpn,J(E.is_vpn,e.secVpn,e.secClean))+d(e.secProxy,J(E.is_proxy,e.secProxyFlag,e.secClean))+d(e.secTor,J(E.is_tor,e.secTor,e.secClean))+d(e.secCrawler,J(E.is_crawler,e.secCrawlerYes,e.secCrawlerNo))+d(e.secAbuser,J(E.is_abuser,e.secAbuserYes,e.secAbuserNo))}async function Re(){const a=C("dnsLeakContent");if(!a)return;a.innerHTML=d(e.dnsStatus,void 0,!0)+d(e.dnsOutletIp,void 0,!0);const i=Math.random().toString(36).slice(2)+Math.random().toString(36).slice(2);for(let s=1;s<=2;s++)await new Promise(x=>{const v=new Image,c=setTimeout(x,2e3);v.onload=v.onerror=()=>{clearTimeout(c),x()},v.src=`http://${i}-${s}.d.ip.net.coffee/pixel.gif?_=${Date.now()}`});await new Promise(s=>setTimeout(s,1500));let r=[];for(let s=0;s<2;s++){try{const x=await fetch(`${j}/api/dns/result/${i}`,{signal:AbortSignal.timeout(3e3)});if(x.ok&&(r=(await x.json()).dns_servers||[],r.length>0))break}catch{}s===0&&await new Promise(x=>setTimeout(x,1500))}if(r.length===0){a.innerHTML=d(e.dnsStatus,f(e.dnsEncrypted,"safe"));return}const u=(m.claudeRisk?.country||"").toLowerCase(),g=u.includes("china")||u.includes("中国");let o=null,l=!1;for(const s of r){let x=null;try{const y=await fetch(`${j}/api/geoip/${s}`,{signal:AbortSignal.timeout(3e3)});y.ok&&(x=await y.json())}catch{}const v=x?.country_code||"",c=x?.isp||"";if(v==="cn"&&!g){o={ip:s,cc:v,isp:c,leaked:!0},l=!0;break}o||(o={ip:s,cc:v,isp:c,leaked:!1})}let h=d(e.dnsStatus,l?f(e.dnsLeaked,"warn"):f(e.dnsNoLeak,"safe"));if(o){const s=`${B(o.cc)} <span class="ip-mask-target ${o.leaked?"text-amber-600 dark:text-amber-400 font-medium":""}">${w(o.ip)}</span>${o.leaked?" "+f(e.dnsCnTag,"warn"):""}`;h+=d(e.dnsOutlet,s),o.isp&&(h+=d(e.dnsIsp,`<span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal truncate inline-block max-w-[12rem] align-bottom">${w(o.isp)}</span>`))}a.innerHTML=h}async function He(){const a=C("udpLeakContent");if(!a)return;a.innerHTML=d(e.udpStatus,void 0,!0)+d(e.udpOutletIp,void 0,!0);const i=new Set;try{const y=new RTCPeerConnection({iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun.cloudflare.com:3478"}]});y.createDataChannel("");const H=await y.createOffer();await y.setLocalDescription(H),await new Promise(G=>{const F=setTimeout(()=>{y.close(),G()},5e3);y.onicecandidate=U=>{if(!U.candidate){clearTimeout(F),y.close(),G();return}const O=U.candidate.candidate.match(/([0-9]{1,3}\.){3}[0-9]{1,3}/);if(O){const W=O[0];!W.startsWith("0.")&&!W.startsWith("127.")&&W!=="0.0.0.0"&&i.add(W)}const z=U.candidate.candidate.match(/([a-f0-9]{1,4}:){2,7}[a-f0-9]{1,4}/i);z&&i.add(z[0])}})}catch{}const r=m.claudeRisk?.ip||"",u=[...i],g=u.filter(y=>!Z(y)&&!y.startsWith("192.168.")&&!y.startsWith("10.")&&!y.startsWith("172.")&&!y.startsWith("198.18.")&&!y.startsWith("198.19.")&&!y.startsWith("100.64.")&&!y.startsWith("127.")&&!y.startsWith("0."));if(g.length===0&&u.length===0){a.innerHTML=d(e.udpStatus,f(e.udpDisabled,"safe"));return}if(g.length===0){a.innerHTML=d(e.udpStatus,f(e.udpNoLeak,"safe"));return}let o=g.find(y=>y===r)||g[0];const l=new Set(g).size>1,h=o===r,s=l&&!h;let x=d(e.udpStatus,s?f(e.udpLeaked,"warn"):f(e.udpNoLeak,"safe")),v="",c="";try{const y=await fetch(`${j}/api/geoip/${o}`,{signal:AbortSignal.timeout(5e3)});if(y.ok){const H=await y.json();v=H.country_code||"",c=H.country||""}}catch{}const P=`${B(v)} <span class="${s?"text-amber-600 dark:text-amber-400 font-medium":""}">${he(o)}</span>${h?"":s?" "+f(e.udpAnomaly,"warn"):""}`;x+=d(e.udpOutlet,P),c&&(x+=d(e.udpOrigin,`<span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${w(c)}</span>`)),a.innerHTML=x}async function be(){const a=C("claudeAvailContent");if(!a)return;a.innerHTML=d("claude.ai",void 0,!0)+d("anthropic.com",void 0,!0);const i=[{name:"claude.ai",url:"https://claude.ai/cdn-cgi/trace"},{name:"anthropic.com",url:"https://www.anthropic.com/favicon.ico"}],r=await Promise.allSettled(i.map(async o=>{const l=performance.now();try{return await fetch(o.url,{mode:"no-cors",signal:AbortSignal.timeout(6e3)}),{name:o.name,ms:Math.round(performance.now()-l),ok:!0}}catch{return{name:o.name,ms:-1,ok:!1}}})),u=xe();let g="";r.forEach(o=>{const l=o.value;if(u)g+=d(l.name,f(e.availLat.unreachable,"danger"));else if(l.ok){const h=l.ms<250?"safe":l.ms<500?"info":"warn",s=l.ms<250?e.availLat.normal:l.ms<500?e.availLat.good:e.availLat.slow;g+=d(l.name,`${f(s,h)} <span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${l.ms}ms</span>`)}else g+=d(l.name,f(e.availLat.unreachable,"danger"))});try{const o=await fetch(`${j}/claude/status.json`,{signal:AbortSignal.timeout(3e3)});if(o.ok){const h=(await o.json()).overall_indicator||"none",s=e.availSvcStatus[h]||e.availSvcStatus.other,x={none:"safe",minor:"warn",major:"danger",critical:"danger",maintenance:"warn"};g+=d(e.availSvc,f(s,x[h]||"warn"))}}catch{}a.innerHTML=g}_.__detectClaudeAvail=be;function Oe(){const a=Intl.DateTimeFormat().resolvedOptions().timeZone||e.unknown,i=-(new Date().getTimezoneOffset()/60),r="UTC"+(i>=0?"+":"")+i,u=m.claudeRisk,g=(u?.countryCode||"").toUpperCase(),o=u?.timezone||ze[g]||"",l=!!u?.timezone,h=Ve(o),s=-new Date().getTimezoneOffset();let x=null;o&&h!=null&&(x=Math.abs(h-s)<=60);let v;const c=w(a),P=w(o);if(x===!0)v=`${f(e.devMatch,"safe")} <span class="text-xs text-oai-gray-500 dark:text-oai-gray-400">${c} (${r})</span>`;else if(x===!1){const N=Ye(h),k=Math.round((h-s)/60),$=k===0?e.devDiffEqual:k>0?e.devDiffAhead(k):e.devDiffBehind(-k),I=l?P:`${P} ${e.devEstSuffix}`;v=`${f(e.devMismatch,"warn")}<br><span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${e.devLocal} ${c} (${r})<br>Claude ${I} (${N}) · ${$}</span>`}else v=`<span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${c} (${r})</span>`;const y=navigator.languages||[navigator.language],H=y.join(", ")||e.unknown,G=(y[0]||"").split("-")[0].toLowerCase(),F=We[g]||[],U=G&&F.length?F.includes(G):null;let O;const z=w(H),W=w(F.join(" / "));U===!0?O=`${f(e.devMatch,"safe")} <span class="text-xs text-oai-gray-500 dark:text-oai-gray-400">${z}</span>`:U===!1?O=`${f(e.devMismatch,"warn")}<br><span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${e.devLocal} ${z}<br>${e.devLangExpected} ${W}</span>`:O=`<span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${z}</span>`;const T=navigator.userAgent;let E=e.unknown,A=e.unknown;T.includes("Windows")?E="Windows":T.includes("Mac OS")?E="macOS":T.includes("iPhone")||T.includes("iPad")?E="iOS":T.includes("Android")?E="Android":T.includes("Linux")&&(E="Linux"),T.includes("Edg/")?A="Edge "+(T.match(/Edg\/([\d.]+)/)||[])[1]:T.includes("Chrome/")?A="Chrome "+(T.match(/Chrome\/([\d.]+)/)||[])[1]:T.includes("Firefox/")?A="Firefox "+(T.match(/Firefox\/([\d.]+)/)||[])[1]:T.includes("Safari/")&&!T.includes("Chrome")&&(A="Safari "+(T.match(/Version\/([\d.]+)/)||[])[1]);let L=e.devUnsupported;try{const N=document.createElement("canvas"),k=N.getContext("webgl")||N.getContext("experimental-webgl");if(k){const $=k.getExtension("WEBGL_debug_renderer_info");$&&(L=k.getParameter($.UNMASKED_RENDERER_WEBGL))}}catch{}let X=e.devUnsupported;try{const N=document.createElement("canvas"),k=N.getContext("webgl")||N.getContext("experimental-webgl");if(k){const $=k.getExtension("WEBGL_debug_renderer_info"),I=$?k.getParameter($.UNMASKED_VENDOR_WEBGL):"",Y=$?k.getParameter($.UNMASKED_RENDERER_WEBGL):"",Ce=I+"~"+Y+"~"+k.getParameter(k.VERSION)+"~"+k.getParameter(k.SHADING_LANGUAGE_VERSION);let ie=0;for(let pe=0;pe<Ce.length;pe++)ie=(ie<<5)-ie+Ce.charCodeAt(pe)|0;X=(ie>>>0).toString(16).toUpperCase()}}catch{}let Q=e.devUnsupported;try{const N=document.createElement("canvas");N.width=200,N.height=50;const k=N.getContext("2d");k.textBaseline="top",k.font="14px Arial",k.fillStyle="#f60",k.fillRect(50,0,100,50),k.fillStyle="#069",k.fillText("net.coffee",2,15),k.fillStyle="rgba(102,204,0,0.7)",k.fillText("canvas fp",4,30);const $=N.toDataURL();let I=0;for(let Y=0;Y<$.length;Y++)I=(I<<5)-I+$.charCodeAt(Y)|0;Q=(I>>>0).toString(16).toUpperCase()}catch{}const de=navigator.maxTouchPoints>0,ee=navigator.connection||navigator.mozConnection||navigator.webkitConnection,ne=ee?ee.effectiveType||ee.type||e.unknown:e.devNetUnsupported,ue=navigator.doNotTrack==="1"?e.devDntOn:navigator.doNotTrack==="0"?e.devDntOff:e.devDntUnset;C("deviceContent").innerHTML=d(e.devTz,v)+d(e.devLang,O)+d(e.devOs,`${w(E)} <span class="text-oai-gray-400 dark:text-oai-gray-500">/</span> ${w(A)}`)+d(e.devTouch,de?f(e.devTouchYes,"info"):f(e.devTouchNo,"neutral"))+d(e.devNet,`<span class="font-mono uppercase">${w(ne)}</span>`)+d(e.devDnt,w(ue))+d(e.devWebglRender,`<span class="text-xs font-normal text-oai-gray-600 dark:text-oai-gray-400 break-all">${w(L)}</span>`)+d(e.devCanvasFp,`<span class="font-mono text-oai-gray-700 dark:text-oai-gray-300">${w(Q)}</span>`)+d(e.devWebglFp,`<span class="font-mono text-oai-gray-700 dark:text-oai-gray-300">${w(X)}</span>`)}function we(){try{return JSON.parse(localStorage.getItem(fe))||[]}catch{return[]}}function Pe(){const a=m.claudeRisk?.ip||"",i=(m.claudeRisk?.countryCode||"").toLowerCase(),r=m.claudeRisk?.city||"";if(!a){ae();return}const u=we(),g=new Date,o={ip:a,cc:i,geo:r,time:g.toISOString()};if(u.length>0){const l=u[0],h=(g-new Date(l.time))/(1e3*60*60);if(l.ip===a&&h<24){ae();return}}u.unshift(o),u.length>Se&&(u.length=Se),localStorage.setItem(fe,JSON.stringify(u)),ae()}function ae(){const a=C("ipHistoryContent");if(!a)return;const i=we();if(i.length===0){a.innerHTML=`<span class="text-sm text-oai-gray-500 dark:text-oai-gray-400">${e.histEmpty}</span>`;return}a.innerHTML=`<ul class="divide-y divide-oai-gray-100 dark:divide-oai-gray-800">${i.map((r,u)=>{const g=new Date(r.time),o=`${g.getMonth()+1}-${g.getDate()} ${String(g.getHours()).padStart(2,"0")}:${String(g.getMinutes()).padStart(2,"0")}`,l=u===0;return`<li class="flex items-center justify-between py-3 gap-4">
10
+ `).map(u=>u.split("=")));return{ip:r.ip||null,loc:r.loc?.toLowerCase()||null}}catch{return null}}async function Me(){try{const r=(await(await fetch("https://2026.ip138.com/",{signal:AbortSignal.timeout(5e3)})).text()).match(/(\d+\.\d+\.\d+\.\d+)/);if(r)return{ip:r[1]}}catch{}try{const r=(await(await fetch("https://my.ip.cn/",{signal:AbortSignal.timeout(5e3)})).text()).match(/(\d+\.\d+\.\d+\.\d+)/);if(r)return{ip:r[1]}}catch{}return null}async function Ee(a,i,r,u){const g=C(a),o=C(i);if(!(!g||!o)){if(!r){g.innerHTML=`<span class="text-oai-gray-400 dark:text-oai-gray-500">${e.failed}</span>`,o.textContent="";return}Z(r)&&le(),g.innerHTML=`${B(u)+" "}${K(r)}`;try{const l=await fetch(`${j}/api/geoip/${r}`,{signal:AbortSignal.timeout(5e3)});if(l.ok){const h=await l.json(),s=[h.country,h.region,h.city,h.isp].filter(Boolean).join(" · "),x=h.country_code||u||"";g.innerHTML=`${B(x)} ${K(r)}`,te(i,s)}}catch{}}}function Ie(){const a=m.ippure,i=m.claudeRisk,r=m.claudeGeo,u=m.ipapis,g=i?.asn||a?.asn||"",o=i?.asOrganization||a?.asOrganization||u?.company?.name||"",l=xe(),h=!!(i&&i.ip);let s,x=null;h?l?(s=0,x=e.regionRestrictedText):s=typeof i.trust_score=="number"?i.trust_score:null:s=null;const v=C("gaugePointer"),c=C("gaugeScore"),P=C("gaugeText");if(s===null)c.innerHTML=`<span class="text-4xl font-bold tracking-tight tabular-nums text-oai-gray-400 dark:text-oai-gray-500">—</span> ${f(e.noData,"neutral")}`,v.style.left="0%",v.style.opacity="0.3",v.style.borderColor="",v.style.boxShadow="",P.textContent=h?e.noScore:e.noIp;else{const A=l?{text:e.score.unreachable,variant:"danger"}:_e(s),L=s>=50?"text-emerald-500":s>=25?"text-amber-500":"text-red-500",X=s>=50?"#10b981":s>=25?"#f59e0b":"#ef4444";if(m.lastScore!==s){m.scoreAnimId&&cancelAnimationFrame(m.scoreAnimId);const Q=m.lastScore||0;m.lastScore=s;const de=performance.now(),ee=800,ne=ue=>{const N=ue-de,k=Math.min(N/ee,1),$=k*(2-k),I=Math.round(Q+(s-Q)*$),Y=I>=50?"text-emerald-500":I>=25?"text-amber-500":"text-red-500";c&&(c.innerHTML=`<span class="text-4xl font-bold tracking-tight tabular-nums ${Y}">${I}</span> ${f(A.text,A.variant)}`),k<1?m.scoreAnimId=requestAnimationFrame(ne):m.scoreAnimId=null};m.scoreAnimId=requestAnimationFrame(ne)}else c.innerHTML=`<span class="text-4xl font-bold tracking-tight tabular-nums ${L}">${s}</span> ${f(A.text,A.variant)}`;requestAnimationFrame(()=>{requestAnimationFrame(()=>{v&&(v.style.left=Math.min(s,100)+"%",v.style.opacity="1",v.style.borderColor=X,v.style.boxShadow=`0 0 10px ${X}80, 0 2px 6px rgba(0,0,0,0.15)`)})}),P.textContent=x||(s>=95?e.scoreText.excellent:s>=80?e.scoreText.great:s>=50?e.scoreText.minor:s>=25?e.scoreText.moderate:e.scoreText.severe)}const y=C("statusDotClaude");if(y){let A,L;s===null?(A="animate-ping absolute inline-flex h-full w-full rounded-full bg-oai-gray-300 dark:bg-oai-gray-600 opacity-75",L="relative inline-flex h-2 w-2 rounded-full bg-oai-gray-400 dark:bg-oai-gray-500"):l||s<25?(A="animate-ping absolute inline-flex h-full w-full rounded-full bg-red-400 opacity-75",L="relative inline-flex h-2 w-2 rounded-full bg-red-500"):s<50?(A="animate-ping absolute inline-flex h-full w-full rounded-full bg-amber-400 opacity-75",L="relative inline-flex h-2 w-2 rounded-full bg-amber-500"):(A="animate-ping absolute inline-flex h-full w-full rounded-full bg-emerald-400 opacity-75",L="relative inline-flex h-2 w-2 rounded-full bg-emerald-500"),y.innerHTML=`<span class="${A}"></span><span class="${L}"></span>`}const H=C("regionWarn");H&&(l?(H.innerHTML=`<span class="font-medium">⚠️ ${e.regionWarnTitle(l)}</span><br><span class="text-[13px] font-normal mt-1 block opacity-90">${e.regionWarnBody}</span>`,H.classList.remove("hidden")):H.classList.add("hidden"));const G=C("claudeRegionSupportRow"),F=C("claudeRegionSupport");if(G&&F)if(l)G.classList.add("hidden");else{const A=!!(i&&i.ip),L=!!(i&&i.countryCode);F.innerHTML=!A||!L?f(e.unknown,"neutral"):f(e.regionAccessible,"safe"),G.classList.remove("hidden")}const U=i?.isResidential??(u?!u.is_datacenter:null),O=u?.company?.type||"",z=r?.country||i?.country||"",W=r?.city||i?.city||"";let T;if(U===!0?T=f(e.propsResidential,"safe"):U===!1?T=f(e.propsDatacenter,"warn"):T=f(e.unknown,"neutral"),O){const L={hosting:"Hosting",isp:"ISP",business:"Business",education:"Education"}[O]||w(O);T+=` <span class="text-xs text-oai-gray-500 dark:text-oai-gray-400">${L}</span>`}C("propsContent").innerHTML=d(e.propsRegion,z?w(z):f(e.unknown,"neutral"))+d(e.propsCity,W?w(W):f(e.unknown,"neutral"))+d(e.propsType,T)+d(e.propsAsn,g?`<span class="font-mono tabular-nums">AS${w(g)}</span>`:f(e.unknown,"neutral"))+d(e.propsOrg,o?w(o):f(e.unknown,"neutral"));const E=u||{};C("securityContent").innerHTML=d(e.secVpn,J(E.is_vpn,e.secVpn,e.secClean))+d(e.secProxy,J(E.is_proxy,e.secProxyFlag,e.secClean))+d(e.secTor,J(E.is_tor,e.secTor,e.secClean))+d(e.secCrawler,J(E.is_crawler,e.secCrawlerYes,e.secCrawlerNo))+d(e.secAbuser,J(E.is_abuser,e.secAbuserYes,e.secAbuserNo))}async function Re(){const a=C("dnsLeakContent");if(!a)return;a.innerHTML=d(e.dnsStatus,void 0,!0)+d(e.dnsOutletIp,void 0,!0);const i=Math.random().toString(36).slice(2)+Math.random().toString(36).slice(2);for(let s=1;s<=2;s++)await new Promise(x=>{const v=new Image,c=setTimeout(x,2e3);v.onload=v.onerror=()=>{clearTimeout(c),x()},v.src=`http://${i}-${s}.d.ip.net.coffee/pixel.gif?_=${Date.now()}`});await new Promise(s=>setTimeout(s,1500));let r=[];for(let s=0;s<2;s++){try{const x=await fetch(`${j}/api/dns/result/${i}`,{signal:AbortSignal.timeout(3e3)});if(x.ok&&(r=(await x.json()).dns_servers||[],r.length>0))break}catch{}s===0&&await new Promise(x=>setTimeout(x,1500))}if(r.length===0){a.innerHTML=d(e.dnsStatus,f(e.dnsEncrypted,"safe"));return}const u=(m.claudeRisk?.country||"").toLowerCase(),g=u.includes("china")||u.includes("中国");let o=null,l=!1;for(const s of r){let x=null;try{const y=await fetch(`${j}/api/geoip/${s}`,{signal:AbortSignal.timeout(3e3)});y.ok&&(x=await y.json())}catch{}const v=x?.country_code||"",c=x?.isp||"";if(v==="cn"&&!g){o={ip:s,cc:v,isp:c,leaked:!0},l=!0;break}o||(o={ip:s,cc:v,isp:c,leaked:!1})}let h=d(e.dnsStatus,l?f(e.dnsLeaked,"warn"):f(e.dnsNoLeak,"safe"));if(o){const s=`${B(o.cc)} <span class="ip-mask-target ${o.leaked?"text-amber-600 dark:text-amber-400 font-medium":""}">${w(o.ip)}</span>${o.leaked?" "+f(e.dnsCnTag,"warn"):""}`;h+=d(e.dnsOutlet,s),o.isp&&(h+=d(e.dnsIsp,`<span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal truncate inline-block max-w-[12rem] align-bottom">${w(o.isp)}</span>`))}a.innerHTML=h}async function He(){const a=C("udpLeakContent");if(!a)return;a.innerHTML=d(e.udpStatus,void 0,!0)+d(e.udpOutletIp,void 0,!0);const i=new Set;try{const y=new RTCPeerConnection({iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun.cloudflare.com:3478"}]});y.createDataChannel("");const H=await y.createOffer();await y.setLocalDescription(H),await new Promise(G=>{const F=setTimeout(()=>{y.close(),G()},5e3);y.onicecandidate=U=>{if(!U.candidate){clearTimeout(F),y.close(),G();return}const O=U.candidate.candidate.match(/([0-9]{1,3}\.){3}[0-9]{1,3}/);if(O){const W=O[0];!W.startsWith("0.")&&!W.startsWith("127.")&&W!=="0.0.0.0"&&i.add(W)}const z=U.candidate.candidate.match(/([a-f0-9]{1,4}:){2,7}[a-f0-9]{1,4}/i);z&&i.add(z[0])}})}catch{}const r=m.claudeRisk?.ip||"",u=[...i],g=u.filter(y=>!Z(y)&&!y.startsWith("192.168.")&&!y.startsWith("10.")&&!y.startsWith("172.")&&!y.startsWith("198.18.")&&!y.startsWith("198.19.")&&!y.startsWith("100.64.")&&!y.startsWith("127.")&&!y.startsWith("0."));if(g.length===0&&u.length===0){a.innerHTML=d(e.udpStatus,f(e.udpDisabled,"safe"));return}if(g.length===0){a.innerHTML=d(e.udpStatus,f(e.udpNoLeak,"safe"));return}let o=g.find(y=>y===r)||g[0];const l=new Set(g).size>1,h=o===r,s=l&&!h;let x=d(e.udpStatus,s?f(e.udpLeaked,"warn"):f(e.udpNoLeak,"safe")),v="",c="";try{const y=await fetch(`${j}/api/geoip/${o}`,{signal:AbortSignal.timeout(5e3)});if(y.ok){const H=await y.json();v=H.country_code||"",c=H.country||""}}catch{}const P=`${B(v)} <span class="${s?"text-amber-600 dark:text-amber-400 font-medium":""}">${he(o)}</span>${h?"":s?" "+f(e.udpAnomaly,"warn"):""}`;x+=d(e.udpOutlet,P),c&&(x+=d(e.udpOrigin,`<span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${w(c)}</span>`)),a.innerHTML=x}async function be(){const a=C("claudeAvailContent");if(!a)return;a.innerHTML=d("claude.ai",void 0,!0)+d("anthropic.com",void 0,!0);const i=[{name:"claude.ai",url:"https://claude.ai/cdn-cgi/trace"},{name:"anthropic.com",url:"https://www.anthropic.com/favicon.ico"}],r=await Promise.allSettled(i.map(async o=>{const l=performance.now();try{return await fetch(o.url,{mode:"no-cors",signal:AbortSignal.timeout(6e3)}),{name:o.name,ms:Math.round(performance.now()-l),ok:!0}}catch{return{name:o.name,ms:-1,ok:!1}}})),u=xe();let g="";r.forEach(o=>{const l=o.value;if(u)g+=d(l.name,f(e.availLat.unreachable,"danger"));else if(l.ok){const h=l.ms<250?"safe":l.ms<500?"info":"warn",s=l.ms<250?e.availLat.normal:l.ms<500?e.availLat.good:e.availLat.slow;g+=d(l.name,`${f(s,h)} <span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${l.ms}ms</span>`)}else g+=d(l.name,f(e.availLat.unreachable,"danger"))});try{const o=await fetch(`${j}/claude/status.json`,{signal:AbortSignal.timeout(3e3)});if(o.ok){const h=(await o.json()).overall_indicator||"none",s=e.availSvcStatus[h]||e.availSvcStatus.other,x={none:"safe",minor:"warn",major:"danger",critical:"danger",maintenance:"warn"};g+=d(e.availSvc,f(s,x[h]||"warn"))}}catch{}a.innerHTML=g}_.__detectClaudeAvail=be;function Oe(){const a=Intl.DateTimeFormat().resolvedOptions().timeZone||e.unknown,i=-(new Date().getTimezoneOffset()/60),r="UTC"+(i>=0?"+":"")+i,u=m.claudeRisk,g=(u?.countryCode||"").toUpperCase(),o=u?.timezone||ze[g]||"",l=!!u?.timezone,h=Ve(o),s=-new Date().getTimezoneOffset();let x=null;o&&h!=null&&(x=Math.abs(h-s)<=60);let v;const c=w(a),P=w(o);if(x===!0)v=`${f(e.devMatch,"safe")} <span class="text-xs text-oai-gray-500 dark:text-oai-gray-400">${c} (${r})</span>`;else if(x===!1){const N=Ye(h),k=Math.round((h-s)/60),$=k===0?e.devDiffEqual:k>0?e.devDiffAhead(k):e.devDiffBehind(-k),I=l?P:`${P} ${e.devEstSuffix}`;v=`${f(e.devMismatch,"warn")}<br><span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${e.devLocal} ${c} (${r})<br>Claude ${I} (${N}) · ${$}</span>`}else v=`<span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${c} (${r})</span>`;const y=navigator.languages||[navigator.language],H=y.join(", ")||e.unknown,G=(y[0]||"").split("-")[0].toLowerCase(),F=We[g]||[],U=G&&F.length?F.includes(G):null;let O;const z=w(H),W=w(F.join(" / "));U===!0?O=`${f(e.devMatch,"safe")} <span class="text-xs text-oai-gray-500 dark:text-oai-gray-400">${z}</span>`:U===!1?O=`${f(e.devMismatch,"warn")}<br><span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${e.devLocal} ${z}<br>${e.devLangExpected} ${W}</span>`:O=`<span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${z}</span>`;const T=navigator.userAgent;let E=e.unknown,A=e.unknown;T.includes("Windows")?E="Windows":T.includes("Mac OS")?E="macOS":T.includes("iPhone")||T.includes("iPad")?E="iOS":T.includes("Android")?E="Android":T.includes("Linux")&&(E="Linux"),T.includes("Edg/")?A="Edge "+(T.match(/Edg\/([\d.]+)/)||[])[1]:T.includes("Chrome/")?A="Chrome "+(T.match(/Chrome\/([\d.]+)/)||[])[1]:T.includes("Firefox/")?A="Firefox "+(T.match(/Firefox\/([\d.]+)/)||[])[1]:T.includes("Safari/")&&!T.includes("Chrome")&&(A="Safari "+(T.match(/Version\/([\d.]+)/)||[])[1]);let L=e.devUnsupported;try{const N=document.createElement("canvas"),k=N.getContext("webgl")||N.getContext("experimental-webgl");if(k){const $=k.getExtension("WEBGL_debug_renderer_info");$&&(L=k.getParameter($.UNMASKED_RENDERER_WEBGL))}}catch{}let X=e.devUnsupported;try{const N=document.createElement("canvas"),k=N.getContext("webgl")||N.getContext("experimental-webgl");if(k){const $=k.getExtension("WEBGL_debug_renderer_info"),I=$?k.getParameter($.UNMASKED_VENDOR_WEBGL):"",Y=$?k.getParameter($.UNMASKED_RENDERER_WEBGL):"",Ce=I+"~"+Y+"~"+k.getParameter(k.VERSION)+"~"+k.getParameter(k.SHADING_LANGUAGE_VERSION);let ie=0;for(let pe=0;pe<Ce.length;pe++)ie=(ie<<5)-ie+Ce.charCodeAt(pe)|0;X=(ie>>>0).toString(16).toUpperCase()}}catch{}let Q=e.devUnsupported;try{const N=document.createElement("canvas");N.width=200,N.height=50;const k=N.getContext("2d");k.textBaseline="top",k.font="14px Arial",k.fillStyle="#f60",k.fillRect(50,0,100,50),k.fillStyle="#069",k.fillText("net.coffee",2,15),k.fillStyle="rgba(102,204,0,0.7)",k.fillText("canvas fp",4,30);const $=N.toDataURL();let I=0;for(let Y=0;Y<$.length;Y++)I=(I<<5)-I+$.charCodeAt(Y)|0;Q=(I>>>0).toString(16).toUpperCase()}catch{}const de=navigator.maxTouchPoints>0,ee=navigator.connection||navigator.mozConnection||navigator.webkitConnection,ne=ee?ee.effectiveType||ee.type||e.unknown:e.devNetUnsupported,ue=navigator.doNotTrack==="1"?e.devDntOn:navigator.doNotTrack==="0"?e.devDntOff:e.devDntUnset;C("deviceContent").innerHTML=d(e.devTz,v)+d(e.devLang,O)+d(e.devOs,`${w(E)} <span class="text-oai-gray-400 dark:text-oai-gray-500">/</span> ${w(A)}`)+d(e.devTouch,de?f(e.devTouchYes,"info"):f(e.devTouchNo,"neutral"))+d(e.devNet,`<span class="font-mono uppercase">${w(ne)}</span>`)+d(e.devDnt,w(ue))+d(e.devWebglRender,`<span class="text-xs font-normal text-oai-gray-600 dark:text-oai-gray-400 break-all">${w(L)}</span>`)+d(e.devCanvasFp,`<span class="font-mono text-oai-gray-700 dark:text-oai-gray-300">${w(Q)}</span>`)+d(e.devWebglFp,`<span class="font-mono text-oai-gray-700 dark:text-oai-gray-300">${w(X)}</span>`)}function we(){try{return JSON.parse(localStorage.getItem(fe))||[]}catch{return[]}}function Pe(){const a=m.claudeRisk?.ip||"",i=(m.claudeRisk?.countryCode||"").toLowerCase(),r=m.claudeRisk?.city||"";if(!a){ae();return}const u=we(),g=new Date,o={ip:a,cc:i,geo:r,time:g.toISOString()};if(u.length>0){const l=u[0],h=(g-new Date(l.time))/(1e3*60*60);if(l.ip===a&&h<24){ae();return}}u.unshift(o),u.length>Se&&(u.length=Se);try{localStorage.setItem(fe,JSON.stringify(u))}catch{}ae()}function ae(){const a=C("ipHistoryContent");if(!a)return;const i=we();if(i.length===0){a.innerHTML=`<span class="text-sm text-oai-gray-500 dark:text-oai-gray-400">${e.histEmpty}</span>`;return}a.innerHTML=`<ul class="divide-y divide-oai-gray-100 dark:divide-oai-gray-800">${i.map((r,u)=>{const g=new Date(r.time),o=`${g.getMonth()+1}-${g.getDate()} ${String(g.getHours()).padStart(2,"0")}:${String(g.getMinutes()).padStart(2,"0")}`,l=u===0;return`<li class="flex items-center justify-between py-3 gap-4">
11
11
  <div class="flex items-center gap-2 min-w-0">
12
12
  <span class="text-sm ${l?"text-oai-black dark:text-white":"text-oai-gray-500 dark:text-oai-gray-400"}">${o}</span>
13
13
  ${l?`<span class="inline-flex items-center rounded-full bg-emerald-50 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300 px-1.5 py-0.5 text-[10px] font-medium">${w(e.histCurrent)}</span>`:""}
@@ -17,4 +17,4 @@ import{r as ge,c as t,j as n}from"./__vite-browser-external-BBQzCxHU.js";const G
17
17
  ${K(r.ip)}
18
18
  ${r.geo?`<span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal truncate">${w(r.geo)}</span>`:""}
19
19
  </div>
20
- </li>`}).join("")}</ul>`}_.__clearIPHistory=()=>{localStorage.removeItem(fe),ae()};async function De(){const[,a,i]=await Promise.allSettled([$e(),Me(),je()]);if(se)return;const r=a.status==="fulfilled"?a.value:null,u=i.status==="fulfilled"?i.value:null,g=[];g.push(Ee("ipAddrCN","ipGeoCN",r?.ip,"cn")),g.push((async()=>{const o=C("ipAddr"),l=C("ipGeo");if(!m.ip){o&&(o.innerHTML=`<span class="text-oai-gray-400 dark:text-oai-gray-500">${e.failed}</span>`),l&&(l.textContent="");return}Z(m.ip)&&le(),o&&(o.innerHTML=K(m.ip));try{const h=await fetch(`${j}/api/geoip/${m.ip}`,{signal:AbortSignal.timeout(5e3)});if(h.ok){const s=await h.json(),x=(s.country_code||"").toLowerCase();m.ippure={ip:m.ip,country:s.country,countryCode:(s.country_code||"").toUpperCase(),region:s.region,city:s.city},m.cfGeo=[s.country,s.region,s.city,s.isp].filter(Boolean).join(" · "),o&&(o.innerHTML=`${B(x)} ${K(m.ip)}`),te("ipGeo",m.cfGeo)}}catch{}})()),g.push((async()=>{const o=u?.ip,l=C("ipAddrClaude"),h=C("ipGeoClaude");if(!o){l&&(l.innerHTML=`<span class="text-oai-gray-400 dark:text-oai-gray-500">${e.failed}</span>`),h&&(h.textContent="");return}Z(o)&&le(),l&&(l.innerHTML=`${B(u.loc||"")} ${K(o)}`);const[s,x]=await Promise.allSettled([fetch(`${j}/api/iprisk/${o}`,{signal:AbortSignal.timeout(1e4)}),fetch(`${j}/api/geoip/${o}`,{signal:AbortSignal.timeout(5e3)})]);let v=!1;if(x.status==="fulfilled"&&x.value.ok)try{const c=await x.value.json();if(c.country){m.claudeGeo={country:c.country,region:c.region,city:c.city,isp:c.isp,country_code:c.country_code};const P=[c.country,c.region,c.city,c.isp].filter(Boolean).join(" · ");l&&(l.innerHTML=`${B(c.country_code||u.loc||"")} ${K(o)}`),te("ipGeoClaude",P),v=!0}}catch{}if(!v&&u.loc&&(l&&(l.innerHTML=`${B(u.loc)} ${K(o)}`),te("ipGeoClaude",Be[u.loc]||u.loc.toUpperCase())),s.status==="fulfilled"&&s.value.ok){const c=await s.value.json();m.ipapis={is_datacenter:c.is_datacenter,is_vpn:c.is_vpn,is_proxy:c.is_proxy,is_tor:c.is_tor,is_crawler:c.is_crawler,is_abuser:c.is_abuser,is_mobile:c.is_mobile,company:{type:c.company_type,name:c.company_name},abuser_score:c.abuser_score,datacenter_name:c.datacenter_name},m.claudeRisk={ip:o,asn:c.asn,asOrganization:c.asOrganization,country:c.country,countryCode:c.countryCode,region:c.region,city:c.city,isResidential:c.isResidential,isBroadcast:c.isBroadcast,trust_score:c.trust_score,timezone:c.timezone}}})()),await Promise.allSettled(g),!se&&(Ie(),Promise.allSettled([Re(),He(),be()]),Oe(),Pe())}return De(),()=>{se=!0,ve.disconnect(),m.scoreAnimId&&cancelAnimationFrame(m.scoreAnimId),delete _.__setMaskOn,delete _.__clearIPHistory,delete _.__detectClaudeAvail}},[]);const M=_=>{S(_),p.current?.__setMaskOn?.(_)},D=()=>p.current?.__clearIPHistory?.(),q=()=>p.current?.__detectClaudeAvail?.(),R={__html:""};return n.jsx("div",{ref:p,className:"flex flex-col flex-1 text-oai-black dark:text-oai-white font-oai antialiased",children:n.jsx("main",{className:"flex-1 pt-8 sm:pt-10 pb-12 sm:pb-16",children:n.jsxs("div",{className:"mx-auto max-w-6xl px-4 sm:px-6",children:[n.jsxs("div",{className:"flex items-start justify-between gap-4 mb-8",children:[n.jsxs("div",{className:"min-w-0",children:[n.jsx("h1",{className:"text-3xl sm:text-4xl font-semibold tracking-tight text-oai-black dark:text-white mb-3",children:t("ipcheck.page.title")}),n.jsx("p",{className:"text-oai-gray-500 dark:text-oai-gray-400 text-sm sm:text-base max-w-3xl text-pretty",children:t("ipcheck.page.subtitle")})]}),n.jsxs("label",{className:"shrink-0 inline-flex items-center gap-2.5 cursor-pointer select-none group",children:[n.jsx("div",{className:"text-oai-gray-400 group-hover:text-oai-gray-600 dark:text-oai-gray-500 dark:group-hover:text-oai-gray-300 transition-colors duration-200",children:b?n.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"h-4.5 w-4.5 animate-scale-up-fade",children:[n.jsx("path",{d:"M9.88 9.88a3 3 0 1 0 4.24 4.24"}),n.jsx("path",{d:"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68"}),n.jsx("path",{d:"M6.61 6.61A13.52 13.52 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61"}),n.jsx("line",{x1:"2",y1:"2",x2:"22",y2:"22"})]}):n.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"h-4.5 w-4.5 animate-scale-up-fade",children:[n.jsx("path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z"}),n.jsx("circle",{cx:"12",cy:"12",r:"3"})]})}),n.jsx("span",{className:"text-xs font-medium text-oai-gray-500 group-hover:text-oai-gray-700 dark:text-oai-gray-400 dark:group-hover:text-oai-gray-200 transition-colors duration-200",children:t("ipcheck.mask.toggle")}),n.jsxs("span",{className:"relative inline-block w-9 h-5",children:[n.jsx("input",{type:"checkbox",checked:b,onChange:_=>M(_.target.checked),className:"peer sr-only"}),n.jsx("span",{className:"absolute inset-0 rounded-full bg-oai-gray-200 dark:bg-oai-gray-800 peer-checked:bg-oai-brand-500 transition-colors duration-200"}),n.jsx("span",{className:"absolute top-0.5 left-0.5 h-4 w-4 rounded-full bg-white shadow-sm transition-transform duration-200 peer-checked:translate-x-4"})]})]})]}),n.jsx("div",{id:"ipv6Warn",className:"hidden mb-4 rounded-lg border border-amber-200 bg-amber-50 dark:border-amber-500/30 dark:bg-amber-500/10 px-4 py-3 text-sm text-amber-800 dark:text-amber-200",children:t("ipcheck.ipv6.warn")}),n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[n.jsx(me,{id:"CN",label:t("ipcheck.ip.cn"),icon:null,className:"animate-fade-in-up stagger-1"}),n.jsx(me,{id:"",label:t("ipcheck.ip.cloudflare"),icon:n.jsx("img",{src:`${j}/favicons/cloudflare.webp`,alt:"",className:"h-4 w-4"}),className:"animate-fade-in-up stagger-2"}),n.jsx(me,{id:"Claude",label:t("ipcheck.ip.claude"),icon:n.jsx("img",{src:`${j}/favicons/claude.webp`,alt:"",className:"h-4 w-4"}),statusDot:!0,className:"animate-fade-in-up stagger-3"})]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4",children:[n.jsx(V,{title:t("ipcheck.trust.title"),subtitle:t("ipcheck.trust.subtitle"),className:"animate-fade-in-up stagger-4",children:n.jsxs("div",{className:"px-1 py-2",children:[n.jsx("div",{className:"flex items-baseline justify-between mb-2 gap-3",children:n.jsx("div",{id:"gaugeScore",className:"flex items-baseline gap-2 min-h-[2.5rem]",dangerouslySetInnerHTML:R})}),n.jsx("div",{id:"gaugeText",className:"text-xs text-oai-gray-500 dark:text-oai-gray-400 mb-4 min-h-[1rem]"}),n.jsxs("div",{children:[n.jsxs("div",{className:"relative",children:[n.jsx("div",{className:"h-1.5 rounded-full",style:{background:"linear-gradient(90deg, #ef4444 0%, #f59e0b 50%, #10b981 100%)"}}),n.jsx("span",{id:"gaugePointer",className:"absolute top-1/2 -translate-y-1/2 h-3.5 w-3.5 rounded-full bg-white dark:bg-oai-gray-900 border-2 border-oai-gray-300 dark:border-oai-gray-700 shadow-[0_2px_6px_rgba(0,0,0,0.15)] dark:shadow-[0_2px_6px_rgba(0,0,0,0.4)] -translate-x-1/2 transition-[left,border-color] duration-700 ease-out",style:{left:"0%"}})]}),n.jsxs("div",{className:"mt-2 flex justify-between text-[10px] uppercase tracking-wider text-oai-gray-400 dark:text-oai-gray-500 font-medium",children:[n.jsx("span",{children:t("ipcheck.trust.gauge.low")}),n.jsx("span",{className:"tracking-normal",children:"25"}),n.jsx("span",{className:"tracking-normal",children:"50"}),n.jsx("span",{className:"tracking-normal",children:"75"}),n.jsx("span",{children:t("ipcheck.trust.gauge.high")})]})]}),n.jsx("div",{id:"regionWarn",className:"hidden mt-4 rounded-lg border border-red-200 bg-red-50 dark:border-red-500/30 dark:bg-red-500/10 px-3 py-2 text-xs text-red-800 dark:text-red-300"}),n.jsxs("div",{id:"claudeRegionSupportRow",className:"hidden mt-4 pt-4 border-t border-oai-gray-100 dark:border-oai-gray-800 flex items-center justify-between",children:[n.jsx("span",{className:"text-sm text-oai-gray-500 dark:text-oai-gray-400",children:t("ipcheck.trust.region_support")}),n.jsx("span",{id:"claudeRegionSupport",className:"text-sm font-medium text-oai-black dark:text-white",dangerouslySetInnerHTML:R})]})]})}),n.jsx(V,{title:t("ipcheck.props.title"),className:"animate-fade-in-up stagger-4",children:n.jsx("div",{id:"propsContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800 pt-1",dangerouslySetInnerHTML:R})}),n.jsx(V,{title:t("ipcheck.security.title"),className:"animate-fade-in-up stagger-4",children:n.jsx("div",{id:"securityContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800 pt-1",dangerouslySetInnerHTML:R})})]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4",children:[n.jsx(V,{title:n.jsxs("span",{className:"flex items-center gap-1.5",children:[t("ipcheck.avail.title"),n.jsx(Ze,{text:t("ipcheck.avail.tooltip")})]}),action:n.jsx(Ae,{label:t("ipcheck.avail.refresh"),onClick:q}),className:"animate-fade-in-up stagger-5",children:n.jsx("div",{id:"claudeAvailContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800 pt-1",dangerouslySetInnerHTML:R})}),n.jsx(V,{title:t("ipcheck.dns.title"),className:"animate-fade-in-up stagger-5",children:n.jsx("div",{id:"dnsLeakContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800 pt-1",dangerouslySetInnerHTML:R})}),n.jsx(V,{title:t("ipcheck.udp.title"),className:"animate-fade-in-up stagger-5",children:n.jsx("div",{id:"udpLeakContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800 pt-1",dangerouslySetInnerHTML:R})})]}),n.jsx(V,{title:t("ipcheck.device.title"),className:"animate-fade-in-up stagger-6",children:n.jsx("div",{id:"deviceContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800 pt-1",dangerouslySetInnerHTML:R})}),n.jsx(V,{title:t("ipcheck.history.title"),subtitle:t("ipcheck.history.subtitle"),action:n.jsx(Ae,{label:t("ipcheck.history.clear"),onClick:D}),className:"animate-fade-in-up stagger-6",children:n.jsx("div",{id:"ipHistoryContent",dangerouslySetInnerHTML:R})})]})]})})})}function V({title:p,subtitle:b,action:S,children:M,className:D=""}){return n.jsxs("section",{className:`rounded-xl border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-900 p-5 sm:p-6 transition-colors duration-200 ${D}`,children:[n.jsxs("div",{className:"flex items-start justify-between gap-3 mb-4",children:[n.jsxs("div",{className:"min-w-0",children:[n.jsx("h2",{className:"text-[15px] font-semibold text-oai-black dark:text-white",children:p}),b?n.jsx("p",{className:"mt-0.5 text-xs text-oai-gray-500 dark:text-oai-gray-400",children:b}):null]}),S]}),M]})}function Ae({label:p,onClick:b}){return n.jsx("button",{type:"button",onClick:b,className:"shrink-0 inline-flex h-7 items-center px-2.5 rounded-md text-xs font-medium text-oai-gray-600 dark:text-oai-gray-300 border border-oai-gray-200 dark:border-oai-gray-700 hover:bg-oai-gray-50 dark:hover:bg-oai-gray-800 hover:text-oai-black dark:hover:text-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",children:p})}function Ze({text:p}){return n.jsxs("span",{className:"relative inline-flex items-center group",children:[n.jsx("svg",{viewBox:"0 0 16 16",className:"h-3.5 w-3.5 text-oai-gray-400 dark:text-oai-gray-500",fill:"currentColor","aria-hidden":!0,children:n.jsx("path",{d:"M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13zM7.25 6.75a.75.75 0 0 1 1.5 0V11a.75.75 0 0 1-1.5 0V6.75zM8 4a.85.85 0 1 1 0 1.7A.85.85 0 0 1 8 4z"})}),n.jsx("span",{className:"pointer-events-none absolute left-1/2 top-full z-10 mt-1.5 -translate-x-1/2 w-56 rounded-md bg-oai-gray-900 dark:bg-oai-gray-800 px-2.5 py-2 text-[11px] font-normal text-white opacity-0 scale-95 translate-y-1 group-hover:opacity-100 group-hover:scale-100 group-hover:translate-y-0 transition-all duration-200 cubic-bezier(0.16, 1, 0.3, 1) leading-relaxed shadow-lg origin-top",children:p})]})}function me({id:p,label:b,icon:S,statusDot:M,className:D=""}){const q=`ipAddr${p}`,R=`ipGeo${p}`;return n.jsxs("article",{id:`ipHero${p}`,className:`rounded-xl border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-900 p-5 sm:p-6 cursor-default transition-colors duration-200 ${D}`,children:[n.jsxs("div",{className:"flex items-center gap-1.5 text-[11px] uppercase tracking-wider font-medium text-oai-gray-500 dark:text-oai-gray-400 mb-2",children:[S,n.jsx("span",{children:b}),M?n.jsxs("span",{id:`statusDot${p}`,className:"relative inline-flex h-2 w-2 ml-1.5","aria-hidden":!0,children:[n.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-oai-gray-300 dark:bg-oai-gray-600 opacity-75"}),n.jsx("span",{className:"relative inline-flex h-2 w-2 rounded-full bg-oai-gray-400 dark:bg-oai-gray-500"})]}):null]}),n.jsx("div",{id:q,className:"text-xl sm:text-2xl font-semibold text-oai-black dark:text-white flex items-center gap-2 min-h-[2rem]",dangerouslySetInnerHTML:{__html:""}}),n.jsx("div",{id:R,className:"mt-1 text-xs text-oai-gray-500 dark:text-oai-gray-400 truncate min-h-[1rem]"})]})}export{Je as default};
20
+ </li>`}).join("")}</ul>`}_.__clearIPHistory=()=>{try{localStorage.removeItem(fe)}catch{}ae()};async function De(){const[,a,i]=await Promise.allSettled([$e(),Me(),je()]);if(se)return;const r=a.status==="fulfilled"?a.value:null,u=i.status==="fulfilled"?i.value:null,g=[];g.push(Ee("ipAddrCN","ipGeoCN",r?.ip,"cn")),g.push((async()=>{const o=C("ipAddr"),l=C("ipGeo");if(!m.ip){o&&(o.innerHTML=`<span class="text-oai-gray-400 dark:text-oai-gray-500">${e.failed}</span>`),l&&(l.textContent="");return}Z(m.ip)&&le(),o&&(o.innerHTML=K(m.ip));try{const h=await fetch(`${j}/api/geoip/${m.ip}`,{signal:AbortSignal.timeout(5e3)});if(h.ok){const s=await h.json(),x=(s.country_code||"").toLowerCase();m.ippure={ip:m.ip,country:s.country,countryCode:(s.country_code||"").toUpperCase(),region:s.region,city:s.city},m.cfGeo=[s.country,s.region,s.city,s.isp].filter(Boolean).join(" · "),o&&(o.innerHTML=`${B(x)} ${K(m.ip)}`),te("ipGeo",m.cfGeo)}}catch{}})()),g.push((async()=>{const o=u?.ip,l=C("ipAddrClaude"),h=C("ipGeoClaude");if(!o){l&&(l.innerHTML=`<span class="text-oai-gray-400 dark:text-oai-gray-500">${e.failed}</span>`),h&&(h.textContent="");return}Z(o)&&le(),l&&(l.innerHTML=`${B(u.loc||"")} ${K(o)}`);const[s,x]=await Promise.allSettled([fetch(`${j}/api/iprisk/${o}`,{signal:AbortSignal.timeout(1e4)}),fetch(`${j}/api/geoip/${o}`,{signal:AbortSignal.timeout(5e3)})]);let v=!1;if(x.status==="fulfilled"&&x.value.ok)try{const c=await x.value.json();if(c.country){m.claudeGeo={country:c.country,region:c.region,city:c.city,isp:c.isp,country_code:c.country_code};const P=[c.country,c.region,c.city,c.isp].filter(Boolean).join(" · ");l&&(l.innerHTML=`${B(c.country_code||u.loc||"")} ${K(o)}`),te("ipGeoClaude",P),v=!0}}catch{}if(!v&&u.loc&&(l&&(l.innerHTML=`${B(u.loc)} ${K(o)}`),te("ipGeoClaude",Be[u.loc]||u.loc.toUpperCase())),s.status==="fulfilled"&&s.value.ok){const c=await s.value.json();m.ipapis={is_datacenter:c.is_datacenter,is_vpn:c.is_vpn,is_proxy:c.is_proxy,is_tor:c.is_tor,is_crawler:c.is_crawler,is_abuser:c.is_abuser,is_mobile:c.is_mobile,company:{type:c.company_type,name:c.company_name},abuser_score:c.abuser_score,datacenter_name:c.datacenter_name},m.claudeRisk={ip:o,asn:c.asn,asOrganization:c.asOrganization,country:c.country,countryCode:c.countryCode,region:c.region,city:c.city,isResidential:c.isResidential,isBroadcast:c.isBroadcast,trust_score:c.trust_score,timezone:c.timezone}}})()),await Promise.allSettled(g),!se&&(Ie(),Promise.allSettled([Re(),He(),be()]),Oe(),Pe())}return De(),()=>{se=!0,ve.disconnect(),m.scoreAnimId&&cancelAnimationFrame(m.scoreAnimId),delete _.__setMaskOn,delete _.__clearIPHistory,delete _.__detectClaudeAvail}},[]);const M=_=>{S(_),p.current?.__setMaskOn?.(_)},D=()=>p.current?.__clearIPHistory?.(),q=()=>p.current?.__detectClaudeAvail?.(),R={__html:""};return n.jsx("div",{ref:p,className:"flex flex-col flex-1 text-oai-black dark:text-oai-white font-oai antialiased",children:n.jsx("main",{className:"flex-1 pt-8 sm:pt-10 pb-12 sm:pb-16",children:n.jsxs("div",{className:"mx-auto max-w-6xl px-4 sm:px-6",children:[n.jsxs("div",{className:"flex items-start justify-between gap-4 mb-8",children:[n.jsxs("div",{className:"min-w-0",children:[n.jsx("h1",{className:"text-3xl sm:text-4xl font-semibold tracking-tight text-oai-black dark:text-white mb-3",children:t("ipcheck.page.title")}),n.jsx("p",{className:"text-oai-gray-500 dark:text-oai-gray-400 text-sm sm:text-base max-w-3xl text-pretty",children:t("ipcheck.page.subtitle")})]}),n.jsxs("label",{className:"shrink-0 inline-flex items-center gap-2.5 cursor-pointer select-none group",children:[n.jsx("div",{className:"text-oai-gray-400 group-hover:text-oai-gray-600 dark:text-oai-gray-500 dark:group-hover:text-oai-gray-300 transition-colors duration-200",children:b?n.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"h-4.5 w-4.5 animate-scale-up-fade",children:[n.jsx("path",{d:"M9.88 9.88a3 3 0 1 0 4.24 4.24"}),n.jsx("path",{d:"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68"}),n.jsx("path",{d:"M6.61 6.61A13.52 13.52 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61"}),n.jsx("line",{x1:"2",y1:"2",x2:"22",y2:"22"})]}):n.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"h-4.5 w-4.5 animate-scale-up-fade",children:[n.jsx("path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z"}),n.jsx("circle",{cx:"12",cy:"12",r:"3"})]})}),n.jsx("span",{className:"text-xs font-medium text-oai-gray-500 group-hover:text-oai-gray-700 dark:text-oai-gray-400 dark:group-hover:text-oai-gray-200 transition-colors duration-200",children:t("ipcheck.mask.toggle")}),n.jsxs("span",{className:"relative inline-block w-9 h-5",children:[n.jsx("input",{type:"checkbox",checked:b,onChange:_=>M(_.target.checked),className:"peer sr-only"}),n.jsx("span",{className:"absolute inset-0 rounded-full bg-oai-gray-200 dark:bg-oai-gray-800 peer-checked:bg-oai-brand-500 transition-colors duration-200"}),n.jsx("span",{className:"absolute top-0.5 left-0.5 h-4 w-4 rounded-full bg-white shadow-sm transition-transform duration-200 peer-checked:translate-x-4"})]})]})]}),n.jsx("div",{id:"ipv6Warn",className:"hidden mb-4 rounded-lg border border-amber-200 bg-amber-50 dark:border-amber-500/30 dark:bg-amber-500/10 px-4 py-3 text-sm text-amber-800 dark:text-amber-200",children:t("ipcheck.ipv6.warn")}),n.jsxs("div",{className:"space-y-4",children:[n.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[n.jsx(me,{id:"CN",label:t("ipcheck.ip.cn"),icon:null,className:"animate-fade-in-up stagger-1"}),n.jsx(me,{id:"",label:t("ipcheck.ip.cloudflare"),icon:n.jsx("img",{src:`${j}/favicons/cloudflare.webp`,alt:"",className:"h-4 w-4"}),className:"animate-fade-in-up stagger-2"}),n.jsx(me,{id:"Claude",label:t("ipcheck.ip.claude"),icon:n.jsx("img",{src:`${j}/favicons/claude.webp`,alt:"",className:"h-4 w-4"}),statusDot:!0,className:"animate-fade-in-up stagger-3"})]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4",children:[n.jsx(V,{title:t("ipcheck.trust.title"),subtitle:t("ipcheck.trust.subtitle"),className:"animate-fade-in-up stagger-4",children:n.jsxs("div",{className:"px-1 py-2",children:[n.jsx("div",{className:"flex items-baseline justify-between mb-2 gap-3",children:n.jsx("div",{id:"gaugeScore",className:"flex items-baseline gap-2 min-h-[2.5rem]",dangerouslySetInnerHTML:R})}),n.jsx("div",{id:"gaugeText",className:"text-xs text-oai-gray-500 dark:text-oai-gray-400 mb-4 min-h-[1rem]"}),n.jsxs("div",{children:[n.jsxs("div",{className:"relative",children:[n.jsx("div",{className:"h-1.5 rounded-full",style:{background:"linear-gradient(90deg, #ef4444 0%, #f59e0b 50%, #10b981 100%)"}}),n.jsx("span",{id:"gaugePointer",className:"absolute top-1/2 -translate-y-1/2 h-3.5 w-3.5 rounded-full bg-white dark:bg-oai-gray-900 border-2 border-oai-gray-300 dark:border-oai-gray-700 shadow-[0_2px_6px_rgba(0,0,0,0.15)] dark:shadow-[0_2px_6px_rgba(0,0,0,0.4)] -translate-x-1/2 transition-[left,border-color] duration-700 ease-out",style:{left:"0%"}})]}),n.jsxs("div",{className:"mt-2 flex justify-between text-[10px] uppercase tracking-wider text-oai-gray-400 dark:text-oai-gray-500 font-medium",children:[n.jsx("span",{children:t("ipcheck.trust.gauge.low")}),n.jsx("span",{className:"tracking-normal",children:"25"}),n.jsx("span",{className:"tracking-normal",children:"50"}),n.jsx("span",{className:"tracking-normal",children:"75"}),n.jsx("span",{children:t("ipcheck.trust.gauge.high")})]})]}),n.jsx("div",{id:"regionWarn",className:"hidden mt-4 rounded-lg border border-red-200 bg-red-50 dark:border-red-500/30 dark:bg-red-500/10 px-3 py-2 text-xs text-red-800 dark:text-red-300"}),n.jsxs("div",{id:"claudeRegionSupportRow",className:"hidden mt-4 pt-4 border-t border-oai-gray-100 dark:border-oai-gray-800 flex items-center justify-between",children:[n.jsx("span",{className:"text-sm text-oai-gray-500 dark:text-oai-gray-400",children:t("ipcheck.trust.region_support")}),n.jsx("span",{id:"claudeRegionSupport",className:"text-sm font-medium text-oai-black dark:text-white",dangerouslySetInnerHTML:R})]})]})}),n.jsx(V,{title:t("ipcheck.props.title"),className:"animate-fade-in-up stagger-4",children:n.jsx("div",{id:"propsContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800 pt-1",dangerouslySetInnerHTML:R})}),n.jsx(V,{title:t("ipcheck.security.title"),className:"animate-fade-in-up stagger-4",children:n.jsx("div",{id:"securityContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800 pt-1",dangerouslySetInnerHTML:R})})]}),n.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-4",children:[n.jsx(V,{title:n.jsxs("span",{className:"flex items-center gap-1.5",children:[t("ipcheck.avail.title"),n.jsx(Ze,{text:t("ipcheck.avail.tooltip")})]}),action:n.jsx(Ae,{label:t("ipcheck.avail.refresh"),onClick:q}),className:"animate-fade-in-up stagger-5",children:n.jsx("div",{id:"claudeAvailContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800 pt-1",dangerouslySetInnerHTML:R})}),n.jsx(V,{title:t("ipcheck.dns.title"),className:"animate-fade-in-up stagger-5",children:n.jsx("div",{id:"dnsLeakContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800 pt-1",dangerouslySetInnerHTML:R})}),n.jsx(V,{title:t("ipcheck.udp.title"),className:"animate-fade-in-up stagger-5",children:n.jsx("div",{id:"udpLeakContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800 pt-1",dangerouslySetInnerHTML:R})})]}),n.jsx(V,{title:t("ipcheck.device.title"),className:"animate-fade-in-up stagger-6",children:n.jsx("div",{id:"deviceContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800 pt-1",dangerouslySetInnerHTML:R})}),n.jsx(V,{title:t("ipcheck.history.title"),subtitle:t("ipcheck.history.subtitle"),action:n.jsx(Ae,{label:t("ipcheck.history.clear"),onClick:D}),className:"animate-fade-in-up stagger-6",children:n.jsx("div",{id:"ipHistoryContent",dangerouslySetInnerHTML:R})})]})]})})})}function V({title:p,subtitle:b,action:S,children:M,className:D=""}){return n.jsxs("section",{className:`rounded-xl border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-900 p-5 sm:p-6 transition-colors duration-200 ${D}`,children:[n.jsxs("div",{className:"flex items-start justify-between gap-3 mb-4",children:[n.jsxs("div",{className:"min-w-0",children:[n.jsx("h2",{className:"text-[15px] font-semibold text-oai-black dark:text-white",children:p}),b?n.jsx("p",{className:"mt-0.5 text-xs text-oai-gray-500 dark:text-oai-gray-400",children:b}):null]}),S]}),M]})}function Ae({label:p,onClick:b}){return n.jsx("button",{type:"button",onClick:b,className:"shrink-0 inline-flex h-7 items-center px-2.5 rounded-md text-xs font-medium text-oai-gray-600 dark:text-oai-gray-300 border border-oai-gray-200 dark:border-oai-gray-700 hover:bg-oai-gray-50 dark:hover:bg-oai-gray-800 hover:text-oai-black dark:hover:text-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",children:p})}function Ze({text:p}){return n.jsxs("span",{className:"relative inline-flex items-center group",children:[n.jsx("svg",{viewBox:"0 0 16 16",className:"h-3.5 w-3.5 text-oai-gray-400 dark:text-oai-gray-500",fill:"currentColor","aria-hidden":!0,children:n.jsx("path",{d:"M8 1.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13zM7.25 6.75a.75.75 0 0 1 1.5 0V11a.75.75 0 0 1-1.5 0V6.75zM8 4a.85.85 0 1 1 0 1.7A.85.85 0 0 1 8 4z"})}),n.jsx("span",{className:"pointer-events-none absolute left-1/2 top-full z-10 mt-1.5 -translate-x-1/2 w-56 rounded-md bg-oai-gray-900 dark:bg-oai-gray-800 px-2.5 py-2 text-[11px] font-normal text-white opacity-0 scale-95 translate-y-1 group-hover:opacity-100 group-hover:scale-100 group-hover:translate-y-0 transition-all duration-200 cubic-bezier(0.16, 1, 0.3, 1) leading-relaxed shadow-lg origin-top",children:p})]})}function me({id:p,label:b,icon:S,statusDot:M,className:D=""}){const q=`ipAddr${p}`,R=`ipGeo${p}`;return n.jsxs("article",{id:`ipHero${p}`,className:`rounded-xl border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-900 p-5 sm:p-6 cursor-default transition-colors duration-200 ${D}`,children:[n.jsxs("div",{className:"flex items-center gap-1.5 text-[11px] uppercase tracking-wider font-medium text-oai-gray-500 dark:text-oai-gray-400 mb-2",children:[S,n.jsx("span",{children:b}),M?n.jsxs("span",{id:`statusDot${p}`,className:"relative inline-flex h-2 w-2 ml-1.5","aria-hidden":!0,children:[n.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-oai-gray-300 dark:bg-oai-gray-600 opacity-75"}),n.jsx("span",{className:"relative inline-flex h-2 w-2 rounded-full bg-oai-gray-400 dark:bg-oai-gray-500"})]}):null]}),n.jsx("div",{id:q,className:"text-xl sm:text-2xl font-semibold text-oai-black dark:text-white flex items-center gap-2 min-h-[2rem]",dangerouslySetInnerHTML:{__html:""}}),n.jsx("div",{id:R,className:"mt-1 text-xs text-oai-gray-500 dark:text-oai-gray-400 truncate min-h-[1rem]"})]})}export{Je as default};