tokentracker-cli 0.24.8 → 0.25.1

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 (52) hide show
  1. package/dashboard/dist/assets/ActivityHeatmap-CB0rCGvm.js +42 -0
  2. package/dashboard/dist/assets/{Card-Bm2ZOfFA.js → Card-BfKA33l_.js} +1 -1
  3. package/dashboard/dist/assets/DashboardPage-u0vbeset.js +1 -0
  4. package/dashboard/dist/assets/{DevicePage-CtqTSoxC.js → DevicePage-9mF2GYDM.js} +1 -1
  5. package/dashboard/dist/assets/DialogTitle-BilvePW_.js +12 -0
  6. package/dashboard/dist/assets/{FadeIn-BGmXw8rD.js → FadeIn-DIUOdWDR.js} +1 -1
  7. package/dashboard/dist/assets/{HeaderGithubStar-7oF7WLZx.js → HeaderGithubStar-jwgY8DT_.js} +1 -1
  8. package/dashboard/dist/assets/{IpCheckPage-DLGIFtxp.js → IpCheckPage-BAJ9oJk5.js} +4 -4
  9. package/dashboard/dist/assets/{LandingPage-DblVIECc.js → LandingPage-Bi7T_UG3.js} +1 -1
  10. package/dashboard/dist/assets/LeaderboardAvatar-DK4zB40R.js +1 -0
  11. package/dashboard/dist/assets/LeaderboardPage-BMLXmGUV.js +6 -0
  12. package/dashboard/dist/assets/LeaderboardProfileModal-DgDySCa4.js +32 -0
  13. package/dashboard/dist/assets/LeaderboardProfilePage-BoI-B3yY.js +1 -0
  14. package/dashboard/dist/assets/LimitsPage-DFntRPF-.js +2 -0
  15. package/dashboard/dist/assets/LocalOnlyNotice-kpOEyGcQ.js +1 -0
  16. package/dashboard/dist/assets/LoginPage-J437b8fG.js +1 -0
  17. package/dashboard/dist/assets/PopoverPopup-CETYhElJ.js +1 -0
  18. package/dashboard/dist/assets/{ProviderIcon-CyeZHlvD.js → ProviderIcon-GLSK86ul.js} +1 -1
  19. package/dashboard/dist/assets/SettingsPage-Ce-EIZCo.js +1 -0
  20. package/dashboard/dist/assets/SkillsPage-BCg2tPe8.js +1 -0
  21. package/dashboard/dist/assets/WidgetsPage-B8eoNh1B.js +1 -0
  22. package/dashboard/dist/assets/{WrappedPage-Ci0XyXL_.js → WrappedPage-57yACpcn.js} +1 -1
  23. package/dashboard/dist/assets/arrow-up-right-kKTEYa77.js +1 -0
  24. package/dashboard/dist/assets/check-BwEiSCgu.js +1 -0
  25. package/dashboard/dist/assets/{chevron-down-BTjZUclo.js → chevron-down-CYErdTR9.js} +1 -1
  26. package/dashboard/dist/assets/{download-TnEyNsSy.js → download-CSjtsR81.js} +1 -1
  27. package/dashboard/dist/assets/{info-8F30IXmF.js → info-Y0vVD3FZ.js} +1 -1
  28. package/dashboard/dist/assets/{main-Ch22JpOj.js → main-CrjJx0KR.js} +47 -18
  29. package/dashboard/dist/assets/main-CvieAP2Q.css +1 -0
  30. package/dashboard/dist/assets/{use-limits-display-prefs-Rfcf8uOp.js → use-limits-display-prefs-Csc65P9G.js} +1 -1
  31. package/dashboard/dist/assets/use-native-settings-BeIgnIwx.js +1 -0
  32. package/dashboard/dist/assets/{use-reduced-motion-lvUJO2cx.js → use-reduced-motion-DZ7zH0oK.js} +1 -1
  33. package/dashboard/dist/assets/{use-usage-limits-BDH7ZuiN.js → use-usage-limits-ClpyKC2F.js} +1 -1
  34. package/dashboard/dist/assets/{useCurrency-9qQotA-7.js → useCurrency-M999w0v1.js} +1 -1
  35. package/dashboard/dist/index.html +2 -2
  36. package/dashboard/dist/share.html +2 -2
  37. package/package.json +1 -1
  38. package/src/lib/local-api.js +13 -1
  39. package/src/lib/pricing/seed-snapshot.json +1 -1
  40. package/dashboard/dist/assets/DashboardPage-BCwneqYv.js +0 -42
  41. package/dashboard/dist/assets/LeaderboardPage-BSIiXBXB.js +0 -5
  42. package/dashboard/dist/assets/LeaderboardProfilePage-rnzMxGm7.js +0 -1
  43. package/dashboard/dist/assets/LimitsPage-BIIloMLr.js +0 -2
  44. package/dashboard/dist/assets/LoginPage-K0pFbm2P.js +0 -1
  45. package/dashboard/dist/assets/PopoverPopup-CdYV60oX.js +0 -12
  46. package/dashboard/dist/assets/SettingsPage-CwNF9bwF.js +0 -1
  47. package/dashboard/dist/assets/SkillsPage-DJtcsqCs.js +0 -1
  48. package/dashboard/dist/assets/WidgetsPage-DnQgY7YQ.js +0 -1
  49. package/dashboard/dist/assets/check-CDwpiGWn.js +0 -1
  50. package/dashboard/dist/assets/leaderboard-columns-C6mnviZx.js +0 -1
  51. package/dashboard/dist/assets/main-D_iR1XAB.css +0 -1
  52. package/dashboard/dist/assets/use-native-settings-7r5luMxr.js +0 -1
@@ -1 +1 @@
1
- import{T as p,r as c,C as e,an as f}from"./main-Ch22JpOj.js";const b={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1,VITE_APP_VERSION:"0.24.8",VITE_INSFORGE_ANON_KEY:"ik_9f35735991b684f7cf57fa00bb4d0487",VITE_INSFORGE_BASE_URL:"https://srctyff5.us-east.insforge.app"};function x(){return f(),`${(b&&"https://srctyff5.us-east.insforge.app"||"https://srctyff5.us-east.insforge.app").replace(/\/$/,"")}/functions/tokentracker-device-flow-grant`}function l(a){return(a||"").toUpperCase().replace(/\s+/g,"").replace(/[^A-Z0-9-]/g,"")}function h(){const a=p(),[m,g]=c.useState(""),[t,r]=c.useState({kind:"idle",message:""});c.useEffect(()=>{try{const n=new URLSearchParams(window.location.search).get("user_code");n&&g(l(n))}catch{}},[]);async function u(d){if(d?.preventDefault?.(),!a?.signedIn){r({kind:"error",message:"Please sign in first."});return}const n=l(m);if(!/^[A-HJKMNP-Z2-9]{4}-[A-HJKMNP-Z2-9]{4}$/.test(n)){r({kind:"error",message:"Invalid code format. Expected XXXX-XXXX."});return}r({kind:"working",message:"Approving…"});try{const i=await a.getAccessToken?.();if(!i){r({kind:"error",message:"No access token — please sign in again."});return}const s=await fetch(x(),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${i}`},body:JSON.stringify({user_code:n})}),o=await s.json().catch(()=>({}));s.ok?r({kind:"success",message:o.status==="already_approved"?`Already approved earlier${o.client_info?" ("+o.client_info+")":""}.`:`Approved${o.client_info?" for "+o.client_info:""}. You can close this tab — your CLI will pick it up within a few seconds.`}):s.status===404?r({kind:"error",message:"Code not found. Double-check what your CLI printed."}):s.status===410?r({kind:"error",message:"Code expired. Re-run `tracker device-login` and try again."}):s.status===401?r({kind:"error",message:"Session expired. Sign out, sign in, and try again."}):r({kind:"error",message:o?.error||`Server error (HTTP ${s.status}).`})}catch(i){r({kind:"error",message:`Network error: ${i?.message||i}`})}}return e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-white dark:bg-oai-gray-950 px-6 py-12",children:e.jsxs("div",{className:"w-full max-w-md rounded-xl border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-900 p-8",children:[e.jsx("h1",{className:"text-2xl font-semibold text-oai-gray-900 dark:text-white mb-2",children:"Approve your CLI"}),e.jsx("p",{className:"text-sm text-oai-gray-500 dark:text-oai-gray-400 mb-6",children:"Type the code your CLI showed you. We'll link it to your account so token usage from that machine flows into your leaderboard profile."}),a?.signedIn?null:e.jsx("div",{className:"rounded-md border border-amber-200 bg-amber-50 dark:bg-amber-900/20 dark:border-amber-800 p-4 mb-4",children:e.jsx("p",{className:"text-sm text-amber-700 dark:text-amber-300",children:"Sign in first, then return to this page."})}),e.jsxs("form",{onSubmit:u,className:"space-y-4",children:[e.jsxs("label",{className:"block",children:[e.jsx("span",{className:"block text-xs font-medium uppercase tracking-wide text-oai-gray-500 dark:text-oai-gray-400 mb-1",children:"CLI code"}),e.jsx("input",{type:"text",value:m,onChange:d=>g(l(d.target.value)),placeholder:"XXXX-XXXX",spellCheck:!1,autoCapitalize:"characters",maxLength:9,className:"w-full font-mono text-xl tracking-widest text-center rounded-md border border-oai-gray-300 dark:border-oai-gray-700 bg-white dark:bg-oai-gray-900 text-oai-gray-900 dark:text-white px-4 py-3 focus:outline-none focus:ring-inset focus:ring-2 focus:ring-emerald-600"})]}),e.jsx("button",{type:"submit",disabled:t.kind==="working"||!a?.signedIn,className:"w-full rounded-md bg-emerald-600 hover:bg-emerald-500 disabled:bg-oai-gray-300 disabled:cursor-not-allowed text-white font-medium py-3 transition-colors",children:t.kind==="working"?"Approving…":"Approve"})]}),t.kind==="success"&&e.jsx("div",{className:"mt-4 rounded-md border border-emerald-200 bg-emerald-50 dark:bg-emerald-900/20 dark:border-emerald-800 p-4",children:e.jsx("p",{className:"text-sm text-emerald-700 dark:text-emerald-300",children:t.message})}),t.kind==="error"&&e.jsx("div",{className:"mt-4 rounded-md border border-red-200 bg-red-50 dark:bg-red-900/20 dark:border-red-800 p-4",children:e.jsx("p",{className:"text-sm text-red-700 dark:text-red-300",children:t.message})})]})})}export{h as default};
1
+ import{U as p,r as c,C as e,am as f}from"./main-CrjJx0KR.js";const b={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1,VITE_APP_VERSION:"0.25.1",VITE_INSFORGE_ANON_KEY:"ik_9f35735991b684f7cf57fa00bb4d0487",VITE_INSFORGE_BASE_URL:"https://srctyff5.us-east.insforge.app"};function x(){return f(),`${(b&&"https://srctyff5.us-east.insforge.app"||"https://srctyff5.us-east.insforge.app").replace(/\/$/,"")}/functions/tokentracker-device-flow-grant`}function l(a){return(a||"").toUpperCase().replace(/\s+/g,"").replace(/[^A-Z0-9-]/g,"")}function h(){const a=p(),[m,g]=c.useState(""),[t,r]=c.useState({kind:"idle",message:""});c.useEffect(()=>{try{const n=new URLSearchParams(window.location.search).get("user_code");n&&g(l(n))}catch{}},[]);async function u(d){if(d?.preventDefault?.(),!a?.signedIn){r({kind:"error",message:"Please sign in first."});return}const n=l(m);if(!/^[A-HJKMNP-Z2-9]{4}-[A-HJKMNP-Z2-9]{4}$/.test(n)){r({kind:"error",message:"Invalid code format. Expected XXXX-XXXX."});return}r({kind:"working",message:"Approving…"});try{const i=await a.getAccessToken?.();if(!i){r({kind:"error",message:"No access token — please sign in again."});return}const s=await fetch(x(),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${i}`},body:JSON.stringify({user_code:n})}),o=await s.json().catch(()=>({}));s.ok?r({kind:"success",message:o.status==="already_approved"?`Already approved earlier${o.client_info?" ("+o.client_info+")":""}.`:`Approved${o.client_info?" for "+o.client_info:""}. You can close this tab — your CLI will pick it up within a few seconds.`}):s.status===404?r({kind:"error",message:"Code not found. Double-check what your CLI printed."}):s.status===410?r({kind:"error",message:"Code expired. Re-run `tracker device-login` and try again."}):s.status===401?r({kind:"error",message:"Session expired. Sign out, sign in, and try again."}):r({kind:"error",message:o?.error||`Server error (HTTP ${s.status}).`})}catch(i){r({kind:"error",message:`Network error: ${i?.message||i}`})}}return e.jsx("div",{className:"min-h-screen flex items-center justify-center bg-white dark:bg-oai-gray-950 px-6 py-12",children:e.jsxs("div",{className:"w-full max-w-md rounded-xl border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-900 p-8",children:[e.jsx("h1",{className:"text-2xl font-semibold text-oai-gray-900 dark:text-white mb-2",children:"Approve your CLI"}),e.jsx("p",{className:"text-sm text-oai-gray-500 dark:text-oai-gray-400 mb-6",children:"Type the code your CLI showed you. We'll link it to your account so token usage from that machine flows into your leaderboard profile."}),a?.signedIn?null:e.jsx("div",{className:"rounded-md border border-amber-200 bg-amber-50 dark:bg-amber-900/20 dark:border-amber-800 p-4 mb-4",children:e.jsx("p",{className:"text-sm text-amber-700 dark:text-amber-300",children:"Sign in first, then return to this page."})}),e.jsxs("form",{onSubmit:u,className:"space-y-4",children:[e.jsxs("label",{className:"block",children:[e.jsx("span",{className:"block text-xs font-medium uppercase tracking-wide text-oai-gray-500 dark:text-oai-gray-400 mb-1",children:"CLI code"}),e.jsx("input",{type:"text",value:m,onChange:d=>g(l(d.target.value)),placeholder:"XXXX-XXXX",spellCheck:!1,autoCapitalize:"characters",maxLength:9,className:"w-full font-mono text-xl tracking-widest text-center rounded-md border border-oai-gray-300 dark:border-oai-gray-700 bg-white dark:bg-oai-gray-900 text-oai-gray-900 dark:text-white px-4 py-3 focus:outline-none focus:ring-inset focus:ring-2 focus:ring-emerald-600"})]}),e.jsx("button",{type:"submit",disabled:t.kind==="working"||!a?.signedIn,className:"w-full rounded-md bg-emerald-600 hover:bg-emerald-500 disabled:bg-oai-gray-300 disabled:cursor-not-allowed text-white font-medium py-3 transition-colors",children:t.kind==="working"?"Approving…":"Approve"})]}),t.kind==="success"&&e.jsx("div",{className:"mt-4 rounded-md border border-emerald-200 bg-emerald-50 dark:bg-emerald-900/20 dark:border-emerald-800 p-4",children:e.jsx("p",{className:"text-sm text-emerald-700 dark:text-emerald-300",children:t.message})}),t.kind==="error"&&e.jsx("div",{className:"mt-4 rounded-md border border-red-200 bg-red-50 dark:bg-red-900/20 dark:border-red-800 p-4",children:e.jsx("p",{className:"text-sm text-red-700 dark:text-red-300",children:t.message})})]})})}export{h as default};
@@ -0,0 +1,12 @@
1
+ import{r as f,aN as En,aO as Sn,C as q,a9 as _t}from"./main-CrjJx0KR.js";const Rn={clipPath:"inset(50%)",overflow:"hidden",whiteSpace:"nowrap",border:0,padding:0,width:1,height:1,margin:-1},wn={...Rn,position:"fixed",top:0,left:0},di={...Rn,position:"absolute"},zt={};function fe(e,t){const n=f.useRef(zt);return n.current===zt&&(n.current=e(t)),n}function ot(e,t,n,r){const o=fe(Cn).current;return Er(o,e,t,n,r)&&Tn(o,[e,t,n,r]),o.callback}function yr(e){const t=fe(Cn).current;return Sr(t,e)&&Tn(t,e),t.callback}function Cn(){return{callback:null,cleanup:null,refs:[]}}function Er(e,t,n,r,o){return e.refs[0]!==t||e.refs[1]!==n||e.refs[2]!==r||e.refs[3]!==o}function Sr(e,t){return e.refs.length!==t.length||e.refs.some((n,r)=>n!==t[r])}function Tn(e,t){if(e.refs=t,t.every(n=>n==null)){e.callback=null;return}e.callback=n=>{if(e.cleanup&&(e.cleanup(),e.cleanup=null),n!=null){const r=Array(t.length).fill(null);for(let o=0;o<t.length;o+=1){const s=t[o];if(s!=null)switch(typeof s){case"function":{const i=s(n);typeof i=="function"&&(r[o]=i);break}case"object":{s.current=n;break}}}e.cleanup=()=>{for(let o=0;o<t.length;o+=1){const s=t[o];if(s!=null)switch(typeof s){case"function":{const i=r[o];typeof i=="function"?i():s(null);break}case"object":{s.current=null;break}}}}}}}const Rr=()=>{},U=typeof document<"u"?f.useLayoutEffect:Rr,wt=En[`useInsertionEffect${Math.random().toFixed(1)}`.slice(0,-3)],wr=wt&&wt!==f.useLayoutEffect?wt:e=>e();function A(e){const t=fe(Cr).current;return t.next=e,wr(t.effect),t.trampoline}function Cr(){const e={next:void 0,callback:Tr,trampoline:(...t)=>e.callback?.(...t),effect:()=>{e.callback=e.next}};return e}function Tr(){}function Ze(e){const t=fe(xr,e).current;return t.next=e,U(t.effect),t}function xr(e){const t={current:e,next:e,effect:()=>{t.current=t.next}};return t}function gt(e,...t){const n=new URL("https://base-ui.com/production-error");return n.searchParams.set("code",e.toString()),t.forEach(r=>n.searchParams.append("args[]",r)),`Base UI error #${e}; visit ${n} for the full message.`}var st=Symbol("NOT_FOUND");function Ir(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function Or(e,t=`expected an object, instead received ${typeof e}`){if(typeof e!="object")throw new TypeError(t)}function kr(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(n=>typeof n=="function")){const n=e.map(r=>typeof r=="function"?`function ${r.name||"unnamed"}()`:typeof r).join(", ");throw new TypeError(`${t}[${n}]`)}}var Xt=e=>Array.isArray(e)?e:[e];function Pr(e){const t=Array.isArray(e[0])?e[0]:e;return kr(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function Mr(e,t){const n=[],{length:r}=e;for(let o=0;o<r;o++)n.push(e[o].apply(null,t));return n}function Ar(e){let t;return{get(n){return t&&e(t.key,n)?t.value:st},put(n,r){t={key:n,value:r}},getEntries(){return t?[t]:[]},clear(){t=void 0}}}function Nr(e,t){let n=[];function r(c){const a=n.findIndex(u=>t(c,u.key));if(a>-1){const u=n[a];return a>0&&(n.splice(a,1),n.unshift(u)),u.value}return st}function o(c,a){r(c)===st&&(n.unshift({key:c,value:a}),n.length>e&&n.pop())}function s(){return n}function i(){n=[]}return{get:r,put:o,getEntries:s,clear:i}}var Lr=(e,t)=>e===t;function Fr(e){return function(n,r){if(n===null||r===null||n.length!==r.length)return!1;const{length:o}=n;for(let s=0;s<o;s++)if(!e(n[s],r[s]))return!1;return!0}}function Dr(e,t){const n=typeof t=="object"?t:{equalityCheck:t},{equalityCheck:r=Lr,maxSize:o=1,resultEqualityCheck:s}=n,i=Fr(r);let c=0;const a=o<=1?Ar(i):Nr(o,i);function u(){let h=a.get(arguments);if(h===st){if(h=e.apply(null,arguments),c++,s){const p=a.getEntries().find(g=>s(g.value,h));p&&(h=p.value,c!==0&&c--)}a.put(arguments,h)}return h}return u.clearCache=()=>{a.clear(),u.resetResultsCount()},u.resultsCount=()=>c,u.resetResultsCount=()=>{c=0},u}var Wr=class{constructor(e){this.value=e}deref(){return this.value}},jr=typeof WeakRef<"u"?WeakRef:Wr,Vr=0,Zt=1;function Je(){return{s:Vr,v:void 0,o:null,p:null}}function xn(e,t={}){let n=Je();const{resultEqualityCheck:r}=t;let o,s=0;function i(){let c=n;const{length:a}=arguments;for(let d=0,p=a;d<p;d++){const g=arguments[d];if(typeof g=="function"||typeof g=="object"&&g!==null){let m=c.o;m===null&&(c.o=m=new WeakMap);const v=m.get(g);v===void 0?(c=Je(),m.set(g,c)):c=v}else{let m=c.p;m===null&&(c.p=m=new Map);const v=m.get(g);v===void 0?(c=Je(),m.set(g,c)):c=v}}const u=c;let h;if(c.s===Zt)h=c.v;else if(h=e.apply(null,arguments),s++,r){const d=o?.deref?.()??o;d!=null&&r(d,h)&&(h=d,s!==0&&s--),o=typeof h=="object"&&h!==null||typeof h=="function"?new jr(h):h}return u.s=Zt,u.v=h,h}return i.clearCache=()=>{n=Je(),i.resetResultsCount()},i.resultsCount=()=>s,i.resetResultsCount=()=>{s=0},i}function In(e,...t){const n=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,r=(...o)=>{let s=0,i=0,c,a={},u=o.pop();typeof u=="object"&&(a=u,u=o.pop()),Ir(u,`createSelector expects an output function after the inputs, but received: [${typeof u}]`);const h={...n,...a},{memoize:d,memoizeOptions:p=[],argsMemoize:g=xn,argsMemoizeOptions:m=[]}=h,v=Xt(p),w=Xt(m),R=Pr(o),E=d(function(){return s++,u.apply(null,arguments)},...v),S=g(function(){i++;const O=Mr(R,arguments);return c=E.apply(null,O),c},...w);return Object.assign(S,{resultFunc:u,memoizedResultFunc:E,dependencies:R,dependencyRecomputations:()=>i,resetDependencyRecomputations:()=>{i=0},lastResult:()=>c,recomputations:()=>s,resetRecomputations:()=>{s=0},memoize:d,argsMemoize:g})};return Object.assign(r,{withTypes:()=>r}),r}var Br=In(xn),$r=Object.assign((e,t=Br)=>{Or(e,`createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof e}`);const n=Object.keys(e),r=n.map(s=>e[s]);return t(r,(...s)=>s.reduce((i,c,a)=>(i[n[a]]=c,i),{}))},{withTypes:()=>$r});In({memoize:Dr,memoizeOptions:{maxSize:1,equalityCheck:Object.is}});const F=(e,t,n,r,o,s,...i)=>{if(i.length>0)throw new Error(gt(1));let c;if(e)c=e;else throw new Error("Missing arguments");return c};var Ct={exports:{}},Tt={};var Jt;function _r(){if(Jt)return Tt;Jt=1;var e=Sn();function t(d,p){return d===p&&(d!==0||1/d===1/p)||d!==d&&p!==p}var n=typeof Object.is=="function"?Object.is:t,r=e.useState,o=e.useEffect,s=e.useLayoutEffect,i=e.useDebugValue;function c(d,p){var g=p(),m=r({inst:{value:g,getSnapshot:p}}),v=m[0].inst,w=m[1];return s(function(){v.value=g,v.getSnapshot=p,a(v)&&w({inst:v})},[d,g,p]),o(function(){return a(v)&&w({inst:v}),d(function(){a(v)&&w({inst:v})})},[d]),i(g),g}function a(d){var p=d.getSnapshot;d=d.value;try{var g=p();return!n(d,g)}catch{return!0}}function u(d,p){return p()}var h=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?u:c;return Tt.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:h,Tt}var Qt;function On(){return Qt||(Qt=1,Ct.exports=_r()),Ct.exports}var Ur=On(),xt={exports:{}},It={};var en;function Yr(){if(en)return It;en=1;var e=Sn(),t=On();function n(u,h){return u===h&&(u!==0||1/u===1/h)||u!==u&&h!==h}var r=typeof Object.is=="function"?Object.is:n,o=t.useSyncExternalStore,s=e.useRef,i=e.useEffect,c=e.useMemo,a=e.useDebugValue;return It.useSyncExternalStoreWithSelector=function(u,h,d,p,g){var m=s(null);if(m.current===null){var v={hasValue:!1,value:null};m.current=v}else v=m.current;m=c(function(){function R(k){if(!E){if(E=!0,S=k,k=p(k),g!==void 0&&v.hasValue){var W=v.value;if(g(W,k))return N=W}return N=k}if(W=N,r(S,k))return W;var L=p(k);return g!==void 0&&g(W,L)?(S=k,W):(S=k,N=L)}var E=!1,S,N,O=d===void 0?null:d;return[function(){return R(h())},O===null?void 0:function(){return R(O())}]},[h,d,p,g]);var w=o(u,m[0],m[1]);return i(function(){v.hasValue=!0,v.value=w},[w]),a(w),w},It}var tn;function qr(){return tn||(tn=1,xt.exports=Yr()),xt.exports}var Gr=qr();const Hr=parseInt(f.version,10);function Ut(e){return Hr>=e}const Kr=Ut(19),zr=Kr?Zr:Jr;function Xr(e,t,n,r,o){return zr(e,t,n,r,o)}function Zr(e,t,n,r,o){const s=f.useCallback(()=>t(e.getSnapshot(),n,r,o),[e,t,n,r,o]);return Ur.useSyncExternalStore(e.subscribe,s,s)}function Jr(e,t,n,r,o){return Gr.useSyncExternalStoreWithSelector(e.subscribe,e.getSnapshot,e.getSnapshot,s=>t(s,n,r,o))}class We{constructor(t){this.state=t,this.listeners=new Set,this.updateTick=0}subscribe=t=>(this.listeners.add(t),()=>{this.listeners.delete(t)});getSnapshot=()=>this.state;setState(t){if(this.state===t)return;this.state=t,this.updateTick+=1;const n=this.updateTick;for(const r of this.listeners){if(n!==this.updateTick)return;r(t)}}update(t){for(const n in t)if(!Object.is(this.state[n],t[n])){We.prototype.setState.call(this,{...this.state,...t});return}}set(t,n){Object.is(this.state[t],n)||We.prototype.setState.call(this,{...this.state,[t]:n})}notifyAll(){const t={...this.state};We.prototype.setState.call(this,t)}}function kn(){}const pi=Object.freeze([]),Q=Object.freeze({});class Pn extends We{constructor(t,n={},r){super(t),this.context=n,this.selectors=r}controlledValues=new Map;useSyncedValue(t,n){f.useDebugValue(t),U(()=>{this.state[t]!==n&&this.set(t,n)},[t,n])}useSyncedValueWithCleanup(t,n){const r=this;U(()=>(r.state[t]!==n&&r.set(t,n),()=>{r.set(t,void 0)}),[r,t,n])}useSyncedValues(t){const n=this,r=Object.values(t);U(()=>{n.update(t)},[n,...r])}useControlledProp(t,n,r){f.useDebugValue(t);const o=this,s=n!==void 0;this.controlledValues.has(t)||(this.controlledValues.set(t,s),!s&&!Object.is(this.state[t],r)&&super.setState({...this.state,[t]:r})),U(()=>{s&&!Object.is(o.state[t],n)&&super.setState({...o.state,[t]:n})},[o,t,n,r,s])}set(t,n){this.controlledValues.get(t)!==!0&&super.set(t,n)}update(t){const n={...t};for(const r in n)if(Object.hasOwn(n,r)&&this.controlledValues.get(r)===!0){delete n[r];continue}super.update(n)}setState(t){const n={...t};for(const r in n)if(Object.hasOwn(n,r)&&this.controlledValues.get(r)===!0){delete n[r];continue}super.setState({...this.state,...n})}select=(t,n,r,o)=>{const s=this.selectors[t];return s(this.state,n,r,o)};useState=(t,n,r,o)=>{f.useDebugValue(t);const s=this.selectors[t];return Xr(this,s,n,r,o)};useContextCallback(t,n){f.useDebugValue(t);const r=A(n??kn);this.context[t]=r}useStateSetter(t){const n=f.useRef(void 0);return n.current===void 0&&(n.current=r=>{this.set(t,r)}),n.current}observe(t,n){let r;typeof t=="function"?r=t:r=this.selectors[t];let o=r(this.state);return n(o,o,this),this.subscribe(s=>{const i=r(s);if(!Object.is(o,i)){const c=o;o=i,n(i,c,this)}})}}const Qr=[];function Mn(e){f.useEffect(e,Qr)}const Qe=null;class eo{callbacks=[];callbacksCount=0;nextId=1;startId=1;isScheduled=!1;tick=t=>{this.isScheduled=!1;const n=this.callbacks,r=this.callbacksCount;if(this.callbacks=[],this.callbacksCount=0,this.startId=this.nextId,r>0)for(let o=0;o<n.length;o+=1)n[o]?.(t)};request(t){const n=this.nextId;return this.nextId+=1,this.callbacks.push(t),this.callbacksCount+=1,!this.isScheduled&&(requestAnimationFrame(this.tick),this.isScheduled=!0),n}cancel(t){const n=t-this.startId;n<0||n>=this.callbacks.length||(this.callbacks[n]=null,this.callbacksCount-=1)}}const et=new eo;class se{static create(){return new se}static request(t){return et.request(t)}static cancel(t){return et.cancel(t)}currentId=Qe;request(t){this.cancel(),this.currentId=et.request(()=>{this.currentId=Qe,t()})}cancel=()=>{this.currentId!==Qe&&(et.cancel(this.currentId),this.currentId=Qe)};disposeEffect=()=>this.cancel}function An(){const e=fe(se.create).current;return Mn(e.disposeEffect),e}const Fe=0;class xe{static create(){return new xe}currentId=Fe;start(t,n){this.clear(),this.currentId=setTimeout(()=>{this.currentId=Fe,n()},t)}isStarted(){return this.currentId!==Fe}clear=()=>{this.currentId!==Fe&&(clearTimeout(this.currentId),this.currentId=Fe)};disposeEffect=()=>this.clear}function it(){const e=fe(xe.create).current;return Mn(e.disposeEffect),e}function ht(){return typeof window<"u"}function Ue(e){return Yt(e)?(e.nodeName||"").toLowerCase():"#document"}function ie(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function to(e){var t;return(t=(Yt(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function Yt(e){return ht()?e instanceof Node||e instanceof ie(e).Node:!1}function ue(e){return ht()?e instanceof Element||e instanceof ie(e).Element:!1}function le(e){return ht()?e instanceof HTMLElement||e instanceof ie(e).HTMLElement:!1}function Nt(e){return!ht()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof ie(e).ShadowRoot}function mt(e){const{overflow:t,overflowX:n,overflowY:r,display:o}=bt(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&o!=="inline"&&o!=="contents"}function gi(e){return/^(table|td|th)$/.test(Ue(e))}function no(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const ro=/transform|translate|scale|rotate|perspective|filter/,oo=/paint|layout|strict|content/,me=e=>!!e&&e!=="none";let Ot;function so(e){const t=ue(e)?bt(e):e;return me(t.transform)||me(t.translate)||me(t.scale)||me(t.rotate)||me(t.perspective)||!Nn()&&(me(t.backdropFilter)||me(t.filter))||ro.test(t.willChange||"")||oo.test(t.contain||"")}function hi(e){let t=at(e);for(;le(t)&&!je(t);){if(so(t))return t;if(no(t))return null;t=at(t)}return null}function Nn(){return Ot==null&&(Ot=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Ot}function je(e){return/^(html|body|#document)$/.test(Ue(e))}function bt(e){return ie(e).getComputedStyle(e)}function mi(e){return ue(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function at(e){if(Ue(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Nt(e)&&e.host||to(e);return Nt(t)?t.host:t}function Ln(e){const t=at(e);return je(t)?e.ownerDocument?e.ownerDocument.body:e.body:le(t)&&mt(t)?t:Ln(t)}function Ve(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const o=Ln(e),s=o===((r=e.ownerDocument)==null?void 0:r.body),i=ie(o);if(s){const c=io(i);return t.concat(i,i.visualViewport||[],mt(o)?o:[],c&&n?Ve(c):[])}else return t.concat(o,Ve(o,[],n))}function io(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}const Oe=typeof navigator<"u",kt=lo(),Fn=po(),Dn=fo(),ao=typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter:none"),Wn=kt.platform==="MacIntel"&&kt.maxTouchPoints>1?!0:/iP(hone|ad|od)|iOS/.test(kt.platform),co=Oe&&/apple/i.test(navigator.vendor),Lt=Oe&&/android/i.test(Fn)||/android/i.test(Dn);Oe&&Fn.toLowerCase().startsWith("mac")&&navigator.maxTouchPoints;const uo=Dn.includes("jsdom/");function lo(){if(!Oe)return{platform:"",maxTouchPoints:-1};const e=navigator.userAgentData;return e?.platform?{platform:e.platform,maxTouchPoints:navigator.maxTouchPoints}:{platform:navigator.platform??"",maxTouchPoints:navigator.maxTouchPoints??-1}}function fo(){if(!Oe)return"";const e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(({brand:t,version:n})=>`${t}/${n}`).join(" "):navigator.userAgent}function po(){if(!Oe)return"";const e=navigator.userAgentData;return e?.platform?e.platform:navigator.platform??""}const Ft="data-base-ui-focusable",jn="active",Vn="selected",go="input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])",bi="ArrowLeft",vi="ArrowRight",yi="ArrowUp",Ei="ArrowDown";function we(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement!=null;)t=t.shadowRoot.activeElement;return t}function $(e,t){if(!e||!t)return!1;const n=t.getRootNode?.();if(e.contains(t))return!0;if(n&&Nt(n)){let r=t;for(;r;){if(e===r)return!0;r=r.parentNode||r.host}}return!1}function ne(e){return"composedPath"in e?e.composedPath()[0]:e.target}function te(e,t){if(t==null)return!1;if("composedPath"in e)return e.composedPath().includes(t);const n=e;return n.target!=null&&t.contains(n.target)}function ho(e){return e.matches("html,body")}function H(e){return e?.ownerDocument||document}function mo(e){return le(e)&&e.matches(go)}function nn(e){return e?e.getAttribute("role")==="combobox"&&mo(e):!1}function Dt(e){return e?e.hasAttribute(Ft)?e:e.querySelector(`[${Ft}]`)||e:null}function Ce(e,t,n=!0){return e.filter(o=>o.parentId===t&&(!n||o.context?.open)).flatMap(o=>[o,...Ce(e,o.id,n)])}function rn(e,t){let n=[],r=e.find(o=>o.id===t)?.parentId;for(;r;){const o=e.find(s=>s.id===r);r=o?.parentId,o&&(n=n.concat(o))}return n}function bo(e){e.preventDefault(),e.stopPropagation()}function vo(e){return"nativeEvent"in e}function yo(e){return e.mozInputSource===0&&e.isTrusted?!0:Lt&&e.pointerType?e.type==="click"&&e.buttons===1:e.detail===0&&!e.pointerType}function Eo(e){return uo?!1:!Lt&&e.width===0&&e.height===0||Lt&&e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType==="mouse"||e.width<1&&e.height<1&&e.pressure===0&&e.detail===0&&e.pointerType==="touch"}function Si(e,t){const n=["mouse","pen"];return t||n.push("",void 0),n.includes(e)}function So(e){const t=e.type;return t==="click"||t==="mousedown"||t==="keydown"||t==="keyup"}var Ro=["input:not([inert]):not([inert] *)","select:not([inert]):not([inert] *)","textarea:not([inert]):not([inert] *)","a[href]:not([inert]):not([inert] *)","button:not([inert]):not([inert] *)","[tabindex]:not(slot):not([inert]):not([inert] *)","audio[controls]:not([inert]):not([inert] *)","video[controls]:not([inert]):not([inert] *)",'[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)',"details>summary:first-of-type:not([inert]):not([inert] *)","details:not([inert]):not([inert] *)"],ct=Ro.join(","),Bn=typeof Element>"u",Ie=Bn?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,ut=!Bn&&Element.prototype.getRootNode?function(e){var t;return e==null||(t=e.getRootNode)===null||t===void 0?void 0:t.call(e)}:function(e){return e?.ownerDocument},lt=function(t,n){var r;n===void 0&&(n=!0);var o=t==null||(r=t.getAttribute)===null||r===void 0?void 0:r.call(t,"inert"),s=o===""||o==="true",i=s||n&&t&&(typeof t.closest=="function"?t.closest("[inert]"):lt(t.parentNode));return i},wo=function(t){var n,r=t==null||(n=t.getAttribute)===null||n===void 0?void 0:n.call(t,"contenteditable");return r===""||r==="true"},$n=function(t,n,r){if(lt(t))return[];var o=Array.prototype.slice.apply(t.querySelectorAll(ct));return n&&Ie.call(t,ct)&&o.unshift(t),o=o.filter(r),o},ft=function(t,n,r){for(var o=[],s=Array.from(t);s.length;){var i=s.shift();if(!lt(i,!1))if(i.tagName==="SLOT"){var c=i.assignedElements(),a=c.length?c:i.children,u=ft(a,!0,r);r.flatten?o.push.apply(o,u):o.push({scopeParent:i,candidates:u})}else{var h=Ie.call(i,ct);h&&r.filter(i)&&(n||!t.includes(i))&&o.push(i);var d=i.shadowRoot||typeof r.getShadowRoot=="function"&&r.getShadowRoot(i),p=!lt(d,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(i));if(d&&p){var g=ft(d===!0?i.children:d.children,!0,r);r.flatten?o.push.apply(o,g):o.push({scopeParent:i,candidates:g})}else s.unshift.apply(s,i.children)}}return o},_n=function(t){return!isNaN(parseInt(t.getAttribute("tabindex"),10))},Un=function(t){if(!t)throw new Error("No node provided");return t.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(t.tagName)||wo(t))&&!_n(t)?0:t.tabIndex},Co=function(t,n){var r=Un(t);return r<0&&n&&!_n(t)?0:r},To=function(t,n){return t.tabIndex===n.tabIndex?t.documentOrder-n.documentOrder:t.tabIndex-n.tabIndex},Yn=function(t){return t.tagName==="INPUT"},xo=function(t){return Yn(t)&&t.type==="hidden"},Io=function(t){var n=t.tagName==="DETAILS"&&Array.prototype.slice.apply(t.children).some(function(r){return r.tagName==="SUMMARY"});return n},Oo=function(t,n){for(var r=0;r<t.length;r++)if(t[r].checked&&t[r].form===n)return t[r]},ko=function(t){if(!t.name)return!0;var n=t.form||ut(t),r=function(c){return n.querySelectorAll('input[type="radio"][name="'+c+'"]')},o;if(typeof window<"u"&&typeof window.CSS<"u"&&typeof window.CSS.escape=="function")o=r(window.CSS.escape(t.name));else try{o=r(t.name)}catch(i){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",i.message),!1}var s=Oo(o,t.form);return!s||s===t},Po=function(t){return Yn(t)&&t.type==="radio"},Mo=function(t){return Po(t)&&!ko(t)},Ao=function(t){var n,r=t&&ut(t),o=(n=r)===null||n===void 0?void 0:n.host,s=!1;if(r&&r!==t){var i,c,a;for(s=!!((i=o)!==null&&i!==void 0&&(c=i.ownerDocument)!==null&&c!==void 0&&c.contains(o)||t!=null&&(a=t.ownerDocument)!==null&&a!==void 0&&a.contains(t));!s&&o;){var u,h,d;r=ut(o),o=(u=r)===null||u===void 0?void 0:u.host,s=!!((h=o)!==null&&h!==void 0&&(d=h.ownerDocument)!==null&&d!==void 0&&d.contains(o))}}return s},on=function(t){var n=t.getBoundingClientRect(),r=n.width,o=n.height;return r===0&&o===0},No=function(t,n){var r=n.displayCheck,o=n.getShadowRoot;if(r==="full-native"&&"checkVisibility"in t){var s=t.checkVisibility({checkOpacity:!1,opacityProperty:!1,contentVisibilityAuto:!0,visibilityProperty:!0,checkVisibilityCSS:!0});return!s}if(getComputedStyle(t).visibility==="hidden")return!0;var i=Ie.call(t,"details>summary:first-of-type"),c=i?t.parentElement:t;if(Ie.call(c,"details:not([open]) *"))return!0;if(!r||r==="full"||r==="full-native"||r==="legacy-full"){if(typeof o=="function"){for(var a=t;t;){var u=t.parentElement,h=ut(t);if(u&&!u.shadowRoot&&o(u)===!0)return on(t);t.assignedSlot?t=t.assignedSlot:!u&&h!==t.ownerDocument?t=h.host:t=u}t=a}if(Ao(t))return!t.getClientRects().length;if(r!=="legacy-full")return!0}else if(r==="non-zero-area")return on(t);return!1},Lo=function(t){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(t.tagName))for(var n=t.parentElement;n;){if(n.tagName==="FIELDSET"&&n.disabled){for(var r=0;r<n.children.length;r++){var o=n.children.item(r);if(o.tagName==="LEGEND")return Ie.call(n,"fieldset[disabled] *")?!0:!o.contains(t)}return!0}n=n.parentElement}return!1},Wt=function(t,n){return!(n.disabled||xo(n)||No(n,t)||Io(n)||Lo(n))},jt=function(t,n){return!(Mo(n)||Un(n)<0||!Wt(t,n))},Fo=function(t){var n=parseInt(t.getAttribute("tabindex"),10);return!!(isNaN(n)||n>=0)},qn=function(t){var n=[],r=[];return t.forEach(function(o,s){var i=!!o.scopeParent,c=i?o.scopeParent:o,a=Co(c,i),u=i?qn(o.candidates):c;a===0?i?n.push.apply(n,u):n.push(c):r.push({documentOrder:s,tabIndex:a,item:o,isScope:i,content:u})}),r.sort(To).reduce(function(o,s){return s.isScope?o.push.apply(o,s.content):o.push(s.content),o},[]).concat(n)},Ye=function(t,n){n=n||{};var r;return n.getShadowRoot?r=ft([t],n.includeContainer,{filter:jt.bind(null,n),flatten:!1,getShadowRoot:n.getShadowRoot,shadowRootFilter:Fo}):r=$n(t,n.includeContainer,jt.bind(null,n)),qn(r)},Do=function(t,n){n=n||{};var r;return n.getShadowRoot?r=ft([t],n.includeContainer,{filter:Wt.bind(null,n),flatten:!0,getShadowRoot:n.getShadowRoot}):r=$n(t,n.includeContainer,Wt.bind(null,n)),r},Gn=function(t,n){if(n=n||{},!t)throw new Error("No node provided");return Ie.call(t,ct)===!1?!1:jt(n,t)};const ke=()=>({getShadowRoot:!0,displayCheck:typeof ResizeObserver=="function"&&ResizeObserver.toString().includes("[native code]")?"full":"none"});function Hn(e,t){const n=Ye(e,ke()),r=n.length;if(r===0)return;const o=we(H(e)),s=n.indexOf(o),i=s===-1?t===1?0:r-1:s+t;return n[i]}function Kn(e){return Hn(H(e).body,1)||e}function zn(e){return Hn(H(e).body,-1)||e}function Xn(e,t){if(!e)return null;const n=Ye(H(e).body,ke()),r=n.length;if(r===0)return null;const o=n.indexOf(e);if(o===-1)return null;const s=(o+t+r)%r;return n[s]}function Ri(e){return Xn(e,1)}function wi(e){return Xn(e,-1)}function Be(e,t){const n=t||e.currentTarget,r=e.relatedTarget;return!r||!$(n,r)}function Wo(e){Ye(e,ke()).forEach(n=>{n.dataset.tabindex=n.getAttribute("tabindex")||"",n.setAttribute("tabindex","-1")})}function sn(e){e.querySelectorAll("[data-tabindex]").forEach(n=>{const r=n.dataset.tabindex;delete n.dataset.tabindex,r?n.setAttribute("tabindex",r):n.removeAttribute("tabindex")})}const jo={...En};let an=0;function Vo(e,t="mui"){const[n,r]=f.useState(e),o=e||n;return f.useEffect(()=>{n==null&&(an+=1,r(`${t}-${an}`))},[n,t]),o}const cn=jo.useId;function qe(e,t){if(cn!==void 0){const n=cn();return e??(t?`${t}-${n}`:n)}return Vo(e,t)}function Zn(){const e=new Map;return{emit(t,n){e.get(t)?.forEach(r=>r(n))},on(t,n){e.has(t)||e.set(t,new Set),e.get(t).add(n)},off(t,n){e.get(t)?.delete(n)}}}class Bo{nodesRef={current:[]};events=Zn();addNode(t){this.nodesRef.current.push(t)}removeNode(t){const n=this.nodesRef.current.findIndex(r=>r===t);n!==-1&&this.nodesRef.current.splice(n,1)}}const Jn=f.createContext(null),Qn=f.createContext(null),vt=()=>f.useContext(Jn)?.id||null,qt=e=>{const t=f.useContext(Qn);return e??t};function Ci(e){const t=qe(),n=qt(e),r=vt();return U(()=>{if(!t)return;const o={id:t,parentId:r};return n?.addNode(o),()=>{n?.removeNode(o)}},[n,t,r]),t}function Ti(e){const{children:t,id:n}=e,r=vt();return q.jsx(Jn.Provider,{value:f.useMemo(()=>({id:n,parentId:r}),[n,r]),children:t})}function xi(e){const{children:t,externalTree:n}=e,r=fe(()=>n??new Bo).current;return q.jsx(Qn.Provider,{value:r,children:t})}const Ii=500,Oi={style:{transition:"none"}},$o="data-base-ui-click-trigger",ki={fallbackAxisSide:"none"},Pi={fallbackAxisSide:"end"},_o={clipPath:"inset(50%)",position:"fixed",top:0,left:0},Uo="none",un="trigger-press",Yo="trigger-hover",er="outside-press",Mi="item-press",Ai="close-press",tr="focus-out",qo="escape-key",Ni="list-navigation",Li="cancel-open",Go="imperative-action",Fi="window-resize";function de(e,t,n,r){let o=!1,s=!1;const i=Q;return{reason:e,event:t??new Event("base-ui"),cancel(){o=!0},allowPropagation(){s=!0},get isCanceled(){return o},get isPropagationAllowed(){return s},trigger:n,...i}}function dt(e){return`data-base-ui-${e}`}function Ge(e){return e?.ownerDocument||document}const pt=f.forwardRef(function(t,n){const[r,o]=f.useState();U(()=>{co&&o("button")},[]);const s={tabIndex:0,role:r};return q.jsx("span",{...t,ref:n,style:wn,"aria-hidden":r?void 0:!0,...s,"data-base-ui-focus-guard":""})});let ln=0;function Pt(e,t={}){const{preventScroll:n=!1,cancelPrevious:r=!0,sync:o=!1}=t;r&&cancelAnimationFrame(ln);const s=()=>e?.focus({preventScroll:n});o?s():ln=requestAnimationFrame(s)}const Te={inert:new WeakMap,"aria-hidden":new WeakMap,none:new WeakMap};function fn(e){return e==="inert"?Te.inert:e==="aria-hidden"?Te["aria-hidden"]:Te.none}let tt=new WeakSet,nt={},Mt=0;const nr=e=>e&&(e.host||nr(e.parentNode)),Ho=(e,t)=>t.map(n=>{if(e.contains(n))return n;const r=nr(n);return e.contains(r)?r:null}).filter(n=>n!=null);function Ko(e,t,n,r){const o="data-base-ui-inert",s=r?"inert":n?"aria-hidden":null,i=Ho(t,e),c=new Set,a=new Set(i),u=[];nt[o]||(nt[o]=new WeakMap);const h=nt[o];i.forEach(d),p(t),c.clear();function d(g){!g||c.has(g)||(c.add(g),g.parentNode&&d(g.parentNode))}function p(g){!g||a.has(g)||[].forEach.call(g.children,m=>{if(Ue(m)!=="script")if(c.has(m))p(m);else{const v=s?m.getAttribute(s):null,w=v!==null&&v!=="false",R=fn(s),E=(R.get(m)||0)+1,S=(h.get(m)||0)+1;R.set(m,E),h.set(m,S),u.push(m),E===1&&w&&tt.add(m),S===1&&m.setAttribute(o,""),!w&&s&&m.setAttribute(s,s==="inert"?"":"true")}})}return Mt+=1,()=>{u.forEach(g=>{const m=fn(s),w=(m.get(g)||0)-1,R=(h.get(g)||0)-1;m.set(g,w),h.set(g,R),w||(!tt.has(g)&&s&&g.removeAttribute(s),tt.delete(g)),R||g.removeAttribute(o)}),Mt-=1,Mt||(Te.inert=new WeakMap,Te["aria-hidden"]=new WeakMap,Te.none=new WeakMap,tt=new WeakSet,nt={})}}function zo(e,t=!1,n=!1){const r=H(e[0]).body;return Ko(e.concat(Array.from(r.querySelectorAll("[aria-live]"))),r,t,n)}function dn(e){if(!f.isValidElement(e))return null;const t=e,n=t.props;return(Ut(19)?n?.ref:t.ref)??null}function Vt(e,t){if(e&&!t)return e;if(!e&&t)return t;if(e||t)return{...e,...t}}function Xo(e,t){const n={};for(const r in e){const o=e[r];if(t?.hasOwnProperty(r)){const s=t[r](o);s!=null&&Object.assign(n,s);continue}o===!0?n[`data-${r.toLowerCase()}`]="":o&&(n[`data-${r.toLowerCase()}`]=o.toString())}return n}function Zo(e,t){return typeof e=="function"?e(t):e}function Jo(e,t){return typeof e=="function"?e(t):e}const $e={};function Qo(e,t,n,r,o){let s={...Bt(e,$e)};return t&&(s=De(s,t)),n&&(s=De(s,n)),r&&(s=De(s,r)),o&&(s=De(s,o)),s}function es(e){if(e.length===0)return $e;if(e.length===1)return Bt(e[0],$e);let t={...Bt(e[0],$e)};for(let n=1;n<e.length;n+=1)t=De(t,e[n]);return t}function De(e,t){return rr(t)?t(e):ts(e,t)}function ts(e,t){if(!t)return e;for(const n in t){const r=t[n];switch(n){case"style":{e[n]=Vt(e.style,r);break}case"className":{e[n]=or(e.className,r);break}default:ns(n,r)?e[n]=rs(e[n],r):e[n]=r}}return e}function ns(e,t){const n=e.charCodeAt(0),r=e.charCodeAt(1),o=e.charCodeAt(2);return n===111&&r===110&&o>=65&&o<=90&&(typeof t=="function"||typeof t>"u")}function rr(e){return typeof e=="function"}function Bt(e,t){return rr(e)?e(t):e??$e}function rs(e,t){return t?e?n=>{if(ss(n)){const o=n;os(o);const s=t(o);return o.baseUIHandlerPrevented||e?.(o),s}const r=t(n);return e?.(n),r}:t:e}function os(e){return e.preventBaseUIHandler=()=>{e.baseUIHandlerPrevented=!0},e}function or(e,t){return t?e?t+" "+e:t:e}function ss(e){return e!=null&&typeof e=="object"&&"nativeEvent"in e}function He(e,t,n={}){const r=t.render,o=is(t,n);if(n.enabled===!1)return null;const s=n.state??Q;return as(e,r,o,s)}function is(e,t={}){const{className:n,style:r,render:o}=e,{state:s=Q,ref:i,props:c,stateAttributesMapping:a,enabled:u=!0}=t,h=u?Zo(n,s):void 0,d=u?Jo(r,s):void 0,p=u?Xo(s,a):Q,g=u?Vt(p,Array.isArray(c)?es(c):c)??Q:Q;return typeof document<"u"&&(u?Array.isArray(i)?g.ref=yr([g.ref,dn(o),...i]):g.ref=ot(g.ref,dn(o),i):ot(null,null)),u?(h!==void 0&&(g.className=or(g.className,h)),d!==void 0&&(g.style=Vt(g.style,d)),g):Q}function as(e,t,n,r){if(t){if(typeof t=="function")return t(n,r);const o=Qo(n,t.props);return o.ref=n.ref,f.cloneElement(t,o)}if(e&&typeof e=="string")return cs(e,n);throw new Error(gt(8))}function cs(e,t){return e==="button"?f.createElement("button",{type:"button",...t,key:t.key}):e==="img"?f.createElement("img",{alt:"",...t,key:t.key}):f.createElement(e,t)}const sr=f.createContext(null),ir=()=>f.useContext(sr),us=dt("portal");function ls(e={}){const{ref:t,container:n,componentProps:r=Q,elementProps:o,elementState:s}=e,i=qe(),a=ir()?.portalNode,[u,h]=f.useState(null),[d,p]=f.useState(null),g=A(R=>{R!==null&&p(R)}),m=f.useRef(null);U(()=>{if(n===null){m.current&&(m.current=null,p(null),h(null));return}if(i==null)return;const R=(n&&(Yt(n)?n:n.current))??a??document.body;if(R==null){m.current&&(m.current=null,p(null),h(null));return}m.current!==R&&(m.current=R,p(null),h(R))},[n,a,i]);const v=He("div",r,{ref:[t,g],state:s,props:[{id:i,[us]:""},o]});return{portalNode:d,portalSubtree:u&&v?_t.createPortal(v,u):null}}const fs=f.forwardRef(function(t,n){const{children:r,container:o,className:s,render:i,renderGuards:c,...a}=t,{portalNode:u,portalSubtree:h}=ls({container:o,ref:n,componentProps:t,elementProps:a}),d=f.useRef(null),p=f.useRef(null),g=f.useRef(null),m=f.useRef(null),[v,w]=f.useState(null),R=v?.modal,E=v?.open,S=typeof c=="boolean"?c:!!v&&!v.modal&&v.open&&!!u;f.useEffect(()=>{if(!u||R)return;function O(k){u&&k.relatedTarget&&Be(k)&&(k.type==="focusin"?sn:Wo)(u)}return u.addEventListener("focusin",O,!0),u.addEventListener("focusout",O,!0),()=>{u.removeEventListener("focusin",O,!0),u.removeEventListener("focusout",O,!0)}},[u,R]),f.useEffect(()=>{!u||E||sn(u)},[E,u]);const N=f.useMemo(()=>({beforeOutsideRef:d,afterOutsideRef:p,beforeInsideRef:g,afterInsideRef:m,portalNode:u,setFocusManagerState:w}),[u]);return q.jsxs(f.Fragment,{children:[h,q.jsxs(sr.Provider,{value:N,children:[S&&u&&q.jsx(pt,{"data-type":"outside",ref:d,onFocus:O=>{if(Be(O,u))g.current?.focus();else{const k=v?v.domReference:null;zn(k)?.focus()}}}),S&&u&&q.jsx("span",{"aria-owns":u.id,style:_o}),u&&_t.createPortal(r,u),S&&u&&q.jsx(pt,{"data-type":"outside",ref:p,onFocus:O=>{if(Be(O,u))m.current?.focus();else{const k=v?v.domReference:null;Kn(k)?.focus(),v?.closeOnFocusOut&&v?.onOpenChange(!1,de(tr,O.nativeEvent))}}})]})]})});function ce(e){return e==null?e:"current"in e?e.current:e}function ds(e,t){const n=ie(e.target);return e instanceof n.KeyboardEvent?"keyboard":e instanceof n.FocusEvent?t||"keyboard":"pointerType"in e?e.pointerType||"keyboard":"touches"in e?"touch":e instanceof n.MouseEvent?t||(e.detail===0?"keyboard":"mouse"):""}const pn=20;let pe=[];function Gt(){pe=pe.filter(e=>e.isConnected)}function ps(e){Gt(),e&&Ue(e)!=="body"&&(pe.push(e),pe.length>pn&&(pe=pe.slice(-pn)))}function At(){return Gt(),pe[pe.length-1]}function gs(e){if(!e)return null;const t=ke();return Gn(e,t)?e:Ye(e,t)[0]||e}function hs(e){return!e||!e.isConnected?!1:typeof e.checkVisibility=="function"?e.checkVisibility():bt(e).display!=="none"}function gn(e,t){if(!t.current.includes("floating")&&!e.getAttribute("role")?.includes("dialog"))return;const n=ke(),o=Do(e,n).filter(i=>{const c=i.getAttribute("data-tabindex")||"";return Gn(i,n)||i.hasAttribute("data-tabindex")&&!c.startsWith("-")}),s=e.getAttribute("tabindex");t.current.includes("floating")||o.length===0?s!=="0"&&e.setAttribute("tabindex","0"):(s!=="-1"||e.hasAttribute("data-tabindex")&&e.getAttribute("data-tabindex")!=="-1")&&(e.setAttribute("tabindex","-1"),e.setAttribute("data-tabindex","-1"))}function ms(e){const{context:t,children:n,disabled:r=!1,order:o=["content"],initialFocus:s=!0,returnFocus:i=!0,restoreFocus:c=!1,modal:a=!0,closeOnFocusOut:u=!0,openInteractionType:h="",getInsideElements:d=()=>[],nextFocusableElement:p,previousFocusableElement:g,beforeContentFocusGuardRef:m,externalTree:v}=e,w="rootStore"in t?t.rootStore:t,R=w.useState("open"),E=w.useState("domReferenceElement"),S=w.useState("floatingElement"),{events:N,dataRef:O}=w.context,k=A(()=>O.current.floatingContext?.nodeId),W=A(d),L=s===!1,B=nn(E)&&L,j=Ze(o),_=Ze(s),X=Ze(i),Me=Ze(h),K=qt(v),M=ir(),ae=f.useRef(null),yt=f.useRef(null),Y=f.useRef(!1),oe=f.useRef(!1),be=f.useRef(!1),Ke=f.useRef(-1),ve=f.useRef(""),ee=f.useRef(""),Ae=f.useRef(null),ge=f.useRef(null),Et=ot(Ae,m,M?.beforeInsideRef),Ne=ot(ge,M?.afterInsideRef),ye=it(),he=it(),Ee=An(),Se=M!=null,l=Dt(S),I=A((b=l)=>b?Ye(b,ke()):[]),y=A(b=>{const T=I(b);return j.current.map(()=>T).filter(Boolean).flat()});f.useEffect(()=>{if(r||!a)return;function b(P){P.key==="Tab"&&$(l,we(H(l)))&&I().length===0&&!B&&bo(P)}const T=H(l);return T.addEventListener("keydown",b),()=>{T.removeEventListener("keydown",b)}},[r,E,l,a,j,B,I,y]),f.useEffect(()=>{if(r||!S)return;function b(T){const P=ne(T),V=I().indexOf(P);V!==-1&&(Ke.current=V)}return S.addEventListener("focusin",b),()=>{S.removeEventListener("focusin",b)}},[r,S,I]),f.useEffect(()=>{if(r||!R)return;const b=H(l);function T(){be.current=!1}function P(V){const x=ne(V),C=$(S,x)||$(E,x)||$(M?.portalNode,x);be.current=!C,ee.current=V.pointerType||"keyboard"}function D(){ee.current="keyboard"}return b.addEventListener("pointerdown",P,!0),b.addEventListener("pointerup",T,!0),b.addEventListener("pointercancel",T,!0),b.addEventListener("keydown",D,!0),()=>{b.removeEventListener("pointerdown",P,!0),b.removeEventListener("pointerup",T,!0),b.removeEventListener("pointercancel",T,!0),b.removeEventListener("keydown",D,!0)}},[r,S,E,l,R,M]),f.useEffect(()=>{if(r||!u)return;function b(){oe.current=!0,he.start(0,()=>{oe.current=!1})}function T(x){const C=x.relatedTarget,Z=x.currentTarget,z=ne(x);queueMicrotask(()=>{const Re=k(),ze=w.context.triggerElements,St=C?.hasAttribute(dt("focus-guard"))&&[Ae.current,ge.current,M?.beforeInsideRef.current,M?.afterInsideRef.current,M?.beforeOutsideRef.current,M?.afterOutsideRef.current,ce(g),ce(p)].includes(C),Rt=!($(E,C)||$(S,C)||$(C,S)||$(M?.portalNode,C)||C!=null&&ze.hasElement(C)||ze.hasMatchingElement(J=>$(J,C))||St||K&&(Ce(K.nodesRef.current,Re).find(J=>$(J.context?.elements.floating,C)||$(J.context?.elements.domReference,C))||rn(K.nodesRef.current,Re).find(J=>[J.context?.elements.floating,Dt(J.context?.elements.floating)].includes(C)||J.context?.elements.domReference===C)));if(Z===E&&l&&gn(l,j),c&&Z!==E&&!hs(z)&&we(H(l))===H(l).body){if(le(l)&&(l.focus(),c==="popup")){Ee.request(()=>{l.focus()});return}const J=Ke.current,Le=I(),Xe=Le[J]||Le[Le.length-1]||l;le(Xe)&&Xe.focus()}if(O.current.insideReactTree){O.current.insideReactTree=!1;return}(B||!a)&&C&&Rt&&!oe.current&&(B||C!==At())&&(Y.current=!0,w.setOpen(!1,de(tr,x)))})}function P(){be.current||(O.current.insideReactTree=!0,ye.start(0,()=>{O.current.insideReactTree=!1}))}const D=le(E)?E:null,V=[];if(!(!S&&!D))return D&&(D.addEventListener("focusout",T),D.addEventListener("pointerdown",b),V.push(()=>{D.removeEventListener("focusout",T),D.removeEventListener("pointerdown",b)})),S&&(S.addEventListener("focusout",T),M&&(S.addEventListener("focusout",P,!0),V.push(()=>{S.removeEventListener("focusout",P,!0)})),V.push(()=>{S.removeEventListener("focusout",T)})),()=>{V.forEach(x=>{x()})}},[r,E,S,l,a,K,M,w,u,c,I,B,k,j,O,ye,he,Ee,p,g]),f.useEffect(()=>{if(r||!S||!R)return;const b=Array.from(M?.portalNode?.querySelectorAll(`[${dt("portal")}]`)||[]),P=(K?rn(K.nodesRef.current,k()):[]).find(x=>nn(x.context?.elements.domReference||null))?.context?.elements.domReference,D=[S,P,...b,...W(),ae.current,yt.current,Ae.current,ge.current,M?.beforeOutsideRef.current,M?.afterOutsideRef.current,ce(g),ce(p),B?E:null].filter(x=>x!=null),V=zo(D,a||B);return()=>{V()}},[R,r,E,S,a,j,M,B,K,k,W,p,g]),U(()=>{if(!R||r||!le(l))return;const b=H(l),T=we(b);queueMicrotask(()=>{const P=y(l),D=_.current,V=typeof D=="function"?D(Me.current||""):D;if(V===void 0||V===!1)return;let x;V===!0||V===null?x=P[0]||l:x=ce(V),x=x||P[0]||l,!$(l,T)&&Pt(x,{preventScroll:x===l})})},[r,R,l,L,y,_,Me]),U(()=>{if(r||!l)return;const b=H(l),T=we(b);ps(T);function P(x){if(x.open||(ve.current=ds(x.nativeEvent,ee.current)),x.reason===Yo&&x.nativeEvent.type==="mouseleave"&&(Y.current=!0),x.reason===er)if(x.nested)Y.current=!1;else if(yo(x.nativeEvent)||Eo(x.nativeEvent))Y.current=!1;else{let C=!1;document.createElement("div").focus({get preventScroll(){return C=!0,!1}}),C?Y.current=!1:Y.current=!0}}N.on("openchange",P);const D=b.createElement("span");D.setAttribute("tabindex","-1"),D.setAttribute("aria-hidden","true"),Object.assign(D.style,wn),Se&&E&&E.insertAdjacentElement("afterend",D);function V(){const x=X.current;let C=typeof x=="function"?x(ve.current):x;if(C===void 0||C===!1)return null;if(C===null&&(C=!0),typeof C=="boolean"){const z=E||At();return z&&z.isConnected?z:D}const Z=E||At()||D;return ce(C)||Z}return()=>{N.off("openchange",P);const x=we(b),C=$(S,x)||K&&Ce(K.nodesRef.current,k(),!1).some(z=>$(z.context?.elements.floating,x)),Z=V();queueMicrotask(()=>{const z=gs(Z),Re=typeof X.current!="boolean";X.current&&!Y.current&&le(z)&&(!(!Re&&z!==x&&x!==b.body)||C)&&z.focus({preventScroll:!0}),D.remove()})}},[r,S,l,X,O,N,K,Se,E,k]),f.useEffect(()=>{queueMicrotask(()=>{Y.current=!1})},[r]),f.useEffect(()=>{if(r||!R)return;function b(P){ne(P)?.closest(`[${$o}]`)&&(oe.current=!0)}const T=H(l);return T.addEventListener("pointerdown",b,!0),()=>{T.removeEventListener("pointerdown",b,!0)}},[r,R,l]),U(()=>{if(!r&&M)return M.setFocusManagerState({modal:a,closeOnFocusOut:u,open:R,onOpenChange:w.setOpen,domReference:E}),()=>{M.setFocusManagerState(null)}},[r,M,a,R,w,u,E]),U(()=>{if(!(r||!l))return gn(l,j),()=>{queueMicrotask(Gt)}},[r,l,j]);const G=!r&&(a?!B:!0)&&(Se||a);return q.jsxs(f.Fragment,{children:[G&&q.jsx(pt,{"data-type":"inside",ref:Et,onFocus:b=>{if(a){const T=y();Pt(T[T.length-1])}else M?.portalNode&&(Y.current=!1,Be(b,M.portalNode)?Kn(E)?.focus():ce(g??M.beforeOutsideRef)?.focus())}}),n,G&&q.jsx(pt,{"data-type":"inside",ref:Ne,onFocus:b=>{a?Pt(y()[0]):M?.portalNode&&(u&&(Y.current=!0),Be(b,M.portalNode)?zn(E)?.focus():ce(p??M.afterOutsideRef)?.focus())}})]})}const bs={intentional:"onClick",sloppy:"onPointerDown"};function vs(e){return{escapeKey:typeof e=="boolean"?e:e?.escapeKey??!1,outsidePress:typeof e=="boolean"?e:e?.outsidePress??!0}}function ys(e,t={}){const n="rootStore"in e?e.rootStore:e,r=n.useState("open"),o=n.useState("floatingElement"),s=n.useState("referenceElement"),i=n.useState("domReferenceElement"),{onOpenChange:c,dataRef:a}=n.context,{enabled:u=!0,escapeKey:h=!0,outsidePress:d=!0,outsidePressEvent:p="sloppy",referencePress:g=!1,referencePressEvent:m="sloppy",ancestorScroll:v=!1,bubbles:w,externalTree:R}=t,E=qt(R),S=A(typeof d=="function"?d:()=>!1),N=typeof d=="function"?S:d,O=f.useRef(!1),{escapeKey:k,outsidePress:W}=vs(w),L=f.useRef(null),B=it(),j=it(),_=A(()=>{j.clear(),a.current.insideReactTree=!1}),X=f.useRef(!1),Me=f.useRef(""),K=A(l=>{Me.current=l.pointerType}),M=A(()=>{const l=Me.current,I=l==="pen"||!l?"mouse":l,y=typeof p=="function"?p():p;return typeof y=="string"?y:y[I]}),ae=A(l=>{if(!r||!u||!h||l.key!=="Escape"||X.current)return;const I=a.current.floatingContext?.nodeId,y=E?Ce(E.nodesRef.current,I):[];if(!k&&y.length>0){let T=!0;if(y.forEach(P=>{P.context?.open&&!P.context.dataRef.current.__escapeKeyBubbles&&(T=!1)}),!T)return}const G=vo(l)?l.nativeEvent:l,b=de(qo,G);n.setOpen(!1,b),!k&&!b.isPropagationAllowed&&l.stopPropagation()}),yt=A(l=>{const I=M();return I==="intentional"&&l.type!=="click"||I==="sloppy"&&l.type==="click"}),Y=A(()=>{a.current.insideReactTree=!0,j.start(0,_)}),oe=A((l,I=!1)=>{if(yt(l)){_();return}if(a.current.insideReactTree){_();return}if(M()==="intentional"&&I||typeof N=="function"&&!N(l))return;const y=ne(l),G=`[${dt("inert")}]`,b=H(n.select("floatingElement")).querySelectorAll(G),T=n.context.triggerElements;if(y&&(T.hasElement(y)||T.hasMatchingElement(C=>$(C,y))))return;let P=ue(y)?y:null;for(;P&&!je(P);){const C=at(P);if(je(C)||!ue(C))break;P=C}if(b.length&&ue(y)&&!ho(y)&&!$(y,n.select("floatingElement"))&&Array.from(b).every(C=>!$(P,C)))return;if(le(y)&&!("touches"in l)){const C=je(y),Z=bt(y),z=/auto|scroll/,Re=C||z.test(Z.overflowX),ze=C||z.test(Z.overflowY),St=Re&&y.clientWidth>0&&y.scrollWidth>y.clientWidth,Rt=ze&&y.clientHeight>0&&y.scrollHeight>y.clientHeight,J=Z.direction==="rtl",Le=Rt&&(J?l.offsetX<=y.offsetWidth-y.clientWidth:l.offsetX>y.clientWidth),Xe=St&&l.offsetY>y.clientHeight;if(Le||Xe)return}const D=a.current.floatingContext?.nodeId,V=E&&Ce(E.nodesRef.current,D).some(C=>te(l,C.context?.elements.floating));if(te(l,n.select("floatingElement"))||te(l,n.select("domReferenceElement"))||V)return;const x=E?Ce(E.nodesRef.current,D):[];if(x.length>0){let C=!0;if(x.forEach(Z=>{Z.context?.open&&!Z.context.dataRef.current.__outsidePressBubbles&&(C=!1)}),!C)return}n.setOpen(!1,de(er,l)),_()}),be=A(l=>{M()!=="sloppy"||l.pointerType==="touch"||!n.select("open")||!u||te(l,n.select("floatingElement"))||te(l,n.select("domReferenceElement"))||oe(l)}),Ke=A(l=>{if(M()!=="sloppy"||!n.select("open")||!u||te(l,n.select("floatingElement"))||te(l,n.select("domReferenceElement")))return;const I=l.touches[0];I&&(L.current={startTime:Date.now(),startX:I.clientX,startY:I.clientY,dismissOnTouchEnd:!1,dismissOnMouseDown:!0},B.start(1e3,()=>{L.current&&(L.current.dismissOnTouchEnd=!1,L.current.dismissOnMouseDown=!1)}))}),ve=A(l=>{const I=ne(l);function y(){Ke(l),I?.removeEventListener(l.type,y)}I?.addEventListener(l.type,y)}),ee=A(l=>{const I=O.current;if(O.current=!1,B.clear(),l.type==="mousedown"&&L.current&&!L.current.dismissOnMouseDown)return;const y=ne(l);function G(){l.type==="pointerdown"?be(l):oe(l,I),y?.removeEventListener(l.type,G)}y?.addEventListener(l.type,G)}),Ae=A(l=>{if(M()!=="sloppy"||!L.current||te(l,n.select("floatingElement"))||te(l,n.select("domReferenceElement")))return;const I=l.touches[0];if(!I)return;const y=Math.abs(I.clientX-L.current.startX),G=Math.abs(I.clientY-L.current.startY),b=Math.sqrt(y*y+G*G);b>5&&(L.current.dismissOnTouchEnd=!0),b>10&&(oe(l),B.clear(),L.current=null)}),ge=A(l=>{const I=ne(l);function y(){Ae(l),I?.removeEventListener(l.type,y)}I?.addEventListener(l.type,y)}),Et=A(l=>{M()!=="sloppy"||!L.current||te(l,n.select("floatingElement"))||te(l,n.select("domReferenceElement"))||(L.current.dismissOnTouchEnd&&oe(l),B.clear(),L.current=null)}),Ne=A(l=>{const I=ne(l);function y(){Et(l),I?.removeEventListener(l.type,y)}I?.addEventListener(l.type,y)});f.useEffect(()=>{if(!r||!u)return;a.current.__escapeKeyBubbles=k,a.current.__outsidePressBubbles=W;const l=new xe;function I(P){n.setOpen(!1,de(Uo,P))}function y(){l.clear(),X.current=!0}function G(){l.start(Nn()?5:0,()=>{X.current=!1})}const b=H(o);b.addEventListener("pointerdown",K,!0),h&&(b.addEventListener("keydown",ae),b.addEventListener("compositionstart",y),b.addEventListener("compositionend",G)),N&&(b.addEventListener("click",ee,!0),b.addEventListener("pointerdown",ee,!0),b.addEventListener("touchstart",ve,!0),b.addEventListener("touchmove",ge,!0),b.addEventListener("touchend",Ne,!0),b.addEventListener("mousedown",ee,!0));let T=[];return v&&(ue(i)&&(T=Ve(i)),ue(o)&&(T=T.concat(Ve(o))),!ue(s)&&s&&s.contextElement&&(T=T.concat(Ve(s.contextElement)))),T=T.filter(P=>P!==b.defaultView?.visualViewport),T.forEach(P=>{P.addEventListener("scroll",I,{passive:!0})}),()=>{b.removeEventListener("pointerdown",K,!0),h&&(b.removeEventListener("keydown",ae),b.removeEventListener("compositionstart",y),b.removeEventListener("compositionend",G)),N&&(b.removeEventListener("click",ee,!0),b.removeEventListener("pointerdown",ee,!0),b.removeEventListener("touchstart",ve,!0),b.removeEventListener("touchmove",ge,!0),b.removeEventListener("touchend",Ne,!0),b.removeEventListener("mousedown",ee,!0)),T.forEach(P=>{P.removeEventListener("scroll",I)}),l.clear(),O.current=!1}},[a,o,s,i,h,N,r,c,v,u,k,W,ae,oe,ee,be,ve,ge,Ne,K,n]),f.useEffect(_,[N,_]);const ye=f.useMemo(()=>({onKeyDown:ae,...g&&{[bs[m]]:l=>{n.setOpen(!1,de(un,l.nativeEvent))},...m!=="intentional"&&{onClick(l){n.setOpen(!1,de(un,l.nativeEvent))}}}}),[ae,n,g,m]),he=A(l=>{const I=ne(l.nativeEvent);!$(n.select("floatingElement"),I)||l.button!==0||(O.current=!0)}),Ee=A(l=>{!r||!u||l.button!==0||(O.current=!0)}),Se=f.useMemo(()=>({onKeyDown:ae,onPointerDown:he,onMouseDown:he,onMouseUp:he,onClickCapture:Y,onMouseDownCapture(l){Y(),Ee(l)},onPointerDownCapture(l){Y(),Ee(l)},onMouseUpCapture:Y,onTouchEndCapture:Y,onTouchMoveCapture:Y}),[ae,he,Y,Ee]);return f.useMemo(()=>u?{reference:ye,floating:Se,trigger:ye}:{},[u,ye,Se])}const Es={open:F(e=>e.open),domReferenceElement:F(e=>e.domReferenceElement),referenceElement:F(e=>e.positionReference??e.referenceElement),floatingElement:F(e=>e.floatingElement),floatingId:F(e=>e.floatingId)};class ar extends Pn{constructor(t){const{nested:n,noEmit:r,onOpenChange:o,triggerElements:s,...i}=t;super({...i,positionReference:i.referenceElement,domReferenceElement:i.referenceElement},{onOpenChange:o,dataRef:{current:{}},events:Zn(),nested:n,noEmit:r,triggerElements:s},Es)}setOpen=(t,n)=>{if((!t||!this.state.open||So(n.event))&&(this.context.dataRef.current.openEvent=t?n.event:void 0),!this.context.noEmit){const r={open:t,reason:n.reason,nativeEvent:n.event,nested:this.context.nested,triggerElement:n.trigger};this.context.events.emit("openchange",r)}this.context.onOpenChange?.(t,n)}}function Ss(e,t=!1,n=!1){const[r,o]=f.useState(e&&t?"idle":void 0),[s,i]=f.useState(e);return e&&!s&&(i(!0),o("starting")),!e&&s&&r!=="ending"&&!n&&o("ending"),!e&&!s&&r==="ending"&&o(void 0),U(()=>{if(!e&&s&&r!=="ending"&&n){const c=se.request(()=>{o("ending")});return()=>{se.cancel(c)}}},[e,s,r,n]),U(()=>{if(!e||t)return;const c=se.request(()=>{o(void 0)});return()=>{se.cancel(c)}},[t,e]),U(()=>{if(!e||!t)return;e&&s&&r!=="idle"&&o("starting");const c=se.request(()=>{o("idle")});return()=>{se.cancel(c)}},[t,e,s,o,r]),f.useMemo(()=>({mounted:s,setMounted:i,transitionStatus:r}),[s,r])}let _e=(function(e){return e.startingStyle="data-starting-style",e.endingStyle="data-ending-style",e})({});const Rs={[_e.startingStyle]:""},ws={[_e.endingStyle]:""},Ht={transitionStatus(e){return e==="starting"?Rs:e==="ending"?ws:null}};function Cs(e,t=!1,n=!0){const r=An();return A((o,s=null)=>{r.cancel();function i(){_t.flushSync(o)}const c=ce(e);if(c==null)return;const a=c;if(typeof a.getAnimations!="function"||globalThis.BASE_UI_ANIMATIONS_DISABLED)o();else{let u=function(){const d=_e.startingStyle;if(!a.hasAttribute(d)){r.request(h);return}const p=new MutationObserver(()=>{a.hasAttribute(d)||(p.disconnect(),h())});p.observe(a,{attributes:!0,attributeFilter:[d]}),s?.addEventListener("abort",()=>p.disconnect(),{once:!0})},h=function(){Promise.all(a.getAnimations().map(d=>d.finished)).then(()=>{s?.aborted||i()}).catch(()=>{const d=a.getAnimations();if(n){if(s?.aborted)return;i()}else d.length>0&&d.some(p=>p.pending||p.playState!=="finished")&&h()})};if(t){u();return}r.request(h)}})}function cr(e){const{enabled:t=!0,open:n,ref:r,onComplete:o}=e,s=A(o),i=Cs(r,n,!1);f.useEffect(()=>{if(!t)return;const c=new AbortController;return i(s,c.signal),()=>{c.abort()}},[t,n,s,i])}function Ts(e,t){const n=f.useRef(null),r=f.useRef(null);return f.useCallback(o=>{if(e!==void 0){if(n.current!==null){const s=n.current,i=r.current,c=t.context.triggerElements.getById(s);i&&c===i&&t.context.triggerElements.delete(s),n.current=null,r.current=null}o!==null&&(n.current=e,r.current=o,t.context.triggerElements.add(e,o))}},[t,e])}function Di(e,t,n,r){const o=n.useState("isMountedByTrigger",e),s=Ts(e,n),i=A(c=>{if(s(c),!c||!n.select("open"))return;const a=n.select("activeTriggerId");if(a===e){n.update({activeTriggerElement:c,...r});return}a==null&&n.update({activeTriggerId:e,activeTriggerElement:c,...r})});return U(()=>{o&&n.update({activeTriggerElement:t.current,...r})},[o,n,t,...Object.values(r)]),{registerTrigger:i,isMountedByThisTrigger:o}}function xs(e){const t=e.useState("open");U(()=>{if(t&&!e.select("activeTriggerId")&&e.context.triggerElements.size===1){const n=e.context.triggerElements.entries().next();if(!n.done){const[r,o]=n.value;e.update({activeTriggerId:r,activeTriggerElement:o})}}},[t,e])}function Is(e,t,n){const{mounted:r,setMounted:o,transitionStatus:s}=Ss(e);t.useSyncedValues({mounted:r,transitionStatus:s});const i=A(()=>{o(!1),t.update({activeTriggerId:null,activeTriggerElement:null,mounted:!1}),n?.(),t.context.onOpenChangeComplete?.(!1)}),c=t.useState("preventUnmountingOnClose");return cr({enabled:!c,open:e,ref:t.context.popupRef,onComplete(){e||i()}}),{forceUnmount:i,transitionStatus:s}}class ur{constructor(){this.elements=new Set,this.idMap=new Map}add(t,n){const r=this.idMap.get(t);r!==n&&(r!==void 0&&this.elements.delete(r),this.elements.add(n),this.idMap.set(t,n))}delete(t){const n=this.idMap.get(t);n&&(this.elements.delete(n),this.idMap.delete(t))}hasElement(t){return this.elements.has(t)}hasMatchingElement(t){for(const n of this.elements)if(t(n))return!0;return!1}getById(t){return this.idMap.get(t)}entries(){return this.idMap.entries()}get size(){return this.idMap.size}}function Os(){return new ar({open:!1,floatingElement:null,referenceElement:null,triggerElements:new ur,floatingId:"",nested:!1,noEmit:!1,onOpenChange:void 0})}function ks(){return{open:!1,mounted:!1,transitionStatus:"idle",floatingRootContext:Os(),preventUnmountingOnClose:!1,payload:void 0,activeTriggerId:null,activeTriggerElement:null,popupElement:null,positionerElement:null,activeTriggerProps:Q,inactiveTriggerProps:Q,popupProps:Q}}const Ps={open:F(e=>e.open),mounted:F(e=>e.mounted),transitionStatus:F(e=>e.transitionStatus),floatingRootContext:F(e=>e.floatingRootContext),preventUnmountingOnClose:F(e=>e.preventUnmountingOnClose),payload:F(e=>e.payload),activeTriggerId:F(e=>e.activeTriggerId),activeTriggerElement:F(e=>e.mounted?e.activeTriggerElement:null),isTriggerActive:F((e,t)=>t!==void 0&&e.activeTriggerId===t),isOpenedByTrigger:F((e,t)=>t!==void 0&&e.activeTriggerId===t&&e.open),isMountedByTrigger:F((e,t)=>t!==void 0&&e.activeTriggerId===t&&e.mounted),triggerProps:F((e,t)=>t?e.activeTriggerProps:e.inactiveTriggerProps),popupProps:F(e=>e.popupProps),popupElement:F(e=>e.popupElement),positionerElement:F(e=>e.positionerElement)};function Ms(e){const{popupStore:t,noEmit:n=!1,treatPopupAsFloatingElement:r=!1,onOpenChange:o}=e,s=qe(),i=vt()!=null,c=t.useState("open"),a=t.useState("activeTriggerElement"),u=t.useState(r?"popupElement":"positionerElement"),h=t.context.triggerElements,d=fe(()=>new ar({open:c,referenceElement:a,floatingElement:u,triggerElements:h,onOpenChange:o,floatingId:s,nested:i,noEmit:n})).current;return U(()=>{const p={open:c,floatingId:s,referenceElement:a,floatingElement:u};ue(a)&&(p.domReferenceElement=a),d.state.positionReference===d.state.referenceElement&&(p.positionReference=a),d.update(p)},[c,s,a,u,d]),d.context.onOpenChange=o,d.context.nested=i,d.context.noEmit=n,d}function As(e=[]){const t=e.map(u=>u?.reference),n=e.map(u=>u?.floating),r=e.map(u=>u?.item),o=e.map(u=>u?.trigger),s=f.useCallback(u=>rt(u,e,"reference"),t),i=f.useCallback(u=>rt(u,e,"floating"),n),c=f.useCallback(u=>rt(u,e,"item"),r),a=f.useCallback(u=>rt(u,e,"trigger"),o);return f.useMemo(()=>({getReferenceProps:s,getFloatingProps:i,getItemProps:c,getTriggerProps:a}),[s,i,c,a])}function rt(e,t,n){const r=new Map,o=n==="item",s={};n==="floating"&&(s.tabIndex=-1,s[Ft]="");for(const i in e)o&&e&&(i===jn||i===Vn)||(s[i]=e[i]);for(let i=0;i<t.length;i+=1){let c;const a=t[i]?.[n];typeof a=="function"?c=e?a(e):null:c=a,c&&hn(s,c,o,r)}return hn(s,e,o,r),s}function hn(e,t,n,r){for(const o in t){const s=t[o];n&&(o===jn||o===Vn)||(o.startsWith("on")?(r.has(o)||r.set(o,[]),typeof s=="function"&&(r.get(o)?.push(s),e[o]=(...i)=>r.get(o)?.map(c=>c(...i)).find(c=>c!==void 0))):e[o]=s)}}const Ns=new Map([["select","listbox"],["combobox","listbox"],["label",!1]]);function Ls(e,t={}){const n="rootStore"in e?e.rootStore:e,r=n.useState("open"),o=n.useState("floatingId"),s=n.useState("domReferenceElement"),i=n.useState("floatingElement"),{enabled:c=!0,role:a="dialog"}=t,u=qe(),h=s?.id||u,d=f.useMemo(()=>Dt(i)?.id||o,[i,o]),p=Ns.get(a)??a,m=vt()!=null,v=f.useMemo(()=>p==="tooltip"||a==="label"?Q:{"aria-haspopup":p==="alertdialog"?"dialog":p,"aria-expanded":"false",...p==="listbox"&&{role:"combobox"},...p==="menu"&&m&&{role:"menuitem"},...a==="select"&&{"aria-autocomplete":"none"},...a==="combobox"&&{"aria-autocomplete":"list"}},[p,m,a]),w=f.useMemo(()=>p==="tooltip"||a==="label"?{[`aria-${a==="label"?"labelledby":"describedby"}`]:r?d:void 0}:{...v,"aria-expanded":r?"true":"false","aria-controls":r?d:void 0,...p==="menu"&&{id:h}},[p,d,r,h,a,v]),R=f.useMemo(()=>{const S={id:d,...p&&{role:p}};return p==="tooltip"||a==="label"?S:{...S,...p==="menu"&&{"aria-labelledby":h}}},[p,d,h,a]),E=f.useCallback(({active:S,selected:N})=>{const O={role:"option",...S&&{id:`${d}-fui-option`}};switch(a){case"select":case"combobox":return{...O,"aria-selected":N}}return{}},[d,a]);return f.useMemo(()=>c?{reference:w,floating:R,item:E,trigger:v}:{},[c,w,R,v,E])}function Fs(e){return qe(e,"base-ui")}function Ds(e){const t=f.useRef(""),n=f.useCallback(o=>{o.defaultPrevented||(t.current=o.pointerType,e(o,o.pointerType))},[e]);return{onClick:f.useCallback(o=>{if(o.detail===0){e(o,"keyboard");return}"pointerType"in o&&e(o,o.pointerType),e(o,t.current),t.current=""},[e]),onPointerDown:n}}function Ws(e){const[t,n]=f.useState(null),r=A((c,a)=>{e||n(a||(Wn?"touch":""))}),o=f.useCallback(()=>{n(null)},[]),{onClick:s,onPointerDown:i}=Ds(r);return f.useMemo(()=>({openMethod:t,reset:o,triggerProps:{onClick:s,onPointerDown:i}}),[t,o,s,i])}let re=(function(e){return e.open="data-open",e.closed="data-closed",e[e.startingStyle=_e.startingStyle]="startingStyle",e[e.endingStyle=_e.endingStyle]="endingStyle",e.anchorHidden="data-anchor-hidden",e})({}),$t=(function(e){return e.popupOpen="data-popup-open",e.pressed="data-pressed",e})({});const js={[$t.popupOpen]:""},Vs={[$t.popupOpen]:"",[$t.pressed]:""},Bs={[re.open]:""},$s={[re.closed]:""},_s={[re.anchorHidden]:""},Wi={open(e){return e?js:null}},ji={open(e){return e?Vs:null}},Kt={open(e){return e?Bs:$s},anchorHidden(e){return e?_s:null}};function Us(e){return Ut(19)?e:e?"true":void 0}let mn={},bn={},vn="";function Ys(e){if(typeof document>"u")return!1;const t=Ge(e);return ie(t).innerWidth-t.documentElement.clientWidth>0}function qs(e){if(!(typeof CSS<"u"&&CSS.supports&&CSS.supports("scrollbar-gutter","stable"))||typeof document>"u")return!1;const r=Ge(e).documentElement,o={scrollbarGutter:r.style.scrollbarGutter,overflowY:r.style.overflowY};r.style.scrollbarGutter="stable",r.style.overflowY="scroll";const s=r.offsetWidth;r.style.overflowY="hidden";const i=r.offsetWidth;return Object.assign(r.style,o),s===i}function Gs(e){const t=Ge(e),n=t.documentElement,r=t.body,o=mt(n)?n:r,s=o.style.overflow;return o.style.overflow="hidden",()=>{o.style.overflow=s}}function Hs(e){const t=Ge(e),n=t.documentElement,r=t.body,o=ie(n);let s=0,i=0,c=!1;const a=se.create();if(ao&&(o.visualViewport?.scale??1)!==1)return()=>{};function u(){const p=o.getComputedStyle(n),g=o.getComputedStyle(r),w=(p.scrollbarGutter||"").includes("both-edges")?"stable both-edges":"stable";s=n.scrollTop,i=n.scrollLeft,mn={scrollbarGutter:n.style.scrollbarGutter,overflowY:n.style.overflowY,overflowX:n.style.overflowX},vn=n.style.scrollBehavior,bn={position:r.style.position,height:r.style.height,width:r.style.width,boxSizing:r.style.boxSizing,overflowY:r.style.overflowY,overflowX:r.style.overflowX,scrollBehavior:r.style.scrollBehavior};const R=n.scrollHeight>n.clientHeight,E=n.scrollWidth>n.clientWidth,S=p.overflowY==="scroll"||g.overflowY==="scroll",N=p.overflowX==="scroll"||g.overflowX==="scroll",O=Math.max(0,o.innerWidth-r.clientWidth),k=Math.max(0,o.innerHeight-r.clientHeight),W=parseFloat(g.marginTop)+parseFloat(g.marginBottom),L=parseFloat(g.marginLeft)+parseFloat(g.marginRight),B=mt(n)?n:r;if(c=qs(e),c){n.style.scrollbarGutter=w,B.style.overflowY="hidden",B.style.overflowX="hidden";return}Object.assign(n.style,{scrollbarGutter:w,overflowY:"hidden",overflowX:"hidden"}),(R||S)&&(n.style.overflowY="scroll"),(E||N)&&(n.style.overflowX="scroll"),Object.assign(r.style,{position:"relative",height:W||k?`calc(100dvh - ${W+k}px)`:"100dvh",width:L||O?`calc(100vw - ${L+O}px)`:"100vw",boxSizing:"border-box",overflow:"hidden",scrollBehavior:"unset"}),r.scrollTop=s,r.scrollLeft=i,n.setAttribute("data-base-ui-scroll-locked",""),n.style.scrollBehavior="unset"}function h(){Object.assign(n.style,mn),Object.assign(r.style,bn),c||(n.scrollTop=s,n.scrollLeft=i,n.removeAttribute("data-base-ui-scroll-locked"),n.style.scrollBehavior=vn)}function d(){h(),a.request(u)}return u(),o.addEventListener("resize",d),()=>{a.cancel(),h(),typeof o.removeEventListener=="function"&&o.removeEventListener("resize",d)}}class Ks{lockCount=0;restore=null;timeoutLock=xe.create();timeoutUnlock=xe.create();acquire(t){return this.lockCount+=1,this.lockCount===1&&this.restore===null&&this.timeoutLock.start(0,()=>this.lock(t)),this.release}release=()=>{this.lockCount-=1,this.lockCount===0&&this.restore&&this.timeoutUnlock.start(0,this.unlock)};unlock=()=>{this.lockCount===0&&this.restore&&(this.restore?.(),this.restore=null)};lock(t){if(this.lockCount===0||this.restore!==null)return;const r=Ge(t).documentElement,o=ie(r).getComputedStyle(r).overflowY;if(o==="hidden"||o==="clip"){this.restore=kn;return}const s=Wn||!Ys(t);this.restore=s?Gs(t):Hs(t)}}const zs=new Ks;function Xs(e=!0,t=null){U(()=>{if(e)return zs.acquire(t)},[e,t])}const Zs=f.forwardRef(function(t,n){const{cutout:r,...o}=t;let s;if(r){const i=r?.getBoundingClientRect();s=`polygon(
2
+ 0% 0%,
3
+ 100% 0%,
4
+ 100% 100%,
5
+ 0% 100%,
6
+ 0% 0%,
7
+ ${i.left}px ${i.top}px,
8
+ ${i.left}px ${i.bottom}px,
9
+ ${i.right}px ${i.bottom}px,
10
+ ${i.right}px ${i.top}px,
11
+ ${i.left}px ${i.top}px
12
+ )`}return q.jsx("div",{ref:n,role:"presentation","data-base-ui-inert":"",...o,style:{position:"fixed",inset:0,userSelect:"none",WebkitUserSelect:"none",clipPath:s}})}),lr="ArrowUp",fr="ArrowDown",dr="ArrowLeft",pr="ArrowRight",gr="Home",hr="End",Js=new Set([dr,pr]),Qs=new Set([lr,fr]),ei=new Set([...Js,...Qs]);[...ei];const ti=new Set([lr,fr,dr,pr,gr,hr]),mr=f.createContext(void 0);function Pe(e){const t=f.useContext(mr);if(e===!1&&t===void 0)throw new Error(gt(27));return t}const ni={...Kt,...Ht},Vi=f.forwardRef(function(t,n){const{render:r,className:o,forceRender:s=!1,...i}=t,{store:c}=Pe(),a=c.useState("open"),u=c.useState("nested"),h=c.useState("mounted"),d=c.useState("transitionStatus"),p=f.useMemo(()=>({open:a,transitionStatus:d}),[a,d]);return He("div",t,{state:p,ref:[c.context.backdropRef,n],stateAttributesMapping:ni,props:[{role:"presentation",hidden:!h,style:{userSelect:"none",WebkitUserSelect:"none"}},i],enabled:s||!u})});let ri=(function(e){return e.nestedDialogs="--nested-dialogs",e})({}),oi=(function(e){return e[e.open=re.open]="open",e[e.closed=re.closed]="closed",e[e.startingStyle=re.startingStyle]="startingStyle",e[e.endingStyle=re.endingStyle]="endingStyle",e.nested="data-nested",e.nestedDialogOpen="data-nested-dialog-open",e})({});const br=f.createContext(void 0);function vr(){const e=f.useContext(br);if(e===void 0)throw new Error(gt(26));return e}const si={...Kt,...Ht,nestedDialogOpen(e){return e?{[oi.nestedDialogOpen]:""}:null}},Bi=f.forwardRef(function(t,n){const{className:r,finalFocus:o,initialFocus:s,render:i,...c}=t,{store:a}=Pe(),u=a.useState("descriptionElementId"),h=a.useState("disablePointerDismissal"),d=a.useState("floatingRootContext"),p=a.useState("popupProps"),g=a.useState("modal"),m=a.useState("mounted"),v=a.useState("nested"),w=a.useState("nestedOpenDialogCount"),R=a.useState("open"),E=a.useState("openMethod"),S=a.useState("titleElementId"),N=a.useState("transitionStatus"),O=a.useState("role");vr(),cr({open:R,ref:a.context.popupRef,onComplete(){R&&a.context.onOpenChangeComplete?.(!0)}});function k(_){return _==="touch"?a.context.popupRef.current:!0}const W=s===void 0?k:s,L=w>0,B=f.useMemo(()=>({open:R,nested:v,transitionStatus:N,nestedDialogOpen:L}),[R,v,N,L]),j=He("div",t,{state:B,props:[p,{"aria-labelledby":S??void 0,"aria-describedby":u??void 0,role:O,tabIndex:-1,hidden:!m,onKeyDown(_){ti.has(_.key)&&_.stopPropagation()},style:{[ri.nestedDialogs]:w}},c],ref:[n,a.context.popupRef,a.useStateSetter("popupElement")],stateAttributesMapping:si});return q.jsx(ms,{context:d,openInteractionType:E,disabled:!m,closeOnFocusOut:!h,initialFocus:W,returnFocus:o,modal:g!==!1,restoreFocus:"popup",children:j})}),$i=f.forwardRef(function(t,n){const{keepMounted:r=!1,...o}=t,{store:s}=Pe(),i=s.useState("mounted"),c=s.useState("modal"),a=s.useState("open");return i||r?q.jsx(br.Provider,{value:r,children:q.jsxs(fs,{ref:n,...o,children:[i&&c===!0&&q.jsx(Zs,{ref:s.context.internalBackdropRef,inert:Us(!a)}),t.children]})}):null});function ii(e){const{store:t,parentContext:n,actionsRef:r}=e,o=t.useState("open"),s=t.useState("disablePointerDismissal"),i=t.useState("modal"),c=t.useState("popupElement"),{openMethod:a,triggerProps:u,reset:h}=Ws(o);xs(t);const{forceUnmount:d}=Is(o,t,()=>{h()}),p=A(j=>{const _=de(j);return _.preventUnmountOnClose=()=>{t.set("preventUnmountingOnClose",!0)},_}),g=f.useCallback(()=>{t.setOpen(!1,p(Go))},[t,p]);f.useImperativeHandle(r,()=>({unmount:d,close:g}),[d,g]);const m=Ms({popupStore:t,onOpenChange:t.setOpen,treatPopupAsFloatingElement:!0,noEmit:!0}),[v,w]=f.useState(0),R=v===0,E=Ls(m),S=ys(m,{outsidePressEvent(){return t.context.internalBackdropRef.current||t.context.backdropRef.current?"intentional":{mouse:i==="trap-focus"?"sloppy":"intentional",touch:"sloppy"}},outsidePress(j){if("button"in j&&j.button!==0||"touches"in j&&j.touches.length!==1)return!1;const _=ne(j);if(R&&!s){const X=_;return i&&(t.context.internalBackdropRef.current||t.context.backdropRef.current)?t.context.internalBackdropRef.current===X||t.context.backdropRef.current===X||$(X,c)&&!X?.hasAttribute("data-base-ui-portal"):!0}return!1},escapeKey:R});Xs(o&&i===!0,c);const{getReferenceProps:N,getFloatingProps:O,getTriggerProps:k}=As([E,S]);t.useContextCallback("onNestedDialogOpen",j=>{w(j+1)}),t.useContextCallback("onNestedDialogClose",()=>{w(0)}),f.useEffect(()=>(n?.onNestedDialogOpen&&o&&n.onNestedDialogOpen(v),n?.onNestedDialogClose&&!o&&n.onNestedDialogClose(),()=>{n?.onNestedDialogClose&&o&&n.onNestedDialogClose()}),[o,n,v]);const W=f.useMemo(()=>N(u),[N,u]),L=f.useMemo(()=>k(u),[k,u]),B=f.useMemo(()=>O(),[O]);t.useSyncedValues({openMethod:a,activeTriggerProps:W,inactiveTriggerProps:L,popupProps:B,floatingRootContext:m,nestedOpenDialogCount:v})}const ai={...Ps,modal:F(e=>e.modal),nested:F(e=>e.nested),nestedOpenDialogCount:F(e=>e.nestedOpenDialogCount),disablePointerDismissal:F(e=>e.disablePointerDismissal),openMethod:F(e=>e.openMethod),descriptionElementId:F(e=>e.descriptionElementId),titleElementId:F(e=>e.titleElementId),viewportElement:F(e=>e.viewportElement),role:F(e=>e.role)};class ci extends Pn{constructor(t){super(ui(t),{popupRef:f.createRef(),backdropRef:f.createRef(),internalBackdropRef:f.createRef(),triggerElements:new ur,onOpenChange:void 0,onOpenChangeComplete:void 0},ai)}setOpen=(t,n)=>{if(n.preventUnmountOnClose=()=>{this.set("preventUnmountingOnClose",!0)},!t&&n.trigger==null&&this.state.activeTriggerId!=null&&(n.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(t,n),n.isCanceled)return;const r={open:t,nativeEvent:n.event,reason:n.reason,nested:this.state.nested};this.state.floatingRootContext.context.events?.emit("openchange",r);const o={open:t},s=n.trigger?.id??null;(s||t)&&(o.activeTriggerId=s,o.activeTriggerElement=n.trigger??null),this.update(o)}}function ui(e={}){return{...ks(),modal:!0,disablePointerDismissal:!1,popupElement:null,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,role:"dialog",...e}}function _i(e){const{children:t,open:n,defaultOpen:r=!1,onOpenChange:o,onOpenChangeComplete:s,disablePointerDismissal:i=!1,modal:c=!0,actionsRef:a,handle:u,triggerId:h,defaultTriggerId:d=null}=e,p=Pe(!0),g=!!p,m=fe(()=>u?.store??new ci({open:n??r,activeTriggerId:h!==void 0?h:d,modal:c,disablePointerDismissal:i,nested:g})).current;m.useControlledProp("open",n,r),m.useControlledProp("activeTriggerId",h,d),m.useSyncedValues({disablePointerDismissal:i,nested:g,modal:c}),m.useContextCallback("onOpenChange",o),m.useContextCallback("onOpenChangeComplete",s);const v=m.useState("payload");ii({store:m,actionsRef:a,parentContext:p?.store.context});const w=f.useMemo(()=>({store:m}),[m]);return q.jsx(mr.Provider,{value:w,children:typeof t=="function"?t({payload:v}):t})}let yn=(function(e){return e[e.open=re.open]="open",e[e.closed=re.closed]="closed",e[e.startingStyle=re.startingStyle]="startingStyle",e[e.endingStyle=re.endingStyle]="endingStyle",e.nested="data-nested",e.nestedDialogOpen="data-nested-dialog-open",e})({});const li={...Kt,...Ht,nested(e){return e?{[yn.nested]:""}:null},nestedDialogOpen(e){return e?{[yn.nestedDialogOpen]:""}:null}},Ui=f.forwardRef(function(t,n){const{className:r,render:o,children:s,...i}=t,c=vr(),{store:a}=Pe(),u=a.useState("open"),h=a.useState("nested"),d=a.useState("transitionStatus"),p=a.useState("nestedOpenDialogCount"),g=a.useState("mounted"),m=p>0,v=f.useMemo(()=>({open:u,nested:h,transitionStatus:d,nestedDialogOpen:m}),[u,h,d,m]);return He("div",t,{enabled:c||g,state:v,ref:[n,a.useStateSetter("viewportElement")],stateAttributesMapping:li,props:[{role:"presentation",hidden:!g,children:s},i]})}),Yi=f.forwardRef(function(t,n){const{render:r,className:o,id:s,...i}=t,{store:c}=Pe(),a=Fs(s);return c.useSyncedValueWithCleanup("titleElementId",a),He("h2",t,{ref:n,props:[{id:a},i]})});export{er as $,yi as A,ne as B,tr as C,_i as D,yo as E,Eo as F,it as G,pi as H,gt as I,Q as J,Fs as K,ue as L,F as M,kn as N,Ss as O,Ws as P,fe as Q,Xr as R,cr as S,ys as T,As as U,Qo as V,ot as W,di as X,wn as Y,Uo as Z,We as _,He as a,Ri as a$,ji as a0,Ge as a1,Li as a2,Wi as a3,fs as a4,ki as a5,Xs as a6,Zs as a7,Us as a8,Kt as a9,qe as aA,ar as aB,ur as aC,dt as aD,go as aE,Yo as aF,xe as aG,Ce as aH,os as aI,Oi as aJ,Pn as aK,Ps as aL,qo as aM,Ii as aN,Mn as aO,ks as aP,xi as aQ,xs as aR,Is as aS,Go as aT,Ms as aU,Ls as aV,Di as aW,$o as aX,pt as aY,wi as aZ,Be as a_,An as aa,ie as ab,ao as ac,ms as ad,Fi as ae,Ht as af,ti as ag,Mi as ah,Si as ai,So as aj,un as ak,mo as al,Ve as am,to as an,io as ao,bt as ap,Nn as aq,no as ar,at as as,je as at,gi as au,so as av,hi as aw,Ue as ax,mt as ay,mi as az,Ai as b,Kn as b0,Pi as b1,Ci as b2,Cs as b3,Ti as b4,de as c,$i as d,Vi as e,Ui as f,Bi as g,Yi as h,Ei as i,bi as j,vi as k,Dt as l,Ze as m,vt as n,qt as o,U as p,nn as q,A as r,bo as s,Pt as t,Pe as u,we as v,H as w,$ as x,Ni as y,le as z};
@@ -1 +1 @@
1
- import{C as o,G as d}from"./main-Ch22JpOj.js";import{u as r}from"./use-reduced-motion-lvUJO2cx.js";function x({children:i,delay:t=0,duration:n=.35,y:e=12,className:s="",once:a=!0}){return r()?o.jsx("div",{className:s,children:i}):o.jsx(d.div,{initial:{opacity:0,y:e},animate:{opacity:1,y:0},transition:{duration:n,delay:t,ease:[.16,1,.3,1]},className:s,children:i})}function f({children:i,staggerDelay:t=.1,initialDelay:n=0,className:e=""}){return r()?o.jsx("div",{className:e,children:i}):o.jsx(d.div,{initial:"hidden",animate:"visible",variants:{hidden:{},visible:{transition:{staggerChildren:t,delayChildren:n}}},className:e,children:i})}function h({children:i,className:t="",y:n=12}){return r()?o.jsx("div",{className:t,children:i}):o.jsx(d.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{x as F,f as S,h as a};
1
+ import{C as o,D as d}from"./main-CrjJx0KR.js";import{u as r}from"./use-reduced-motion-DZ7zH0oK.js";function x({children:i,delay:t=0,duration:n=.35,y:e=12,className:s="",once:a=!0}){return r()?o.jsx("div",{className:s,children:i}):o.jsx(d.div,{initial:{opacity:0,y:e},animate:{opacity:1,y:0},transition:{duration:n,delay:t,ease:[.16,1,.3,1]},className:s,children:i})}function f({children:i,staggerDelay:t=.1,initialDelay:n=0,className:e=""}){return r()?o.jsx("div",{className:e,children:i}):o.jsx(d.div,{initial:"hidden",animate:"visible",variants:{hidden:{},visible:{transition:{staggerChildren:t,delayChildren:n}}},className:e,children:i})}function h({children:i,className:t="",y:n=12}){return r()?o.jsx("div",{className:t,children:i}):o.jsx(d.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{x as F,f as S,h as a};
@@ -1 +1 @@
1
- import{r as s,aj as c,C as t}from"./main-Ch22JpOj.js";function u({repo:r="mm7894215/TokenTracker"}){const[a,o]=s.useState(null);return s.useEffect(()=>{if(typeof window>"u")return;const n=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:n,screenshotCapture:i})&&fetch(`https://api.github.com/repos/${r}`).then(e=>e.json()).then(e=>{e&&typeof e.stargazers_count=="number"&&o(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:"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{u as H};
1
+ import{r as s,ai as c,C as t}from"./main-CrjJx0KR.js";function u({repo:r="mm7894215/TokenTracker"}){const[a,o]=s.useState(null);return s.useEffect(()=>{if(typeof window>"u")return;const n=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:n,screenshotCapture:i})&&fetch(`https://api.github.com/repos/${r}`).then(e=>e.json()).then(e=>{e&&typeof e.stargazers_count=="number"&&o(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:"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{u as H};
@@ -1,8 +1,8 @@
1
- import{r as ce,B as t,C as n}from"./main-Ch22JpOj.js";const $="/proxy/ipcheck",le="claude_ip_history",be=6,Ge=["CN","HK","MO","RU","KP","IR","SY","CU","BY","VE"],Ue={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"},ze={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"]},We={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(d){return!!d&&d.includes(":")}function Be(d){return!Z(d)||d.length<=20?d:d.substring(0,18)+"..."}function v(d){return d==null?"":String(d).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function W(d){if(!d||!/^[a-zA-Z]{2}$/.test(d))return"";const k=d.toLowerCase();return`<img src="${k==="cn"?`${$}/favicons/cn.png`:k==="tw"?`${$}/favicons/flags/tw.png`:`${$}/favicons/flags/${k}.png`}" alt="${k}" class="inline-block h-4 w-auto rounded-sm align-[-2px]" onerror="this.onerror=null;this.style.display='none'">`}function Ke(d){if(!d)return"";const k=String(d).trim();if(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(k)){const T=k.split(".");return T[0]+"."+T[1]+".*.*"}if(k.includes("…")){const T=k.lastIndexOf("…");return k.substring(0,T+1)+"*"}if(k.includes(":")){const T=k.split(":");if(T.length>=2)return T[0]+":"+T[1]+":*"}return k}function Fe(d){if(!d)return null;try{const T=new Intl.DateTimeFormat("en-US",{timeZone:d,timeZoneName:"longOffset"}).formatToParts(new Date).find(J=>J.type==="timeZoneName");if(!T)return null;if(T.value==="GMT"||T.value==="UTC")return 0;const N=T.value.match(/GMT([+-])(\d{1,2}):?(\d{0,2})/);return N?(N[1]==="+"?1:-1)*(parseInt(N[2],10)*60+parseInt(N[3]||"0",10)):null}catch{return null}}function Ve(d){if(d==null)return"";const k=d>=0?"+":"-",T=Math.abs(d),N=Math.floor(T/60),O=T%60;return"UTC"+k+N+(O?":"+String(O).padStart(2,"0"):"")}const we={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 d=ce.useRef(null),[k,T]=ce.useState(!1);ce.useEffect(()=>{const A=d.current;if(!A)return;const b=a=>A.querySelector(`#${a}`);let ae=!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 g(a,i="neutral"){return`<span class="inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${we[i]||we.neutral}">${a}</span>`}function q(a,i,s){return a===!0?g(i,"danger"):a===!1?g(s,"safe"):g(e.unknown,"neutral")}function ue(a){if(!a)return`<span class="text-oai-gray-400 dark:text-oai-gray-500">${v(e.failed)}</span>`;const i=v(a);return Z(a)?`<span class="ip-mask-target truncate" title="${i}">${v(Be(a))}</span>`:`<span class="ip-mask-target">${i}</span>`}function B(a){return a?`<span class="ip-link">${ue(a)}</span>`:`<span class="text-oai-gray-400 dark:text-oai-gray-500">${v(e.failed)}</span>`}function f(a,i){return`<div class="flex items-center justify-between py-3 gap-3">
1
+ import{r as ce,B as t,C as n}from"./main-CrjJx0KR.js";const Ge=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),$=Ge?"/proxy/ipcheck":"https://ip.net.coffee",le="claude_ip_history",be=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(d){return!!d&&d.includes(":")}function Ke(d){return!Z(d)||d.length<=20?d:d.substring(0,18)+"..."}function v(d){return d==null?"":String(d).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function W(d){if(!d||!/^[a-zA-Z]{2}$/.test(d))return"";const k=d.toLowerCase();return`<img src="${k==="cn"?`${$}/favicons/cn.png`:k==="tw"?`${$}/favicons/flags/tw.png`:`${$}/favicons/flags/${k}.png`}" alt="${k}" class="inline-block h-4 w-auto rounded-sm align-[-2px]" onerror="this.onerror=null;this.style.display='none'">`}function Fe(d){if(!d)return"";const k=String(d).trim();if(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(k)){const _=k.split(".");return _[0]+"."+_[1]+".*.*"}if(k.includes("…")){const _=k.lastIndexOf("…");return k.substring(0,_+1)+"*"}if(k.includes(":")){const _=k.split(":");if(_.length>=2)return _[0]+":"+_[1]+":*"}return k}function Ve(d){if(!d)return null;try{const _=new Intl.DateTimeFormat("en-US",{timeZone:d,timeZoneName:"longOffset"}).formatToParts(new Date).find(J=>J.type==="timeZoneName");if(!_)return null;if(_.value==="GMT"||_.value==="UTC")return 0;const N=_.value.match(/GMT([+-])(\d{1,2}):?(\d{0,2})/);return N?(N[1]==="+"?1:-1)*(parseInt(N[2],10)*60+parseInt(N[3]||"0",10)):null}catch{return null}}function Ye(d){if(d==null)return"";const k=d>=0?"+":"-",_=Math.abs(d),N=Math.floor(_/60),O=_%60;return"UTC"+k+N+(O?":"+String(O).padStart(2,"0"):"")}const we={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 qe(){const d=ce.useRef(null),[k,_]=ce.useState(!1);ce.useEffect(()=>{const L=d.current;if(!L)return;const b=a=>L.querySelector(`#${a}`);let ae=!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 g(a,i="neutral"){return`<span class="inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${we[i]||we.neutral}">${a}</span>`}function q(a,i,s){return a===!0?g(i,"danger"):a===!1?g(s,"safe"):g(e.unknown,"neutral")}function ue(a){if(!a)return`<span class="text-oai-gray-400 dark:text-oai-gray-500">${v(e.failed)}</span>`;const i=v(a);return Z(a)?`<span class="ip-mask-target truncate" title="${i}">${v(Ke(a))}</span>`:`<span class="ip-mask-target">${i}</span>`}function B(a){return a?`<span class="ip-link">${ue(a)}</span>`:`<span class="text-oai-gray-400 dark:text-oai-gray-500">${v(e.failed)}</span>`}function f(a,i){return`<div class="flex items-center justify-between py-3 gap-3">
2
2
  <span class="text-sm text-oai-gray-500 dark:text-oai-gray-400 shrink-0">${a}</span>
3
3
  <span class="text-sm font-medium text-oai-black dark:text-white text-right min-w-0">${i===void 0?'<span class="block h-3 w-20 rounded bg-oai-gray-200 dark:bg-oai-gray-800 animate-pulse"></span>':i}</span>
4
- </div>`}function Y(a){return a.map(i=>f(i,void 0)).join("")}function ne(){return'<div class="h-7 w-44 rounded bg-oai-gray-200 dark:bg-oai-gray-800 animate-pulse"></div>'}function ie(){return'<div class="h-3 w-52 mt-2 rounded bg-oai-gray-200 dark:bg-oai-gray-800 animate-pulse"></div>'}function Te(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 w={ip:null,ippure:null,ipapis:null,claudeGeo:null,claudeRisk:null,cfGeo:""};function pe(){const a=(w.claudeRisk?.countryCode||"").toUpperCase();return!a||!Ge.includes(a)?null:t(`ipcheck.region.${a}`)}function se(){const a=b("ipv6Warn");a&&a.classList.remove("hidden")}function Q(a,i){const s=b(a);s&&(s.textContent=i||"",s.classList.remove("animate-pulse","bg-oai-gray-200","dark:bg-oai-gray-800","w-52","h-3","mt-2","rounded"))}const _e={ipAddrCN:ne(),ipGeoCN:ie(),ipAddr:ne(),ipGeo:ie(),ipAddrClaude:ne(),ipGeoClaude:ie(),propsContent:Y([e.propsRegion,e.propsCity,e.propsType,e.propsAsn,e.propsOrg]),securityContent:Y([e.secVpn,e.secProxy,e.secTor,e.secCrawler,e.secAbuser]),claudeAvailContent:Y(["claude.ai","anthropic.com"]),dnsLeakContent:Y([e.dnsStatus,e.dnsOutletIp]),udpLeakContent:Y([e.udpStatus,e.udpOutletIp]),deviceContent:Y([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(_e).forEach(([a,i])=>{const s=b(a);s&&(s.innerHTML=i)});let ge=!1;function Se(a){if(!a)return;a.dataset.realText||(a.dataset.realText=(a.textContent||"").trim());const i=a.dataset.realText,s=ge?Ke(i):i;a.textContent!==s&&(a.textContent=s)}function fe(){A.querySelectorAll(".ip-link, .ip-mask-target").forEach(Se)}const he=new MutationObserver(()=>requestAnimationFrame(fe));["ipHeroCN","ipHero","ipHeroClaude","ipHistoryContent","dnsLeakContent","udpLeakContent"].forEach(a=>{const i=b(a);i&&he.observe(i,{childList:!0,subtree:!0})}),A.__setMaskOn=a=>{ge=!!a,fe()};async function Ae(){try{const s=(await(await fetch("https://1.1.1.1/cdn-cgi/trace",{signal:AbortSignal.timeout(5e3)})).text()).match(/ip=([^\n]+)/);s&&(w.ip=s[1].trim())}catch{}}async function Le(){try{const i=await(await fetch("https://claude.ai/cdn-cgi/trace",{cache:"no-store",signal:AbortSignal.timeout(8e3)})).text(),s=Object.fromEntries(i.trim().split(`
5
- `).map(u=>u.split("=")));return{ip:s.ip||null,loc:s.loc?.toLowerCase()||null}}catch{return null}}async function $e(){try{const s=(await(await fetch("https://2026.ip138.com/",{signal:AbortSignal.timeout(5e3)})).text()).match(/(\d+\.\d+\.\d+\.\d+)/);if(s)return{ip:s[1]}}catch{}try{const s=(await(await fetch("https://my.ip.cn/",{signal:AbortSignal.timeout(5e3)})).text()).match(/(\d+\.\d+\.\d+\.\d+)/);if(s)return{ip:s[1]}}catch{}return null}async function Ne(a,i,s,u){const p=b(a),o=b(i);if(!(!p||!o)){if(!s){p.innerHTML=`<span class="text-oai-gray-400 dark:text-oai-gray-500">${e.failed}</span>`,o.textContent="";return}Z(s)&&se(),p.innerHTML=`${W(u)+" "}${B(s)}`;try{const l=await fetch(`${$}/api/geoip/${s}`,{signal:AbortSignal.timeout(5e3)});if(l.ok){const h=await l.json(),r=[h.country,h.region,h.city,h.isp].filter(Boolean).join(" · "),m=h.country_code||u||"";p.innerHTML=`${W(m)} ${B(s)}`,Q(i,r)}}catch{}}}function je(){const a=w.ippure,i=w.claudeRisk,s=w.claudeGeo,u=w.ipapis,p=i?.asn||a?.asn||"",o=i?.asOrganization||a?.asOrganization||u?.company?.name||"",l=pe(),h=!!(i&&i.ip);let r,m=null;h?l?(r=0,m=e.regionRestrictedText):r=typeof i.trust_score=="number"?i.trust_score:null:r=null;const C=b("gaugePointer"),c=b("gaugeScore"),H=b("gaugeText");if(r===null)c.innerHTML=`<span class="text-oai-gray-400 dark:text-oai-gray-500">—</span> ${g(e.noData,"neutral")}`,C.style.left="0%",C.style.opacity="0.3",H.textContent=h?e.noScore:e.noIp;else{const S=l?{text:e.score.unreachable,variant:"danger"}:Te(r),L=r>=50?"text-emerald-500":r>=25?"text-amber-500":"text-red-500";c.innerHTML=`<span class="${L}">${r}</span> ${g(S.text,S.variant)}`,C.style.left=Math.min(r,100)+"%",C.style.opacity="1",H.textContent=m||(r>=95?e.scoreText.excellent:r>=80?e.scoreText.great:r>=50?e.scoreText.minor:r>=25?e.scoreText.moderate:e.scoreText.severe)}const x=b("statusDotClaude");if(x){let S,L;r===null?(S="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||r<25?(S="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"):r<50?(S="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"):(S="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"),x.innerHTML=`<span class="${S}"></span><span class="${L}"></span>`}const I=b("regionWarn");I&&(l?(I.innerHTML=`<span class="font-medium">⚠️ ${e.regionWarnTitle(l)}</span><br><span class="text-[13px] font-normal mt-1 block opacity-90">${e.regionWarnBody}</span>`,I.classList.remove("hidden")):I.classList.add("hidden"));const D=b("claudeRegionSupportRow"),K=b("claudeRegionSupport");if(D&&K)if(l)D.classList.add("hidden");else{const S=!!(i&&i.ip),L=!!(i&&i.countryCode);K.innerHTML=!S||!L?g(e.unknown,"neutral"):g(e.regionAccessible,"safe"),D.classList.remove("hidden")}const G=i?.isResidential??(u?!u.is_datacenter:null),R=u?.company?.type||"",U=s?.country||i?.country||"",z=s?.city||i?.city||"";let _;if(G===!0?_=g(e.propsResidential,"safe"):G===!1?_=g(e.propsDatacenter,"warn"):_=g(e.unknown,"neutral"),R){const L={hosting:"Hosting",isp:"ISP",business:"Business",education:"Education"}[R]||v(R);_+=` <span class="text-xs text-oai-gray-500 dark:text-oai-gray-400">${L}</span>`}b("propsContent").innerHTML=f(e.propsRegion,U?v(U):g(e.unknown,"neutral"))+f(e.propsCity,z?v(z):g(e.unknown,"neutral"))+f(e.propsType,_)+f(e.propsAsn,p?`<span class="font-mono tabular-nums">AS${v(p)}</span>`:g(e.unknown,"neutral"))+f(e.propsOrg,o?v(o):g(e.unknown,"neutral"));const j=u||{};b("securityContent").innerHTML=f(e.secVpn,q(j.is_vpn,e.secVpn,e.secClean))+f(e.secProxy,q(j.is_proxy,e.secProxyFlag,e.secClean))+f(e.secTor,q(j.is_tor,e.secTor,e.secClean))+f(e.secCrawler,q(j.is_crawler,e.secCrawlerYes,e.secCrawlerNo))+f(e.secAbuser,q(j.is_abuser,e.secAbuserYes,e.secAbuserNo))}async function Ee(){const a=b("dnsLeakContent");if(!a)return;const i=Math.random().toString(36).slice(2)+Math.random().toString(36).slice(2);for(let r=1;r<=2;r++)await new Promise(m=>{const C=new Image,c=setTimeout(m,2e3);C.onload=C.onerror=()=>{clearTimeout(c),m()},C.src=`http://${i}-${r}.d.ip.net.coffee/pixel.gif?_=${Date.now()}`});await new Promise(r=>setTimeout(r,1500));let s=[];for(let r=0;r<2;r++){try{const m=await fetch(`${$}/api/dns/result/${i}`,{signal:AbortSignal.timeout(3e3)});if(m.ok&&(s=(await m.json()).dns_servers||[],s.length>0))break}catch{}r===0&&await new Promise(m=>setTimeout(m,1500))}if(s.length===0){a.innerHTML=f(e.dnsStatus,g(e.dnsEncrypted,"safe"));return}const u=(w.claudeRisk?.country||"").toLowerCase(),p=u.includes("china")||u.includes("中国");let o=null,l=!1;for(const r of s){let m=null;try{const x=await fetch(`${$}/api/geoip/${r}`,{signal:AbortSignal.timeout(3e3)});x.ok&&(m=await x.json())}catch{}const C=m?.country_code||"",c=m?.isp||"";if(C==="cn"&&!p){o={ip:r,cc:C,isp:c,leaked:!0},l=!0;break}o||(o={ip:r,cc:C,isp:c,leaked:!1})}let h=f(e.dnsStatus,l?g(e.dnsLeaked,"warn"):g(e.dnsNoLeak,"safe"));if(o){const r=`${W(o.cc)} <span class="ip-mask-target font-mono tabular-nums">${v(o.ip)}</span>${o.leaked?" "+g(e.dnsCnTag,"warn"):""}`;h+=f(e.dnsOutlet,r),o.isp&&(h+=f(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">${v(o.isp)}</span>`))}a.innerHTML=h}async function Me(){const a=b("udpLeakContent");if(!a)return;const i=new Set;try{const x=new RTCPeerConnection({iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun.cloudflare.com:3478"}]});x.createDataChannel("");const I=await x.createOffer();await x.setLocalDescription(I),await new Promise(D=>{const K=setTimeout(()=>{x.close(),D()},5e3);x.onicecandidate=G=>{if(!G.candidate){clearTimeout(K),x.close(),D();return}const R=G.candidate.candidate.match(/([0-9]{1,3}\.){3}[0-9]{1,3}/);if(R){const z=R[0];!z.startsWith("0.")&&!z.startsWith("127.")&&z!=="0.0.0.0"&&i.add(z)}const U=G.candidate.candidate.match(/([a-f0-9]{1,4}:){2,7}[a-f0-9]{1,4}/i);U&&i.add(U[0])}})}catch{}const s=w.claudeRisk?.ip||"",u=[...i],p=u.filter(x=>!Z(x)&&!x.startsWith("192.168.")&&!x.startsWith("10.")&&!x.startsWith("172.")&&!x.startsWith("198.18.")&&!x.startsWith("198.19.")&&!x.startsWith("100.64.")&&!x.startsWith("127.")&&!x.startsWith("0."));if(p.length===0&&u.length===0){a.innerHTML=f(e.udpStatus,g(e.udpDisabled,"safe"));return}if(p.length===0){a.innerHTML=f(e.udpStatus,g(e.udpNoLeak,"safe"));return}let o=p.find(x=>x===s)||p[0];const l=new Set(p).size>1,h=o===s,r=l&&!h;let m=f(e.udpStatus,r?g(e.udpLeaked,"warn"):g(e.udpNoLeak,"safe")),C="",c="";try{const x=await fetch(`${$}/api/geoip/${o}`,{signal:AbortSignal.timeout(5e3)});if(x.ok){const I=await x.json();C=I.country_code||"",c=I.country||""}}catch{}const H=`${W(C)} <span class="font-mono tabular-nums">${ue(o)}</span>${h?"":r?" "+g(e.udpAnomaly,"warn"):""}`;m+=f(e.udpOutlet,H),c&&(m+=f(e.udpOrigin,`<span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${v(c)}</span>`)),a.innerHTML=m}async function me(){const a=b("claudeAvailContent");if(!a)return;a.innerHTML=Y(["claude.ai","anthropic.com"]);const i=[{name:"claude.ai",url:"https://claude.ai/cdn-cgi/trace"},{name:"anthropic.com",url:"https://www.anthropic.com/favicon.ico"}],s=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=pe();let p="";s.forEach(o=>{const l=o.value;if(u)p+=f(l.name,g(e.availLat.unreachable,"danger"));else if(l.ok){const h=l.ms<250?"safe":l.ms<500?"info":"warn",r=l.ms<250?e.availLat.normal:l.ms<500?e.availLat.good:e.availLat.slow;p+=f(l.name,`${g(r,h)} <span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${l.ms}ms</span>`)}else p+=f(l.name,g(e.availLat.unreachable,"danger"))});try{const o=await fetch(`${$}/claude/status.json`,{signal:AbortSignal.timeout(3e3)});if(o.ok){const h=(await o.json()).overall_indicator||"none",r=e.availSvcStatus[h]||e.availSvcStatus.other,m={none:"safe",minor:"warn",major:"danger",critical:"danger",maintenance:"warn"};p+=f(e.availSvc,g(r,m[h]||"warn"))}}catch{}a.innerHTML=p}A.__detectClaudeAvail=me;function Ie(){const a=Intl.DateTimeFormat().resolvedOptions().timeZone||e.unknown,i=-(new Date().getTimezoneOffset()/60),s="UTC"+(i>=0?"+":"")+i,u=w.claudeRisk,p=(u?.countryCode||"").toUpperCase(),o=u?.timezone||Ue[p]||"",l=!!u?.timezone,h=Fe(o),r=-new Date().getTimezoneOffset();let m=null;o&&h!=null&&(m=Math.abs(h-r)<=60);let C;const c=v(a),H=v(o);if(m===!0)C=`${g(e.devMatch,"safe")} <span class="text-xs text-oai-gray-500 dark:text-oai-gray-400">${c} (${s})</span>`;else if(m===!1){const E=Ve(h),y=Math.round((h-r)/60),M=y===0?e.devDiffEqual:y>0?e.devDiffAhead(y):e.devDiffBehind(-y),F=l?H:`${H} ${e.devEstSuffix}`;C=`${g(e.devMismatch,"warn")}<br><span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${e.devLocal} ${c} (${s})<br>Claude ${F} (${E}) · ${M}</span>`}else C=`<span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${c} (${s})</span>`;const x=navigator.languages||[navigator.language],I=x.join(", ")||e.unknown,D=(x[0]||"").split("-")[0].toLowerCase(),K=ze[p]||[],G=D&&K.length?K.includes(D):null;let R;const U=v(I),z=v(K.join(" / "));G===!0?R=`${g(e.devMatch,"safe")} <span class="text-xs text-oai-gray-500 dark:text-oai-gray-400">${U}</span>`:G===!1?R=`${g(e.devMismatch,"warn")}<br><span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${e.devLocal} ${U}<br>${e.devLangExpected} ${z}</span>`:R=`<span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${U}</span>`;const _=navigator.userAgent;let j=e.unknown,S=e.unknown;_.includes("Windows")?j="Windows":_.includes("Mac OS")?j="macOS":_.includes("iPhone")||_.includes("iPad")?j="iOS":_.includes("Android")?j="Android":_.includes("Linux")&&(j="Linux"),_.includes("Edg/")?S="Edge "+(_.match(/Edg\/([\d.]+)/)||[])[1]:_.includes("Chrome/")?S="Chrome "+(_.match(/Chrome\/([\d.]+)/)||[])[1]:_.includes("Firefox/")?S="Firefox "+(_.match(/Firefox\/([\d.]+)/)||[])[1]:_.includes("Safari/")&&!_.includes("Chrome")&&(S="Safari "+(_.match(/Version\/([\d.]+)/)||[])[1]);let L=e.devUnsupported;try{const E=document.createElement("canvas"),y=E.getContext("webgl")||E.getContext("experimental-webgl");if(y){const M=y.getExtension("WEBGL_debug_renderer_info");M&&(L=y.getParameter(M.UNMASKED_RENDERER_WEBGL))}}catch{}let ye=e.devUnsupported;try{const E=document.createElement("canvas"),y=E.getContext("webgl")||E.getContext("experimental-webgl");if(y){const M=y.getExtension("WEBGL_debug_renderer_info"),F=M?y.getParameter(M.UNMASKED_VENDOR_WEBGL):"",X=M?y.getParameter(M.UNMASKED_RENDERER_WEBGL):"",ve=F+"~"+X+"~"+y.getParameter(y.VERSION)+"~"+y.getParameter(y.SHADING_LANGUAGE_VERSION);let te=0;for(let oe=0;oe<ve.length;oe++)te=(te<<5)-te+ve.charCodeAt(oe)|0;ye=(te>>>0).toString(16).toUpperCase()}}catch{}let ke=e.devUnsupported;try{const E=document.createElement("canvas");E.width=200,E.height=50;const y=E.getContext("2d");y.textBaseline="top",y.font="14px Arial",y.fillStyle="#f60",y.fillRect(50,0,100,50),y.fillStyle="#069",y.fillText("net.coffee",2,15),y.fillStyle="rgba(102,204,0,0.7)",y.fillText("canvas fp",4,30);const M=E.toDataURL();let F=0;for(let X=0;X<M.length;X++)F=(F<<5)-F+M.charCodeAt(X)|0;ke=(F>>>0).toString(16).toUpperCase()}catch{}const Oe=navigator.maxTouchPoints>0,re=navigator.connection||navigator.mozConnection||navigator.webkitConnection,Pe=re?re.effectiveType||re.type||e.unknown:e.devNetUnsupported,De=navigator.doNotTrack==="1"?e.devDntOn:navigator.doNotTrack==="0"?e.devDntOff:e.devDntUnset;b("deviceContent").innerHTML=f(e.devTz,C)+f(e.devLang,R)+f(e.devOs,`${v(j)} <span class="text-oai-gray-400 dark:text-oai-gray-500">/</span> ${v(S)}`)+f(e.devTouch,Oe?g(e.devTouchYes,"info"):g(e.devTouchNo,"neutral"))+f(e.devNet,`<span class="font-mono tabular-nums uppercase">${v(Pe)}</span>`)+f(e.devDnt,v(De))+f(e.devWebglRender,`<span class="text-xs font-normal text-oai-gray-600 dark:text-oai-gray-400 break-all">${v(L)}</span>`)+f(e.devCanvasFp,`<span class="font-mono tabular-nums tracking-wider text-oai-gray-700 dark:text-oai-gray-300">${v(ke)}</span>`)+f(e.devWebglFp,`<span class="font-mono tabular-nums tracking-wider text-oai-gray-700 dark:text-oai-gray-300">${v(ye)}</span>`)}function xe(){try{return JSON.parse(localStorage.getItem(le))||[]}catch{return[]}}function Re(){const a=w.claudeRisk?.ip||"",i=(w.claudeRisk?.countryCode||"").toLowerCase(),s=w.claudeRisk?.city||"";if(!a){ee();return}const u=xe(),p=new Date,o={ip:a,cc:i,geo:s,time:p.toISOString()};if(u.length>0){const l=u[0],h=(p-new Date(l.time))/(1e3*60*60);if(l.ip===a&&h<24){ee();return}}u.unshift(o),u.length>be&&(u.length=be),localStorage.setItem(le,JSON.stringify(u)),ee()}function ee(){const a=b("ipHistoryContent");if(!a)return;const i=xe();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((s,u)=>{const p=new Date(s.time),o=`${p.getMonth()+1}-${p.getDate()} ${String(p.getHours()).padStart(2,"0")}:${String(p.getMinutes()).padStart(2,"0")}`,l=u===0;return`<li class="flex items-center justify-between py-3 gap-4">
4
+ </div>`}function Y(a){return a.map(i=>f(i,void 0)).join("")}function ne(){return'<div class="h-7 w-44 rounded bg-oai-gray-200 dark:bg-oai-gray-800 animate-pulse"></div>'}function ie(){return'<div class="h-3 w-52 mt-2 rounded bg-oai-gray-200 dark:bg-oai-gray-800 animate-pulse"></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 w={ip:null,ippure:null,ipapis:null,claudeGeo:null,claudeRisk:null,cfGeo:""};function pe(){const a=(w.claudeRisk?.countryCode||"").toUpperCase();return!a||!Ue.includes(a)?null:t(`ipcheck.region.${a}`)}function se(){const a=b("ipv6Warn");a&&a.classList.remove("hidden")}function Q(a,i){const s=b(a);s&&(s.textContent=i||"",s.classList.remove("animate-pulse","bg-oai-gray-200","dark:bg-oai-gray-800","w-52","h-3","mt-2","rounded"))}const Te={ipAddrCN:ne(),ipGeoCN:ie(),ipAddr:ne(),ipGeo:ie(),ipAddrClaude:ne(),ipGeoClaude:ie(),propsContent:Y([e.propsRegion,e.propsCity,e.propsType,e.propsAsn,e.propsOrg]),securityContent:Y([e.secVpn,e.secProxy,e.secTor,e.secCrawler,e.secAbuser]),claudeAvailContent:Y(["claude.ai","anthropic.com"]),dnsLeakContent:Y([e.dnsStatus,e.dnsOutletIp]),udpLeakContent:Y([e.udpStatus,e.udpOutletIp]),deviceContent:Y([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(Te).forEach(([a,i])=>{const s=b(a);s&&(s.innerHTML=i)});let ge=!1;function Se(a){if(!a)return;a.dataset.realText||(a.dataset.realText=(a.textContent||"").trim());const i=a.dataset.realText,s=ge?Fe(i):i;a.textContent!==s&&(a.textContent=s)}function fe(){L.querySelectorAll(".ip-link, .ip-mask-target").forEach(Se)}const he=new MutationObserver(()=>requestAnimationFrame(fe));["ipHeroCN","ipHero","ipHeroClaude","ipHistoryContent","dnsLeakContent","udpLeakContent"].forEach(a=>{const i=b(a);i&&he.observe(i,{childList:!0,subtree:!0})}),L.__setMaskOn=a=>{ge=!!a,fe()};async function Le(){try{const s=(await(await fetch("https://1.1.1.1/cdn-cgi/trace",{signal:AbortSignal.timeout(5e3)})).text()).match(/ip=([^\n]+)/);s&&(w.ip=s[1].trim())}catch{}}async function Ae(){try{const i=await(await fetch("https://claude.ai/cdn-cgi/trace",{cache:"no-store",signal:AbortSignal.timeout(8e3)})).text(),s=Object.fromEntries(i.trim().split(`
5
+ `).map(u=>u.split("=")));return{ip:s.ip||null,loc:s.loc?.toLowerCase()||null}}catch{return null}}async function $e(){try{const s=(await(await fetch("https://2026.ip138.com/",{signal:AbortSignal.timeout(5e3)})).text()).match(/(\d+\.\d+\.\d+\.\d+)/);if(s)return{ip:s[1]}}catch{}try{const s=(await(await fetch("https://my.ip.cn/",{signal:AbortSignal.timeout(5e3)})).text()).match(/(\d+\.\d+\.\d+\.\d+)/);if(s)return{ip:s[1]}}catch{}return null}async function Ne(a,i,s,u){const p=b(a),o=b(i);if(!(!p||!o)){if(!s){p.innerHTML=`<span class="text-oai-gray-400 dark:text-oai-gray-500">${e.failed}</span>`,o.textContent="";return}Z(s)&&se(),p.innerHTML=`${W(u)+" "}${B(s)}`;try{const l=await fetch(`${$}/api/geoip/${s}`,{signal:AbortSignal.timeout(5e3)});if(l.ok){const h=await l.json(),r=[h.country,h.region,h.city,h.isp].filter(Boolean).join(" · "),m=h.country_code||u||"";p.innerHTML=`${W(m)} ${B(s)}`,Q(i,r)}}catch{}}}function je(){const a=w.ippure,i=w.claudeRisk,s=w.claudeGeo,u=w.ipapis,p=i?.asn||a?.asn||"",o=i?.asOrganization||a?.asOrganization||u?.company?.name||"",l=pe(),h=!!(i&&i.ip);let r,m=null;h?l?(r=0,m=e.regionRestrictedText):r=typeof i.trust_score=="number"?i.trust_score:null:r=null;const C=b("gaugePointer"),c=b("gaugeScore"),H=b("gaugeText");if(r===null)c.innerHTML=`<span class="text-oai-gray-400 dark:text-oai-gray-500">—</span> ${g(e.noData,"neutral")}`,C.style.left="0%",C.style.opacity="0.3",H.textContent=h?e.noScore:e.noIp;else{const S=l?{text:e.score.unreachable,variant:"danger"}:_e(r),A=r>=50?"text-emerald-500":r>=25?"text-amber-500":"text-red-500";c.innerHTML=`<span class="${A}">${r}</span> ${g(S.text,S.variant)}`,C.style.left=Math.min(r,100)+"%",C.style.opacity="1",H.textContent=m||(r>=95?e.scoreText.excellent:r>=80?e.scoreText.great:r>=50?e.scoreText.minor:r>=25?e.scoreText.moderate:e.scoreText.severe)}const x=b("statusDotClaude");if(x){let S,A;r===null?(S="animate-ping absolute inline-flex h-full w-full rounded-full bg-oai-gray-300 dark:bg-oai-gray-600 opacity-75",A="relative inline-flex h-2 w-2 rounded-full bg-oai-gray-400 dark:bg-oai-gray-500"):l||r<25?(S="animate-ping absolute inline-flex h-full w-full rounded-full bg-red-400 opacity-75",A="relative inline-flex h-2 w-2 rounded-full bg-red-500"):r<50?(S="animate-ping absolute inline-flex h-full w-full rounded-full bg-amber-400 opacity-75",A="relative inline-flex h-2 w-2 rounded-full bg-amber-500"):(S="animate-ping absolute inline-flex h-full w-full rounded-full bg-emerald-400 opacity-75",A="relative inline-flex h-2 w-2 rounded-full bg-emerald-500"),x.innerHTML=`<span class="${S}"></span><span class="${A}"></span>`}const I=b("regionWarn");I&&(l?(I.innerHTML=`<span class="font-medium">⚠️ ${e.regionWarnTitle(l)}</span><br><span class="text-[13px] font-normal mt-1 block opacity-90">${e.regionWarnBody}</span>`,I.classList.remove("hidden")):I.classList.add("hidden"));const D=b("claudeRegionSupportRow"),K=b("claudeRegionSupport");if(D&&K)if(l)D.classList.add("hidden");else{const S=!!(i&&i.ip),A=!!(i&&i.countryCode);K.innerHTML=!S||!A?g(e.unknown,"neutral"):g(e.regionAccessible,"safe"),D.classList.remove("hidden")}const G=i?.isResidential??(u?!u.is_datacenter:null),R=u?.company?.type||"",U=s?.country||i?.country||"",z=s?.city||i?.city||"";let T;if(G===!0?T=g(e.propsResidential,"safe"):G===!1?T=g(e.propsDatacenter,"warn"):T=g(e.unknown,"neutral"),R){const A={hosting:"Hosting",isp:"ISP",business:"Business",education:"Education"}[R]||v(R);T+=` <span class="text-xs text-oai-gray-500 dark:text-oai-gray-400">${A}</span>`}b("propsContent").innerHTML=f(e.propsRegion,U?v(U):g(e.unknown,"neutral"))+f(e.propsCity,z?v(z):g(e.unknown,"neutral"))+f(e.propsType,T)+f(e.propsAsn,p?`<span class="font-mono tabular-nums">AS${v(p)}</span>`:g(e.unknown,"neutral"))+f(e.propsOrg,o?v(o):g(e.unknown,"neutral"));const j=u||{};b("securityContent").innerHTML=f(e.secVpn,q(j.is_vpn,e.secVpn,e.secClean))+f(e.secProxy,q(j.is_proxy,e.secProxyFlag,e.secClean))+f(e.secTor,q(j.is_tor,e.secTor,e.secClean))+f(e.secCrawler,q(j.is_crawler,e.secCrawlerYes,e.secCrawlerNo))+f(e.secAbuser,q(j.is_abuser,e.secAbuserYes,e.secAbuserNo))}async function Ee(){const a=b("dnsLeakContent");if(!a)return;const i=Math.random().toString(36).slice(2)+Math.random().toString(36).slice(2);for(let r=1;r<=2;r++)await new Promise(m=>{const C=new Image,c=setTimeout(m,2e3);C.onload=C.onerror=()=>{clearTimeout(c),m()},C.src=`http://${i}-${r}.d.ip.net.coffee/pixel.gif?_=${Date.now()}`});await new Promise(r=>setTimeout(r,1500));let s=[];for(let r=0;r<2;r++){try{const m=await fetch(`${$}/api/dns/result/${i}`,{signal:AbortSignal.timeout(3e3)});if(m.ok&&(s=(await m.json()).dns_servers||[],s.length>0))break}catch{}r===0&&await new Promise(m=>setTimeout(m,1500))}if(s.length===0){a.innerHTML=f(e.dnsStatus,g(e.dnsEncrypted,"safe"));return}const u=(w.claudeRisk?.country||"").toLowerCase(),p=u.includes("china")||u.includes("中国");let o=null,l=!1;for(const r of s){let m=null;try{const x=await fetch(`${$}/api/geoip/${r}`,{signal:AbortSignal.timeout(3e3)});x.ok&&(m=await x.json())}catch{}const C=m?.country_code||"",c=m?.isp||"";if(C==="cn"&&!p){o={ip:r,cc:C,isp:c,leaked:!0},l=!0;break}o||(o={ip:r,cc:C,isp:c,leaked:!1})}let h=f(e.dnsStatus,l?g(e.dnsLeaked,"warn"):g(e.dnsNoLeak,"safe"));if(o){const r=`${W(o.cc)} <span class="ip-mask-target font-mono tabular-nums">${v(o.ip)}</span>${o.leaked?" "+g(e.dnsCnTag,"warn"):""}`;h+=f(e.dnsOutlet,r),o.isp&&(h+=f(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">${v(o.isp)}</span>`))}a.innerHTML=h}async function Me(){const a=b("udpLeakContent");if(!a)return;const i=new Set;try{const x=new RTCPeerConnection({iceServers:[{urls:"stun:stun.l.google.com:19302"},{urls:"stun:stun.cloudflare.com:3478"}]});x.createDataChannel("");const I=await x.createOffer();await x.setLocalDescription(I),await new Promise(D=>{const K=setTimeout(()=>{x.close(),D()},5e3);x.onicecandidate=G=>{if(!G.candidate){clearTimeout(K),x.close(),D();return}const R=G.candidate.candidate.match(/([0-9]{1,3}\.){3}[0-9]{1,3}/);if(R){const z=R[0];!z.startsWith("0.")&&!z.startsWith("127.")&&z!=="0.0.0.0"&&i.add(z)}const U=G.candidate.candidate.match(/([a-f0-9]{1,4}:){2,7}[a-f0-9]{1,4}/i);U&&i.add(U[0])}})}catch{}const s=w.claudeRisk?.ip||"",u=[...i],p=u.filter(x=>!Z(x)&&!x.startsWith("192.168.")&&!x.startsWith("10.")&&!x.startsWith("172.")&&!x.startsWith("198.18.")&&!x.startsWith("198.19.")&&!x.startsWith("100.64.")&&!x.startsWith("127.")&&!x.startsWith("0."));if(p.length===0&&u.length===0){a.innerHTML=f(e.udpStatus,g(e.udpDisabled,"safe"));return}if(p.length===0){a.innerHTML=f(e.udpStatus,g(e.udpNoLeak,"safe"));return}let o=p.find(x=>x===s)||p[0];const l=new Set(p).size>1,h=o===s,r=l&&!h;let m=f(e.udpStatus,r?g(e.udpLeaked,"warn"):g(e.udpNoLeak,"safe")),C="",c="";try{const x=await fetch(`${$}/api/geoip/${o}`,{signal:AbortSignal.timeout(5e3)});if(x.ok){const I=await x.json();C=I.country_code||"",c=I.country||""}}catch{}const H=`${W(C)} <span class="font-mono tabular-nums">${ue(o)}</span>${h?"":r?" "+g(e.udpAnomaly,"warn"):""}`;m+=f(e.udpOutlet,H),c&&(m+=f(e.udpOrigin,`<span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${v(c)}</span>`)),a.innerHTML=m}async function me(){const a=b("claudeAvailContent");if(!a)return;a.innerHTML=Y(["claude.ai","anthropic.com"]);const i=[{name:"claude.ai",url:"https://claude.ai/cdn-cgi/trace"},{name:"anthropic.com",url:"https://www.anthropic.com/favicon.ico"}],s=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=pe();let p="";s.forEach(o=>{const l=o.value;if(u)p+=f(l.name,g(e.availLat.unreachable,"danger"));else if(l.ok){const h=l.ms<250?"safe":l.ms<500?"info":"warn",r=l.ms<250?e.availLat.normal:l.ms<500?e.availLat.good:e.availLat.slow;p+=f(l.name,`${g(r,h)} <span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${l.ms}ms</span>`)}else p+=f(l.name,g(e.availLat.unreachable,"danger"))});try{const o=await fetch(`${$}/claude/status.json`,{signal:AbortSignal.timeout(3e3)});if(o.ok){const h=(await o.json()).overall_indicator||"none",r=e.availSvcStatus[h]||e.availSvcStatus.other,m={none:"safe",minor:"warn",major:"danger",critical:"danger",maintenance:"warn"};p+=f(e.availSvc,g(r,m[h]||"warn"))}}catch{}a.innerHTML=p}L.__detectClaudeAvail=me;function Ie(){const a=Intl.DateTimeFormat().resolvedOptions().timeZone||e.unknown,i=-(new Date().getTimezoneOffset()/60),s="UTC"+(i>=0?"+":"")+i,u=w.claudeRisk,p=(u?.countryCode||"").toUpperCase(),o=u?.timezone||ze[p]||"",l=!!u?.timezone,h=Ve(o),r=-new Date().getTimezoneOffset();let m=null;o&&h!=null&&(m=Math.abs(h-r)<=60);let C;const c=v(a),H=v(o);if(m===!0)C=`${g(e.devMatch,"safe")} <span class="text-xs text-oai-gray-500 dark:text-oai-gray-400">${c} (${s})</span>`;else if(m===!1){const E=Ye(h),y=Math.round((h-r)/60),M=y===0?e.devDiffEqual:y>0?e.devDiffAhead(y):e.devDiffBehind(-y),F=l?H:`${H} ${e.devEstSuffix}`;C=`${g(e.devMismatch,"warn")}<br><span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${e.devLocal} ${c} (${s})<br>Claude ${F} (${E}) · ${M}</span>`}else C=`<span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${c} (${s})</span>`;const x=navigator.languages||[navigator.language],I=x.join(", ")||e.unknown,D=(x[0]||"").split("-")[0].toLowerCase(),K=We[p]||[],G=D&&K.length?K.includes(D):null;let R;const U=v(I),z=v(K.join(" / "));G===!0?R=`${g(e.devMatch,"safe")} <span class="text-xs text-oai-gray-500 dark:text-oai-gray-400">${U}</span>`:G===!1?R=`${g(e.devMismatch,"warn")}<br><span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${e.devLocal} ${U}<br>${e.devLangExpected} ${z}</span>`:R=`<span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal">${U}</span>`;const T=navigator.userAgent;let j=e.unknown,S=e.unknown;T.includes("Windows")?j="Windows":T.includes("Mac OS")?j="macOS":T.includes("iPhone")||T.includes("iPad")?j="iOS":T.includes("Android")?j="Android":T.includes("Linux")&&(j="Linux"),T.includes("Edg/")?S="Edge "+(T.match(/Edg\/([\d.]+)/)||[])[1]:T.includes("Chrome/")?S="Chrome "+(T.match(/Chrome\/([\d.]+)/)||[])[1]:T.includes("Firefox/")?S="Firefox "+(T.match(/Firefox\/([\d.]+)/)||[])[1]:T.includes("Safari/")&&!T.includes("Chrome")&&(S="Safari "+(T.match(/Version\/([\d.]+)/)||[])[1]);let A=e.devUnsupported;try{const E=document.createElement("canvas"),y=E.getContext("webgl")||E.getContext("experimental-webgl");if(y){const M=y.getExtension("WEBGL_debug_renderer_info");M&&(A=y.getParameter(M.UNMASKED_RENDERER_WEBGL))}}catch{}let ye=e.devUnsupported;try{const E=document.createElement("canvas"),y=E.getContext("webgl")||E.getContext("experimental-webgl");if(y){const M=y.getExtension("WEBGL_debug_renderer_info"),F=M?y.getParameter(M.UNMASKED_VENDOR_WEBGL):"",X=M?y.getParameter(M.UNMASKED_RENDERER_WEBGL):"",ve=F+"~"+X+"~"+y.getParameter(y.VERSION)+"~"+y.getParameter(y.SHADING_LANGUAGE_VERSION);let te=0;for(let oe=0;oe<ve.length;oe++)te=(te<<5)-te+ve.charCodeAt(oe)|0;ye=(te>>>0).toString(16).toUpperCase()}}catch{}let ke=e.devUnsupported;try{const E=document.createElement("canvas");E.width=200,E.height=50;const y=E.getContext("2d");y.textBaseline="top",y.font="14px Arial",y.fillStyle="#f60",y.fillRect(50,0,100,50),y.fillStyle="#069",y.fillText("net.coffee",2,15),y.fillStyle="rgba(102,204,0,0.7)",y.fillText("canvas fp",4,30);const M=E.toDataURL();let F=0;for(let X=0;X<M.length;X++)F=(F<<5)-F+M.charCodeAt(X)|0;ke=(F>>>0).toString(16).toUpperCase()}catch{}const Oe=navigator.maxTouchPoints>0,re=navigator.connection||navigator.mozConnection||navigator.webkitConnection,Pe=re?re.effectiveType||re.type||e.unknown:e.devNetUnsupported,De=navigator.doNotTrack==="1"?e.devDntOn:navigator.doNotTrack==="0"?e.devDntOff:e.devDntUnset;b("deviceContent").innerHTML=f(e.devTz,C)+f(e.devLang,R)+f(e.devOs,`${v(j)} <span class="text-oai-gray-400 dark:text-oai-gray-500">/</span> ${v(S)}`)+f(e.devTouch,Oe?g(e.devTouchYes,"info"):g(e.devTouchNo,"neutral"))+f(e.devNet,`<span class="font-mono tabular-nums uppercase">${v(Pe)}</span>`)+f(e.devDnt,v(De))+f(e.devWebglRender,`<span class="text-xs font-normal text-oai-gray-600 dark:text-oai-gray-400 break-all">${v(A)}</span>`)+f(e.devCanvasFp,`<span class="font-mono tabular-nums tracking-wider text-oai-gray-700 dark:text-oai-gray-300">${v(ke)}</span>`)+f(e.devWebglFp,`<span class="font-mono tabular-nums tracking-wider text-oai-gray-700 dark:text-oai-gray-300">${v(ye)}</span>`)}function xe(){try{return JSON.parse(localStorage.getItem(le))||[]}catch{return[]}}function Re(){const a=w.claudeRisk?.ip||"",i=(w.claudeRisk?.countryCode||"").toLowerCase(),s=w.claudeRisk?.city||"";if(!a){ee();return}const u=xe(),p=new Date,o={ip:a,cc:i,geo:s,time:p.toISOString()};if(u.length>0){const l=u[0],h=(p-new Date(l.time))/(1e3*60*60);if(l.ip===a&&h<24){ee();return}}u.unshift(o),u.length>be&&(u.length=be),localStorage.setItem(le,JSON.stringify(u)),ee()}function ee(){const a=b("ipHistoryContent");if(!a)return;const i=xe();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((s,u)=>{const p=new Date(s.time),o=`${p.getMonth()+1}-${p.getDate()} ${String(p.getHours()).padStart(2,"0")}:${String(p.getMinutes()).padStart(2,"0")}`,l=u===0;return`<li class="flex items-center justify-between py-3 gap-4">
6
6
  <div class="flex items-center gap-2 min-w-0">
7
7
  <span class="text-sm tabular-nums ${l?"text-oai-black dark:text-white":"text-oai-gray-500 dark:text-oai-gray-400"}">${o}</span>
8
8
  ${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">${v(e.histCurrent)}</span>`:""}
@@ -12,4 +12,4 @@ import{r as ce,B as t,C as n}from"./main-Ch22JpOj.js";const $="/proxy/ipcheck",l
12
12
  ${B(s.ip)}
13
13
  ${s.geo?`<span class="text-xs text-oai-gray-500 dark:text-oai-gray-400 font-normal truncate">${v(s.geo)}</span>`:""}
14
14
  </div>
15
- </li>`}).join("")}</ul>`}A.__clearIPHistory=()=>{localStorage.removeItem(le),ee()};async function He(){const[,a,i]=await Promise.allSettled([Ae(),$e(),Le()]);if(ae)return;const s=a.status==="fulfilled"?a.value:null,u=i.status==="fulfilled"?i.value:null,p=[];p.push(Ne("ipAddrCN","ipGeoCN",s?.ip,"cn")),p.push((async()=>{const o=b("ipAddr"),l=b("ipGeo");if(!w.ip){o&&(o.innerHTML=`<span class="text-oai-gray-400 dark:text-oai-gray-500">${e.failed}</span>`),l&&(l.textContent="");return}Z(w.ip)&&se(),o&&(o.innerHTML=B(w.ip));try{const h=await fetch(`${$}/api/geoip/${w.ip}`,{signal:AbortSignal.timeout(5e3)});if(h.ok){const r=await h.json(),m=(r.country_code||"").toLowerCase();w.ippure={ip:w.ip,country:r.country,countryCode:(r.country_code||"").toUpperCase(),region:r.region,city:r.city},w.cfGeo=[r.country,r.region,r.city,r.isp].filter(Boolean).join(" · "),o&&(o.innerHTML=`${W(m)} ${B(w.ip)}`),Q("ipGeo",w.cfGeo)}}catch{}})()),p.push((async()=>{const o=u?.ip,l=b("ipAddrClaude"),h=b("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)&&se(),l&&(l.innerHTML=`${W(u.loc||"")} ${B(o)}`);const[r,m]=await Promise.allSettled([fetch(`${$}/api/iprisk/${o}`,{signal:AbortSignal.timeout(1e4)}),fetch(`${$}/api/geoip/${o}`,{signal:AbortSignal.timeout(5e3)})]);let C=!1;if(m.status==="fulfilled"&&m.value.ok)try{const c=await m.value.json();if(c.country){w.claudeGeo={country:c.country,region:c.region,city:c.city,isp:c.isp,country_code:c.country_code};const H=[c.country,c.region,c.city,c.isp].filter(Boolean).join(" · ");l&&(l.innerHTML=`${W(c.country_code||u.loc||"")} ${B(o)}`),Q("ipGeoClaude",H),C=!0}}catch{}if(!C&&u.loc&&(l&&(l.innerHTML=`${W(u.loc)} ${B(o)}`),Q("ipGeoClaude",We[u.loc]||u.loc.toUpperCase())),r.status==="fulfilled"&&r.value.ok){const c=await r.value.json();w.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},w.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(p),!ae&&(je(),Promise.allSettled([Ee(),Me(),me()]),Ie(),Re())}return He(),()=>{ae=!0,he.disconnect(),delete A.__setMaskOn,delete A.__clearIPHistory,delete A.__detectClaudeAvail}},[]);const N=A=>{T(A),d.current?.__setMaskOn?.(A)},O=()=>d.current?.__clearIPHistory?.(),J=()=>d.current?.__detectClaudeAvail?.(),P={__html:""};return n.jsx("div",{ref:d,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-2xl",children:t("ipcheck.page.subtitle")})]}),n.jsxs("label",{className:"shrink-0 inline-flex items-center gap-2 cursor-pointer select-none",children:[n.jsx("span",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-400",children:t("ipcheck.mask.toggle")}),n.jsxs("span",{className:"relative inline-block w-9 h-5",children:[n.jsx("input",{type:"checkbox",checked:k,onChange:A=>N(A.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"}),n.jsx("span",{className:"absolute top-0.5 left-0.5 h-4 w-4 rounded-full bg-white shadow-sm transition-transform 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(de,{id:"CN",label:t("ipcheck.ip.cn"),icon:null}),n.jsx(de,{id:"",label:t("ipcheck.ip.cloudflare"),icon:n.jsx("img",{src:`${$}/favicons/cloudflare.webp`,alt:"",className:"h-4 w-4"})}),n.jsx(de,{id:"Claude",label:t("ipcheck.ip.claude"),icon:n.jsx("img",{src:`${$}/favicons/claude.webp`,alt:"",className:"h-4 w-4"}),statusDot:!0})]}),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"),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:"text-3xl font-semibold tabular-nums leading-none flex items-center gap-2",dangerouslySetInnerHTML:P})}),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",{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 h-3.5 w-[3px] rounded-sm bg-oai-black dark:bg-white shadow-[0_0_0_1px_rgba(255,255,255,0.6)] dark:shadow-[0_0_0_1px_rgba(0,0,0,0.6)] -translate-x-1/2 transition-[left] 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",{children:"25"}),n.jsx("span",{children:"50"}),n.jsx("span",{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:P})]})]})}),n.jsx(V,{title:t("ipcheck.props.title"),children:n.jsx("div",{id:"propsContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800",dangerouslySetInnerHTML:P})}),n.jsx(V,{title:t("ipcheck.security.title"),children:n.jsx("div",{id:"securityContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800",dangerouslySetInnerHTML:P})})]}),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(Ye,{text:t("ipcheck.avail.tooltip")})]}),action:n.jsx(Ce,{label:t("ipcheck.avail.refresh"),onClick:J}),children:n.jsx("div",{id:"claudeAvailContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800",dangerouslySetInnerHTML:P})}),n.jsx(V,{title:t("ipcheck.dns.title"),children:n.jsx("div",{id:"dnsLeakContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800",dangerouslySetInnerHTML:P})}),n.jsx(V,{title:t("ipcheck.udp.title"),children:n.jsx("div",{id:"udpLeakContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800",dangerouslySetInnerHTML:P})})]}),n.jsx(V,{title:t("ipcheck.device.title"),children:n.jsx("div",{id:"deviceContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800",dangerouslySetInnerHTML:P})}),n.jsx(V,{title:t("ipcheck.history.title"),subtitle:t("ipcheck.history.subtitle"),action:n.jsx(Ce,{label:t("ipcheck.history.clear"),onClick:O}),children:n.jsx("div",{id:"ipHistoryContent",dangerouslySetInnerHTML:P})})]})]})})})}function V({title:d,subtitle:k,action:T,children:N,className:O=""}){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 ${O}`,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:d}),k?n.jsx("p",{className:"mt-0.5 text-xs text-oai-gray-500 dark:text-oai-gray-400",children:k}):null]}),T]}),N]})}function Ce({label:d,onClick:k}){return n.jsx("button",{type:"button",onClick:k,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:d})}function Ye({text:d}){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 transition-opacity group-hover:opacity-100 leading-relaxed shadow-lg",children:d})]})}function de({id:d,label:k,icon:T,statusDot:N}){const O=`ipAddr${d}`,J=`ipGeo${d}`;return n.jsxs("article",{id:`ipHero${d}`,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",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:[T,n.jsx("span",{children:k}),N?n.jsxs("span",{id:`statusDot${d}`,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:O,className:"text-xl sm:text-2xl font-semibold tabular-nums text-oai-black dark:text-white flex items-center gap-2 min-h-[2rem]",dangerouslySetInnerHTML:{__html:""}}),n.jsx("div",{id:J,className:"mt-1 text-xs text-oai-gray-500 dark:text-oai-gray-400 truncate min-h-[1rem]"})]})}export{Je as default};
15
+ </li>`}).join("")}</ul>`}L.__clearIPHistory=()=>{localStorage.removeItem(le),ee()};async function He(){const[,a,i]=await Promise.allSettled([Le(),$e(),Ae()]);if(ae)return;const s=a.status==="fulfilled"?a.value:null,u=i.status==="fulfilled"?i.value:null,p=[];p.push(Ne("ipAddrCN","ipGeoCN",s?.ip,"cn")),p.push((async()=>{const o=b("ipAddr"),l=b("ipGeo");if(!w.ip){o&&(o.innerHTML=`<span class="text-oai-gray-400 dark:text-oai-gray-500">${e.failed}</span>`),l&&(l.textContent="");return}Z(w.ip)&&se(),o&&(o.innerHTML=B(w.ip));try{const h=await fetch(`${$}/api/geoip/${w.ip}`,{signal:AbortSignal.timeout(5e3)});if(h.ok){const r=await h.json(),m=(r.country_code||"").toLowerCase();w.ippure={ip:w.ip,country:r.country,countryCode:(r.country_code||"").toUpperCase(),region:r.region,city:r.city},w.cfGeo=[r.country,r.region,r.city,r.isp].filter(Boolean).join(" · "),o&&(o.innerHTML=`${W(m)} ${B(w.ip)}`),Q("ipGeo",w.cfGeo)}}catch{}})()),p.push((async()=>{const o=u?.ip,l=b("ipAddrClaude"),h=b("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)&&se(),l&&(l.innerHTML=`${W(u.loc||"")} ${B(o)}`);const[r,m]=await Promise.allSettled([fetch(`${$}/api/iprisk/${o}`,{signal:AbortSignal.timeout(1e4)}),fetch(`${$}/api/geoip/${o}`,{signal:AbortSignal.timeout(5e3)})]);let C=!1;if(m.status==="fulfilled"&&m.value.ok)try{const c=await m.value.json();if(c.country){w.claudeGeo={country:c.country,region:c.region,city:c.city,isp:c.isp,country_code:c.country_code};const H=[c.country,c.region,c.city,c.isp].filter(Boolean).join(" · ");l&&(l.innerHTML=`${W(c.country_code||u.loc||"")} ${B(o)}`),Q("ipGeoClaude",H),C=!0}}catch{}if(!C&&u.loc&&(l&&(l.innerHTML=`${W(u.loc)} ${B(o)}`),Q("ipGeoClaude",Be[u.loc]||u.loc.toUpperCase())),r.status==="fulfilled"&&r.value.ok){const c=await r.value.json();w.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},w.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(p),!ae&&(je(),Promise.allSettled([Ee(),Me(),me()]),Ie(),Re())}return He(),()=>{ae=!0,he.disconnect(),delete L.__setMaskOn,delete L.__clearIPHistory,delete L.__detectClaudeAvail}},[]);const N=L=>{_(L),d.current?.__setMaskOn?.(L)},O=()=>d.current?.__clearIPHistory?.(),J=()=>d.current?.__detectClaudeAvail?.(),P={__html:""};return n.jsx("div",{ref:d,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-2xl",children:t("ipcheck.page.subtitle")})]}),n.jsxs("label",{className:"shrink-0 inline-flex items-center gap-2 cursor-pointer select-none",children:[n.jsx("span",{className:"text-xs text-oai-gray-500 dark:text-oai-gray-400",children:t("ipcheck.mask.toggle")}),n.jsxs("span",{className:"relative inline-block w-9 h-5",children:[n.jsx("input",{type:"checkbox",checked:k,onChange:L=>N(L.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"}),n.jsx("span",{className:"absolute top-0.5 left-0.5 h-4 w-4 rounded-full bg-white shadow-sm transition-transform 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(de,{id:"CN",label:t("ipcheck.ip.cn"),icon:null}),n.jsx(de,{id:"",label:t("ipcheck.ip.cloudflare"),icon:n.jsx("img",{src:`${$}/favicons/cloudflare.webp`,alt:"",className:"h-4 w-4"})}),n.jsx(de,{id:"Claude",label:t("ipcheck.ip.claude"),icon:n.jsx("img",{src:`${$}/favicons/claude.webp`,alt:"",className:"h-4 w-4"}),statusDot:!0})]}),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"),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:"text-3xl font-semibold tabular-nums leading-none flex items-center gap-2",dangerouslySetInnerHTML:P})}),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",{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 h-3.5 w-[3px] rounded-sm bg-oai-black dark:bg-white shadow-[0_0_0_1px_rgba(255,255,255,0.6)] dark:shadow-[0_0_0_1px_rgba(0,0,0,0.6)] -translate-x-1/2 transition-[left] 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",{children:"25"}),n.jsx("span",{children:"50"}),n.jsx("span",{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:P})]})]})}),n.jsx(V,{title:t("ipcheck.props.title"),children:n.jsx("div",{id:"propsContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800",dangerouslySetInnerHTML:P})}),n.jsx(V,{title:t("ipcheck.security.title"),children:n.jsx("div",{id:"securityContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800",dangerouslySetInnerHTML:P})})]}),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(Ce,{label:t("ipcheck.avail.refresh"),onClick:J}),children:n.jsx("div",{id:"claudeAvailContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800",dangerouslySetInnerHTML:P})}),n.jsx(V,{title:t("ipcheck.dns.title"),children:n.jsx("div",{id:"dnsLeakContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800",dangerouslySetInnerHTML:P})}),n.jsx(V,{title:t("ipcheck.udp.title"),children:n.jsx("div",{id:"udpLeakContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800",dangerouslySetInnerHTML:P})})]}),n.jsx(V,{title:t("ipcheck.device.title"),children:n.jsx("div",{id:"deviceContent",className:"divide-y divide-oai-gray-100 dark:divide-oai-gray-800",dangerouslySetInnerHTML:P})}),n.jsx(V,{title:t("ipcheck.history.title"),subtitle:t("ipcheck.history.subtitle"),action:n.jsx(Ce,{label:t("ipcheck.history.clear"),onClick:O}),children:n.jsx("div",{id:"ipHistoryContent",dangerouslySetInnerHTML:P})})]})]})})})}function V({title:d,subtitle:k,action:_,children:N,className:O=""}){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 ${O}`,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:d}),k?n.jsx("p",{className:"mt-0.5 text-xs text-oai-gray-500 dark:text-oai-gray-400",children:k}):null]}),_]}),N]})}function Ce({label:d,onClick:k}){return n.jsx("button",{type:"button",onClick:k,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:d})}function Ze({text:d}){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 transition-opacity group-hover:opacity-100 leading-relaxed shadow-lg",children:d})]})}function de({id:d,label:k,icon:_,statusDot:N}){const O=`ipAddr${d}`,J=`ipGeo${d}`;return n.jsxs("article",{id:`ipHero${d}`,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",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:[_,n.jsx("span",{children:k}),N?n.jsxs("span",{id:`statusDot${d}`,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:O,className:"text-xl sm:text-2xl font-semibold tabular-nums text-oai-black dark:text-white flex items-center gap-2 min-h-[2rem]",dangerouslySetInnerHTML:{__html:""}}),n.jsx("div",{id:J,className:"mt-1 text-xs text-oai-gray-500 dark:text-oai-gray-400 truncate min-h-[1rem]"})]})}export{qe as default};