tokentracker-cli 0.5.86 → 0.5.87

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 (22) hide show
  1. package/dashboard/dist/assets/{Card-D4LPt5pl.js → Card-BbXzY-fw.js} +1 -1
  2. package/dashboard/dist/assets/{DashboardPage-B-2PxAXT.js → DashboardPage-B_Yvna3-.js} +1 -1
  3. package/dashboard/dist/assets/{FadeIn-Bw7pQont.js → FadeIn-Dz3MVtMG.js} +1 -1
  4. package/dashboard/dist/assets/{IpCheckPage-BN6f0ZOs.js → IpCheckPage-FulDeMPC.js} +1 -1
  5. package/dashboard/dist/assets/LeaderboardPage-BQSqJVlP.js +5 -0
  6. package/dashboard/dist/assets/{LeaderboardProfilePage-DQMr9vjY.js → LeaderboardProfilePage-DP8bewz7.js} +1 -1
  7. package/dashboard/dist/assets/{LimitsPage-BKaitxPe.js → LimitsPage-BXDoE-jU.js} +1 -1
  8. package/dashboard/dist/assets/{ProviderIcon-CTwz2lc9.js → ProviderIcon-DChRpzX_.js} +1 -1
  9. package/dashboard/dist/assets/{SettingsPage-CYpMYSR7.js → SettingsPage-XFSmA7VB.js} +1 -1
  10. package/dashboard/dist/assets/{WidgetsPage-C-VjXvcB.js → WidgetsPage-D5guzG01.js} +1 -1
  11. package/dashboard/dist/assets/{download-B8q-pUg6.js → download-w3j__M5u.js} +1 -1
  12. package/dashboard/dist/assets/leaderboard-columns-ChIW6uNZ.js +1 -0
  13. package/dashboard/dist/assets/{main-Ry0vayW2.js → main-CJeNIc4Q.js} +4 -3
  14. package/dashboard/dist/assets/main-Cyta3wIj.css +1 -0
  15. package/dashboard/dist/assets/{use-limits-display-prefs-mlXe4VuM.js → use-limits-display-prefs-BzI5WJEo.js} +1 -1
  16. package/dashboard/dist/assets/{use-usage-limits-CxmDpqkS.js → use-usage-limits-CuoJnC-V.js} +1 -1
  17. package/dashboard/dist/index.html +2 -2
  18. package/dashboard/dist/share.html +2 -2
  19. package/package.json +1 -1
  20. package/dashboard/dist/assets/LeaderboardPage-DazS-BOp.js +0 -5
  21. package/dashboard/dist/assets/leaderboard-columns-BUl7-rVO.js +0 -1
  22. package/dashboard/dist/assets/main-BP_tVIcC.css +0 -1
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardPage-B-2PxAXT.js","assets/use-usage-limits-CxmDpqkS.js","assets/Card-D4LPt5pl.js","assets/FadeIn-Bw7pQont.js","assets/ProviderIcon-CTwz2lc9.js","assets/LeaderboardPage-DazS-BOp.js","assets/leaderboard-columns-BUl7-rVO.js","assets/LeaderboardProfilePage-DQMr9vjY.js","assets/LimitsPage-BKaitxPe.js","assets/use-limits-display-prefs-mlXe4VuM.js","assets/SettingsPage-CYpMYSR7.js","assets/download-B8q-pUg6.js","assets/WidgetsPage-C-VjXvcB.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardPage-B_Yvna3-.js","assets/use-usage-limits-CuoJnC-V.js","assets/Card-BbXzY-fw.js","assets/FadeIn-Dz3MVtMG.js","assets/ProviderIcon-DChRpzX_.js","assets/LeaderboardPage-BQSqJVlP.js","assets/leaderboard-columns-ChIW6uNZ.js","assets/LeaderboardProfilePage-DP8bewz7.js","assets/LimitsPage-BXDoE-jU.js","assets/use-limits-display-prefs-BzI5WJEo.js","assets/SettingsPage-XFSmA7VB.js","assets/download-w3j__M5u.js","assets/WidgetsPage-D5guzG01.js"])))=>i.map(i=>d[i]);
2
2
  function Ik(t,e){for(var n=0;n<e.length;n++){const i=e[n];if(typeof i!="string"&&!Array.isArray(i)){for(const r in i)if(r!=="default"&&!(r in t)){const a=Object.getOwnPropertyDescriptor(i,r);a&&Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>i[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const a of r)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function n(r){const a={};return r.integrity&&(a.integrity=r.integrity),r.referrerPolicy&&(a.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?a.credentials="include":r.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function i(r){if(r.ep)return;r.ep=!0;const a=n(r);fetch(r.href,a)}})();function JE(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Uk(t){if(Object.prototype.hasOwnProperty.call(t,"__esModule"))return t;var e=t.default;if(typeof e=="function"){var n=function i(){var r=!1;try{r=this instanceof i}catch{}return r?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(t).forEach(function(i){var r=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(n,i,r.get?r:{enumerable:!0,get:function(){return t[i]}})}),n}var Am={exports:{}},Uc={},Cm={exports:{}},Jt={};var Ub;function Ok(){if(Ub)return Jt;Ub=1;var t=Symbol.for("react.element"),e=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),a=Symbol.for("react.provider"),o=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),p=Symbol.iterator;function m(z){return z===null||typeof z!="object"?null:(z=p&&z[p]||z["@@iterator"],typeof z=="function"?z:null)}var v={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,w={};function y(z,ie,we){this.props=z,this.context=ie,this.refs=w,this.updater=we||v}y.prototype.isReactComponent={},y.prototype.setState=function(z,ie){if(typeof z!="object"&&typeof z!="function"&&z!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,z,ie,"setState")},y.prototype.forceUpdate=function(z){this.updater.enqueueForceUpdate(this,z,"forceUpdate")};function b(){}b.prototype=y.prototype;function M(z,ie,we){this.props=z,this.context=ie,this.refs=w,this.updater=we||v}var A=M.prototype=new b;A.constructor=M,_(A,y.prototype),A.isPureReactComponent=!0;var T=Array.isArray,I=Object.prototype.hasOwnProperty,L={current:null},U={key:!0,ref:!0,__self:!0,__source:!0};function S(z,ie,we){var He,Se={},ne=null,ye=null;if(ie!=null)for(He in ie.ref!==void 0&&(ye=ie.ref),ie.key!==void 0&&(ne=""+ie.key),ie)I.call(ie,He)&&!U.hasOwnProperty(He)&&(Se[He]=ie[He]);var be=arguments.length-2;if(be===1)Se.children=we;else if(1<be){for(var Ne=Array(be),tt=0;tt<be;tt++)Ne[tt]=arguments[tt+2];Se.children=Ne}if(z&&z.defaultProps)for(He in be=z.defaultProps,be)Se[He]===void 0&&(Se[He]=be[He]);return{$$typeof:t,type:z,key:ne,ref:ye,props:Se,_owner:L.current}}function P(z,ie){return{$$typeof:t,type:z.type,key:ie,ref:z.ref,props:z.props,_owner:z._owner}}function V(z){return typeof z=="object"&&z!==null&&z.$$typeof===t}function F(z){var ie={"=":"=0",":":"=2"};return"$"+z.replace(/[=:]/g,function(we){return ie[we]})}var G=/\/+/g;function J(z,ie){return typeof z=="object"&&z!==null&&z.key!=null?F(""+z.key):ie.toString(36)}function H(z,ie,we,He,Se){var ne=typeof z;(ne==="undefined"||ne==="boolean")&&(z=null);var ye=!1;if(z===null)ye=!0;else switch(ne){case"string":case"number":ye=!0;break;case"object":switch(z.$$typeof){case t:case e:ye=!0}}if(ye)return ye=z,Se=Se(ye),z=He===""?"."+J(ye,0):He,T(Se)?(we="",z!=null&&(we=z.replace(G,"$&/")+"/"),H(Se,ie,we,"",function(tt){return tt})):Se!=null&&(V(Se)&&(Se=P(Se,we+(!Se.key||ye&&ye.key===Se.key?"":(""+Se.key).replace(G,"$&/")+"/")+z)),ie.push(Se)),1;if(ye=0,He=He===""?".":He+":",T(z))for(var be=0;be<z.length;be++){ne=z[be];var Ne=He+J(ne,be);ye+=H(ne,ie,we,Ne,Se)}else if(Ne=m(z),typeof Ne=="function")for(z=Ne.call(z),be=0;!(ne=z.next()).done;)ne=ne.value,Ne=He+J(ne,be++),ye+=H(ne,ie,we,Ne,Se);else if(ne==="object")throw ie=String(z),Error("Objects are not valid as a React child (found: "+(ie==="[object Object]"?"object with keys {"+Object.keys(z).join(", ")+"}":ie)+"). If you meant to render a collection of children, use an array instead.");return ye}function q(z,ie,we){if(z==null)return z;var He=[],Se=0;return H(z,He,"","",function(ne){return ie.call(we,ne,Se++)}),He}function K(z){if(z._status===-1){var ie=z._result;ie=ie(),ie.then(function(we){(z._status===0||z._status===-1)&&(z._status=1,z._result=we)},function(we){(z._status===0||z._status===-1)&&(z._status=2,z._result=we)}),z._status===-1&&(z._status=0,z._result=ie)}if(z._status===1)return z._result.default;throw z._result}var Q={current:null},W={transition:null},X={ReactCurrentDispatcher:Q,ReactCurrentBatchConfig:W,ReactCurrentOwner:L};function Z(){throw Error("act(...) is not supported in production builds of React.")}return Jt.Children={map:q,forEach:function(z,ie,we){q(z,function(){ie.apply(this,arguments)},we)},count:function(z){var ie=0;return q(z,function(){ie++}),ie},toArray:function(z){return q(z,function(ie){return ie})||[]},only:function(z){if(!V(z))throw Error("React.Children.only expected to receive a single React element child.");return z}},Jt.Component=y,Jt.Fragment=n,Jt.Profiler=r,Jt.PureComponent=M,Jt.StrictMode=i,Jt.Suspense=u,Jt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=X,Jt.act=Z,Jt.cloneElement=function(z,ie,we){if(z==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+z+".");var He=_({},z.props),Se=z.key,ne=z.ref,ye=z._owner;if(ie!=null){if(ie.ref!==void 0&&(ne=ie.ref,ye=L.current),ie.key!==void 0&&(Se=""+ie.key),z.type&&z.type.defaultProps)var be=z.type.defaultProps;for(Ne in ie)I.call(ie,Ne)&&!U.hasOwnProperty(Ne)&&(He[Ne]=ie[Ne]===void 0&&be!==void 0?be[Ne]:ie[Ne])}var Ne=arguments.length-2;if(Ne===1)He.children=we;else if(1<Ne){be=Array(Ne);for(var tt=0;tt<Ne;tt++)be[tt]=arguments[tt+2];He.children=be}return{$$typeof:t,type:z.type,key:Se,ref:ne,props:He,_owner:ye}},Jt.createContext=function(z){return z={$$typeof:o,_currentValue:z,_currentValue2:z,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},z.Provider={$$typeof:a,_context:z},z.Consumer=z},Jt.createElement=S,Jt.createFactory=function(z){var ie=S.bind(null,z);return ie.type=z,ie},Jt.createRef=function(){return{current:null}},Jt.forwardRef=function(z){return{$$typeof:c,render:z}},Jt.isValidElement=V,Jt.lazy=function(z){return{$$typeof:f,_payload:{_status:-1,_result:z},_init:K}},Jt.memo=function(z,ie){return{$$typeof:d,type:z,compare:ie===void 0?null:ie}},Jt.startTransition=function(z){var ie=W.transition;W.transition={};try{z()}finally{W.transition=ie}},Jt.unstable_act=Z,Jt.useCallback=function(z,ie){return Q.current.useCallback(z,ie)},Jt.useContext=function(z){return Q.current.useContext(z)},Jt.useDebugValue=function(){},Jt.useDeferredValue=function(z){return Q.current.useDeferredValue(z)},Jt.useEffect=function(z,ie){return Q.current.useEffect(z,ie)},Jt.useId=function(){return Q.current.useId()},Jt.useImperativeHandle=function(z,ie,we){return Q.current.useImperativeHandle(z,ie,we)},Jt.useInsertionEffect=function(z,ie){return Q.current.useInsertionEffect(z,ie)},Jt.useLayoutEffect=function(z,ie){return Q.current.useLayoutEffect(z,ie)},Jt.useMemo=function(z,ie){return Q.current.useMemo(z,ie)},Jt.useReducer=function(z,ie,we){return Q.current.useReducer(z,ie,we)},Jt.useRef=function(z){return Q.current.useRef(z)},Jt.useState=function(z){return Q.current.useState(z)},Jt.useSyncExternalStore=function(z,ie,we){return Q.current.useSyncExternalStore(z,ie,we)},Jt.useTransition=function(){return Q.current.useTransition()},Jt.version="18.3.1",Jt}var Ob;function j0(){return Ob||(Ob=1,Cm.exports=Ok()),Cm.exports}var Fb;function Fk(){if(Fb)return Uc;Fb=1;var t=j0(),e=Symbol.for("react.element"),n=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,r=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,a={key:!0,ref:!0,__self:!0,__source:!0};function o(c,u,d){var f,p={},m=null,v=null;d!==void 0&&(m=""+d),u.key!==void 0&&(m=""+u.key),u.ref!==void 0&&(v=u.ref);for(f in u)i.call(u,f)&&!a.hasOwnProperty(f)&&(p[f]=u[f]);if(c&&c.defaultProps)for(f in u=c.defaultProps,u)p[f]===void 0&&(p[f]=u[f]);return{$$typeof:e,type:c,key:m,ref:v,props:p,_owner:r.current}}return Uc.Fragment=n,Uc.jsx=o,Uc.jsxs=o,Uc}var Bb;function Bk(){return Bb||(Bb=1,Am.exports=Fk()),Am.exports}var O=Bk(),k=j0();const pa=JE(k),QE=Ik({__proto__:null,default:pa},[k]);var Hd={},Pm={exports:{}},Vi={},Rm={exports:{}},km={};var zb;function zk(){return zb||(zb=1,(function(t){function e(W,X){var Z=W.length;W.push(X);e:for(;0<Z;){var z=Z-1>>>1,ie=W[z];if(0<r(ie,X))W[z]=X,W[Z]=ie,Z=z;else break e}}function n(W){return W.length===0?null:W[0]}function i(W){if(W.length===0)return null;var X=W[0],Z=W.pop();if(Z!==X){W[0]=Z;e:for(var z=0,ie=W.length,we=ie>>>1;z<we;){var He=2*(z+1)-1,Se=W[He],ne=He+1,ye=W[ne];if(0>r(Se,Z))ne<ie&&0>r(ye,Se)?(W[z]=ye,W[ne]=Z,z=ne):(W[z]=Se,W[He]=Z,z=He);else if(ne<ie&&0>r(ye,Z))W[z]=ye,W[ne]=Z,z=ne;else break e}}return X}function r(W,X){var Z=W.sortIndex-X.sortIndex;return Z!==0?Z:W.id-X.id}if(typeof performance=="object"&&typeof performance.now=="function"){var a=performance;t.unstable_now=function(){return a.now()}}else{var o=Date,c=o.now();t.unstable_now=function(){return o.now()-c}}var u=[],d=[],f=1,p=null,m=3,v=!1,_=!1,w=!1,y=typeof setTimeout=="function"?setTimeout:null,b=typeof clearTimeout=="function"?clearTimeout:null,M=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function A(W){for(var X=n(d);X!==null;){if(X.callback===null)i(d);else if(X.startTime<=W)i(d),X.sortIndex=X.expirationTime,e(u,X);else break;X=n(d)}}function T(W){if(w=!1,A(W),!_)if(n(u)!==null)_=!0,K(I);else{var X=n(d);X!==null&&Q(T,X.startTime-W)}}function I(W,X){_=!1,w&&(w=!1,b(S),S=-1),v=!0;var Z=m;try{for(A(X),p=n(u);p!==null&&(!(p.expirationTime>X)||W&&!F());){var z=p.callback;if(typeof z=="function"){p.callback=null,m=p.priorityLevel;var ie=z(p.expirationTime<=X);X=t.unstable_now(),typeof ie=="function"?p.callback=ie:p===n(u)&&i(u),A(X)}else i(u);p=n(u)}if(p!==null)var we=!0;else{var He=n(d);He!==null&&Q(T,He.startTime-X),we=!1}return we}finally{p=null,m=Z,v=!1}}var L=!1,U=null,S=-1,P=5,V=-1;function F(){return!(t.unstable_now()-V<P)}function G(){if(U!==null){var W=t.unstable_now();V=W;var X=!0;try{X=U(!0,W)}finally{X?J():(L=!1,U=null)}}else L=!1}var J;if(typeof M=="function")J=function(){M(G)};else if(typeof MessageChannel<"u"){var H=new MessageChannel,q=H.port2;H.port1.onmessage=G,J=function(){q.postMessage(null)}}else J=function(){y(G,0)};function K(W){U=W,L||(L=!0,J())}function Q(W,X){S=y(function(){W(t.unstable_now())},X)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(W){W.callback=null},t.unstable_continueExecution=function(){_||v||(_=!0,K(I))},t.unstable_forceFrameRate=function(W){0>W||125<W?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):P=0<W?Math.floor(1e3/W):5},t.unstable_getCurrentPriorityLevel=function(){return m},t.unstable_getFirstCallbackNode=function(){return n(u)},t.unstable_next=function(W){switch(m){case 1:case 2:case 3:var X=3;break;default:X=m}var Z=m;m=X;try{return W()}finally{m=Z}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(W,X){switch(W){case 1:case 2:case 3:case 4:case 5:break;default:W=3}var Z=m;m=W;try{return X()}finally{m=Z}},t.unstable_scheduleCallback=function(W,X,Z){var z=t.unstable_now();switch(typeof Z=="object"&&Z!==null?(Z=Z.delay,Z=typeof Z=="number"&&0<Z?z+Z:z):Z=z,W){case 1:var ie=-1;break;case 2:ie=250;break;case 5:ie=1073741823;break;case 4:ie=1e4;break;default:ie=5e3}return ie=Z+ie,W={id:f++,callback:X,priorityLevel:W,startTime:Z,expirationTime:ie,sortIndex:-1},Z>z?(W.sortIndex=Z,e(d,W),n(u)===null&&W===n(d)&&(w?(b(S),S=-1):w=!0,Q(T,Z-z))):(W.sortIndex=ie,e(u,W),_||v||(_=!0,K(I))),W},t.unstable_shouldYield=F,t.unstable_wrapCallback=function(W){var X=m;return function(){var Z=m;m=X;try{return W.apply(this,arguments)}finally{m=Z}}}})(km)),km}var Vb;function Vk(){return Vb||(Vb=1,Rm.exports=zk()),Rm.exports}var Hb;function Hk(){if(Hb)return Vi;Hb=1;var t=j0(),e=Vk();function n(s){for(var l="https://reactjs.org/docs/error-decoder.html?invariant="+s,h=1;h<arguments.length;h++)l+="&args[]="+encodeURIComponent(arguments[h]);return"Minified React error #"+s+"; visit "+l+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var i=new Set,r={};function a(s,l){o(s,l),o(s+"Capture",l)}function o(s,l){for(r[s]=l,s=0;s<l.length;s++)i.add(l[s])}var c=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),u=Object.prototype.hasOwnProperty,d=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f={},p={};function m(s){return u.call(p,s)?!0:u.call(f,s)?!1:d.test(s)?p[s]=!0:(f[s]=!0,!1)}function v(s,l,h,g){if(h!==null&&h.type===0)return!1;switch(typeof l){case"function":case"symbol":return!0;case"boolean":return g?!1:h!==null?!h.acceptsBooleans:(s=s.toLowerCase().slice(0,5),s!=="data-"&&s!=="aria-");default:return!1}}function _(s,l,h,g){if(l===null||typeof l>"u"||v(s,l,h,g))return!0;if(g)return!1;if(h!==null)switch(h.type){case 3:return!l;case 4:return l===!1;case 5:return isNaN(l);case 6:return isNaN(l)||1>l}return!1}function w(s,l,h,g,x,E,D){this.acceptsBooleans=l===2||l===3||l===4,this.attributeName=g,this.attributeNamespace=x,this.mustUseProperty=h,this.propertyName=s,this.type=l,this.sanitizeURL=E,this.removeEmptyString=D}var y={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(s){y[s]=new w(s,0,!1,s,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(s){var l=s[0];y[l]=new w(l,1,!1,s[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(s){y[s]=new w(s,2,!1,s.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(s){y[s]=new w(s,2,!1,s,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(s){y[s]=new w(s,3,!1,s.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(s){y[s]=new w(s,3,!0,s,null,!1,!1)}),["capture","download"].forEach(function(s){y[s]=new w(s,4,!1,s,null,!1,!1)}),["cols","rows","size","span"].forEach(function(s){y[s]=new w(s,6,!1,s,null,!1,!1)}),["rowSpan","start"].forEach(function(s){y[s]=new w(s,5,!1,s.toLowerCase(),null,!1,!1)});var b=/[\-:]([a-z])/g;function M(s){return s[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(s){var l=s.replace(b,M);y[l]=new w(l,1,!1,s,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(s){var l=s.replace(b,M);y[l]=new w(l,1,!1,s,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(s){var l=s.replace(b,M);y[l]=new w(l,1,!1,s,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(s){y[s]=new w(s,1,!1,s.toLowerCase(),null,!1,!1)}),y.xlinkHref=new w("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(s){y[s]=new w(s,1,!1,s.toLowerCase(),null,!0,!0)});function A(s,l,h,g){var x=y.hasOwnProperty(l)?y[l]:null;(x!==null?x.type!==0:g||!(2<l.length)||l[0]!=="o"&&l[0]!=="O"||l[1]!=="n"&&l[1]!=="N")&&(_(l,h,x,g)&&(h=null),g||x===null?m(l)&&(h===null?s.removeAttribute(l):s.setAttribute(l,""+h)):x.mustUseProperty?s[x.propertyName]=h===null?x.type===3?!1:"":h:(l=x.attributeName,g=x.attributeNamespace,h===null?s.removeAttribute(l):(x=x.type,h=x===3||x===4&&h===!0?"":""+h,g?s.setAttributeNS(g,l,h):s.setAttribute(l,h))))}var T=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,I=Symbol.for("react.element"),L=Symbol.for("react.portal"),U=Symbol.for("react.fragment"),S=Symbol.for("react.strict_mode"),P=Symbol.for("react.profiler"),V=Symbol.for("react.provider"),F=Symbol.for("react.context"),G=Symbol.for("react.forward_ref"),J=Symbol.for("react.suspense"),H=Symbol.for("react.suspense_list"),q=Symbol.for("react.memo"),K=Symbol.for("react.lazy"),Q=Symbol.for("react.offscreen"),W=Symbol.iterator;function X(s){return s===null||typeof s!="object"?null:(s=W&&s[W]||s["@@iterator"],typeof s=="function"?s:null)}var Z=Object.assign,z;function ie(s){if(z===void 0)try{throw Error()}catch(h){var l=h.stack.trim().match(/\n( *(at )?)/);z=l&&l[1]||""}return`
3
3
  `+z+s}var we=!1;function He(s,l){if(!s||we)return"";we=!0;var h=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(l)if(l=function(){throw Error()},Object.defineProperty(l.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(l,[])}catch(ge){var g=ge}Reflect.construct(s,[],l)}else{try{l.call()}catch(ge){g=ge}s.call(l.prototype)}else{try{throw Error()}catch(ge){g=ge}s()}}catch(ge){if(ge&&g&&typeof ge.stack=="string"){for(var x=ge.stack.split(`
4
4
  `),E=g.stack.split(`
@@ -590,6 +590,7 @@ leaderboard.signin_button,ui,LeaderboardPage,LeaderboardPage,signin_button,"Sign
590
590
  leaderboard.sync_prompt,ui,LeaderboardPage,LeaderboardPage,sync_prompt,"Enable Cloud Sync to appear in rankings",,active
591
591
  leaderboard.sync_button.idle,ui,LeaderboardPage,LeaderboardPage,sync_button_idle,"Enable & Sync",,active
592
592
  leaderboard.sync_button.busy,ui,LeaderboardPage,LeaderboardPage,sync_button_busy,"Syncing...",,active
593
+ leaderboard.pagination.page_size_label,ui,LeaderboardPage,LeaderboardPage,page_size_label,"Rows per page",,active
593
594
  leaderboard.github.tooltipAction,ui,LeaderboardPage,LeaderboardPage,github_tooltip_action,"Click to open GitHub profile",,active
594
595
  leaderboard.github.tooltipPrefix,ui,LeaderboardPage,LeaderboardPage,github_tooltip_prefix,"Set yours in",,active
595
596
  leaderboard.github.tooltipSettingsLink,ui,LeaderboardPage,LeaderboardPage,github_tooltip_link,"Settings",,active
@@ -704,7 +705,7 @@ settings.appearance.language.hint,ui,SettingsPage,SettingsPage,language_hint,Use
704
705
  settings.appearance.language.system,ui,SettingsPage,SettingsPage,language_system,System,,active
705
706
  settings.appearance.language.english,ui,SettingsPage,SettingsPage,language_english,English,,active
706
707
  settings.appearance.language.chinese,ui,SettingsPage,SettingsPage,language_chinese,Simplified Chinese,,active
707
- `,IU={"header.auth.sign_in_aria":"登录","header.auth.user_fallback":"用户","header.cloud_sync.label":"将本地使用情况同步到云端","header.cloud_sync.hint":"运行本地 Token Tracker 同步,将用量上传到云端。关闭后仅保留本地离线使用。","login.back_home":"返回首页","login.cloud_only":"未配置云端登录。请使用 localhost 上的本地仪表盘。","login.title":"登录","login.subtitle":"选择邮箱或已连接账号。","login.dismiss":"关闭","login.verify_email_success":"邮箱已验证。你现在可以登录。","login.verify_email_pending":"请先在邮箱中完成验证,然后再登录。","login.oauth.continue":"使用 {{provider}} 继续","login.divider":"或","login.tab.sign_in":"登录","login.tab.sign_up":"创建账户","login.field.name":"显示名称","login.field.name_placeholder":"可选","login.field.email":"电子邮件","login.field.password":"密码","login.password_hint":"至少 {{min}} 个字符。","login.submit.sign_in":"使用邮箱登录","login.submit.sign_up":"创建账号","auth.callback.processing":"处理中…","auth.callback.success":"登录成功","auth.callback.redirecting":"正在返回 TokenTracker…","auth.callback.failed":"登录未完成,请重试。","auth.callback.close":"关闭此页","login_modal.subtitle":"登录以加入排行榜","login_modal.continue_email":"使用邮箱继续","login_modal.divider_email":"邮箱","shared.placeholder.short":"--","shared.placeholder.anon_mark":"?","shared.unit.percent":"%","shared.unit.thousand_abbrev":"K","shared.unit.million_abbrev":"M","shared.unit.billion_abbrev":"B","shared.button.sign_in":"$ 登录","shared.button.sign_up":"$ 注册","shared.range.simple":"范围:{{range}}","shared.data_source":"数据来源:{{source}}","shared.error.prefix":"错误:{{error}}","shared.status.unsynced":"—","shared.time.now":"刚刚","error.boundary.title":"出了点问题","error.boundary.subtitle":"这个视图渲染失败了","error.boundary.hint":"打开控制台,然后重新加载页面","error.boundary.no_details":"没有错误详细信息","error.boundary.action.reload":"重新加载","shell.header.title":"Token 用量","shell.header.link_active":"LINK_ACTIVE","shell.footer.help":"[F1]帮助","shell.footer.neural_index":"核心索引:0.942.A1","backend.meta.status_label":"状态","backend.meta.host_label":"主机","backend.meta.checked_label":"上次检查","backend.meta.ok_label":"正常","backend.meta.http_label":"http","backend.meta.error_label":"错误","backend.meta.click_refresh":"点击=刷新","status.link.stable":"链接:稳定","status.link.unstable":"链接:弱","status.link.lost":"链接:丢失","boot.ascii_art":"加载中...","boot.prompt":"正在初始化仪表板...","boot.skip_hint":"点击跳过","boot.skip_aria":"跳过启动屏幕","system.header.title_default":"VIBE_OS_v9.0","sparkline.aria_label":"每日 Token 使用迷你图","identity_card.title_default":"身份","identity_card.name_default":"你","identity_card.unknown":"未知","identity_card.decrypt":"显示身份","identity_card.rank_label":"排名","identity_card.streak_label":"活跃天数","identity_card.rank_placeholder":"—","identity_card.streak_value":"{{days}} 天","identity_card.subscriptions_label":"订阅","identity_card.subscription_item":"{{tool}} {{plan}}","identity_panel.badge":"VU","identity_panel.level":"5级","identity_panel.rank_label":"排名","identity_panel.streak_label":"活跃","identity_panel.rank_placeholder":"—","identity_panel.streak_value":"{{days}} 天","usage.panel.title":"Token 使用","usage.summary.total_system_output":"Token 总数","usage.summary.total":"Token 总数","usage.period.day":"日","usage.period.week":"周","usage.period.month":"月","usage.period.total":"总计","usage.period.custom":"自定义","usage.metric.total":"总计","usage.metric.total_cost":"总成本(美元)","usage.metric.input":"输入","usage.metric.output":"输出","usage.metric.cached_input":"缓存输入","usage.metric.reasoning_output":"推理输出","usage.metric.cached_short":"缓存","usage.metric.reasoning_short":"推理","usage.button.loading":"加载中…","usage.button.refresh":"刷新","usage.cost_info.icon":"[ 详情 ]","usage.cost_info.label":"细节","usage.range_label":"范围:{{range}}","usage.overview.tablist_aria":"时间范围","usage.overview.cost_breakdown_aria":"查看成本明细","usage.overview.distribution_aria":"来源占比:{{items}}","usage.overview.distribution_item":"{{label}} {{percent}}%","usage.overview.provider_card_aria":"{{provider}}:{{percent}}%,{{tokens}} Token,{{cost}}。点击{{action}}详情","usage.overview.expand":"展开","usage.overview.collapse":"收起","usage.overview.model_count":"{{count}} 个模型","usage.overview.model_details_aria":"{{provider}} 模型详情","widgets.page.title":"桌面小组件","widgets.page.subtitle":"把你的 Token 用量钉在桌面上。","widgets.cta.open_gallery":"打开小组件库","widgets.cta.download":"下载 Mac 应用","widgets.cta.macos_only":"仅限 macOS","widgets.hero.aria":"使用小组件预览","widgets.hero.annotation":"右键点按桌面 · 编辑小组件 · 搜索“TokenTracker”","widgets.section.more":"还包括","widgets.heatmap.name":"热力图","widgets.heatmap.description":"像 GitHub 一样,一眼看清活跃和空闲的日子。","widgets.topModels.name":"热门模型","widgets.topModels.description":"你最常用的模型,按 Token 占比排序。","widgets.limits.name":"使用限制","widgets.limits.description":"Claude、Codex、Cursor、Gemini 等的实时速率限制进度。","daily.table.aria_label":"每日总计表","daily.sort.date.label":"日期","daily.sort.date.title":"按日期排序","daily.sort.total.label":"总计","daily.sort.total.title":"按总计排序","daily.sort.input.label":"输入","daily.sort.input.title":"按输入排序","daily.sort.output.label":"输出","daily.sort.output.title":"按输出排序","daily.sort.cached.label":"缓存","daily.sort.cached.title":"按缓存输入排序","daily.sort.reasoning.label":"推理","daily.sort.reasoning.title":"按推理输出排序","daily.sort.conversations.label":"对话数","daily.sort.conversations.title":"按对话排序","details.pagination.prev":"上一页","details.pagination.next":"下一页","details.pagination.page":"页{{page}}/{{total}}","limits.copilot.otelHint.title":"跟踪 Copilot Token 使用情况","limits.copilot.otelHint.body":"限额信息通过你的 GitHub OAuth 令牌读取。如果还想记录逐 Token 用量,请启用 Copilot 的 OpenTelemetry 导出,把下面这段加到你的 shell 配置文件(~/.zshrc 或 ~/.bashrc):","limits.copilot.otelHint.copy":"复制","limits.copilot.otelHint.copied":"已复制","limits.panel.title":"使用限制","limits.label.cursor_plan":"套餐","limits.label.cursor_auto":"自动","limits.label.cursor_api":"API","limits.label.kiro_month":"月度","limits.label.kiro_bonus":"奖励","limits.label.copilot_premium":"高级","limits.label.copilot_chat":"对话","live_sniffer.log.system":"[系统]KERNEL_LINK_ESTABLISHED","live_sniffer.log.socket":"[套接字]正在监听_LOCAL_CLI_PIPE...","live_sniffer.event.intercepted":"> 拦截:AI_COMPLETION_EVENT","live_sniffer.event.quantifying":"> 量化:+64 NEURAL_TOKENS","live_sniffer.event.analysis":"> 分析:HIGH_VIBE_FLOW_DETECTED","live_sniffer.event.sync":"> 同步:上传到核心中继","live_sniffer.event.batch":"[状态] BATCH_TRANSMISSION_COMPLETE","live_sniffer.event.hooking":"> 挂钩:AI_CLI_PIPE_LINK","live_sniffer.event.capture":"> 捕获:+128 NEURAL_TOKENS","nav.usage":"用量","nav.limits":"限额","nav.widgets":"小组件","nav.leaderboard":"排行榜","nav.collapse":"折叠侧边栏","nav.expand":"展开侧边栏","nav.menu":"打开导航菜单","nav.close_menu":"关闭导航菜单","nav.aside_label":"主导航","nav.nav_label":"导航","limits.page.subtitle":"AI 工具的速率限制和配额使用情况。","limits.settings.title":"显示设置","limits.settings.subtitle":"选择要显示的提供商及其顺序。","limits.settings.move_up":"向上移动","limits.settings.move_down":"下移","limits.settings.toggle_visible":"切换可见性","limits.page.openSettings":"显示设置","nav.group.general":"常规","nav.group.tools":"工具","nav.group.account":"账户","nav.settings":"设置","header.auth.open_settings":"打开设置","settings.page.title":"设置","settings.page.subtitle":"管理你的账户、外观和显示偏好。","settings.section.appearance":"外观","settings.section.account":"账户","settings.section.limits":"限制显示","settings.section.limitsSubtitle":"重新排序提供商并选择哪些出现在“限制”页面上。","settings.appearance.theme.label":"主题","settings.appearance.theme.hint":"选择 Token Tracker 在仪表盘中的显示方式。","settings.appearance.theme.light":"浅色","settings.appearance.theme.dark":"深色","settings.appearance.theme.system":"系统","settings.account.displayName":"显示名称","settings.account.edit":"编辑","settings.account.save":"保存","settings.account.saving":"保存...","settings.account.cancel":"取消","settings.account.cloudSync":"云同步","settings.account.cloudSyncHint":"将本地用量上传到你的 Token Tracker 云端账号。","settings.account.publicProfile":"公开主页","settings.account.publicProfileHint":"在公开排行榜中展示你的用量。","settings.account.anonymous":"匿名","settings.account.anonymousHint":"在排行榜中隐藏你的名字和头像。","settings.account.displayNameAnonymousHint":"匿名状态下,排行榜会隐藏你的名字和头像","settings.account.displayNameDisabledWhileAnon":"请先关闭匿名,再编辑名字","settings.account.githubUrl":"GitHub 主页","settings.account.githubUrlHint":"在排行榜名字旁显示 GitHub 链接。","settings.account.githubUrlPlaceholder":"用户名或 https://github.com/用户名","settings.account.githubUrlInvalid":"请输入 GitHub 用户名,或 https://github.com/用户名","leaderboard.github.aria":"打开 GitHub 主页","leaderboard.github.tooltipAction":"点击查看 GitHub 主页","leaderboard.github.tooltipPrefix":"可在","leaderboard.github.tooltipSettingsLink":"设置","leaderboard.github.tooltipSuffix":"中配置你的主页","settings.account.signOut":"退出登录","settings.account.signIn":"登录","settings.account.signedOutHint":"登录后可管理云同步和排行榜偏好。","settings.section.menubar":"菜单栏应用","settings.section.menubarSubtitle":"macOS 菜单栏应用的偏好设置,与右键菜单保持一致。","settings.menubar.showStats":"在菜单栏中显示统计信息","settings.menubar.showStatsHint":"在菜单栏图标旁边显示今天的Token 数量和成本。","settings.menubar.animatedIcon":"动画图标","settings.menubar.animatedIconHint":"闪烁 Clawd 角色并在菜单栏中播放同步动画。","settings.menubar.launchAtLogin":"登录时启动","settings.menubar.launchAtLoginHint":"登录 macOS 时自动启动 TokenTrackerBar。","settings.menubar.syncNow":"立即同步","settings.menubar.syncNowHint":"触发本地AI工具日志立即解析并上传。","settings.menubar.syncing":"正在同步...","settings.menubar.updates":"更新","settings.menubar.updatesHint":"检查 GitHub 上是否有新版本。","settings.menubar.checkUpdates":"检查更新","nav.ip_check":"Claude IP 检查","settings.appearance.language.label":"语言","settings.appearance.language.hint":"使用“系统”时会默认跟随本机语言。","settings.appearance.language.system":"系统","settings.appearance.language.english":"英语","settings.appearance.language.chinese":"简体中文"},UU={"stats.period.today":"今日","stats.period.week":"本周","stats.period.month":"本月","stats.period.all":"全部","stats.period.convs":"对话","dashboard.core_index.collapse_label":"▾","dashboard.core_index.expand_label":"▸","dashboard.core_index.collapse_aria":"折叠模型分解","dashboard.core_index.expand_aria":"展开模型细分","dashboard.rolling.title":"最近的活动","dashboard.rolling.last_7d":"过去 7 天","dashboard.rolling.last_30d":"过去 30 天","dashboard.rolling.avg_active_day":"日平均","dashboard.model_breakdown.title":"模型拆解","dashboard.model_breakdown.footer":"多引擎负载均衡 // 活跃会话","dashboard.model_breakdown.usage_label":"用量:{{value}}","dashboard.top_models.title":"热门模型","dashboard.top_models.subtitle":"按 Token 使用情况","dashboard.projects.title":"项目用量","dashboard.projects.subtitle":"你最活跃的仓库","dashboard.projects.tokens_label":"Token","dashboard.projects.stars_label":"星标","dashboard.projects.limit_label":"展示","dashboard.projects.limit_aria":"选择仓库显示数量","dashboard.projects.limit_top_3":"前 3 名","dashboard.projects.limit_top_6":"前 6 名","dashboard.projects.limit_top_10":"前 10 名","dashboard.projects.empty":"没有公开仓库","dashboard.upgrade_alert.title":"可用更新","dashboard.upgrade_alert.subtitle":"TokenTracker v{{required}} 现已推出。","dashboard.upgrade_alert.subtitle_generic":"新版本的 TokenTracker 现已推出。","dashboard.upgrade_alert.prompt":"$","dashboard.upgrade_alert.sparkle":"✨","dashboard.upgrade_alert.install_command":"npx --yes tokentracker-cli init","dashboard.upgrade_alert.copy":"[ 复制 ]","dashboard.upgrade_alert.copied":"[已复制]","dashboard.upgrade_alert.ignore":"忽略","dashboard.widgets.title":"桌面小组件","dashboard.widgets.hint":"右键点按桌面 → 编辑小组件 → 搜索“TokenTracker”","dashboard.widgets.dismiss_aria":"关闭小组件介绍","dashboard.cost_breakdown.title":"成本明细","dashboard.cost_breakdown.total_label":"预计总成本","dashboard.cost_breakdown.calc_prefix":"计算:","dashboard.cost_breakdown.calc_dynamic":"动态","dashboard.cost_breakdown.close":"关闭","dashboard.cost_breakdown.footer":"根据公开定价估算","trend.chart.unit_label":"TKNS","trend.chart.left_label":"T-24H","trend.chart.right_label":"实时流","trend.chart.empty":"没有趋势数据。","trend.chart.peak":"峰值:{{value}} {{unit}}","trend.monitor.label":"使用趋势","trend.monitor.max_label":"最大值:{{value}}","trend.monitor.avg_label":"平均值:{{value}}","trend.monitor.now_label":"现在","trend.monitor.fallback.hour_00":"00:00","trend.monitor.fallback.hour_06":"06:00","trend.monitor.fallback.hour_12":"12:00","trend.monitor.fallback.hour_18":"18:00","trend.monitor.fallback.hour_23":"23:00","trend.monitor.fallback.tminus_24":"-24小时","trend.monitor.fallback.tminus_18":"-18小时","trend.monitor.fallback.tminus_12":"-12小时","trend.monitor.fallback.tminus_6":"-6小时","trend.monitor.tooltip.utc":"UTC","trend.monitor.tooltip.tokens":"Token","trend.monitor.tooltip.hour":"{{date}} {{hour}}:00 {{tz}}","trend.monitor.tooltip.day":"{{date}} {{tz}}","trend.monitor.tooltip.month":"{{date}} {{tz}}","trend.monitor.tooltip.hour_no_tz":"{{date}} {{hour}}:00","trend.monitor.tooltip.day_no_tz":"{{date}}","trend.monitor.tooltip.month_no_tz":"{{date}}","trend.monitor.tooltip.value":"{{value}} {{unit}}","trend.monitor.month.jan":"1月","trend.monitor.month.feb":"2月","trend.monitor.month.mar":"3月","trend.monitor.month.apr":"4月","trend.monitor.month.may":"5月","trend.monitor.month.jun":"6月","trend.monitor.month.jul":"7月","trend.monitor.month.aug":"8月","trend.monitor.month.sep":"9月","trend.monitor.month.oct":"10月","trend.monitor.month.nov":"11月","trend.monitor.month.dec":"12月","heatmap.title":"热力图","heatmap.subtitle":"你过去一年的 AI 用量","heatmap.aria_label":"热力图","heatmap.empty":"尚无活动数据。","heatmap.legend.less":"少","heatmap.legend.more":"多","heatmap.legend.utc":"UTC","heatmap.tooltip":"{{day}} • {{value}} {{unit}} • {{tz}}","heatmap.unit.tokens":"Token","heatmap.month.jan":"1月","heatmap.month.feb":"2月","heatmap.month.mar":"3月","heatmap.month.apr":"4月","heatmap.month.may":"5月","heatmap.month.jun":"6月","heatmap.month.jul":"7月","heatmap.month.aug":"8月","heatmap.month.sep":"9月","heatmap.month.oct":"10月","heatmap.month.nov":"11月","heatmap.month.dec":"12月","heatmap.day.sun":"日","heatmap.day.mon":"一","heatmap.day.tue":"二","heatmap.day.wed":"三","heatmap.day.thu":"四","heatmap.day.fri":"五","heatmap.day.sat":"六","dashboard.sign_out":"登出","dashboard.not_signed_in":"未登录","dashboard.footer.active":"{{range}} • 点击“刷新”重新加载","dashboard.footer.auth":"登录查看使用情况","dashboard.footer.right":"Token Tracker 仪表盘","dashboard.auth_required.title":"需要身份验证","dashboard.auth_required.subtitle":"登录以继续","dashboard.auth_required.body":"登录或注册即可查看你每日的 token 用量(UTC)。","dashboard.session_expired.title":"会话已过期","dashboard.session_expired.subtitle":"重新登录","dashboard.session_expired.body":"你的会话已过期。","dashboard.session_expired.body_tail":"请重新登录,以刷新你的私有用量数据。","dashboard.session_expired.copy_label":"运行 npx --yes tokentracker-cli init","dashboard.session_expired.copied":"已复制","dashboard.auth_optional.title":"连接你的账号","dashboard.auth_optional.subtitle":"跨设备同步使用情况","dashboard.auth_optional.body":"登录或注册以同步真实用量。","dashboard.install.title":"安装","dashboard.install.subtitle":"命令行工具","dashboard.install.prompt":"安装 Node.js 18+ 然后运行:","dashboard.install.cmd.init":"npx --yes tokentracker-cli init","dashboard.install.cmd.init_link_code":"npx --yes tokentracker-cli init --link-code {{link_code}}","dashboard.install.copy":"复制安装命令","dashboard.install.copy_base":"复制初始化命令","dashboard.install.copied":"已复制到剪贴板","dashboard.install.link_code.loading":"正在生成专属代码...","dashboard.install.link_code.failed":"专属代码不可用","dashboard.install.cmd.sync":"npx --yes tokentracker-cli sync","dashboard.public_view.title":"公开主页","dashboard.public_view.status.enabled":"开启","dashboard.public_view.status.disabled":"关闭","dashboard.public_view.action.copy":"复制分享链接","dashboard.public_view.action.copied":"已复制","dashboard.public_view.action.enable":"开启公开主页","dashboard.public_view.action.disable":"关闭公开主页","dashboard.public_view.invalid.title":"链接无效","dashboard.public_view.invalid.body":"此公共链接无效或已被撤销。","dashboard.activity.title":"活动","dashboard.activity.subtitle":"过去 52 周 · 本地数据","dashboard.daily.title":"每日细目","dashboard.daily.subtitle":"查看每天的用量","dashboard.daily.empty":"还没有数据。先使用 AI CLI,再运行 {{cmd}}。","dashboard.identity.title":"你的个人资料","dashboard.identity.subtitle":"记录你的编码之旅","dashboard.identity.fallback":"匿名用户","dashboard.version.label":"版本","dashboard.screenshot.title_line1":"AI 编程助手","dashboard.screenshot.title_line2":"2025 年度回顾","dashboard.screenshot.twitter_button":"分享到 X","dashboard.screenshot.twitter_label":"分享到 X","dashboard.screenshot.twitter_hint":"自动将图像复制到剪贴板","dashboard.screenshot.twitter_text":"记录中的 {{total_tokens}} Token。\\n{{model_name}} 以 {{model_percent}}% 领先。\\n\\n我的 AI 使用情况,未经审计 →\\ntoken.rynn.me"},OU={"landing.handle.default":"VIBE_USER","landing.handle.special":"伏特","landing.hero.title_primary":"实时追踪你的","landing.hero.title_secondary":"AI Token","landing.hero.tagline":"统一的用量仪表板","landing.hero.subtagline":"自动监控 Claude Code、Cursor、Codex 等工具的 Token 用量。本地优先、注重隐私、零配置。","landing.screenshot.alt":"TokenTracker 仪表板截图","landing.nav.login":"登录","landing.nav.signup":"注册","landing.nav.login_signup":"登录 / 注册","landing.seo.title":"面向 AI Coding CLI 的安全 Token 用量追踪","landing.seo.summary":"自动监控 Claude Code、Cursor、Codex 等工具的 Token 用量。本地优先、注重隐私、零配置。","landing.install.title":"一行命令即可安装","landing.install.prompt":"在终端里运行:","landing.install.command":"npx --yes tokentracker-cli","landing.install.helper":"然后连接你的账号,开始同步用量。","landing.install.action.copy":"复制命令","landing.install.action.copied":"已复制","landing.ai_agent.title":"让 AI 帮你安装","landing.ai_agent.description":"复制下面的指南,粘贴给 ChatGPT、Claude 或任意 AI 助手——它会自动帮你装好 TokenTracker。","landing.ai_agent.command":"https://github.com/mm7894215/TokenTracker/blob/main/docs/AI_AGENT_INSTALL.md","landing.ai_agent.copy_label":"复制指南链接","landing.ai_agent.helper":"或点击直接打开指南手动复制。","landing.ai_agent.guide_url":"https://github.com/mm7894215/TokenTracker/blob/main/docs/AI_AGENT_INSTALL.md","landing.meta.title":"Token Tracker —— AI Coding CLI 的 Token 用量追踪器","landing.meta.description":"自动监控 Claude Code、Cursor、Codex 等工具的 Token 用量。本地优先、注重隐私、零配置。","landing.meta.og_site_name":"Token Tracker","landing.meta.og_type":"website","landing.meta.og_image":"https://www.tokentracker.cc/og-image.jpg","landing.meta.og_url":"https://www.tokentracker.cc/","landing.meta.twitter_card":"summary_large_image","share.meta.title":"Token Tracker 分享","share.meta.description":"分享你的 Token Tracker 仪表板快照,包含跨模型、项目和时间窗口的用量洞察。","share.meta.og_site_name":"Token Tracker","share.meta.og_type":"website","share.meta.og_image":"https://www.tokentracker.cc/share-dashboard.jpg","share.meta.og_url":"https://www.tokentracker.cc/share","share.meta.twitter_card":"summary_large_image","landing.seo.point1":"自动追踪 AI CLI 的 Token 用量,零手动操作。","landing.seo.point2":"矩阵式界面,关键信号一目了然。","landing.seo.point3":"通用 AI CLI 排行榜,对比用量与排名。","landing.seo.roadmap":"原生支持 Codex、Claude Code 与 Gemini CLI。","landing.signal.identity_probe":"身份探测","landing.signal.live_sniffer":"实时嗅探","landing.handle.label":"设置 Handle","landing.handle.placeholder":"试试 “{{handle}}”","landing.rank.expectation":"预期排名:{{rank}}","landing.rank.singularity":"登顶","landing.rank.unranked":"未上榜","landing.cta.initialize":"进入仪表板","landing.cta.subtext":"连接 GitHub","landing.cta.primary":"进入仪表板","landing.cta.secondary":"查看 GitHub 源码","landing.cta.login_signup":"进入仪表板","landing.footer.link.manifesto":"宣言","landing.footer.link.docs":"文档","landing.footer.link.security":"安全","landing.footer.system_ready":"System_Ready // 2026 TokenTracker OS","landing.v2.hero.title_line1":"追踪你所有的","landing.v2.hero.title_line2":"AI Token","landing.v2.hero.subtitle":"统一的用量仪表板","landing.v2.install.btn_copy":"复制命令","landing.v2.install.mac_cta":"Mac 应用 (DMG)","landing.v2.models.title":"支持的 AI CLI 工具","landing.v2.compare.kicker":"无缝追踪","landing.v2.compare.title":"别再瞎猜你的 AI 用量。","landing.v2.compare.subtitle":"AI CLI 把用量数据藏在零散的本地文件里。TokenTracker 把它们实时聚合到一个清晰的仪表板里。","landing.v2.distill.body":"100% 本地处理,不上传任何 prompt 或代码。","landing.v2.compare.with.title":"用 Token Tracker","landing.v2.compare.with.p1":"集中式用量仪表板","landing.v2.compare.with.p2":"实时 Token 指标","landing.v2.compare.with.p3":"100% 本地,隐私无忧","landing.v2.compare.without.title":"不用","landing.v2.compare.without.p1":"散落的 JSON 日志文件","landing.v2.compare.without.p2":"对 Token 消耗一无所知","landing.v2.compare.without.p3":"突如其来的 API 账单","landing.v2.footer.line":"Token Tracker —— 开发者打造,服务开发者。","landing.v2.nav.github":"GitHub","landing.v2.models.agent.codex":"Codex","landing.v2.models.agent.claude_code":"Claude Code","landing.v2.models.agent.cursor":"Cursor","landing.v2.models.agent.gemini":"Gemini","landing.v2.models.agent.opencode":"OpenCode","landing.v2.models.agent.openclaw":"OpenClaw","landing.v2.cta.primary":"进入仪表板","landing.v2.hero.subtagline":"自动监控 Claude Code、Cursor、Codex 等工具的 Token 用量。本地优先、注重隐私、零配置。","signalbox.title_default":"关联","archive.title":"档案网格","archive.footer.left":"年度网格","leaderboard.nav.open":"$ 排行榜","leaderboard.nav.back":"$ 仪表板","leaderboard.profile.nav.back":"$ 排行榜","leaderboard.title":"排行榜","leaderboard.range":"UTC {{period}} · {{from}} – {{to}}","leaderboard.range_loading":"UTC {{period}} · …","leaderboard.range.total":"全部时间","leaderboard.generated_at":"更新于 {{ts}}","leaderboard.period.week":"周","leaderboard.period.month":"月","leaderboard.period.total":"全部","leaderboard.metric.all":"全部","leaderboard.metric.gpt":"GPT","leaderboard.metric.claude":"Claude","leaderboard.me_label":"你","leaderboard.anon_label":"匿名","leaderboard.public_profile.label":"公开主页","leaderboard.public_profile.status.enabled":"已开启","leaderboard.public_profile.status.disabled":"已关闭","leaderboard.error.unknown":"未知错误","leaderboard.me_card.title":"我的排名","leaderboard.me_card.subtitle":"本周","leaderboard.profile.card.title":"个人主页","leaderboard.profile.card.subtitle":"{{period}}","leaderboard.top10.title":"前 10 名","leaderboard.top10.subtitle":"前 9 名加上你","leaderboard.table.title":"完整榜单","leaderboard.table.subtitle":"分页显示","leaderboard.loading":"加载中…","leaderboard.empty":"暂无数据","leaderboard.column.rank":"排名","leaderboard.column.user":"用户","leaderboard.column.total":"总计","leaderboard.column.codex":"Codex","leaderboard.column.claude":"Claude","leaderboard.column.gemini":"Gemini","leaderboard.column.cursor":"Cursor","leaderboard.column.opencode":"OpenCode","leaderboard.column.openclaw":"OpenClaw","leaderboard.column.hermes":"Hermes","leaderboard.column.kiro":"Kiro","leaderboard.column.copilot":"Copilot","leaderboard.column.kimi":"Kimi","leaderboard.column.supplemental":"其他","leaderboard.column.est_cost":"预估花费","leaderboard.signin_prompt":"登录后即可上榜","leaderboard.signin_button":"登录","leaderboard.sync_prompt":"开启云同步即可参与排名","leaderboard.sync_button.idle":"开启并同步","leaderboard.sync_button.busy":"同步中…","landing.oauth.google":"使用 Google 继续","landing.oauth.github":"使用 GitHub 继续","leaderboard.pagination.prev":"上一页","leaderboard.pagination.next":"下一页","leaderboard.pagination.ellipsis":"……","leaderboard.pagination.page_unknown":"第 {{page}} 页","share.modal.title":"分享你的数据","share.modal.subtitle":"生成海报卡片,随处分享。","share.modal.close":"关闭","share.modal.action.x":"分享到 X","share.modal.action.download":"下载","share.modal.action.copy":"复制图片","share.modal.hint.x":"把图片粘贴到推文里","share.modal.hint.copy":"到剪贴板","share.modal.name_label":"显示名称","share.modal.name_placeholder":"输入你的名字","share.modal.style_label":"样式","share.modal.footer":"数据始终保留在本地——图片在你的浏览器内生成,绝不上传。","share.button.label":"分享","share.button.aria":"打开分享卡片","share.toast.copied":"图片已复制到剪贴板","share.toast.downloaded":"图片已保存","share.toast.failed":"图片生成失败","share.toast.working":"生成中…","share.variant.neon":"霓虹","share.variant.broadsheet":"特刊","share.date.month_year":"{{year}} 年 {{month}}","share.issue.all_time":"总计","share.month_short.jan":"1 月","share.month_short.feb":"2 月","share.month_short.mar":"3 月","share.month_short.apr":"4 月","share.month_short.may":"5 月","share.month_short.jun":"6 月","share.month_short.jul":"7 月","share.month_short.aug":"8 月","share.month_short.sep":"9 月","share.month_short.oct":"10 月","share.month_short.nov":"11 月","share.month_short.dec":"12 月","share.hook.top_loyal":"{{name}} 占了 {{percent}}% 的用量。","share.hook.days_record":"共记录 {{days}} 天。","share.hook.top_led":"{{name}} 领跑,占比 {{percent}}%。","share.hook.multi_models":"{{days}} 天里用了 {{count}} 个模型。","share.hook.days_with_model":"{{name}} 陪你跑了 {{days}} 天。","share.hook.new_chapter":"新的记录,从这里开始。","share.card.broadsheet.issue":"期号","share.card.broadsheet.by":"分享者","share.card.broadsheet.tracked_since":"追踪起始","share.card.broadsheet.total_tokens":"总 Token 数","share.card.broadsheet.estimated_spend":"预估花费","share.card.broadsheet.billable_days":"{{days}} 个活跃日","share.card.broadsheet.heatmap_title":"年度热图","share.card.broadsheet.heatmap_days_on_record":"{{active}} / {{total}} 天有记录","share.card.broadsheet.roster_title":"模型榜","share.card.broadsheet.roster_subtitle":"常用模型轮换","share.card.broadsheet.empty":"这一周很安静,还没有模型数据。","share.card.broadsheet.global_rank":"全站排名","share.card.broadsheet.active_days":"活跃","share.card.broadsheet.days_count":"{{days}} 天","share.card.broadsheet.track_yours":"追踪你自己的","share.card.annual.report_title":"用量报告","share.card.annual.less":"少","share.card.annual.more":"多","share.card.annual.heatmap_title":"Token 热图","share.card.annual.total_tokens":"总 Token 数","share.card.annual.estimated_cost":"预估成本","share.card.annual.longest_streak":"最长连击","share.card.annual.days_count":"{{days}} 天","share.card.annual.top_model":"热门模型"};function NM(){return typeof window>"u"?null:window.localStorage||null}function IM(){return typeof navigator>"u"?null:navigator.clipboard||null}function FU(){return typeof window>"u"?null:window.ClipboardItem||null}function BU(t,{storage:e}={}){const n=e??NM();if(!n||typeof n.getItem!="function")return null;try{return n.getItem(t)}catch{return null}}function zU(t,e,{storage:n}={}){const i=n??NM();if(!i||typeof i.setItem!="function")return!1;try{return i.setItem(t,e),!0}catch{return!1}}async function VU(t,{clipboard:e}={}){const n=e??IM();if(!n||typeof n.writeText!="function")return!1;try{return await n.writeText(t),!0}catch{return!1}}async function sq(t,{clipboard:e}={}){const n=e??IM(),i=FU();if(!t||!n||typeof n.write!="function"||!i)return!1;try{const r=t.type||"image/png",a=t.type&&t.type!==r?t.slice(0,t.size,r):t.type?t:t.slice(0,t.size,r),o=new i({[r]:a});return await n.write([o]),!0}catch{return!1}}const UM="tokentracker-locale",Hl="system",vv="en",by="zh-CN";function OM(t){return typeof t!="string"?vv:/^zh(?:[-_]|$)/i.test(t.trim())?by:vv}function zf(t){return t===Hl?Hl:OM(t)}function HU(){return typeof navigator>"u"?[]:Array.isArray(navigator.languages)&&navigator.languages.length?navigator.languages.filter(t=>typeof t=="string"):typeof navigator.language=="string"?[navigator.language]:[]}function df(t,e=HU()){const n=zf(t);return n!==Hl?n:e.find(r=>/^zh(?:[-_]|$)/i.test(String(r).trim()))?by:vv}function Sy(){return zf(BU(UM)||Hl)}function GU(t){return zU(UM,zf(t))}const jU=["key","module","page","component","slot","text"],WU={[by]:{...IU,...UU,...OU}};let $m=null,FM=df(Sy());function $U(t){const e=[];let n=[],i="",r=!1;for(let a=0;a<t.length;a+=1){const o=t[a];if(r){o==='"'?t[a+1]==='"'?(i+='"',a+=1):r=!1:i+=o;continue}if(o==='"'){r=!0;continue}if(o===","){n.push(i),i="";continue}if(o===`
708
+ `,IU={"header.auth.sign_in_aria":"登录","header.auth.user_fallback":"用户","header.cloud_sync.label":"将本地使用情况同步到云端","header.cloud_sync.hint":"运行本地 Token Tracker 同步,将用量上传到云端。关闭后仅保留本地离线使用。","login.back_home":"返回首页","login.cloud_only":"未配置云端登录。请使用 localhost 上的本地仪表盘。","login.title":"登录","login.subtitle":"选择邮箱或已连接账号。","login.dismiss":"关闭","login.verify_email_success":"邮箱已验证。你现在可以登录。","login.verify_email_pending":"请先在邮箱中完成验证,然后再登录。","login.oauth.continue":"使用 {{provider}} 继续","login.divider":"或","login.tab.sign_in":"登录","login.tab.sign_up":"创建账户","login.field.name":"显示名称","login.field.name_placeholder":"可选","login.field.email":"电子邮件","login.field.password":"密码","login.password_hint":"至少 {{min}} 个字符。","login.submit.sign_in":"使用邮箱登录","login.submit.sign_up":"创建账号","auth.callback.processing":"处理中…","auth.callback.success":"登录成功","auth.callback.redirecting":"正在返回 TokenTracker…","auth.callback.failed":"登录未完成,请重试。","auth.callback.close":"关闭此页","login_modal.subtitle":"登录以加入排行榜","login_modal.continue_email":"使用邮箱继续","login_modal.divider_email":"邮箱","shared.placeholder.short":"--","shared.placeholder.anon_mark":"?","shared.unit.percent":"%","shared.unit.thousand_abbrev":"K","shared.unit.million_abbrev":"M","shared.unit.billion_abbrev":"B","shared.button.sign_in":"$ 登录","shared.button.sign_up":"$ 注册","shared.range.simple":"范围:{{range}}","shared.data_source":"数据来源:{{source}}","shared.error.prefix":"错误:{{error}}","shared.status.unsynced":"—","shared.time.now":"刚刚","error.boundary.title":"出了点问题","error.boundary.subtitle":"这个视图渲染失败了","error.boundary.hint":"打开控制台,然后重新加载页面","error.boundary.no_details":"没有错误详细信息","error.boundary.action.reload":"重新加载","shell.header.title":"Token 用量","shell.header.link_active":"LINK_ACTIVE","shell.footer.help":"[F1]帮助","shell.footer.neural_index":"核心索引:0.942.A1","backend.meta.status_label":"状态","backend.meta.host_label":"主机","backend.meta.checked_label":"上次检查","backend.meta.ok_label":"正常","backend.meta.http_label":"http","backend.meta.error_label":"错误","backend.meta.click_refresh":"点击=刷新","status.link.stable":"链接:稳定","status.link.unstable":"链接:弱","status.link.lost":"链接:丢失","boot.ascii_art":"加载中...","boot.prompt":"正在初始化仪表板...","boot.skip_hint":"点击跳过","boot.skip_aria":"跳过启动屏幕","system.header.title_default":"VIBE_OS_v9.0","sparkline.aria_label":"每日 Token 使用迷你图","identity_card.title_default":"身份","identity_card.name_default":"你","identity_card.unknown":"未知","identity_card.decrypt":"显示身份","identity_card.rank_label":"排名","identity_card.streak_label":"活跃天数","identity_card.rank_placeholder":"—","identity_card.streak_value":"{{days}} 天","identity_card.subscriptions_label":"订阅","identity_card.subscription_item":"{{tool}} {{plan}}","identity_panel.badge":"VU","identity_panel.level":"5级","identity_panel.rank_label":"排名","identity_panel.streak_label":"活跃","identity_panel.rank_placeholder":"—","identity_panel.streak_value":"{{days}} 天","usage.panel.title":"Token 使用","usage.summary.total_system_output":"Token 总数","usage.summary.total":"Token 总数","usage.period.day":"日","usage.period.week":"周","usage.period.month":"月","usage.period.total":"总计","usage.period.custom":"自定义","usage.metric.total":"总计","usage.metric.total_cost":"总成本(美元)","usage.metric.input":"输入","usage.metric.output":"输出","usage.metric.cached_input":"缓存输入","usage.metric.reasoning_output":"推理输出","usage.metric.cached_short":"缓存","usage.metric.reasoning_short":"推理","usage.button.loading":"加载中…","usage.button.refresh":"刷新","usage.cost_info.icon":"[ 详情 ]","usage.cost_info.label":"细节","usage.range_label":"范围:{{range}}","usage.overview.tablist_aria":"时间范围","usage.overview.cost_breakdown_aria":"查看成本明细","usage.overview.distribution_aria":"来源占比:{{items}}","usage.overview.distribution_item":"{{label}} {{percent}}%","usage.overview.provider_card_aria":"{{provider}}:{{percent}}%,{{tokens}} Token,{{cost}}。点击{{action}}详情","usage.overview.expand":"展开","usage.overview.collapse":"收起","usage.overview.model_count":"{{count}} 个模型","usage.overview.model_details_aria":"{{provider}} 模型详情","widgets.page.title":"桌面小组件","widgets.page.subtitle":"把你的 Token 用量钉在桌面上。","widgets.cta.open_gallery":"打开小组件库","widgets.cta.download":"下载 Mac 应用","widgets.cta.macos_only":"仅限 macOS","widgets.hero.aria":"使用小组件预览","widgets.hero.annotation":"右键点按桌面 · 编辑小组件 · 搜索“TokenTracker”","widgets.section.more":"还包括","widgets.heatmap.name":"热力图","widgets.heatmap.description":"像 GitHub 一样,一眼看清活跃和空闲的日子。","widgets.topModels.name":"热门模型","widgets.topModels.description":"你最常用的模型,按 Token 占比排序。","widgets.limits.name":"使用限制","widgets.limits.description":"Claude、Codex、Cursor、Gemini 等的实时速率限制进度。","daily.table.aria_label":"每日总计表","daily.sort.date.label":"日期","daily.sort.date.title":"按日期排序","daily.sort.total.label":"总计","daily.sort.total.title":"按总计排序","daily.sort.input.label":"输入","daily.sort.input.title":"按输入排序","daily.sort.output.label":"输出","daily.sort.output.title":"按输出排序","daily.sort.cached.label":"缓存","daily.sort.cached.title":"按缓存输入排序","daily.sort.reasoning.label":"推理","daily.sort.reasoning.title":"按推理输出排序","daily.sort.conversations.label":"对话数","daily.sort.conversations.title":"按对话排序","details.pagination.prev":"上一页","details.pagination.next":"下一页","details.pagination.page":"页{{page}}/{{total}}","limits.copilot.otelHint.title":"跟踪 Copilot Token 使用情况","limits.copilot.otelHint.body":"限额信息通过你的 GitHub OAuth 令牌读取。如果还想记录逐 Token 用量,请启用 Copilot 的 OpenTelemetry 导出,把下面这段加到你的 shell 配置文件(~/.zshrc 或 ~/.bashrc):","limits.copilot.otelHint.copy":"复制","limits.copilot.otelHint.copied":"已复制","limits.panel.title":"使用限制","limits.label.cursor_plan":"套餐","limits.label.cursor_auto":"自动","limits.label.cursor_api":"API","limits.label.kiro_month":"月度","limits.label.kiro_bonus":"奖励","limits.label.copilot_premium":"高级","limits.label.copilot_chat":"对话","live_sniffer.log.system":"[系统]KERNEL_LINK_ESTABLISHED","live_sniffer.log.socket":"[套接字]正在监听_LOCAL_CLI_PIPE...","live_sniffer.event.intercepted":"> 拦截:AI_COMPLETION_EVENT","live_sniffer.event.quantifying":"> 量化:+64 NEURAL_TOKENS","live_sniffer.event.analysis":"> 分析:HIGH_VIBE_FLOW_DETECTED","live_sniffer.event.sync":"> 同步:上传到核心中继","live_sniffer.event.batch":"[状态] BATCH_TRANSMISSION_COMPLETE","live_sniffer.event.hooking":"> 挂钩:AI_CLI_PIPE_LINK","live_sniffer.event.capture":"> 捕获:+128 NEURAL_TOKENS","nav.usage":"用量","nav.limits":"限额","nav.widgets":"小组件","nav.leaderboard":"排行榜","nav.collapse":"折叠侧边栏","nav.expand":"展开侧边栏","nav.menu":"打开导航菜单","nav.close_menu":"关闭导航菜单","nav.aside_label":"主导航","nav.nav_label":"导航","limits.page.subtitle":"AI 工具的速率限制和配额使用情况。","limits.settings.title":"显示设置","limits.settings.subtitle":"选择要显示的提供商及其顺序。","limits.settings.move_up":"向上移动","limits.settings.move_down":"下移","limits.settings.toggle_visible":"切换可见性","limits.page.openSettings":"显示设置","nav.group.general":"常规","nav.group.tools":"工具","nav.group.account":"账户","nav.settings":"设置","header.auth.open_settings":"打开设置","settings.page.title":"设置","settings.page.subtitle":"管理你的账户、外观和显示偏好。","settings.section.appearance":"外观","settings.section.account":"账户","settings.section.limits":"限制显示","settings.section.limitsSubtitle":"重新排序提供商并选择哪些出现在“限制”页面上。","settings.appearance.theme.label":"主题","settings.appearance.theme.hint":"选择 Token Tracker 在仪表盘中的显示方式。","settings.appearance.theme.light":"浅色","settings.appearance.theme.dark":"深色","settings.appearance.theme.system":"系统","settings.account.displayName":"显示名称","settings.account.edit":"编辑","settings.account.save":"保存","settings.account.saving":"保存...","settings.account.cancel":"取消","settings.account.cloudSync":"云同步","settings.account.cloudSyncHint":"将本地用量上传到你的 Token Tracker 云端账号。","settings.account.publicProfile":"公开主页","settings.account.publicProfileHint":"在公开排行榜中展示你的用量。","settings.account.anonymous":"匿名","settings.account.anonymousHint":"在排行榜中隐藏你的名字和头像。","settings.account.displayNameAnonymousHint":"匿名状态下,排行榜会隐藏你的名字和头像","settings.account.displayNameDisabledWhileAnon":"请先关闭匿名,再编辑名字","settings.account.githubUrl":"GitHub 主页","settings.account.githubUrlHint":"在排行榜名字旁显示 GitHub 链接。","settings.account.githubUrlPlaceholder":"用户名或 https://github.com/用户名","settings.account.githubUrlInvalid":"请输入 GitHub 用户名,或 https://github.com/用户名","leaderboard.github.aria":"打开 GitHub 主页","leaderboard.github.tooltipAction":"点击查看 GitHub 主页","leaderboard.github.tooltipPrefix":"可在","leaderboard.github.tooltipSettingsLink":"设置","leaderboard.github.tooltipSuffix":"中配置你的主页","settings.account.signOut":"退出登录","settings.account.signIn":"登录","settings.account.signedOutHint":"登录后可管理云同步和排行榜偏好。","settings.section.menubar":"菜单栏应用","settings.section.menubarSubtitle":"macOS 菜单栏应用的偏好设置,与右键菜单保持一致。","settings.menubar.showStats":"在菜单栏中显示统计信息","settings.menubar.showStatsHint":"在菜单栏图标旁边显示今天的Token 数量和成本。","settings.menubar.animatedIcon":"动画图标","settings.menubar.animatedIconHint":"闪烁 Clawd 角色并在菜单栏中播放同步动画。","settings.menubar.launchAtLogin":"登录时启动","settings.menubar.launchAtLoginHint":"登录 macOS 时自动启动 TokenTrackerBar。","settings.menubar.syncNow":"立即同步","settings.menubar.syncNowHint":"触发本地AI工具日志立即解析并上传。","settings.menubar.syncing":"正在同步...","settings.menubar.updates":"更新","settings.menubar.updatesHint":"检查 GitHub 上是否有新版本。","settings.menubar.checkUpdates":"检查更新","nav.ip_check":"Claude IP 检查","settings.appearance.language.label":"语言","settings.appearance.language.hint":"使用“系统”时会默认跟随本机语言。","settings.appearance.language.system":"系统","settings.appearance.language.english":"英语","settings.appearance.language.chinese":"简体中文"},UU={"stats.period.today":"今日","stats.period.week":"本周","stats.period.month":"本月","stats.period.all":"全部","stats.period.convs":"对话","dashboard.core_index.collapse_label":"▾","dashboard.core_index.expand_label":"▸","dashboard.core_index.collapse_aria":"折叠模型分解","dashboard.core_index.expand_aria":"展开模型细分","dashboard.rolling.title":"最近的活动","dashboard.rolling.last_7d":"过去 7 天","dashboard.rolling.last_30d":"过去 30 天","dashboard.rolling.avg_active_day":"日平均","dashboard.model_breakdown.title":"模型拆解","dashboard.model_breakdown.footer":"多引擎负载均衡 // 活跃会话","dashboard.model_breakdown.usage_label":"用量:{{value}}","dashboard.top_models.title":"热门模型","dashboard.top_models.subtitle":"按 Token 使用情况","dashboard.projects.title":"项目用量","dashboard.projects.subtitle":"你最活跃的仓库","dashboard.projects.tokens_label":"Token","dashboard.projects.stars_label":"星标","dashboard.projects.limit_label":"展示","dashboard.projects.limit_aria":"选择仓库显示数量","dashboard.projects.limit_top_3":"前 3 名","dashboard.projects.limit_top_6":"前 6 名","dashboard.projects.limit_top_10":"前 10 名","dashboard.projects.empty":"没有公开仓库","dashboard.upgrade_alert.title":"可用更新","dashboard.upgrade_alert.subtitle":"TokenTracker v{{required}} 现已推出。","dashboard.upgrade_alert.subtitle_generic":"新版本的 TokenTracker 现已推出。","dashboard.upgrade_alert.prompt":"$","dashboard.upgrade_alert.sparkle":"✨","dashboard.upgrade_alert.install_command":"npx --yes tokentracker-cli init","dashboard.upgrade_alert.copy":"[ 复制 ]","dashboard.upgrade_alert.copied":"[已复制]","dashboard.upgrade_alert.ignore":"忽略","dashboard.widgets.title":"桌面小组件","dashboard.widgets.hint":"右键点按桌面 → 编辑小组件 → 搜索“TokenTracker”","dashboard.widgets.dismiss_aria":"关闭小组件介绍","dashboard.cost_breakdown.title":"成本明细","dashboard.cost_breakdown.total_label":"预计总成本","dashboard.cost_breakdown.calc_prefix":"计算:","dashboard.cost_breakdown.calc_dynamic":"动态","dashboard.cost_breakdown.close":"关闭","dashboard.cost_breakdown.footer":"根据公开定价估算","trend.chart.unit_label":"TKNS","trend.chart.left_label":"T-24H","trend.chart.right_label":"实时流","trend.chart.empty":"没有趋势数据。","trend.chart.peak":"峰值:{{value}} {{unit}}","trend.monitor.label":"使用趋势","trend.monitor.max_label":"最大值:{{value}}","trend.monitor.avg_label":"平均值:{{value}}","trend.monitor.now_label":"现在","trend.monitor.fallback.hour_00":"00:00","trend.monitor.fallback.hour_06":"06:00","trend.monitor.fallback.hour_12":"12:00","trend.monitor.fallback.hour_18":"18:00","trend.monitor.fallback.hour_23":"23:00","trend.monitor.fallback.tminus_24":"-24小时","trend.monitor.fallback.tminus_18":"-18小时","trend.monitor.fallback.tminus_12":"-12小时","trend.monitor.fallback.tminus_6":"-6小时","trend.monitor.tooltip.utc":"UTC","trend.monitor.tooltip.tokens":"Token","trend.monitor.tooltip.hour":"{{date}} {{hour}}:00 {{tz}}","trend.monitor.tooltip.day":"{{date}} {{tz}}","trend.monitor.tooltip.month":"{{date}} {{tz}}","trend.monitor.tooltip.hour_no_tz":"{{date}} {{hour}}:00","trend.monitor.tooltip.day_no_tz":"{{date}}","trend.monitor.tooltip.month_no_tz":"{{date}}","trend.monitor.tooltip.value":"{{value}} {{unit}}","trend.monitor.month.jan":"1月","trend.monitor.month.feb":"2月","trend.monitor.month.mar":"3月","trend.monitor.month.apr":"4月","trend.monitor.month.may":"5月","trend.monitor.month.jun":"6月","trend.monitor.month.jul":"7月","trend.monitor.month.aug":"8月","trend.monitor.month.sep":"9月","trend.monitor.month.oct":"10月","trend.monitor.month.nov":"11月","trend.monitor.month.dec":"12月","heatmap.title":"热力图","heatmap.subtitle":"你过去一年的 AI 用量","heatmap.aria_label":"热力图","heatmap.empty":"尚无活动数据。","heatmap.legend.less":"少","heatmap.legend.more":"多","heatmap.legend.utc":"UTC","heatmap.tooltip":"{{day}} • {{value}} {{unit}} • {{tz}}","heatmap.unit.tokens":"Token","heatmap.month.jan":"1月","heatmap.month.feb":"2月","heatmap.month.mar":"3月","heatmap.month.apr":"4月","heatmap.month.may":"5月","heatmap.month.jun":"6月","heatmap.month.jul":"7月","heatmap.month.aug":"8月","heatmap.month.sep":"9月","heatmap.month.oct":"10月","heatmap.month.nov":"11月","heatmap.month.dec":"12月","heatmap.day.sun":"日","heatmap.day.mon":"一","heatmap.day.tue":"二","heatmap.day.wed":"三","heatmap.day.thu":"四","heatmap.day.fri":"五","heatmap.day.sat":"六","dashboard.sign_out":"登出","dashboard.not_signed_in":"未登录","dashboard.footer.active":"{{range}} • 点击“刷新”重新加载","dashboard.footer.auth":"登录查看使用情况","dashboard.footer.right":"Token Tracker 仪表盘","dashboard.auth_required.title":"需要身份验证","dashboard.auth_required.subtitle":"登录以继续","dashboard.auth_required.body":"登录或注册即可查看你每日的 token 用量(UTC)。","dashboard.session_expired.title":"会话已过期","dashboard.session_expired.subtitle":"重新登录","dashboard.session_expired.body":"你的会话已过期。","dashboard.session_expired.body_tail":"请重新登录,以刷新你的私有用量数据。","dashboard.session_expired.copy_label":"运行 npx --yes tokentracker-cli init","dashboard.session_expired.copied":"已复制","dashboard.auth_optional.title":"连接你的账号","dashboard.auth_optional.subtitle":"跨设备同步使用情况","dashboard.auth_optional.body":"登录或注册以同步真实用量。","dashboard.install.title":"安装","dashboard.install.subtitle":"命令行工具","dashboard.install.prompt":"安装 Node.js 18+ 然后运行:","dashboard.install.cmd.init":"npx --yes tokentracker-cli init","dashboard.install.cmd.init_link_code":"npx --yes tokentracker-cli init --link-code {{link_code}}","dashboard.install.copy":"复制安装命令","dashboard.install.copy_base":"复制初始化命令","dashboard.install.copied":"已复制到剪贴板","dashboard.install.link_code.loading":"正在生成专属代码...","dashboard.install.link_code.failed":"专属代码不可用","dashboard.install.cmd.sync":"npx --yes tokentracker-cli sync","dashboard.public_view.title":"公开主页","dashboard.public_view.status.enabled":"开启","dashboard.public_view.status.disabled":"关闭","dashboard.public_view.action.copy":"复制分享链接","dashboard.public_view.action.copied":"已复制","dashboard.public_view.action.enable":"开启公开主页","dashboard.public_view.action.disable":"关闭公开主页","dashboard.public_view.invalid.title":"链接无效","dashboard.public_view.invalid.body":"此公共链接无效或已被撤销。","dashboard.activity.title":"活动","dashboard.activity.subtitle":"过去 52 周 · 本地数据","dashboard.daily.title":"每日细目","dashboard.daily.subtitle":"查看每天的用量","dashboard.daily.empty":"还没有数据。先使用 AI CLI,再运行 {{cmd}}。","dashboard.identity.title":"你的个人资料","dashboard.identity.subtitle":"记录你的编码之旅","dashboard.identity.fallback":"匿名用户","dashboard.version.label":"版本","dashboard.screenshot.title_line1":"AI 编程助手","dashboard.screenshot.title_line2":"2025 年度回顾","dashboard.screenshot.twitter_button":"分享到 X","dashboard.screenshot.twitter_label":"分享到 X","dashboard.screenshot.twitter_hint":"自动将图像复制到剪贴板","dashboard.screenshot.twitter_text":"记录中的 {{total_tokens}} Token。\\n{{model_name}} 以 {{model_percent}}% 领先。\\n\\n我的 AI 使用情况,未经审计 →\\ntoken.rynn.me"},OU={"landing.handle.default":"VIBE_USER","landing.handle.special":"伏特","landing.hero.title_primary":"实时追踪你的","landing.hero.title_secondary":"AI Token","landing.hero.tagline":"统一的用量仪表板","landing.hero.subtagline":"自动监控 Claude Code、Cursor、Codex 等工具的 Token 用量。本地优先、注重隐私、零配置。","landing.screenshot.alt":"TokenTracker 仪表板截图","landing.nav.login":"登录","landing.nav.signup":"注册","landing.nav.login_signup":"登录 / 注册","landing.seo.title":"面向 AI Coding CLI 的安全 Token 用量追踪","landing.seo.summary":"自动监控 Claude Code、Cursor、Codex 等工具的 Token 用量。本地优先、注重隐私、零配置。","landing.install.title":"一行命令即可安装","landing.install.prompt":"在终端里运行:","landing.install.command":"npx --yes tokentracker-cli","landing.install.helper":"然后连接你的账号,开始同步用量。","landing.install.action.copy":"复制命令","landing.install.action.copied":"已复制","landing.ai_agent.title":"让 AI 帮你安装","landing.ai_agent.description":"复制下面的指南,粘贴给 ChatGPT、Claude 或任意 AI 助手——它会自动帮你装好 TokenTracker。","landing.ai_agent.command":"https://github.com/mm7894215/TokenTracker/blob/main/docs/AI_AGENT_INSTALL.md","landing.ai_agent.copy_label":"复制指南链接","landing.ai_agent.helper":"或点击直接打开指南手动复制。","landing.ai_agent.guide_url":"https://github.com/mm7894215/TokenTracker/blob/main/docs/AI_AGENT_INSTALL.md","landing.meta.title":"Token Tracker —— AI Coding CLI 的 Token 用量追踪器","landing.meta.description":"自动监控 Claude Code、Cursor、Codex 等工具的 Token 用量。本地优先、注重隐私、零配置。","landing.meta.og_site_name":"Token Tracker","landing.meta.og_type":"website","landing.meta.og_image":"https://www.tokentracker.cc/og-image.jpg","landing.meta.og_url":"https://www.tokentracker.cc/","landing.meta.twitter_card":"summary_large_image","share.meta.title":"Token Tracker 分享","share.meta.description":"分享你的 Token Tracker 仪表板快照,包含跨模型、项目和时间窗口的用量洞察。","share.meta.og_site_name":"Token Tracker","share.meta.og_type":"website","share.meta.og_image":"https://www.tokentracker.cc/share-dashboard.jpg","share.meta.og_url":"https://www.tokentracker.cc/share","share.meta.twitter_card":"summary_large_image","landing.seo.point1":"自动追踪 AI CLI 的 Token 用量,零手动操作。","landing.seo.point2":"矩阵式界面,关键信号一目了然。","landing.seo.point3":"通用 AI CLI 排行榜,对比用量与排名。","landing.seo.roadmap":"原生支持 Codex、Claude Code 与 Gemini CLI。","landing.signal.identity_probe":"身份探测","landing.signal.live_sniffer":"实时嗅探","landing.handle.label":"设置 Handle","landing.handle.placeholder":"试试 “{{handle}}”","landing.rank.expectation":"预期排名:{{rank}}","landing.rank.singularity":"登顶","landing.rank.unranked":"未上榜","landing.cta.initialize":"进入仪表板","landing.cta.subtext":"连接 GitHub","landing.cta.primary":"进入仪表板","landing.cta.secondary":"查看 GitHub 源码","landing.cta.login_signup":"进入仪表板","landing.footer.link.manifesto":"宣言","landing.footer.link.docs":"文档","landing.footer.link.security":"安全","landing.footer.system_ready":"System_Ready // 2026 TokenTracker OS","landing.v2.hero.title_line1":"追踪你所有的","landing.v2.hero.title_line2":"AI Token","landing.v2.hero.subtitle":"统一的用量仪表板","landing.v2.install.btn_copy":"复制命令","landing.v2.install.mac_cta":"Mac 应用 (DMG)","landing.v2.models.title":"支持的 AI CLI 工具","landing.v2.compare.kicker":"无缝追踪","landing.v2.compare.title":"别再瞎猜你的 AI 用量。","landing.v2.compare.subtitle":"AI CLI 把用量数据藏在零散的本地文件里。TokenTracker 把它们实时聚合到一个清晰的仪表板里。","landing.v2.distill.body":"100% 本地处理,不上传任何 prompt 或代码。","landing.v2.compare.with.title":"用 Token Tracker","landing.v2.compare.with.p1":"集中式用量仪表板","landing.v2.compare.with.p2":"实时 Token 指标","landing.v2.compare.with.p3":"100% 本地,隐私无忧","landing.v2.compare.without.title":"不用","landing.v2.compare.without.p1":"散落的 JSON 日志文件","landing.v2.compare.without.p2":"对 Token 消耗一无所知","landing.v2.compare.without.p3":"突如其来的 API 账单","landing.v2.footer.line":"Token Tracker —— 开发者打造,服务开发者。","landing.v2.nav.github":"GitHub","landing.v2.models.agent.codex":"Codex","landing.v2.models.agent.claude_code":"Claude Code","landing.v2.models.agent.cursor":"Cursor","landing.v2.models.agent.gemini":"Gemini","landing.v2.models.agent.opencode":"OpenCode","landing.v2.models.agent.openclaw":"OpenClaw","landing.v2.cta.primary":"进入仪表板","landing.v2.hero.subtagline":"自动监控 Claude Code、Cursor、Codex 等工具的 Token 用量。本地优先、注重隐私、零配置。","signalbox.title_default":"关联","archive.title":"档案网格","archive.footer.left":"年度网格","leaderboard.nav.open":"$ 排行榜","leaderboard.nav.back":"$ 仪表板","leaderboard.profile.nav.back":"$ 排行榜","leaderboard.title":"排行榜","leaderboard.range":"UTC {{period}} · {{from}} – {{to}}","leaderboard.range_loading":"UTC {{period}} · …","leaderboard.range.total":"全部时间","leaderboard.generated_at":"更新于 {{ts}}","leaderboard.period.week":"周","leaderboard.period.month":"月","leaderboard.period.total":"全部","leaderboard.metric.all":"全部","leaderboard.metric.gpt":"GPT","leaderboard.metric.claude":"Claude","leaderboard.me_label":"你","leaderboard.anon_label":"匿名","leaderboard.public_profile.label":"公开主页","leaderboard.public_profile.status.enabled":"已开启","leaderboard.public_profile.status.disabled":"已关闭","leaderboard.error.unknown":"未知错误","leaderboard.me_card.title":"我的排名","leaderboard.me_card.subtitle":"本周","leaderboard.profile.card.title":"个人主页","leaderboard.profile.card.subtitle":"{{period}}","leaderboard.top10.title":"前 10 名","leaderboard.top10.subtitle":"前 9 名加上你","leaderboard.table.title":"完整榜单","leaderboard.table.subtitle":"分页显示","leaderboard.loading":"加载中…","leaderboard.empty":"暂无数据","leaderboard.column.rank":"排名","leaderboard.column.user":"用户","leaderboard.column.total":"总计","leaderboard.column.codex":"Codex","leaderboard.column.claude":"Claude","leaderboard.column.gemini":"Gemini","leaderboard.column.cursor":"Cursor","leaderboard.column.opencode":"OpenCode","leaderboard.column.openclaw":"OpenClaw","leaderboard.column.hermes":"Hermes","leaderboard.column.kiro":"Kiro","leaderboard.column.copilot":"Copilot","leaderboard.column.kimi":"Kimi","leaderboard.column.supplemental":"其他","leaderboard.column.est_cost":"预估花费","leaderboard.signin_prompt":"登录后即可上榜","leaderboard.signin_button":"登录","leaderboard.sync_prompt":"开启云同步即可参与排名","leaderboard.sync_button.idle":"开启并同步","leaderboard.sync_button.busy":"同步中…","leaderboard.pagination.page_size_label":"每页显示","landing.oauth.google":"使用 Google 继续","landing.oauth.github":"使用 GitHub 继续","leaderboard.pagination.prev":"上一页","leaderboard.pagination.next":"下一页","leaderboard.pagination.ellipsis":"……","leaderboard.pagination.page_unknown":"第 {{page}} 页","share.modal.title":"分享你的数据","share.modal.subtitle":"生成海报卡片,随处分享。","share.modal.close":"关闭","share.modal.action.x":"分享到 X","share.modal.action.download":"下载","share.modal.action.copy":"复制图片","share.modal.hint.x":"把图片粘贴到推文里","share.modal.hint.copy":"到剪贴板","share.modal.name_label":"显示名称","share.modal.name_placeholder":"输入你的名字","share.modal.style_label":"样式","share.modal.footer":"数据始终保留在本地——图片在你的浏览器内生成,绝不上传。","share.button.label":"分享","share.button.aria":"打开分享卡片","share.toast.copied":"图片已复制到剪贴板","share.toast.downloaded":"图片已保存","share.toast.failed":"图片生成失败","share.toast.working":"生成中…","share.variant.neon":"霓虹","share.variant.broadsheet":"特刊","share.date.month_year":"{{year}} 年 {{month}}","share.issue.all_time":"总计","share.month_short.jan":"1 月","share.month_short.feb":"2 月","share.month_short.mar":"3 月","share.month_short.apr":"4 月","share.month_short.may":"5 月","share.month_short.jun":"6 月","share.month_short.jul":"7 月","share.month_short.aug":"8 月","share.month_short.sep":"9 月","share.month_short.oct":"10 月","share.month_short.nov":"11 月","share.month_short.dec":"12 月","share.hook.top_loyal":"{{name}} 占了 {{percent}}% 的用量。","share.hook.days_record":"共记录 {{days}} 天。","share.hook.top_led":"{{name}} 领跑,占比 {{percent}}%。","share.hook.multi_models":"{{days}} 天里用了 {{count}} 个模型。","share.hook.days_with_model":"{{name}} 陪你跑了 {{days}} 天。","share.hook.new_chapter":"新的记录,从这里开始。","share.card.broadsheet.issue":"期号","share.card.broadsheet.by":"分享者","share.card.broadsheet.tracked_since":"追踪起始","share.card.broadsheet.total_tokens":"总 Token 数","share.card.broadsheet.estimated_spend":"预估花费","share.card.broadsheet.billable_days":"{{days}} 个活跃日","share.card.broadsheet.heatmap_title":"年度热图","share.card.broadsheet.heatmap_days_on_record":"{{active}} / {{total}} 天有记录","share.card.broadsheet.roster_title":"模型榜","share.card.broadsheet.roster_subtitle":"常用模型轮换","share.card.broadsheet.empty":"这一周很安静,还没有模型数据。","share.card.broadsheet.global_rank":"全站排名","share.card.broadsheet.active_days":"活跃","share.card.broadsheet.days_count":"{{days}} 天","share.card.broadsheet.track_yours":"追踪你自己的","share.card.annual.report_title":"用量报告","share.card.annual.less":"少","share.card.annual.more":"多","share.card.annual.heatmap_title":"Token 热图","share.card.annual.total_tokens":"总 Token 数","share.card.annual.estimated_cost":"预估成本","share.card.annual.longest_streak":"最长连击","share.card.annual.days_count":"{{days}} 天","share.card.annual.top_model":"热门模型"};function NM(){return typeof window>"u"?null:window.localStorage||null}function IM(){return typeof navigator>"u"?null:navigator.clipboard||null}function FU(){return typeof window>"u"?null:window.ClipboardItem||null}function BU(t,{storage:e}={}){const n=e??NM();if(!n||typeof n.getItem!="function")return null;try{return n.getItem(t)}catch{return null}}function zU(t,e,{storage:n}={}){const i=n??NM();if(!i||typeof i.setItem!="function")return!1;try{return i.setItem(t,e),!0}catch{return!1}}async function VU(t,{clipboard:e}={}){const n=e??IM();if(!n||typeof n.writeText!="function")return!1;try{return await n.writeText(t),!0}catch{return!1}}async function sq(t,{clipboard:e}={}){const n=e??IM(),i=FU();if(!t||!n||typeof n.write!="function"||!i)return!1;try{const r=t.type||"image/png",a=t.type&&t.type!==r?t.slice(0,t.size,r):t.type?t:t.slice(0,t.size,r),o=new i({[r]:a});return await n.write([o]),!0}catch{return!1}}const UM="tokentracker-locale",Hl="system",vv="en",by="zh-CN";function OM(t){return typeof t!="string"?vv:/^zh(?:[-_]|$)/i.test(t.trim())?by:vv}function zf(t){return t===Hl?Hl:OM(t)}function HU(){return typeof navigator>"u"?[]:Array.isArray(navigator.languages)&&navigator.languages.length?navigator.languages.filter(t=>typeof t=="string"):typeof navigator.language=="string"?[navigator.language]:[]}function df(t,e=HU()){const n=zf(t);return n!==Hl?n:e.find(r=>/^zh(?:[-_]|$)/i.test(String(r).trim()))?by:vv}function Sy(){return zf(BU(UM)||Hl)}function GU(t){return zU(UM,zf(t))}const jU=["key","module","page","component","slot","text"],WU={[by]:{...IU,...UU,...OU}};let $m=null,FM=df(Sy());function $U(t){const e=[];let n=[],i="",r=!1;for(let a=0;a<t.length;a+=1){const o=t[a];if(r){o==='"'?t[a+1]==='"'?(i+='"',a+=1):r=!1:i+=o;continue}if(o==='"'){r=!0;continue}if(o===","){n.push(i),i="";continue}if(o===`
708
709
  `){n.push(i),i="",n.every(c=>c.trim()==="")||e.push(n),n=[];continue}o!=="\r"&&(i+=o)}return n.push(i),n.every(a=>a.trim()==="")||e.push(n),e}function XU(t){const e=$U(t);if(!e.length)return{map:new Map,rows:[]};const n=e[0].map(c=>String(c).trim());if(jU.filter(c=>!n.includes(c)).length)return{map:new Map,rows:[]};const r=Object.fromEntries(n.map((c,u)=>[c,u])),a=[],o=new Map;return e.slice(1).forEach((c,u)=>{const d={key:String(c[r.key]||"").trim(),module:String(c[r.module]||"").trim(),page:String(c[r.page]||"").trim(),component:String(c[r.component]||"").trim(),slot:String(c[r.slot]||"").trim(),text:String(c[r.text]??"").trim()};d.key&&(o.has(d.key),o.set(d.key,d),a.push(d))}),{map:o,rows:a}}function qU(){return $m||($m=XU(NU)),$m}function YU(){return WU[FM]||{}}function KU(t){const e=YU()[String(t)];return typeof e=="string"&&e.trim()?e:null}function ZU(t,e){return e?t.replace(/\{\{(\w+)\}\}/g,(n,i)=>e[i]==null?n:String(e[i])):t}function JU(t){return String(t).replace(/\\n/g,`
709
710
  `)}function QU(t,e){return KU(e)||t?.text||e}function eO(t){FM=OM(t)}function We(t,e){const i=qU().map.get(t);return ZU(JU(QU(i,t)),e)}const ZS="tokentracker_native_app";let BM=null;const yv=new Set;typeof window<"u"&&window.addEventListener("native:systemAppearanceChanged",t=>{const e=t?.detail?.isDark;if(typeof e=="boolean"){BM=e;try{const n=document.documentElement;e?n.classList.add("dark"):n.classList.remove("dark")}catch{}yv.forEach(n=>{try{n(e)}catch{}})}});function JS(){return BM}function tO(t){return yv.add(t),()=>yv.delete(t)}function zM(){if(typeof window>"u")return!1;try{if(new URLSearchParams(window.location.search).get("app")==="1"){try{window.localStorage.setItem(ZS,"1")}catch{}return!0}return window.localStorage.getItem(ZS)==="1"}catch{return!1}}function Jr(){return typeof window>"u"?!1:!!window.webkit?.messageHandlers?.nativeBridge}function VM(){return typeof window>"u"?null:window.webkit?.messageHandlers?.nativeBridge??null}function oq(){return!!VM()}function Du(t){const e=VM();if(!e)return!1;try{return e.postMessage(t),!0}catch(n){return console.warn("[tokentracker] nativeBridge post failed:",n),!1}}function lq(){return Du({type:"getSettings"})}function QS(t,e){return Du({type:"setSetting",key:t,value:e})}function cq(t){return Du({type:"action",name:t})}function nO(){return Du({type:"getSystemAppearance"})}function iO(t,e){if(!Jr())return;Du({type:"setChromeAppearance",isDark:t==="dark",theme:e??"system"})}function uq(t){if(typeof window>"u")return()=>{};const e=n=>{n&&n.detail&&typeof n.detail=="object"&&t(n.detail)};return window.addEventListener("native:settings",e),()=>window.removeEventListener("native:settings",e)}const HM=k.createContext(null);function rO(){return df(Sy())}function aO(t){typeof document>"u"||(document.documentElement.lang=t)}function ew(t,e){eO(t),e(n=>n===t?n:t)}function sO({children:t}){const[e,n]=k.useState(Sy),[i,r]=k.useState(rO);k.useLayoutEffect(()=>{aO(i)},[i]),k.useLayoutEffect(()=>{Jr()&&QS("locale",e)},[e]),k.useLayoutEffect(()=>{if(e!==Hl||typeof window>"u")return;const c=()=>ew(df(Hl),r);return window.addEventListener("languagechange",c),()=>window.removeEventListener("languagechange",c)},[e]);const a=k.useCallback(c=>{const u=zf(c);ew(df(u),r),n(u),GU(u),Jr()&&QS("locale",u)},[]),o=k.useMemo(()=>({locale:e,setLocale:a,resolvedLocale:i}),[e,i,a]);return O.jsx(HM.Provider,{value:o,children:t})}const oO="modulepreload",lO=function(t){return"/"+t},tw={},No=function(e,n,i){let r=Promise.resolve();if(n&&n.length>0){let u=function(d){return Promise.all(d.map(f=>Promise.resolve(f).then(p=>({status:"fulfilled",value:p}),p=>({status:"rejected",reason:p}))))};document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),c=o?.nonce||o?.getAttribute("nonce");r=u(n.map(d=>{if(d=lO(d),d in tw)return;tw[d]=!0;const f=d.endsWith(".css"),p=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${d}"]${p}`))return;const m=document.createElement("link");if(m.rel=f?"stylesheet":oO,f||(m.as="script"),m.crossOrigin="",m.href=d,c&&m.setAttribute("nonce",c),document.head.appendChild(m),f)return new Promise((v,_)=>{m.addEventListener("load",v),m.addEventListener("error",()=>_(new Error(`Unable to preload CSS for ${d}`)))})}))}function a(o){const c=new Event("vite:preloadError",{cancelable:!0});if(c.payload=o,window.dispatchEvent(c),!c.defaultPrevented)throw o}return r.then(o=>{for(const c of o||[])c.status==="rejected"&&a(c.reason);return e().catch(a)})};var hf={},cO=()=>{window.va||(window.va=function(...e){window.vaq||(window.vaq=[]),window.vaq.push(e)})},uO="@vercel/analytics",dO="2.0.1";function GM(){return typeof window<"u"}function jM(){try{const t="production"}catch{}return"production"}function hO(t="auto"){if(t==="auto"){window.vam=jM();return}window.vam=t}function fO(){return(GM()?window.vam:jM())||"production"}function wy(){return fO()==="development"}function pO(t){return t.scriptSrc?Pl(t.scriptSrc):wy()?"https://va.vercel-scripts.com/v1/script.debug.js":t.basePath?Pl(`${t.basePath}/insights/script.js`):"/_vercel/insights/script.js"}function mO(t,e){var n;let i=t;if(e)try{i={...(n=JSON.parse(e))==null?void 0:n.analytics,...t}}catch{}hO(i.mode);const r={sdkn:uO+(i.framework?`/${i.framework}`:""),sdkv:dO};return i.disableAutoTrack&&(r.disableAutoTrack="1"),i.viewEndpoint&&(r.viewEndpoint=Pl(i.viewEndpoint)),i.eventEndpoint&&(r.eventEndpoint=Pl(i.eventEndpoint)),i.sessionEndpoint&&(r.sessionEndpoint=Pl(i.sessionEndpoint)),wy()&&i.debug===!1&&(r.debug="false"),i.dsn&&(r.dsn=i.dsn),i.endpoint?r.endpoint=i.endpoint:i.basePath&&(r.endpoint=Pl(`${i.basePath}/insights`)),{beforeSend:i.beforeSend,src:pO(i),dataset:r}}function Pl(t){return t.startsWith("http://")||t.startsWith("https://")||t.startsWith("/")?t:`/${t}`}function gO(t={debug:!0},e){var n;if(!GM())return;const{beforeSend:i,src:r,dataset:a}=mO(t,e);if(cO(),i&&((n=window.va)==null||n.call(window,"beforeSend",i)),document.head.querySelector(`script[src*="${r}"]`))return;const o=document.createElement("script");o.src=r;for(const[c,u]of Object.entries(a))o.dataset[c]=u;o.defer=!0,o.onerror=()=>{const c=wy()?"Please check if any ad blockers are enabled and try again.":"Be sure to enable Web Analytics for your project and deploy again. See https://vercel.com/docs/analytics/quickstart for more information.";console.log(`[Vercel Web Analytics] Failed to load script from ${r}. ${c}`)},document.head.appendChild(o)}function vO({route:t,path:e}){var n;(n=window.va)==null||n.call(window,"pageview",{route:t,path:e})}function yO(){if(!(typeof process>"u"||typeof hf>"u"))return hf.REACT_APP_VERCEL_OBSERVABILITY_BASEPATH}function _O(){if(!(typeof process>"u"||typeof hf>"u"))return hf.REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG}function xO(t){return k.useEffect(()=>{var e;t.beforeSend&&((e=window.va)==null||e.call(window,"beforeSend",t.beforeSend))},[t.beforeSend]),k.useEffect(()=>{gO({framework:t.framework||"react",basePath:t.basePath??yO(),...t.route!==void 0&&{disableAutoTrack:!0},...t},t.configString??_O())},[]),k.useEffect(()=>{t.route&&t.path&&vO({route:t.route,path:t.path})},[t.route,t.path]),null}var ff={},bO=()=>{window.si||(window.si=function(...e){window.siq=window.siq||[],window.siq.push(e)})},SO="@vercel/speed-insights",wO="2.0.0";function EO(){return typeof window<"u"}function TO(){try{const t="production"}catch{}return"production"}function WM(){return TO()==="development"}function MO(t){return t.scriptSrc?pf(t.scriptSrc):WM()?"https://va.vercel-scripts.com/v1/speed-insights/script.debug.js":t.dsn?"https://va.vercel-scripts.com/v1/speed-insights/script.js":t.basePath?pf(`${t.basePath}/speed-insights/script.js`):"/_vercel/speed-insights/script.js"}function AO(t,e){var n;let i=t;if(e)try{i={...(n=JSON.parse(e))==null?void 0:n.speedInsights,...t}}catch{}const r={sdkn:SO+(i.framework?`/${i.framework}`:""),sdkv:wO};return i.sampleRate&&(r.sampleRate=i.sampleRate.toString()),i.route&&(r.route=i.route),WM()&&i.debug===!1&&(r.debug="false"),i.dsn&&(r.dsn=i.dsn),i.endpoint?r.endpoint=pf(i.endpoint):i.basePath&&(r.endpoint=pf(`${i.basePath}/speed-insights/vitals`)),{src:MO(i),beforeSend:i.beforeSend,dataset:r}}function pf(t){return t.startsWith("http://")||t.startsWith("https://")||t.startsWith("/")?t:`/${t}`}function CO(t={},e){var n;if(!EO()||t.route===null)return null;bO();const{beforeSend:i,src:r,dataset:a}=AO(t,e);if(document.head.querySelector(`script[src*="${r}"]`))return null;i&&((n=window.si)==null||n.call(window,"beforeSend",i));const o=document.createElement("script");o.src=r,o.defer=!0;for(const[c,u]of Object.entries(a))o.dataset[c]=u;return o.onerror=()=>{console.log(`[Vercel Speed Insights] Failed to load script from ${r}. Please check if any content blockers are enabled and try again.`)},document.head.appendChild(o),{setRoute:c=>{o.dataset.route=c??void 0}}}function PO(){if(!(typeof process>"u"||typeof ff>"u"))return ff.REACT_APP_VERCEL_OBSERVABILITY_BASEPATH}function RO(){if(!(typeof process>"u"||typeof ff>"u"))return ff.REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG}function kO(t){k.useEffect(()=>{var n;t.beforeSend&&((n=window.si)==null||n.call(window,"beforeSend",t.beforeSend))},[t.beforeSend]);const e=k.useRef(null);return k.useEffect(()=>{if(!e.current){const n=CO({framework:t.framework??"react",basePath:t.basePath??PO(),...t},t.configString??RO());n&&(e.current=n.setRoute)}},[t]),k.useEffect(()=>{e.current&&t.route&&e.current(t.route)},[t.route]),null}function Vf(){return typeof window<"u"}function Ey(t){return $M(t)?(t.nodeName||"").toLowerCase():"#document"}function Zl(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function LO(t){var e;return(e=($M(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function $M(t){return Vf()?t instanceof Node||t instanceof Zl(t).Node:!1}function XM(t){return Vf()?t instanceof Element||t instanceof Zl(t).Element:!1}function Ty(t){return Vf()?t instanceof HTMLElement||t instanceof Zl(t).HTMLElement:!1}function nw(t){return!Vf()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof Zl(t).ShadowRoot}function qM(t){const{overflow:e,overflowX:n,overflowY:i,display:r}=KM(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&r!=="inline"&&r!=="contents"}function dq(t){return/^(table|td|th)$/.test(Ey(t))}function DO(t){try{if(t.matches(":popover-open"))return!0}catch{}try{return t.matches(":modal")}catch{return!1}}const NO=/transform|translate|scale|rotate|perspective|filter/,IO=/paint|layout|strict|content/,Zs=t=>!!t&&t!=="none";let Xm;function UO(t){const e=XM(t)?KM(t):t;return Zs(e.transform)||Zs(e.translate)||Zs(e.scale)||Zs(e.rotate)||Zs(e.perspective)||!OO()&&(Zs(e.backdropFilter)||Zs(e.filter))||NO.test(e.willChange||"")||IO.test(e.contain||"")}function hq(t){let e=_v(t);for(;Ty(e)&&!YM(e);){if(UO(e))return e;if(DO(e))return null;e=_v(e)}return null}function OO(){return Xm==null&&(Xm=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Xm}function YM(t){return/^(html|body|#document)$/.test(Ey(t))}function KM(t){return Zl(t).getComputedStyle(t)}function fq(t){return XM(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function _v(t){if(Ey(t)==="html")return t;const e=t.assignedSlot||t.parentNode||nw(t)&&t.host||LO(t);return nw(e)?e.host:e}function ZM(t){const e=_v(t);return YM(e)?t.ownerDocument?t.ownerDocument.body:t.body:Ty(e)&&qM(e)?e:ZM(e)}function iw(t,e,n){var i;e===void 0&&(e=[]),n===void 0&&(n=!0);const r=ZM(t),a=r===((i=t.ownerDocument)==null?void 0:i.body),o=Zl(r);if(a){const c=FO(o);return e.concat(o,o.visualViewport||[],qM(r)?r:[],c&&n?iw(c):[])}else return e.concat(r,iw(r,[],n))}function FO(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}const rw={};function My(t,e){const n=k.useRef(rw);return n.current===rw&&(n.current=t(e)),n}const qm=QE[`useInsertionEffect${Math.random().toFixed(1)}`.slice(0,-3)],BO=qm&&qm!==k.useLayoutEffect?qm:t=>t();function aw(t){const e=My(zO).current;return e.next=t,BO(e.effect),e.trampoline}function zO(){const t={next:void 0,callback:VO,trampoline:(...e)=>t.callback?.(...e),effect:()=>{t.callback=t.next}};return t}function VO(){}const HO=()=>{},GO=typeof document<"u"?k.useLayoutEffect:HO;function xv(t,e){if(t&&!e)return t;if(!t&&e)return e;if(t||e)return{...t,...e}}const su={};function JM(t,e,n,i,r){let a={...bv(t,su)};return e&&(a=Uh(a,e)),n&&(a=Uh(a,n)),i&&(a=Uh(a,i)),a}function jO(t){if(t.length===0)return su;if(t.length===1)return bv(t[0],su);let e={...bv(t[0],su)};for(let n=1;n<t.length;n+=1)e=Uh(e,t[n]);return e}function Uh(t,e){return QM(e)?e(t):WO(t,e)}function WO(t,e){if(!e)return t;for(const n in e){const i=e[n];switch(n){case"style":{t[n]=xv(t.style,i);break}case"className":{t[n]=eA(t.className,i);break}default:$O(n,i)?t[n]=XO(t[n],i):t[n]=i}}return t}function $O(t,e){const n=t.charCodeAt(0),i=t.charCodeAt(1),r=t.charCodeAt(2);return n===111&&i===110&&r>=65&&r<=90&&(typeof e=="function"||typeof e>"u")}function QM(t){return typeof t=="function"}function bv(t,e){return QM(t)?t(e):t??su}function XO(t,e){return e?t?n=>{if(qO(n)){const r=n;Sv(r);const a=e(r);return r.baseUIHandlerPrevented||t?.(r),a}const i=e(n);return t?.(n),i}:e:t}function Sv(t){return t.preventBaseUIHandler=()=>{t.baseUIHandlerPrevented=!0},t}function eA(t,e){return e?t?e+" "+t:e:t}function qO(t){return t!=null&&typeof t=="object"&&"nativeEvent"in t}function tA(t,...e){const n=new URL("https://base-ui.com/production-error");return n.searchParams.set("code",t.toString()),e.forEach(i=>n.searchParams.append("args[]",i)),`Base UI error #${t}; visit ${n} for the full message.`}const YO=k.createContext(void 0);function KO(t=!1){const e=k.useContext(YO);if(e===void 0&&!t)throw new Error(tA(16));return e}function ZO(t){const{focusableWhenDisabled:e,disabled:n,composite:i=!1,tabIndex:r=0,isNativeButton:a}=t,o=i&&e!==!1,c=i&&e===!1;return{props:k.useMemo(()=>{const d={onKeyDown(f){n&&e&&f.key!=="Tab"&&f.preventDefault()}};return i||(d.tabIndex=r,!a&&n&&(d.tabIndex=e?r:-1)),(a&&(e||o)||!a&&n)&&(d["aria-disabled"]=n),a&&(!e||c)&&(d.disabled=n),d},[i,n,e,o,c,a,r])}}function JO(t={}){const{disabled:e=!1,focusableWhenDisabled:n,tabIndex:i=0,native:r=!0}=t,a=k.useRef(null),o=KO(!0)!==void 0,c=aw(()=>{const m=a.current;return!!(m?.tagName==="A"&&m?.href)}),{props:u}=ZO({focusableWhenDisabled:n,disabled:e,composite:o,tabIndex:i,isNativeButton:r}),d=k.useCallback(()=>{const m=a.current;QO(m)&&o&&e&&u.disabled===void 0&&m.disabled&&(m.disabled=!1)},[e,u.disabled,o]);GO(d,[d]);const f=k.useCallback((m={})=>{const{onClick:v,onMouseDown:_,onKeyUp:w,onKeyDown:y,onPointerDown:b,...M}=m;return JM({type:r?"button":void 0,onClick(T){if(e){T.preventDefault();return}v?.(T)},onMouseDown(T){e||_?.(T)},onKeyDown(T){if(e||(Sv(T),y?.(T)),T.baseUIHandlerPrevented)return;const I=T.target===T.currentTarget&&!r&&!c()&&!e,L=T.key==="Enter",U=T.key===" ";I&&((U||L)&&T.preventDefault(),L&&v?.(T))},onKeyUp(T){e||(Sv(T),w?.(T)),!T.baseUIHandlerPrevented&&T.target===T.currentTarget&&!r&&!e&&T.key===" "&&v?.(T)},onPointerDown(T){if(e){T.preventDefault();return}b?.(T)}},r?void 0:{role:"button"},u,M)},[e,u,r,c]),p=aw(m=>{a.current=m,d()});return{getButtonProps:f,buttonRef:p}}function QO(t){return Ty(t)&&t.tagName==="BUTTON"}function sw(t,e,n,i){const r=My(nA).current;return tF(r,t,e,n,i)&&iA(r,[t,e,n,i]),r.callback}function eF(t){const e=My(nA).current;return nF(e,t)&&iA(e,t),e.callback}function nA(){return{callback:null,cleanup:null,refs:[]}}function tF(t,e,n,i,r){return t.refs[0]!==e||t.refs[1]!==n||t.refs[2]!==i||t.refs[3]!==r}function nF(t,e){return t.refs.length!==e.length||t.refs.some((n,i)=>n!==e[i])}function iA(t,e){if(t.refs=e,e.every(n=>n==null)){t.callback=null;return}t.callback=n=>{if(t.cleanup&&(t.cleanup(),t.cleanup=null),n!=null){const i=Array(e.length).fill(null);for(let r=0;r<e.length;r+=1){const a=e[r];if(a!=null)switch(typeof a){case"function":{const o=a(n);typeof o=="function"&&(i[r]=o);break}case"object":{a.current=n;break}}}t.cleanup=()=>{for(let r=0;r<e.length;r+=1){const a=e[r];if(a!=null)switch(typeof a){case"function":{const o=i[r];typeof o=="function"?o():a(null);break}case"object":{a.current=null;break}}}}}}}const iF=parseInt(k.version,10);function rF(t){return iF>=t}function ow(t){if(!k.isValidElement(t))return null;const e=t,n=e.props;return(rF(19)?n?.ref:e.ref)??null}function aF(t,e){const n={};for(const i in t){const r=t[i];if(e?.hasOwnProperty(i)){const a=e[i](r);a!=null&&Object.assign(n,a);continue}r===!0?n[`data-${i.toLowerCase()}`]="":r&&(n[`data-${i.toLowerCase()}`]=r.toString())}return n}function sF(t,e){return typeof t=="function"?t(e):t}function oF(t,e){return typeof t=="function"?t(e):t}function pq(){}const Tl=Object.freeze({});function lF(t,e,n={}){const i=e.render,r=cF(e,n);if(n.enabled===!1)return null;const a=n.state??Tl;return uF(t,i,r,a)}function cF(t,e={}){const{className:n,style:i,render:r}=t,{state:a=Tl,ref:o,props:c,stateAttributesMapping:u,enabled:d=!0}=e,f=d?sF(n,a):void 0,p=d?oF(i,a):void 0,m=d?aF(a,u):Tl,v=d?xv(m,Array.isArray(c)?jO(c):c)??Tl:Tl;return typeof document<"u"&&(d?Array.isArray(o)?v.ref=eF([v.ref,ow(r),...o]):v.ref=sw(v.ref,ow(r),o):sw(null,null)),d?(f!==void 0&&(v.className=eA(v.className,f)),p!==void 0&&(v.style=xv(v.style,p)),v):Tl}function uF(t,e,n,i){if(e){if(typeof e=="function")return e(n,i);const r=JM(n,e.props);return r.ref=n.ref,k.cloneElement(e,r)}if(t&&typeof t=="string")return dF(t,n);throw new Error(tA(8))}function dF(t,e){return t==="button"?k.createElement("button",{type:"button",...e,key:e.key}):t==="img"?k.createElement("img",{alt:"",...e,key:e.key}):k.createElement(t,e)}const hF=k.forwardRef(function(e,n){const{render:i,className:r,disabled:a=!1,focusableWhenDisabled:o=!1,nativeButton:c=!0,...u}=e,{getButtonProps:d,buttonRef:f}=JO({disabled:a,focusableWhenDisabled:o,native:c}),p=k.useMemo(()=>({disabled:a}),[a]);return lF("button",e,{state:p,ref:[n,f],props:[u,d]})});class fF extends pa.Component{constructor(e){super(e),this.state={error:null},this.handleReload=this.handleReload.bind(this)}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,n){console.error("ErrorBoundary caught an error:",e)}handleReload(){typeof window>"u"||window.location.reload()}render(){const{error:e}=this.state;if(!e)return this.props.children;const n=String(e?.message||e||""),i=n?We("shared.error.prefix",{error:n}):We("error.boundary.no_details");return O.jsx("div",{className:"min-h-screen bg-black text-[#00FF41] font-mono flex items-center justify-center p-6",children:O.jsxs("div",{className:"w-full max-w-xl border border-[#00FF41]/30 bg-black/70 p-6 text-center space-y-4",children:[O.jsx("div",{className:"text-[10px] uppercase tracking-[0.6em] opacity-60",children:We("error.boundary.title")}),O.jsx("div",{className:"text-2xl font-black text-white",children:We("error.boundary.subtitle")}),O.jsx("div",{className:"text-[10px] opacity-60",children:We("error.boundary.hint")}),O.jsx("div",{className:"text-[10px] text-[#00FF41]/80 break-words",children:i}),O.jsx(hF,{type:"button",onClick:this.handleReload,className:"inline-flex items-center justify-center px-4 py-2 border border-[#00FF41] text-[10px] font-black uppercase tracking-[0.4em] text-[#00FF41] hover:bg-[#00FF41] hover:text-black transition-colors",children:We("error.boundary.action.reload")})]})})}}function Nu(){const t=k.useContext(HM);if(t===null)throw new Error("useLocale must be used within a LocaleProvider");return t}const wv="tokentracker-theme",rA=k.createContext(null);function pF(){if(typeof window>"u")return"system";try{const t=localStorage.getItem(wv);if(t==="light"||t==="dark"||t==="system")return t}catch{}return"system"}function Yd(){return typeof window>"u"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function mF(t){if(typeof document>"u")return;const e=document.documentElement;t==="dark"?e.classList.add("dark"):e.classList.remove("dark")}function gF({children:t}){const[e,n]=k.useState(pF),[i,r]=k.useState(()=>{if(e!=="system")return e;if(Jr()){const d=JS();if(typeof d=="boolean")return d?"dark":"light"}return Yd()}),a=k.useRef(e);k.useEffect(()=>{a.current=e},[e]),k.useEffect(()=>{mF(i)},[i]),k.useLayoutEffect(()=>{if(e==="system"){if(Jr()){const d=JS();r(typeof d=="boolean"?d?"dark":"light":Yd()),nO();return}r(Yd())}else r(e)},[e]),k.useEffect(()=>Jr()?tO(f=>{a.current==="system"&&r(f?"dark":"light")}):void 0,[]),k.useEffect(()=>{if(typeof window>"u"||e!=="system"||Jr())return;const d=window.matchMedia("(prefers-color-scheme: dark)"),f=p=>{const m=p.matches?"dark":"light";r(m)};return d.addEventListener?(d.addEventListener("change",f),()=>d.removeEventListener("change",f)):(d.addListener(f),()=>d.removeListener(f))},[e]),k.useEffect(()=>{const d=e==="system"&&!Jr()?Yd():i;iO(d,e)},[i,e]);const o=k.useCallback(d=>{if(n(d),typeof window<"u")try{localStorage.setItem(wv,d)}catch{}},[]),c=k.useCallback(()=>{o(d=>{const f=d==="dark"?"light":"dark";if(typeof window<"u")try{localStorage.setItem(wv,f)}catch{}return f})},[]),u=k.useMemo(()=>({theme:e,setTheme:o,toggleTheme:c,resolvedTheme:i}),[e,o,c,i]);return O.jsx(rA.Provider,{value:u,children:t})}const aA=k.createContext({isOpen:!1,openLoginModal:()=>{},closeLoginModal:()=>{}});function vF({children:t}){const[e,n]=k.useState(!1),i=k.useCallback(()=>n(!0),[]),r=k.useCallback(()=>n(!1),[]);return O.jsx(aA.Provider,{value:{isOpen:e,openLoginModal:i,closeLoginModal:r},children:t})}function sA(){return k.useContext(aA)}const Ay=k.createContext({});function Cy(t){const e=k.useRef(null);return e.current===null&&(e.current=t()),e.current}const yF=typeof window<"u",oA=yF?k.useLayoutEffect:k.useEffect,Hf=k.createContext(null);function Py(t,e){t.indexOf(e)===-1&&t.push(e)}function mf(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const ua=(t,e,n)=>n>e?e:n<t?t:n;let Ry=()=>{};const Ns={},lA=t=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(t);function cA(t){return typeof t=="object"&&t!==null}const uA=t=>/^0[^.\s]+$/u.test(t);function dA(t){let e;return()=>(e===void 0&&(e=t()),e)}const pr=t=>t,_F=(t,e)=>n=>e(t(n)),Iu=(...t)=>t.reduce(_F),vu=(t,e,n)=>{const i=e-t;return i===0?1:(n-t)/i};class ky{constructor(){this.subscriptions=[]}add(e){return Py(this.subscriptions,e),()=>mf(this.subscriptions,e)}notify(e,n,i){const r=this.subscriptions.length;if(r)if(r===1)this.subscriptions[0](e,n,i);else for(let a=0;a<r;a++){const o=this.subscriptions[a];o&&o(e,n,i)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}const Qi=t=>t*1e3,fr=t=>t/1e3;function hA(t,e){return e?t*(1e3/e):0}const fA=(t,e,n)=>(((1-3*n+3*e)*t+(3*n-6*e))*t+3*e)*t,xF=1e-7,bF=12;function SF(t,e,n,i,r){let a,o,c=0;do o=e+(n-e)/2,a=fA(o,i,r)-t,a>0?n=o:e=o;while(Math.abs(a)>xF&&++c<bF);return o}function Uu(t,e,n,i){if(t===e&&n===i)return pr;const r=a=>SF(a,0,1,t,n);return a=>a===0||a===1?a:fA(r(a),e,i)}const pA=t=>e=>e<=.5?t(2*e)/2:(2-t(2*(1-e)))/2,mA=t=>e=>1-t(1-e),gA=Uu(.33,1.53,.69,.99),Ly=mA(gA),vA=pA(Ly),yA=t=>t>=1?1:(t*=2)<1?.5*Ly(t):.5*(2-Math.pow(2,-10*(t-1))),Dy=t=>1-Math.sin(Math.acos(t)),_A=mA(Dy),xA=pA(Dy),wF=Uu(.42,0,1,1),EF=Uu(0,0,.58,1),bA=Uu(.42,0,.58,1),TF=t=>Array.isArray(t)&&typeof t[0]!="number",SA=t=>Array.isArray(t)&&typeof t[0]=="number",MF={linear:pr,easeIn:wF,easeInOut:bA,easeOut:EF,circIn:Dy,circInOut:xA,circOut:_A,backIn:Ly,backInOut:vA,backOut:gA,anticipate:yA},AF=t=>typeof t=="string",lw=t=>{if(SA(t)){Ry(t.length===4);const[e,n,i,r]=t;return Uu(e,n,i,r)}else if(AF(t))return MF[t];return t},Kd=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function CF(t,e){let n=new Set,i=new Set,r=!1,a=!1;const o=new WeakSet;let c={delta:0,timestamp:0,isProcessing:!1};function u(f){o.has(f)&&(d.schedule(f),t()),f(c)}const d={schedule:(f,p=!1,m=!1)=>{const _=m&&r?n:i;return p&&o.add(f),_.add(f),f},cancel:f=>{i.delete(f),o.delete(f)},process:f=>{if(c=f,r){a=!0;return}r=!0;const p=n;n=i,i=p,n.forEach(u),n.clear(),r=!1,a&&(a=!1,d.process(f))}};return d}const PF=40;function wA(t,e){let n=!1,i=!0;const r={delta:0,timestamp:0,isProcessing:!1},a=()=>n=!0,o=Kd.reduce((A,T)=>(A[T]=CF(a),A),{}),{setup:c,read:u,resolveKeyframes:d,preUpdate:f,update:p,preRender:m,render:v,postRender:_}=o,w=()=>{const A=Ns.useManualTiming,T=A?r.timestamp:performance.now();n=!1,A||(r.delta=i?1e3/60:Math.max(Math.min(T-r.timestamp,PF),1)),r.timestamp=T,r.isProcessing=!0,c.process(r),u.process(r),d.process(r),f.process(r),p.process(r),m.process(r),v.process(r),_.process(r),r.isProcessing=!1,n&&e&&(i=!1,t(w))},y=()=>{n=!0,i=!0,r.isProcessing||t(w)};return{schedule:Kd.reduce((A,T)=>{const I=o[T];return A[T]=(L,U=!1,S=!1)=>(n||y(),I.schedule(L,U,S)),A},{}),cancel:A=>{for(let T=0;T<Kd.length;T++)o[Kd[T]].cancel(A)},state:r,steps:o}}const{schedule:An,cancel:Is,state:fi,steps:Ym}=wA(typeof requestAnimationFrame<"u"?requestAnimationFrame:pr,!0);let Oh;function RF(){Oh=void 0}const Pi={now:()=>(Oh===void 0&&Pi.set(fi.isProcessing||Ns.useManualTiming?fi.timestamp:performance.now()),Oh),set:t=>{Oh=t,queueMicrotask(RF)}},EA=t=>e=>typeof e=="string"&&e.startsWith(t),TA=EA("--"),kF=EA("var(--"),Ny=t=>kF(t)?LF.test(t.split("/*")[0].trim()):!1,LF=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function cw(t){return typeof t!="string"?!1:t.split("/*")[0].includes("var(--")}const Jl={test:t=>typeof t=="number",parse:parseFloat,transform:t=>t},yu={...Jl,transform:t=>ua(0,1,t)},Zd={...Jl,default:1},ou=t=>Math.round(t*1e5)/1e5,Iy=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function DF(t){return t==null}const NF=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,Uy=(t,e)=>n=>!!(typeof n=="string"&&NF.test(n)&&n.startsWith(t)||e&&!DF(n)&&Object.prototype.hasOwnProperty.call(n,e)),MA=(t,e,n)=>i=>{if(typeof i!="string")return i;const[r,a,o,c]=i.match(Iy);return{[t]:parseFloat(r),[e]:parseFloat(a),[n]:parseFloat(o),alpha:c!==void 0?parseFloat(c):1}},IF=t=>ua(0,255,t),Km={...Jl,transform:t=>Math.round(IF(t))},fo={test:Uy("rgb","red"),parse:MA("red","green","blue"),transform:({red:t,green:e,blue:n,alpha:i=1})=>"rgba("+Km.transform(t)+", "+Km.transform(e)+", "+Km.transform(n)+", "+ou(yu.transform(i))+")"};function UF(t){let e="",n="",i="",r="";return t.length>5?(e=t.substring(1,3),n=t.substring(3,5),i=t.substring(5,7),r=t.substring(7,9)):(e=t.substring(1,2),n=t.substring(2,3),i=t.substring(3,4),r=t.substring(4,5),e+=e,n+=n,i+=i,r+=r),{red:parseInt(e,16),green:parseInt(n,16),blue:parseInt(i,16),alpha:r?parseInt(r,16)/255:1}}const Ev={test:Uy("#"),parse:UF,transform:fo.transform},Ou=t=>({test:e=>typeof e=="string"&&e.endsWith(t)&&e.split(" ").length===1,parse:parseFloat,transform:e=>`${e}${t}`}),ws=Ou("deg"),ia=Ou("%"),ft=Ou("px"),OF=Ou("vh"),FF=Ou("vw"),uw={...ia,parse:t=>ia.parse(t)/100,transform:t=>ia.transform(t*100)},Rl={test:Uy("hsl","hue"),parse:MA("hue","saturation","lightness"),transform:({hue:t,saturation:e,lightness:n,alpha:i=1})=>"hsla("+Math.round(t)+", "+ia.transform(ou(e))+", "+ia.transform(ou(n))+", "+ou(yu.transform(i))+")"},qn={test:t=>fo.test(t)||Ev.test(t)||Rl.test(t),parse:t=>fo.test(t)?fo.parse(t):Rl.test(t)?Rl.parse(t):Ev.parse(t),transform:t=>typeof t=="string"?t:t.hasOwnProperty("red")?fo.transform(t):Rl.transform(t),getAnimatableNone:t=>{const e=qn.parse(t);return e.alpha=0,qn.transform(e)}},BF=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function zF(t){return isNaN(t)&&typeof t=="string"&&(t.match(Iy)?.length||0)+(t.match(BF)?.length||0)>0}const AA="number",CA="color",VF="var",HF="var(",dw="${}",GF=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function Gl(t){const e=t.toString(),n=[],i={color:[],number:[],var:[]},r=[];let a=0;const c=e.replace(GF,u=>(qn.test(u)?(i.color.push(a),r.push(CA),n.push(qn.parse(u))):u.startsWith(HF)?(i.var.push(a),r.push(VF),n.push(u)):(i.number.push(a),r.push(AA),n.push(parseFloat(u))),++a,dw)).split(dw);return{values:n,split:c,indexes:i,types:r}}function jF(t){return Gl(t).values}function PA({split:t,types:e}){const n=t.length;return i=>{let r="";for(let a=0;a<n;a++)if(r+=t[a],i[a]!==void 0){const o=e[a];o===AA?r+=ou(i[a]):o===CA?r+=qn.transform(i[a]):r+=i[a]}return r}}function WF(t){return PA(Gl(t))}const $F=t=>typeof t=="number"?0:qn.test(t)?qn.getAnimatableNone(t):t,XF=(t,e)=>typeof t=="number"?e?.trim().endsWith("/")?t:0:$F(t);function qF(t){const e=Gl(t);return PA(e)(e.values.map((i,r)=>XF(i,e.split[r])))}const zr={test:zF,parse:jF,createTransformer:WF,getAnimatableNone:qF};function Zm(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+(e-t)*6*n:n<1/2?e:n<2/3?t+(e-t)*(2/3-n)*6:t}function YF({hue:t,saturation:e,lightness:n,alpha:i}){t/=360,e/=100,n/=100;let r=0,a=0,o=0;if(!e)r=a=o=n;else{const c=n<.5?n*(1+e):n+e-n*e,u=2*n-c;r=Zm(u,c,t+1/3),a=Zm(u,c,t),o=Zm(u,c,t-1/3)}return{red:Math.round(r*255),green:Math.round(a*255),blue:Math.round(o*255),alpha:i}}function gf(t,e){return n=>n>0?e:t}const Ln=(t,e,n)=>t+(e-t)*n,Jm=(t,e,n)=>{const i=t*t,r=n*(e*e-i)+i;return r<0?0:Math.sqrt(r)},KF=[Ev,fo,Rl],ZF=t=>KF.find(e=>e.test(t));function hw(t){const e=ZF(t);if(!e)return!1;let n=e.parse(t);return e===Rl&&(n=YF(n)),n}const fw=(t,e)=>{const n=hw(t),i=hw(e);if(!n||!i)return gf(t,e);const r={...n};return a=>(r.red=Jm(n.red,i.red,a),r.green=Jm(n.green,i.green,a),r.blue=Jm(n.blue,i.blue,a),r.alpha=Ln(n.alpha,i.alpha,a),fo.transform(r))},Tv=new Set(["none","hidden"]);function JF(t,e){return Tv.has(t)?n=>n<=0?t:e:n=>n>=1?e:t}function QF(t,e){return n=>Ln(t,e,n)}function Oy(t){return typeof t=="number"?QF:typeof t=="string"?Ny(t)?gf:qn.test(t)?fw:nB:Array.isArray(t)?RA:typeof t=="object"?qn.test(t)?fw:eB:gf}function RA(t,e){const n=[...t],i=n.length,r=t.map((a,o)=>Oy(a)(a,e[o]));return a=>{for(let o=0;o<i;o++)n[o]=r[o](a);return n}}function eB(t,e){const n={...t,...e},i={};for(const r in n)t[r]!==void 0&&e[r]!==void 0&&(i[r]=Oy(t[r])(t[r],e[r]));return r=>{for(const a in i)n[a]=i[a](r);return n}}function tB(t,e){const n=[],i={color:0,var:0,number:0};for(let r=0;r<e.values.length;r++){const a=e.types[r],o=t.indexes[a][i[a]],c=t.values[o]??0;n[r]=c,i[a]++}return n}const nB=(t,e)=>{const n=zr.createTransformer(e),i=Gl(t),r=Gl(e);return i.indexes.var.length===r.indexes.var.length&&i.indexes.color.length===r.indexes.color.length&&i.indexes.number.length>=r.indexes.number.length?Tv.has(t)&&!r.values.length||Tv.has(e)&&!i.values.length?JF(t,e):Iu(RA(tB(i,r),r.values),n):gf(t,e)};function kA(t,e,n){return typeof t=="number"&&typeof e=="number"&&typeof n=="number"?Ln(t,e,n):Oy(t)(t,e)}const iB=t=>{const e=({timestamp:n})=>t(n);return{start:(n=!0)=>An.update(e,n),stop:()=>Is(e),now:()=>fi.isProcessing?fi.timestamp:Pi.now()}},LA=(t,e,n=10)=>{let i="";const r=Math.max(Math.round(e/n),2);for(let a=0;a<r;a++)i+=Math.round(t(a/(r-1))*1e4)/1e4+", ";return`linear(${i.substring(0,i.length-2)})`},vf=2e4;function Fy(t){let e=0;const n=50;let i=t.next(e);for(;!i.done&&e<vf;)e+=n,i=t.next(e);return e>=vf?1/0:e}function rB(t,e=100,n){const i=n({...t,keyframes:[0,e]}),r=Math.min(Fy(i),vf);return{type:"keyframes",ease:a=>i.next(r*a).value/e,duration:fr(r)}}const zn={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1};function Mv(t,e){return t*Math.sqrt(1-e*e)}const aB=12;function sB(t,e,n){let i=n;for(let r=1;r<aB;r++)i=i-t(i)/e(i);return i}const Qm=.001;function oB({duration:t=zn.duration,bounce:e=zn.bounce,velocity:n=zn.velocity,mass:i=zn.mass}){let r,a,o=1-e;o=ua(zn.minDamping,zn.maxDamping,o),t=ua(zn.minDuration,zn.maxDuration,fr(t)),o<1?(r=d=>{const f=d*o,p=f*t,m=f-n,v=Mv(d,o),_=Math.exp(-p);return Qm-m/v*_},a=d=>{const p=d*o*t,m=p*n+n,v=Math.pow(o,2)*Math.pow(d,2)*t,_=Math.exp(-p),w=Mv(Math.pow(d,2),o);return(-r(d)+Qm>0?-1:1)*((m-v)*_)/w}):(r=d=>{const f=Math.exp(-d*t),p=(d-n)*t+1;return-Qm+f*p},a=d=>{const f=Math.exp(-d*t),p=(n-d)*(t*t);return f*p});const c=5/t,u=sB(r,a,c);if(t=Qi(t),isNaN(u))return{stiffness:zn.stiffness,damping:zn.damping,duration:t};{const d=Math.pow(u,2)*i;return{stiffness:d,damping:o*2*Math.sqrt(i*d),duration:t}}}const lB=["duration","bounce"],cB=["stiffness","damping","mass"];function pw(t,e){return e.some(n=>t[n]!==void 0)}function uB(t){let e={velocity:zn.velocity,stiffness:zn.stiffness,damping:zn.damping,mass:zn.mass,isResolvedFromDuration:!1,...t};if(!pw(t,cB)&&pw(t,lB))if(e.velocity=0,t.visualDuration){const n=t.visualDuration,i=2*Math.PI/(n*1.2),r=i*i,a=2*ua(.05,1,1-(t.bounce||0))*Math.sqrt(r);e={...e,mass:zn.mass,stiffness:r,damping:a}}else{const n=oB({...t,velocity:0});e={...e,...n,mass:zn.mass},e.isResolvedFromDuration=!0}return e}function yf(t=zn.visualDuration,e=zn.bounce){const n=typeof t!="object"?{visualDuration:t,keyframes:[0,1],bounce:e}:t;let{restSpeed:i,restDelta:r}=n;const a=n.keyframes[0],o=n.keyframes[n.keyframes.length-1],c={done:!1,value:a},{stiffness:u,damping:d,mass:f,duration:p,velocity:m,isResolvedFromDuration:v}=uB({...n,velocity:-fr(n.velocity||0)}),_=m||0,w=d/(2*Math.sqrt(u*f)),y=o-a,b=fr(Math.sqrt(u/f)),M=Math.abs(y)<5;i||(i=M?zn.restSpeed.granular:zn.restSpeed.default),r||(r=M?zn.restDelta.granular:zn.restDelta.default);let A,T,I,L,U,S;if(w<1)I=Mv(b,w),L=(_+w*b*y)/I,A=V=>{const F=Math.exp(-w*b*V);return o-F*(L*Math.sin(I*V)+y*Math.cos(I*V))},U=w*b*L+y*I,S=w*b*y-L*I,T=V=>Math.exp(-w*b*V)*(U*Math.sin(I*V)+S*Math.cos(I*V));else if(w===1){A=F=>o-Math.exp(-b*F)*(y+(_+b*y)*F);const V=_+b*y;T=F=>Math.exp(-b*F)*(b*V*F-_)}else{const V=b*Math.sqrt(w*w-1);A=H=>{const q=Math.exp(-w*b*H),K=Math.min(V*H,300);return o-q*((_+w*b*y)*Math.sinh(K)+V*y*Math.cosh(K))/V};const F=(_+w*b*y)/V,G=w*b*F-y*V,J=w*b*y-F*V;T=H=>{const q=Math.exp(-w*b*H),K=Math.min(V*H,300);return q*(G*Math.sinh(K)+J*Math.cosh(K))}}const P={calculatedDuration:v&&p||null,velocity:V=>Qi(T(V)),next:V=>{if(!v&&w<1){const G=Math.exp(-w*b*V),J=Math.sin(I*V),H=Math.cos(I*V),q=o-G*(L*J+y*H),K=Qi(G*(U*J+S*H));return c.done=Math.abs(K)<=i&&Math.abs(o-q)<=r,c.value=c.done?o:q,c}const F=A(V);if(v)c.done=V>=p;else{const G=Qi(T(V));c.done=Math.abs(G)<=i&&Math.abs(o-F)<=r}return c.value=c.done?o:F,c},toString:()=>{const V=Math.min(Fy(P),vf),F=LA(G=>P.next(V*G).value,V,30);return V+"ms "+F},toTransition:()=>{}};return P}yf.applyToOptions=t=>{const e=rB(t,100,yf);return t.ease=e.ease,t.duration=Qi(e.duration),t.type="keyframes",t};const dB=5;function DA(t,e,n){const i=Math.max(e-dB,0);return hA(n-t(i),e-i)}function Av({keyframes:t,velocity:e=0,power:n=.8,timeConstant:i=325,bounceDamping:r=10,bounceStiffness:a=500,modifyTarget:o,min:c,max:u,restDelta:d=.5,restSpeed:f}){const p=t[0],m={done:!1,value:p},v=S=>c!==void 0&&S<c||u!==void 0&&S>u,_=S=>c===void 0?u:u===void 0||Math.abs(c-S)<Math.abs(u-S)?c:u;let w=n*e;const y=p+w,b=o===void 0?y:o(y);b!==y&&(w=b-p);const M=S=>-w*Math.exp(-S/i),A=S=>b+M(S),T=S=>{const P=M(S),V=A(S);m.done=Math.abs(P)<=d,m.value=m.done?b:V};let I,L;const U=S=>{v(m.value)&&(I=S,L=yf({keyframes:[m.value,_(m.value)],velocity:DA(A,S,m.value),damping:r,stiffness:a,restDelta:d,restSpeed:f}))};return U(0),{calculatedDuration:null,next:S=>{let P=!1;return!L&&I===void 0&&(P=!0,T(S),U(S)),I!==void 0&&S>=I?L.next(S-I):(!P&&T(S),m)}}}function hB(t,e,n){const i=[],r=n||Ns.mix||kA,a=t.length-1;for(let o=0;o<a;o++){let c=r(t[o],t[o+1]);if(e){const u=Array.isArray(e)?e[o]||pr:e;c=Iu(u,c)}i.push(c)}return i}function fB(t,e,{clamp:n=!0,ease:i,mixer:r}={}){const a=t.length;if(Ry(a===e.length),a===1)return()=>e[0];if(a===2&&e[0]===e[1])return()=>e[1];const o=t[0]===t[1];t[0]>t[a-1]&&(t=[...t].reverse(),e=[...e].reverse());const c=hB(e,i,r),u=c.length,d=f=>{if(o&&f<t[0])return e[0];let p=0;if(u>1)for(;p<t.length-2&&!(f<t[p+1]);p++);const m=vu(t[p],t[p+1],f);return c[p](m)};return n?f=>d(ua(t[0],t[a-1],f)):d}function pB(t,e){const n=t[t.length-1];for(let i=1;i<=e;i++){const r=vu(0,e,i);t.push(Ln(n,1,r))}}function mB(t){const e=[0];return pB(e,t.length-1),e}function gB(t,e){return t.map(n=>n*e)}function vB(t,e){return t.map(()=>e||bA).splice(0,t.length-1)}function lu({duration:t=300,keyframes:e,times:n,ease:i="easeInOut"}){const r=TF(i)?i.map(lw):lw(i),a={done:!1,value:e[0]},o=gB(n&&n.length===e.length?n:mB(e),t),c=fB(o,e,{ease:Array.isArray(r)?r:vB(e,r)});return{calculatedDuration:t,next:u=>(a.value=c(u),a.done=u>=t,a)}}const yB=t=>t!==null;function Gf(t,{repeat:e,repeatType:n="loop"},i,r=1){const a=t.filter(yB),c=r<0||e&&n!=="loop"&&e%2===1?0:a.length-1;return!c||i===void 0?a[c]:i}const _B={decay:Av,inertia:Av,tween:lu,keyframes:lu,spring:yf};function NA(t){typeof t.type=="string"&&(t.type=_B[t.type])}class By{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(e=>{this.resolve=e})}notifyFinished(){this.resolve()}then(e,n){return this.finished.then(e,n)}}const xB=t=>t/100;class _f extends By{constructor(e){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.delayState={done:!1,value:void 0},this.stop=()=>{const{motionValue:n}=this.options;n&&n.updatedAt!==Pi.now()&&this.tick(Pi.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),this.options.onStop?.())},this.options=e,this.initAnimation(),this.play(),e.autoplay===!1&&this.pause()}initAnimation(){const{options:e}=this;NA(e);const{type:n=lu,repeat:i=0,repeatDelay:r=0,repeatType:a,velocity:o=0}=e;let{keyframes:c}=e;const u=n||lu;u!==lu&&typeof c[0]!="number"&&(this.mixKeyframes=Iu(xB,kA(c[0],c[1])),c=[0,100]);const d=u({...e,keyframes:c});a==="mirror"&&(this.mirroredGenerator=u({...e,keyframes:[...c].reverse(),velocity:-o})),d.calculatedDuration===null&&(d.calculatedDuration=Fy(d));const{calculatedDuration:f}=d;this.calculatedDuration=f,this.resolvedDuration=f+r,this.totalDuration=this.resolvedDuration*(i+1)-r,this.generator=d}updateTime(e){const n=Math.round(e-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=n}tick(e,n=!1){const{generator:i,totalDuration:r,mixKeyframes:a,mirroredGenerator:o,resolvedDuration:c,calculatedDuration:u}=this;if(this.startTime===null)return i.next(0);const{delay:d=0,keyframes:f,repeat:p,repeatType:m,repeatDelay:v,type:_,onUpdate:w,finalKeyframe:y}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,e):this.speed<0&&(this.startTime=Math.min(e-r/this.speed,this.startTime)),n?this.currentTime=e:this.updateTime(e);const b=this.currentTime-d*(this.playbackSpeed>=0?1:-1),M=this.playbackSpeed>=0?b<0:b>r;this.currentTime=Math.max(b,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=r);let A=this.currentTime,T=i;if(p){const S=Math.min(this.currentTime,r)/c;let P=Math.floor(S),V=S%1;!V&&S>=1&&(V=1),V===1&&P--,P=Math.min(P,p+1),P%2&&(m==="reverse"?(V=1-V,v&&(V-=v/c)):m==="mirror"&&(T=o)),A=ua(0,1,V)*c}let I;M?(this.delayState.value=f[0],I=this.delayState):I=T.next(A),a&&!M&&(I.value=a(I.value));let{done:L}=I;!M&&u!==null&&(L=this.playbackSpeed>=0?this.currentTime>=r:this.currentTime<=0);const U=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&L);return U&&_!==Av&&(I.value=Gf(f,this.options,y,this.speed)),w&&w(I.value),U&&this.finish(),I}then(e,n){return this.finished.then(e,n)}get duration(){return fr(this.calculatedDuration)}get iterationDuration(){const{delay:e=0}=this.options||{};return this.duration+fr(e)}get time(){return fr(this.currentTime)}set time(e){e=Qi(e),this.currentTime=e,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=e:this.driver&&(this.startTime=this.driver.now()-e/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state="paused",this.holdTime=e,this.tick(e))}getGeneratorVelocity(){const e=this.currentTime;if(e<=0)return this.options.velocity||0;if(this.generator.velocity)return this.generator.velocity(e);const n=this.generator.next(e).value;return DA(i=>this.generator.next(i).value,e,n)}get speed(){return this.playbackSpeed}set speed(e){const n=this.playbackSpeed!==e;n&&this.driver&&this.updateTime(Pi.now()),this.playbackSpeed=e,n&&this.driver&&(this.time=fr(this.currentTime))}play(){if(this.isStopped)return;const{driver:e=iB,startTime:n}=this.options;this.driver||(this.driver=e(r=>this.tick(r))),this.options.onPlay?.();const i=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=i):this.holdTime!==null?this.startTime=i-this.holdTime:this.startTime||(this.startTime=n??i),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(Pi.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(e){return this.startTime=0,this.tick(e,!0)}attachTimeline(e){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),e.observe(this)}}function bB(t){for(let e=1;e<t.length;e++)t[e]??(t[e]=t[e-1])}const po=t=>t*180/Math.PI,Cv=t=>{const e=po(Math.atan2(t[1],t[0]));return Pv(e)},SB={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:t=>(Math.abs(t[0])+Math.abs(t[3]))/2,rotate:Cv,rotateZ:Cv,skewX:t=>po(Math.atan(t[1])),skewY:t=>po(Math.atan(t[2])),skew:t=>(Math.abs(t[1])+Math.abs(t[2]))/2},Pv=t=>(t=t%360,t<0&&(t+=360),t),mw=Cv,gw=t=>Math.sqrt(t[0]*t[0]+t[1]*t[1]),vw=t=>Math.sqrt(t[4]*t[4]+t[5]*t[5]),wB={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:gw,scaleY:vw,scale:t=>(gw(t)+vw(t))/2,rotateX:t=>Pv(po(Math.atan2(t[6],t[5]))),rotateY:t=>Pv(po(Math.atan2(-t[2],t[0]))),rotateZ:mw,rotate:mw,skewX:t=>po(Math.atan(t[4])),skewY:t=>po(Math.atan(t[1])),skew:t=>(Math.abs(t[1])+Math.abs(t[4]))/2};function Rv(t){return t.includes("scale")?1:0}function kv(t,e){if(!t||t==="none")return Rv(e);const n=t.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let i,r;if(n)i=wB,r=n;else{const c=t.match(/^matrix\(([-\d.e\s,]+)\)$/u);i=SB,r=c}if(!r)return Rv(e);const a=i[e],o=r[1].split(",").map(TB);return typeof a=="function"?a(o):o[a]}const EB=(t,e)=>{const{transform:n="none"}=getComputedStyle(t);return kv(n,e)};function TB(t){return parseFloat(t.trim())}const Ql=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],ec=new Set(Ql),yw=t=>t===Jl||t===ft,MB=new Set(["x","y","z"]),AB=Ql.filter(t=>!MB.has(t));function CB(t){const e=[];return AB.forEach(n=>{const i=t.getValue(n);i!==void 0&&(e.push([n,i.get()]),i.set(n.startsWith("scale")?1:0))}),e}const Rs={width:({x:t},{paddingLeft:e="0",paddingRight:n="0",boxSizing:i})=>{const r=t.max-t.min;return i==="border-box"?r:r-parseFloat(e)-parseFloat(n)},height:({y:t},{paddingTop:e="0",paddingBottom:n="0",boxSizing:i})=>{const r=t.max-t.min;return i==="border-box"?r:r-parseFloat(e)-parseFloat(n)},top:(t,{top:e})=>parseFloat(e),left:(t,{left:e})=>parseFloat(e),bottom:({y:t},{top:e})=>parseFloat(e)+(t.max-t.min),right:({x:t},{left:e})=>parseFloat(e)+(t.max-t.min),x:(t,{transform:e})=>kv(e,"x"),y:(t,{transform:e})=>kv(e,"y")};Rs.translateX=Rs.x;Rs.translateY=Rs.y;const vo=new Set;let Lv=!1,Dv=!1,Nv=!1;function IA(){if(Dv){const t=Array.from(vo).filter(i=>i.needsMeasurement),e=new Set(t.map(i=>i.element)),n=new Map;e.forEach(i=>{const r=CB(i);r.length&&(n.set(i,r),i.render())}),t.forEach(i=>i.measureInitialState()),e.forEach(i=>{i.render();const r=n.get(i);r&&r.forEach(([a,o])=>{i.getValue(a)?.set(o)})}),t.forEach(i=>i.measureEndState()),t.forEach(i=>{i.suspendedScrollY!==void 0&&window.scrollTo(0,i.suspendedScrollY)})}Dv=!1,Lv=!1,vo.forEach(t=>t.complete(Nv)),vo.clear()}function UA(){vo.forEach(t=>{t.readKeyframes(),t.needsMeasurement&&(Dv=!0)})}function PB(){Nv=!0,UA(),IA(),Nv=!1}class zy{constructor(e,n,i,r,a,o=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...e],this.onComplete=n,this.name=i,this.motionValue=r,this.element=a,this.isAsync=o}scheduleResolve(){this.state="scheduled",this.isAsync?(vo.add(this),Lv||(Lv=!0,An.read(UA),An.resolveKeyframes(IA))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:e,name:n,element:i,motionValue:r}=this;if(e[0]===null){const a=r?.get(),o=e[e.length-1];if(a!==void 0)e[0]=a;else if(i&&n){const c=i.readValue(n,o);c!=null&&(e[0]=c)}e[0]===void 0&&(e[0]=o),r&&a===void 0&&r.set(e[0])}bB(e)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(e=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,e),vo.delete(this)}cancel(){this.state==="scheduled"&&(vo.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const RB=t=>t.startsWith("--");function OA(t,e,n){RB(e)?t.style.setProperty(e,n):t.style[e]=n}const kB={};function FA(t,e){const n=dA(t);return()=>kB[e]??n()}const LB=FA(()=>window.ScrollTimeline!==void 0,"scrollTimeline"),BA=FA(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),tu=([t,e,n,i])=>`cubic-bezier(${t}, ${e}, ${n}, ${i})`,_w={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:tu([0,.65,.55,1]),circOut:tu([.55,0,1,.45]),backIn:tu([.31,.01,.66,-.59]),backOut:tu([.33,1.53,.69,.99])};function zA(t,e){if(t)return typeof t=="function"?BA()?LA(t,e):"ease-out":SA(t)?tu(t):Array.isArray(t)?t.map(n=>zA(n,e)||_w.easeOut):_w[t]}function DB(t,e,n,{delay:i=0,duration:r=300,repeat:a=0,repeatType:o="loop",ease:c="easeOut",times:u}={},d=void 0){const f={[e]:n};u&&(f.offset=u);const p=zA(c,r);Array.isArray(p)&&(f.easing=p);const m={delay:i,duration:r,easing:Array.isArray(p)?"linear":p,fill:"both",iterations:a+1,direction:o==="reverse"?"alternate":"normal"};return d&&(m.pseudoElement=d),t.animate(f,m)}function VA(t){return typeof t=="function"&&"applyToOptions"in t}function NB({type:t,...e}){return VA(t)&&BA()?t.applyToOptions(e):(e.duration??(e.duration=300),e.ease??(e.ease="easeOut"),e)}class HA extends By{constructor(e){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!e)return;const{element:n,name:i,keyframes:r,pseudoElement:a,allowFlatten:o=!1,finalKeyframe:c,onComplete:u}=e;this.isPseudoElement=!!a,this.allowFlatten=o,this.options=e,Ry(typeof e.type!="string");const d=NB(e);this.animation=DB(n,i,r,d,a),d.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!a){const f=Gf(r,this.options,c,this.speed);this.updateMotionValue&&this.updateMotionValue(f),OA(n,i,f),this.animation.cancel()}u?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:e}=this;e==="idle"||e==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){const e=this.options?.element;!this.isPseudoElement&&e?.isConnected&&this.animation.commitStyles?.()}get duration(){const e=this.animation.effect?.getComputedTiming?.().duration||0;return fr(Number(e))}get iterationDuration(){const{delay:e=0}=this.options||{};return this.duration+fr(e)}get time(){return fr(Number(this.animation.currentTime)||0)}set time(e){const n=this.finishedTime!==null;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=Qi(e),n&&this.animation.pause()}get speed(){return this.animation.playbackRate}set speed(e){e<0&&(this.finishedTime=null),this.animation.playbackRate=e}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(e){this.manualStartTime=this.animation.startTime=e}attachTimeline({timeline:e,rangeStart:n,rangeEnd:i,observe:r}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:"linear"}),this.animation.onfinish=null,e&&LB()?(this.animation.timeline=e,n&&(this.animation.rangeStart=n),i&&(this.animation.rangeEnd=i),pr):r(this)}}const GA={anticipate:yA,backInOut:vA,circInOut:xA};function IB(t){return t in GA}function UB(t){typeof t.ease=="string"&&IB(t.ease)&&(t.ease=GA[t.ease])}const eg=10;class OB extends HA{constructor(e){UB(e),NA(e),super(e),e.startTime!==void 0&&e.autoplay!==!1&&(this.startTime=e.startTime),this.options=e}updateMotionValue(e){const{motionValue:n,onUpdate:i,onComplete:r,element:a,...o}=this.options;if(!n)return;if(e!==void 0){n.set(e);return}const c=new _f({...o,autoplay:!1}),u=Math.max(eg,Pi.now()-this.startTime),d=ua(0,eg,u-eg),f=c.sample(u).value,{name:p}=this.options;a&&p&&OA(a,p,f),n.setWithVelocity(c.sample(Math.max(0,u-d)).value,f,d),c.stop()}}const xw=(t,e)=>e==="zIndex"?!1:!!(typeof t=="number"||Array.isArray(t)||typeof t=="string"&&(zr.test(t)||t==="0")&&!t.startsWith("url("));function FB(t){const e=t[0];if(t.length===1)return!0;for(let n=0;n<t.length;n++)if(t[n]!==e)return!0}function BB(t,e,n,i){const r=t[0];if(r===null)return!1;if(e==="display"||e==="visibility")return!0;const a=t[t.length-1],o=xw(r,e),c=xw(a,e);return!o||!c?!1:FB(t)||(n==="spring"||VA(n))&&i}function Iv(t){t.duration=0,t.type="keyframes"}const jA=new Set(["opacity","clipPath","filter","transform"]),zB=/^(?:oklch|oklab|lab|lch|color|color-mix|light-dark)\(/;function VB(t){for(let e=0;e<t.length;e++)if(typeof t[e]=="string"&&zB.test(t[e]))return!0;return!1}const HB=new Set(["color","backgroundColor","outlineColor","fill","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"]),GB=dA(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));function jB(t){const{motionValue:e,name:n,repeatDelay:i,repeatType:r,damping:a,type:o,keyframes:c}=t;if(!(e?.owner?.current instanceof HTMLElement))return!1;const{onUpdate:d,transformTemplate:f}=e.owner.getProps();return GB()&&n&&(jA.has(n)||HB.has(n)&&VB(c))&&(n!=="transform"||!f)&&!d&&!i&&r!=="mirror"&&a!==0&&o!=="inertia"}const WB=40;class $B extends By{constructor({autoplay:e=!0,delay:n=0,type:i="keyframes",repeat:r=0,repeatDelay:a=0,repeatType:o="loop",keyframes:c,name:u,motionValue:d,element:f,...p}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=Pi.now();const m={autoplay:e,delay:n,type:i,repeat:r,repeatDelay:a,repeatType:o,name:u,motionValue:d,element:f,...p},v=f?.KeyframeResolver||zy;this.keyframeResolver=new v(c,(_,w,y)=>this.onKeyframesResolved(_,w,m,!y),u,d,f),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(e,n,i,r){this.keyframeResolver=void 0;const{name:a,type:o,velocity:c,delay:u,isHandoff:d,onUpdate:f}=i;this.resolvedAt=Pi.now();let p=!0;BB(e,a,o,c)||(p=!1,(Ns.instantAnimations||!u)&&f?.(Gf(e,i,n)),e[0]=e[e.length-1],Iv(i),i.repeat=0);const v={startTime:r?this.resolvedAt?this.resolvedAt-this.createdAt>WB?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:n,...i,keyframes:e},_=p&&!d&&jB(v),w=v.motionValue?.owner?.current;let y;if(_)try{y=new OB({...v,element:w})}catch{y=new _f(v)}else y=new _f(v);y.finished.then(()=>{this.notifyFinished()}).catch(pr),this.pendingTimeline&&(this.stopTimeline=y.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=y}get finished(){return this._animation?this.animation.finished:this._finished}then(e,n){return this.finished.finally(e).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),PB()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(e){this.animation.time=e}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(e){this.animation.speed=e}get startTime(){return this.animation.startTime}attachTimeline(e){return this._animation?this.stopTimeline=this.animation.attachTimeline(e):this.pendingTimeline=e,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}}function WA(t,e,n,i=0,r=1){const a=Array.from(t).sort((d,f)=>d.sortNodePosition(f)).indexOf(e),o=t.size,c=(o-1)*i;return typeof n=="function"?n(a,o):r===1?a*i:c-a*i}const XB=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function qB(t){const e=XB.exec(t);if(!e)return[,];const[,n,i,r]=e;return[`--${n??i}`,r]}function $A(t,e,n=1){const[i,r]=qB(t);if(!i)return;const a=window.getComputedStyle(e).getPropertyValue(i);if(a){const o=a.trim();return lA(o)?parseFloat(o):o}return Ny(r)?$A(r,e,n+1):r}const YB={type:"spring",stiffness:500,damping:25,restSpeed:10},KB=t=>({type:"spring",stiffness:550,damping:t===0?2*Math.sqrt(550):30,restSpeed:10}),ZB={type:"keyframes",duration:.8},JB={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},QB=(t,{keyframes:e})=>e.length>2?ZB:ec.has(t)?t.startsWith("scale")?KB(e[1]):YB:JB;function XA(t,e){if(t?.inherit&&e){const{inherit:n,...i}=t;return{...e,...i}}return t}function Vy(t,e){const n=t?.[e]??t?.default??t;return n!==t?XA(n,t):n}const e4=new Set(["when","delay","delayChildren","staggerChildren","staggerDirection","repeat","repeatType","repeatDelay","from","elapsed"]);function t4(t){for(const e in t)if(!e4.has(e))return!0;return!1}const Hy=(t,e,n,i={},r,a)=>o=>{const c=Vy(i,t)||{},u=c.delay||i.delay||0;let{elapsed:d=0}=i;d=d-Qi(u);const f={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:e.getVelocity(),...c,delay:-d,onUpdate:m=>{e.set(m),c.onUpdate&&c.onUpdate(m)},onComplete:()=>{o(),c.onComplete&&c.onComplete()},name:t,motionValue:e,element:a?void 0:r};t4(c)||Object.assign(f,QB(t,f)),f.duration&&(f.duration=Qi(f.duration)),f.repeatDelay&&(f.repeatDelay=Qi(f.repeatDelay)),f.from!==void 0&&(f.keyframes[0]=f.from);let p=!1;if((f.type===!1||f.duration===0&&!f.repeatDelay)&&(Iv(f),f.delay===0&&(p=!0)),(Ns.instantAnimations||Ns.skipAnimations||r?.shouldSkipAnimations)&&(p=!0,Iv(f),f.delay=0),f.allowFlatten=!c.type&&!c.ease,p&&!a&&e.get()!==void 0){const m=Gf(f.keyframes,c);if(m!==void 0){An.update(()=>{f.onUpdate(m),f.onComplete()});return}}return c.isSync?new _f(f):new $B(f)};function bw(t){const e=[{},{}];return t?.values.forEach((n,i)=>{e[0][i]=n.get(),e[1][i]=n.getVelocity()}),e}function Gy(t,e,n,i){if(typeof e=="function"){const[r,a]=bw(i);e=e(n!==void 0?n:t.custom,r,a)}if(typeof e=="string"&&(e=t.variants&&t.variants[e]),typeof e=="function"){const[r,a]=bw(i);e=e(n!==void 0?n:t.custom,r,a)}return e}function yo(t,e,n){const i=t.getProps();return Gy(i,e,n!==void 0?n:i.custom,t)}const qA=new Set(["width","height","top","left","right","bottom",...Ql]),Sw=30,n4=t=>!isNaN(parseFloat(t)),ww={current:void 0};class i4{constructor(e,n={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=i=>{const r=Pi.now();if(this.updatedAt!==r&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(i),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(const a of this.dependents)a.dirty()},this.hasAnimated=!1,this.setCurrent(e),this.owner=n.owner}setCurrent(e){this.current=e,this.updatedAt=Pi.now(),this.canTrackVelocity===null&&e!==void 0&&(this.canTrackVelocity=n4(this.current))}setPrevFrameValue(e=this.current){this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt}onChange(e){return this.on("change",e)}on(e,n){this.events[e]||(this.events[e]=new ky);const i=this.events[e].add(n);return e==="change"?()=>{i(),An.read(()=>{this.events.change.getSize()||this.stop()})}:i}clearListeners(){for(const e in this.events)this.events[e].clear()}attach(e,n){this.passiveEffect=e,this.stopPassiveEffect=n}set(e){this.passiveEffect?this.passiveEffect(e,this.updateAndNotify):this.updateAndNotify(e)}setWithVelocity(e,n,i){this.set(n),this.prev=void 0,this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt-i}jump(e,n=!0){this.updateAndNotify(e),this.prev=e,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(e){this.dependents||(this.dependents=new Set),this.dependents.add(e)}removeDependent(e){this.dependents&&this.dependents.delete(e)}get(){return ww.current&&ww.current.push(this),this.current}getPrevious(){return this.prev}getVelocity(){const e=Pi.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||e-this.updatedAt>Sw)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,Sw);return hA(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(e){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=e(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function jl(t,e){return new i4(t,e)}const Uv=t=>Array.isArray(t);function r4(t,e,n){t.hasValue(e)?t.getValue(e).set(n):t.addValue(e,jl(n))}function a4(t){return Uv(t)?t[t.length-1]||0:t}function s4(t,e){const n=yo(t,e);let{transitionEnd:i={},transition:r={},...a}=n||{};a={...a,...i};for(const o in a){const c=a4(a[o]);r4(t,o,c)}}const pi=t=>!!(t&&t.getVelocity);function o4(t){return!!(pi(t)&&t.add)}function Ov(t,e){const n=t.getValue("willChange");if(o4(n))return n.add(e);if(!n&&Ns.WillChange){const i=new Ns.WillChange("auto");t.addValue("willChange",i),i.add(e)}}function jy(t){return t.replace(/([A-Z])/g,e=>`-${e.toLowerCase()}`)}const l4="framerAppearId",YA="data-"+jy(l4);function KA(t){return t.props[YA]}function c4({protectedKeys:t,needsAnimating:e},n){const i=t.hasOwnProperty(n)&&e[n]!==!0;return e[n]=!1,i}function ZA(t,e,{delay:n=0,transitionOverride:i,type:r}={}){let{transition:a,transitionEnd:o,...c}=e;const u=t.getDefaultTransition();a=a?XA(a,u):u;const d=a?.reduceMotion;i&&(a=i);const f=[],p=r&&t.animationState&&t.animationState.getState()[r];for(const m in c){const v=t.getValue(m,t.latestValues[m]??null),_=c[m];if(_===void 0||p&&c4(p,m))continue;const w={delay:n,...Vy(a||{},m)},y=v.get();if(y!==void 0&&!v.isAnimating()&&!Array.isArray(_)&&_===y&&!w.velocity){An.update(()=>v.set(_));continue}let b=!1;if(window.MotionHandoffAnimation){const T=KA(t);if(T){const I=window.MotionHandoffAnimation(T,m,An);I!==null&&(w.startTime=I,b=!0)}}Ov(t,m);const M=d??t.shouldReduceMotion;v.start(Hy(m,v,_,M&&qA.has(m)?{type:!1}:w,t,b));const A=v.animation;A&&f.push(A)}if(o){const m=()=>An.update(()=>{o&&s4(t,o)});f.length?Promise.all(f).then(m):m()}return f}function Fv(t,e,n={}){const i=yo(t,e,n.type==="exit"?t.presenceContext?.custom:void 0);let{transition:r=t.getDefaultTransition()||{}}=i||{};n.transitionOverride&&(r=n.transitionOverride);const a=i?()=>Promise.all(ZA(t,i,n)):()=>Promise.resolve(),o=t.variantChildren&&t.variantChildren.size?(u=0)=>{const{delayChildren:d=0,staggerChildren:f,staggerDirection:p}=r;return u4(t,e,u,d,f,p,n)}:()=>Promise.resolve(),{when:c}=r;if(c){const[u,d]=c==="beforeChildren"?[a,o]:[o,a];return u().then(()=>d())}else return Promise.all([a(),o(n.delay)])}function u4(t,e,n=0,i=0,r=0,a=1,o){const c=[];for(const u of t.variantChildren)u.notify("AnimationStart",e),c.push(Fv(u,e,{...o,delay:n+(typeof i=="function"?0:i)+WA(t.variantChildren,u,i,r,a)}).then(()=>u.notify("AnimationComplete",e)));return Promise.all(c)}function d4(t,e,n={}){t.notify("AnimationStart",e);let i;if(Array.isArray(e)){const r=e.map(a=>Fv(t,a,n));i=Promise.all(r)}else if(typeof e=="string")i=Fv(t,e,n);else{const r=typeof e=="function"?yo(t,e,n.custom):e;i=Promise.all(ZA(t,r,n))}return i.then(()=>{t.notify("AnimationComplete",e)})}const h4={test:t=>t==="auto",parse:t=>t},JA=t=>e=>e.test(t),QA=[Jl,ft,ia,ws,FF,OF,h4],Ew=t=>QA.find(JA(t));function f4(t){return typeof t=="number"?t===0:t!==null?t==="none"||t==="0"||uA(t):!0}const p4=new Set(["brightness","contrast","saturate","opacity"]);function m4(t){const[e,n]=t.slice(0,-1).split("(");if(e==="drop-shadow")return t;const[i]=n.match(Iy)||[];if(!i)return t;const r=n.replace(i,"");let a=p4.has(e)?1:0;return i!==n&&(a*=100),e+"("+a+r+")"}const g4=/\b([a-z-]*)\(.*?\)/gu,Bv={...zr,getAnimatableNone:t=>{const e=t.match(g4);return e?e.map(m4).join(" "):t}},zv={...zr,getAnimatableNone:t=>{const e=zr.parse(t);return zr.createTransformer(t)(e.map(i=>typeof i=="number"?0:typeof i=="object"?{...i,alpha:1}:i))}},Tw={...Jl,transform:Math.round},v4={rotate:ws,rotateX:ws,rotateY:ws,rotateZ:ws,scale:Zd,scaleX:Zd,scaleY:Zd,scaleZ:Zd,skew:ws,skewX:ws,skewY:ws,distance:ft,translateX:ft,translateY:ft,translateZ:ft,x:ft,y:ft,z:ft,perspective:ft,transformPerspective:ft,opacity:yu,originX:uw,originY:uw,originZ:ft},Wy={borderWidth:ft,borderTopWidth:ft,borderRightWidth:ft,borderBottomWidth:ft,borderLeftWidth:ft,borderRadius:ft,borderTopLeftRadius:ft,borderTopRightRadius:ft,borderBottomRightRadius:ft,borderBottomLeftRadius:ft,width:ft,maxWidth:ft,height:ft,maxHeight:ft,top:ft,right:ft,bottom:ft,left:ft,inset:ft,insetBlock:ft,insetBlockStart:ft,insetBlockEnd:ft,insetInline:ft,insetInlineStart:ft,insetInlineEnd:ft,padding:ft,paddingTop:ft,paddingRight:ft,paddingBottom:ft,paddingLeft:ft,paddingBlock:ft,paddingBlockStart:ft,paddingBlockEnd:ft,paddingInline:ft,paddingInlineStart:ft,paddingInlineEnd:ft,margin:ft,marginTop:ft,marginRight:ft,marginBottom:ft,marginLeft:ft,marginBlock:ft,marginBlockStart:ft,marginBlockEnd:ft,marginInline:ft,marginInlineStart:ft,marginInlineEnd:ft,fontSize:ft,backgroundPositionX:ft,backgroundPositionY:ft,...v4,zIndex:Tw,fillOpacity:yu,strokeOpacity:yu,numOctaves:Tw},y4={...Wy,color:qn,backgroundColor:qn,outlineColor:qn,fill:qn,stroke:qn,borderColor:qn,borderTopColor:qn,borderRightColor:qn,borderBottomColor:qn,borderLeftColor:qn,filter:Bv,WebkitFilter:Bv,mask:zv,WebkitMask:zv},eC=t=>y4[t],_4=new Set([Bv,zv]);function tC(t,e){let n=eC(t);return _4.has(n)||(n=zr),n.getAnimatableNone?n.getAnimatableNone(e):void 0}const x4=new Set(["auto","none","0"]);function b4(t,e,n){let i=0,r;for(;i<t.length&&!r;){const a=t[i];typeof a=="string"&&!x4.has(a)&&Gl(a).values.length&&(r=t[i]),i++}if(r&&n)for(const a of e)t[a]=tC(n,r)}class S4 extends zy{constructor(e,n,i,r,a){super(e,n,i,r,a,!0)}readKeyframes(){const{unresolvedKeyframes:e,element:n,name:i}=this;if(!n||!n.current)return;super.readKeyframes();for(let f=0;f<e.length;f++){let p=e[f];if(typeof p=="string"&&(p=p.trim(),Ny(p))){const m=$A(p,n.current);m!==void 0&&(e[f]=m),f===e.length-1&&(this.finalKeyframe=p)}}if(this.resolveNoneKeyframes(),!qA.has(i)||e.length!==2)return;const[r,a]=e,o=Ew(r),c=Ew(a),u=cw(r),d=cw(a);if(u!==d&&Rs[i]){this.needsMeasurement=!0;return}if(o!==c)if(yw(o)&&yw(c))for(let f=0;f<e.length;f++){const p=e[f];typeof p=="string"&&(e[f]=parseFloat(p))}else Rs[i]&&(this.needsMeasurement=!0)}resolveNoneKeyframes(){const{unresolvedKeyframes:e,name:n}=this,i=[];for(let r=0;r<e.length;r++)(e[r]===null||f4(e[r]))&&i.push(r);i.length&&b4(e,i,n)}measureInitialState(){const{element:e,unresolvedKeyframes:n,name:i}=this;if(!e||!e.current)return;i==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=Rs[i](e.measureViewportBox(),window.getComputedStyle(e.current)),n[0]=this.measuredOrigin;const r=n[n.length-1];r!==void 0&&e.getValue(i,r).jump(r,!1)}measureEndState(){const{element:e,name:n,unresolvedKeyframes:i}=this;if(!e||!e.current)return;const r=e.getValue(n);r&&r.jump(this.measuredOrigin,!1);const a=i.length-1,o=i[a];i[a]=Rs[n](e.measureViewportBox(),window.getComputedStyle(e.current)),o!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=o),this.removedTransforms?.length&&this.removedTransforms.forEach(([c,u])=>{e.getValue(c).set(u)}),this.resolveNoneKeyframes()}}function nC(t,e,n){if(t==null)return[];if(t instanceof EventTarget)return[t];if(typeof t=="string"){let i=document;const r=n?.[t]??i.querySelectorAll(t);return r?Array.from(r):[]}return Array.from(t).filter(i=>i!=null)}const iC=(t,e)=>e&&typeof t=="number"?e.transform(t):t;function Fh(t){return cA(t)&&"offsetHeight"in t&&!("ownerSVGElement"in t)}const{schedule:$y}=wA(queueMicrotask,!1),Nr={x:!1,y:!1};function rC(){return Nr.x||Nr.y}function w4(t){return t==="x"||t==="y"?Nr[t]?null:(Nr[t]=!0,()=>{Nr[t]=!1}):Nr.x||Nr.y?null:(Nr.x=Nr.y=!0,()=>{Nr.x=Nr.y=!1})}function aC(t,e){const n=nC(t),i=new AbortController,r={passive:!0,...e,signal:i.signal};return[n,r,()=>i.abort()]}function E4(t){return!(t.pointerType==="touch"||rC())}function T4(t,e,n={}){const[i,r,a]=aC(t,n);return i.forEach(o=>{let c=!1,u=!1,d;const f=()=>{o.removeEventListener("pointerleave",_)},p=y=>{d&&(d(y),d=void 0),f()},m=y=>{c=!1,window.removeEventListener("pointerup",m),window.removeEventListener("pointercancel",m),u&&(u=!1,p(y))},v=()=>{c=!0,window.addEventListener("pointerup",m,r),window.addEventListener("pointercancel",m,r)},_=y=>{if(y.pointerType!=="touch"){if(c){u=!0;return}p(y)}},w=y=>{if(!E4(y))return;u=!1;const b=e(o,y);typeof b=="function"&&(d=b,o.addEventListener("pointerleave",_,r))};o.addEventListener("pointerenter",w,r),o.addEventListener("pointerdown",v,r)}),a}const sC=(t,e)=>e?t===e?!0:sC(t,e.parentElement):!1,Xy=t=>t.pointerType==="mouse"?typeof t.button!="number"||t.button<=0:t.isPrimary!==!1,M4=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function A4(t){return M4.has(t.tagName)||t.isContentEditable===!0}const C4=new Set(["INPUT","SELECT","TEXTAREA"]);function P4(t){return C4.has(t.tagName)||t.isContentEditable===!0}const Bh=new WeakSet;function Mw(t){return e=>{e.key==="Enter"&&t(e)}}function tg(t,e){t.dispatchEvent(new PointerEvent("pointer"+e,{isPrimary:!0,bubbles:!0}))}const R4=(t,e)=>{const n=t.currentTarget;if(!n)return;const i=Mw(()=>{if(Bh.has(n))return;tg(n,"down");const r=Mw(()=>{tg(n,"up")}),a=()=>tg(n,"cancel");n.addEventListener("keyup",r,e),n.addEventListener("blur",a,e)});n.addEventListener("keydown",i,e),n.addEventListener("blur",()=>n.removeEventListener("keydown",i),e)};function Aw(t){return Xy(t)&&!rC()}const Cw=new WeakSet;function k4(t,e,n={}){const[i,r,a]=aC(t,n),o=c=>{const u=c.currentTarget;if(!Aw(c)||Cw.has(c))return;Bh.add(u),n.stopPropagation&&Cw.add(c);const d=e(u,c),f=(v,_)=>{window.removeEventListener("pointerup",p),window.removeEventListener("pointercancel",m),Bh.has(u)&&Bh.delete(u),Aw(v)&&typeof d=="function"&&d(v,{success:_})},p=v=>{f(v,u===window||u===document||n.useGlobalTarget||sC(u,v.target))},m=v=>{f(v,!1)};window.addEventListener("pointerup",p,r),window.addEventListener("pointercancel",m,r)};return i.forEach(c=>{(n.useGlobalTarget?window:c).addEventListener("pointerdown",o,r),Fh(c)&&(c.addEventListener("focus",d=>R4(d,r)),!A4(c)&&!c.hasAttribute("tabindex")&&(c.tabIndex=0))}),a}function qy(t){return cA(t)&&"ownerSVGElement"in t}const zh=new WeakMap;let Vh;const oC=(t,e,n)=>(i,r)=>r&&r[0]?r[0][t+"Size"]:qy(i)&&"getBBox"in i?i.getBBox()[e]:i[n],L4=oC("inline","width","offsetWidth"),D4=oC("block","height","offsetHeight");function N4({target:t,borderBoxSize:e}){zh.get(t)?.forEach(n=>{n(t,{get width(){return L4(t,e)},get height(){return D4(t,e)}})})}function I4(t){t.forEach(N4)}function U4(){typeof ResizeObserver>"u"||(Vh=new ResizeObserver(I4))}function O4(t,e){Vh||U4();const n=nC(t);return n.forEach(i=>{let r=zh.get(i);r||(r=new Set,zh.set(i,r)),r.add(e),Vh?.observe(i)}),()=>{n.forEach(i=>{const r=zh.get(i);r?.delete(e),r?.size||Vh?.unobserve(i)})}}const Hh=new Set;let kl;function F4(){kl=()=>{const t={get width(){return window.innerWidth},get height(){return window.innerHeight}};Hh.forEach(e=>e(t))},window.addEventListener("resize",kl)}function B4(t){return Hh.add(t),kl||F4(),()=>{Hh.delete(t),!Hh.size&&typeof kl=="function"&&(window.removeEventListener("resize",kl),kl=void 0)}}function Pw(t,e){return typeof t=="function"?B4(t):O4(t,e)}function z4(t){return qy(t)&&t.tagName==="svg"}const V4=[...QA,qn,zr],H4=t=>V4.find(JA(t)),Rw=()=>({translate:0,scale:1,origin:0,originPoint:0}),Ll=()=>({x:Rw(),y:Rw()}),kw=()=>({min:0,max:0}),ti=()=>({x:kw(),y:kw()}),G4=new WeakMap;function jf(t){return t!==null&&typeof t=="object"&&typeof t.start=="function"}function _u(t){return typeof t=="string"||Array.isArray(t)}const Yy=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],Ky=["initial",...Yy];function Wf(t){return jf(t.animate)||Ky.some(e=>_u(t[e]))}function lC(t){return!!(Wf(t)||t.variants)}function j4(t,e,n){for(const i in e){const r=e[i],a=n[i];if(pi(r))t.addValue(i,r);else if(pi(a))t.addValue(i,jl(r,{owner:t}));else if(a!==r)if(t.hasValue(i)){const o=t.getValue(i);o.liveStyle===!0?o.jump(r):o.hasAnimated||o.set(r)}else{const o=t.getStaticValue(i);t.addValue(i,jl(o!==void 0?o:r,{owner:t}))}}for(const i in n)e[i]===void 0&&t.removeValue(i);return e}const xf={current:null},Zy={current:!1},W4=typeof window<"u";function cC(){if(Zy.current=!0,!!W4)if(window.matchMedia){const t=window.matchMedia("(prefers-reduced-motion)"),e=()=>xf.current=t.matches;t.addEventListener("change",e),e()}else xf.current=!1}const Lw=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];let bf={};function uC(t){bf=t}function $4(){return bf}class X4{scrapeMotionValuesFromProps(e,n,i){return{}}constructor({parent:e,props:n,presenceContext:i,reducedMotionConfig:r,skipAnimations:a,blockInitialAnimation:o,visualState:c},u={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=zy,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const v=Pi.now();this.renderScheduledAt<v&&(this.renderScheduledAt=v,An.render(this.render,!1,!0))};const{latestValues:d,renderState:f}=c;this.latestValues=d,this.baseTarget={...d},this.initialValues=n.initial?{...d}:{},this.renderState=f,this.parent=e,this.props=n,this.presenceContext=i,this.depth=e?e.depth+1:0,this.reducedMotionConfig=r,this.skipAnimationsConfig=a,this.options=u,this.blockInitialAnimation=!!o,this.isControllingVariants=Wf(n),this.isVariantNode=lC(n),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(e&&e.current);const{willChange:p,...m}=this.scrapeMotionValuesFromProps(n,{},this);for(const v in m){const _=m[v];d[v]!==void 0&&pi(_)&&_.set(d[v])}}mount(e){if(this.hasBeenMounted)for(const n in this.initialValues)this.values.get(n)?.jump(this.initialValues[n]),this.latestValues[n]=this.initialValues[n];this.current=e,G4.set(e,this),this.projection&&!this.projection.instance&&this.projection.mount(e),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((n,i)=>this.bindToMotionValue(i,n)),this.reducedMotionConfig==="never"?this.shouldReduceMotion=!1:this.reducedMotionConfig==="always"?this.shouldReduceMotion=!0:(Zy.current||cC(),this.shouldReduceMotion=xf.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,this.parent?.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){this.projection&&this.projection.unmount(),Is(this.notifyUpdate),Is(this.render),this.valueSubscriptions.forEach(e=>e()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this);for(const e in this.events)this.events[e].clear();for(const e in this.features){const n=this.features[e];n&&(n.unmount(),n.isMounted=!1)}this.current=null}addChild(e){this.children.add(e),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(e)}removeChild(e){this.children.delete(e),this.enteringChildren&&this.enteringChildren.delete(e)}bindToMotionValue(e,n){if(this.valueSubscriptions.has(e)&&this.valueSubscriptions.get(e)(),n.accelerate&&jA.has(e)&&this.current instanceof HTMLElement){const{factory:o,keyframes:c,times:u,ease:d,duration:f}=n.accelerate,p=new HA({element:this.current,name:e,keyframes:c,times:u,ease:d,duration:Qi(f)}),m=o(p);this.valueSubscriptions.set(e,()=>{m(),p.cancel()});return}const i=ec.has(e);i&&this.onBindTransform&&this.onBindTransform();const r=n.on("change",o=>{this.latestValues[e]=o,this.props.onUpdate&&An.preRender(this.notifyUpdate),i&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let a;typeof window<"u"&&window.MotionCheckAppearSync&&(a=window.MotionCheckAppearSync(this,e,n)),this.valueSubscriptions.set(e,()=>{r(),a&&a(),n.owner&&n.stop()})}sortNodePosition(e){return!this.current||!this.sortInstanceNodePosition||this.type!==e.type?0:this.sortInstanceNodePosition(this.current,e.current)}updateFeatures(){let e="animation";for(e in bf){const n=bf[e];if(!n)continue;const{isEnabled:i,Feature:r}=n;if(!this.features[e]&&r&&i(this.props)&&(this.features[e]=new r(this)),this.features[e]){const a=this.features[e];a.isMounted?a.update():(a.mount(),a.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):ti()}getStaticValue(e){return this.latestValues[e]}setStaticValue(e,n){this.latestValues[e]=n}update(e,n){(e.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=e,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let i=0;i<Lw.length;i++){const r=Lw[i];this.propEventSubscriptions[r]&&(this.propEventSubscriptions[r](),delete this.propEventSubscriptions[r]);const a="on"+r,o=e[a];o&&(this.propEventSubscriptions[r]=this.on(r,o))}this.prevMotionValues=j4(this,this.scrapeMotionValuesFromProps(e,this.prevProps||{},this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(e){return this.props.variants?this.props.variants[e]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(e){const n=this.getClosestVariantNode();if(n)return n.variantChildren&&n.variantChildren.add(e),()=>n.variantChildren.delete(e)}addValue(e,n){const i=this.values.get(e);n!==i&&(i&&this.removeValue(e),this.bindToMotionValue(e,n),this.values.set(e,n),this.latestValues[e]=n.get())}removeValue(e){this.values.delete(e);const n=this.valueSubscriptions.get(e);n&&(n(),this.valueSubscriptions.delete(e)),delete this.latestValues[e],this.removeValueFromRenderState(e,this.renderState)}hasValue(e){return this.values.has(e)}getValue(e,n){if(this.props.values&&this.props.values[e])return this.props.values[e];let i=this.values.get(e);return i===void 0&&n!==void 0&&(i=jl(n===null?void 0:n,{owner:this}),this.addValue(e,i)),i}readValue(e,n){let i=this.latestValues[e]!==void 0||!this.current?this.latestValues[e]:this.getBaseTargetFromProps(this.props,e)??this.readValueFromInstance(this.current,e,this.options);return i!=null&&(typeof i=="string"&&(lA(i)||uA(i))?i=parseFloat(i):!H4(i)&&zr.test(n)&&(i=tC(e,n)),this.setBaseTarget(e,pi(i)?i.get():i)),pi(i)?i.get():i}setBaseTarget(e,n){this.baseTarget[e]=n}getBaseTarget(e){const{initial:n}=this.props;let i;if(typeof n=="string"||typeof n=="object"){const a=Gy(this.props,n,this.presenceContext?.custom);a&&(i=a[e])}if(n&&i!==void 0)return i;const r=this.getBaseTargetFromProps(this.props,e);return r!==void 0&&!pi(r)?r:this.initialValues[e]!==void 0&&i===void 0?void 0:this.baseTarget[e]}on(e,n){return this.events[e]||(this.events[e]=new ky),this.events[e].add(n)}notify(e,...n){this.events[e]&&this.events[e].notify(...n)}scheduleRenderMicrotask(){$y.render(this.render)}}class dC extends X4{constructor(){super(...arguments),this.KeyframeResolver=S4}sortInstanceNodePosition(e,n){return e.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(e,n){const i=e.style;return i?i[n]:void 0}removeValueFromRenderState(e,{vars:n,style:i}){delete n[e],delete i[e]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:e}=this.props;pi(e)&&(this.childSubscription=e.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}class Os{constructor(e){this.isMounted=!1,this.node=e}update(){}}function hC({top:t,left:e,right:n,bottom:i}){return{x:{min:e,max:n},y:{min:t,max:i}}}function q4({x:t,y:e}){return{top:e.min,right:t.max,bottom:e.max,left:t.min}}function Y4(t,e){if(!e)return t;const n=e({x:t.left,y:t.top}),i=e({x:t.right,y:t.bottom});return{top:n.y,left:n.x,bottom:i.y,right:i.x}}function ng(t){return t===void 0||t===1}function Vv({scale:t,scaleX:e,scaleY:n}){return!ng(t)||!ng(e)||!ng(n)}function so(t){return Vv(t)||fC(t)||t.z||t.rotate||t.rotateX||t.rotateY||t.skewX||t.skewY}function fC(t){return Dw(t.x)||Dw(t.y)}function Dw(t){return t&&t!=="0%"}function Sf(t,e,n){const i=t-n,r=e*i;return n+r}function Nw(t,e,n,i,r){return r!==void 0&&(t=Sf(t,r,i)),Sf(t,n,i)+e}function Hv(t,e=0,n=1,i,r){t.min=Nw(t.min,e,n,i,r),t.max=Nw(t.max,e,n,i,r)}function pC(t,{x:e,y:n}){Hv(t.x,e.translate,e.scale,e.originPoint),Hv(t.y,n.translate,n.scale,n.originPoint)}const Iw=.999999999999,Uw=1.0000000000001;function K4(t,e,n,i=!1){const r=n.length;if(!r)return;e.x=e.y=1;let a,o;for(let c=0;c<r;c++){a=n[c],o=a.projectionDelta;const{visualElement:u}=a.options;u&&u.props.style&&u.props.style.display==="contents"||(i&&a.options.layoutScroll&&a.scroll&&a!==a.root&&(Kr(t.x,-a.scroll.offset.x),Kr(t.y,-a.scroll.offset.y)),o&&(e.x*=o.x.scale,e.y*=o.y.scale,pC(t,o)),i&&so(a.latestValues)&&Gh(t,a.latestValues,a.layout?.layoutBox))}e.x<Uw&&e.x>Iw&&(e.x=1),e.y<Uw&&e.y>Iw&&(e.y=1)}function Kr(t,e){t.min+=e,t.max+=e}function Ow(t,e,n,i,r=.5){const a=Ln(t.min,t.max,r);Hv(t,e,n,a,i)}function Fw(t,e){return typeof t=="string"?parseFloat(t)/100*(e.max-e.min):t}function Gh(t,e,n){const i=n??t;Ow(t.x,Fw(e.x,i.x),e.scaleX,e.scale,e.originX),Ow(t.y,Fw(e.y,i.y),e.scaleY,e.scale,e.originY)}function mC(t,e){return hC(Y4(t.getBoundingClientRect(),e))}function Z4(t,e,n){const i=mC(t,n),{scroll:r}=e;return r&&(Kr(i.x,r.offset.x),Kr(i.y,r.offset.y)),i}const J4={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},Q4=Ql.length;function e5(t,e,n){let i="",r=!0;for(let a=0;a<Q4;a++){const o=Ql[a],c=t[o];if(c===void 0)continue;let u=!0;if(typeof c=="number")u=c===(o.startsWith("scale")?1:0);else{const d=parseFloat(c);u=o.startsWith("scale")?d===1:d===0}if(!u||n){const d=iC(c,Wy[o]);if(!u){r=!1;const f=J4[o]||o;i+=`${f}(${d}) `}n&&(e[o]=d)}}return i=i.trim(),n?i=n(e,r?"":i):r&&(i="none"),i}function Jy(t,e,n){const{style:i,vars:r,transformOrigin:a}=t;let o=!1,c=!1;for(const u in e){const d=e[u];if(ec.has(u)){o=!0;continue}else if(TA(u)){r[u]=d;continue}else{const f=iC(d,Wy[u]);u.startsWith("origin")?(c=!0,a[u]=f):i[u]=f}}if(e.transform||(o||n?i.transform=e5(e,t.transform,n):i.transform&&(i.transform="none")),c){const{originX:u="50%",originY:d="50%",originZ:f=0}=a;i.transformOrigin=`${u} ${d} ${f}`}}function gC(t,{style:e,vars:n},i,r){const a=t.style;let o;for(o in e)a[o]=e[o];r?.applyProjectionStyles(a,i);for(o in n)a.setProperty(o,n[o])}function Bw(t,e){return e.max===e.min?0:t/(e.max-e.min)*100}const Vc={correct:(t,e)=>{if(!e.target)return t;if(typeof t=="string")if(ft.test(t))t=parseFloat(t);else return t;const n=Bw(t,e.target.x),i=Bw(t,e.target.y);return`${n}% ${i}%`}},t5={correct:(t,{treeScale:e,projectionDelta:n})=>{const i=t,r=zr.parse(t);if(r.length>5)return i;const a=zr.createTransformer(t),o=typeof r[0]!="number"?1:0,c=n.x.scale*e.x,u=n.y.scale*e.y;r[0+o]/=c,r[1+o]/=u;const d=Ln(c,u,.5);return typeof r[2+o]=="number"&&(r[2+o]/=d),typeof r[3+o]=="number"&&(r[3+o]/=d),a(r)}},Gv={borderRadius:{...Vc,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:Vc,borderTopRightRadius:Vc,borderBottomLeftRadius:Vc,borderBottomRightRadius:Vc,boxShadow:t5};function vC(t,{layout:e,layoutId:n}){return ec.has(t)||t.startsWith("origin")||(e||n!==void 0)&&(!!Gv[t]||t==="opacity")}function Qy(t,e,n){const i=t.style,r=e?.style,a={};if(!i)return a;for(const o in i)(pi(i[o])||r&&pi(r[o])||vC(o,t)||n?.getValue(o)?.liveStyle!==void 0)&&(a[o]=i[o]);return a}function n5(t){return window.getComputedStyle(t)}class i5 extends dC{constructor(){super(...arguments),this.type="html",this.renderInstance=gC}readValueFromInstance(e,n){if(ec.has(n))return this.projection?.isProjecting?Rv(n):EB(e,n);{const i=n5(e),r=(TA(n)?i.getPropertyValue(n):i[n])||0;return typeof r=="string"?r.trim():r}}measureInstanceViewportBox(e,{transformPagePoint:n}){return mC(e,n)}build(e,n,i){Jy(e,n,i.transformTemplate)}scrapeMotionValuesFromProps(e,n,i){return Qy(e,n,i)}}const r5={offset:"stroke-dashoffset",array:"stroke-dasharray"},a5={offset:"strokeDashoffset",array:"strokeDasharray"};function s5(t,e,n=1,i=0,r=!0){t.pathLength=1;const a=r?r5:a5;t[a.offset]=`${-i}`,t[a.array]=`${e} ${n}`}const o5=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function yC(t,{attrX:e,attrY:n,attrScale:i,pathLength:r,pathSpacing:a=1,pathOffset:o=0,...c},u,d,f){if(Jy(t,c,d),u){t.style.viewBox&&(t.attrs.viewBox=t.style.viewBox);return}t.attrs=t.style,t.style={};const{attrs:p,style:m}=t;p.transform&&(m.transform=p.transform,delete p.transform),(m.transform||p.transformOrigin)&&(m.transformOrigin=p.transformOrigin??"50% 50%",delete p.transformOrigin),m.transform&&(m.transformBox=f?.transformBox??"fill-box",delete p.transformBox);for(const v of o5)p[v]!==void 0&&(m[v]=p[v],delete p[v]);e!==void 0&&(p.x=e),n!==void 0&&(p.y=n),i!==void 0&&(p.scale=i),r!==void 0&&s5(p,r,a,o,!1)}const _C=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]),xC=t=>typeof t=="string"&&t.toLowerCase()==="svg";function l5(t,e,n,i){gC(t,e,void 0,i);for(const r in e.attrs)t.setAttribute(_C.has(r)?r:jy(r),e.attrs[r])}function bC(t,e,n){const i=Qy(t,e,n);for(const r in t)if(pi(t[r])||pi(e[r])){const a=Ql.indexOf(r)!==-1?"attr"+r.charAt(0).toUpperCase()+r.substring(1):r;i[a]=t[r]}return i}class c5 extends dC{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=ti}getBaseTargetFromProps(e,n){return e[n]}readValueFromInstance(e,n){if(ec.has(n)){const i=eC(n);return i&&i.default||0}return n=_C.has(n)?n:jy(n),e.getAttribute(n)}scrapeMotionValuesFromProps(e,n,i){return bC(e,n,i)}build(e,n,i){yC(e,n,this.isSVGTag,i.transformTemplate,i.style)}renderInstance(e,n,i,r){l5(e,n,i,r)}mount(e){this.isSVGTag=xC(e.tagName),super.mount(e)}}const u5=Ky.length;function SC(t){if(!t)return;if(!t.isControllingVariants){const n=t.parent?SC(t.parent)||{}:{};return t.props.initial!==void 0&&(n.initial=t.props.initial),n}const e={};for(let n=0;n<u5;n++){const i=Ky[n],r=t.props[i];(_u(r)||r===!1)&&(e[i]=r)}return e}function wC(t,e){if(!Array.isArray(e))return!1;const n=e.length;if(n!==t.length)return!1;for(let i=0;i<n;i++)if(e[i]!==t[i])return!1;return!0}const d5=[...Yy].reverse(),h5=Yy.length;function f5(t){return e=>Promise.all(e.map(({animation:n,options:i})=>d4(t,n,i)))}function p5(t){let e=f5(t),n=zw(),i=!0,r=!1;const a=d=>(f,p)=>{const m=yo(t,p,d==="exit"?t.presenceContext?.custom:void 0);if(m){const{transition:v,transitionEnd:_,...w}=m;f={...f,...w,..._}}return f};function o(d){e=d(t)}function c(d){const{props:f}=t,p=SC(t.parent)||{},m=[],v=new Set;let _={},w=1/0;for(let b=0;b<h5;b++){const M=d5[b],A=n[M],T=f[M]!==void 0?f[M]:p[M],I=_u(T),L=M===d?A.isActive:null;L===!1&&(w=b);let U=T===p[M]&&T!==f[M]&&I;if(U&&(i||r)&&t.manuallyAnimateOnMount&&(U=!1),A.protectedKeys={..._},!A.isActive&&L===null||!T&&!A.prevProp||jf(T)||typeof T=="boolean")continue;if(M==="exit"&&A.isActive&&L!==!0){A.prevResolvedValues&&(_={..._,...A.prevResolvedValues});continue}const S=m5(A.prevProp,T);let P=S||M===d&&A.isActive&&!U&&I||b>w&&I,V=!1;const F=Array.isArray(T)?T:[T];let G=F.reduce(a(M),{});L===!1&&(G={});const{prevResolvedValues:J={}}=A,H={...J,...G},q=W=>{P=!0,v.has(W)&&(V=!0,v.delete(W)),A.needsAnimating[W]=!0;const X=t.getValue(W);X&&(X.liveStyle=!1)};for(const W in H){const X=G[W],Z=J[W];if(_.hasOwnProperty(W))continue;let z=!1;Uv(X)&&Uv(Z)?z=!wC(X,Z):z=X!==Z,z?X!=null?q(W):v.add(W):X!==void 0&&v.has(W)?q(W):A.protectedKeys[W]=!0}A.prevProp=T,A.prevResolvedValues=G,A.isActive&&(_={..._,...G}),(i||r)&&t.blockInitialAnimation&&(P=!1);const K=U&&S;P&&(!K||V)&&m.push(...F.map(W=>{const X={type:M};if(typeof W=="string"&&(i||r)&&!K&&t.manuallyAnimateOnMount&&t.parent){const{parent:Z}=t,z=yo(Z,W);if(Z.enteringChildren&&z){const{delayChildren:ie}=z.transition||{};X.delay=WA(Z.enteringChildren,t,ie)}}return{animation:W,options:X}}))}if(v.size){const b={};if(typeof f.initial!="boolean"){const M=yo(t,Array.isArray(f.initial)?f.initial[0]:f.initial);M&&M.transition&&(b.transition=M.transition)}v.forEach(M=>{const A=t.getBaseTarget(M),T=t.getValue(M);T&&(T.liveStyle=!0),b[M]=A??null}),m.push({animation:b})}let y=!!m.length;return i&&(f.initial===!1||f.initial===f.animate)&&!t.manuallyAnimateOnMount&&(y=!1),i=!1,r=!1,y?e(m):Promise.resolve()}function u(d,f){if(n[d].isActive===f)return Promise.resolve();t.variantChildren?.forEach(m=>m.animationState?.setActive(d,f)),n[d].isActive=f;const p=c(d);for(const m in n)n[m].protectedKeys={};return p}return{animateChanges:c,setActive:u,setAnimateFunction:o,getState:()=>n,reset:()=>{n=zw(),r=!0}}}function m5(t,e){return typeof e=="string"?e!==t:Array.isArray(e)?!wC(e,t):!1}function Js(t=!1){return{isActive:t,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function zw(){return{animate:Js(!0),whileInView:Js(),whileHover:Js(),whileTap:Js(),whileDrag:Js(),whileFocus:Js(),exit:Js()}}function jv(t,e){t.min=e.min,t.max=e.max}function Rr(t,e){jv(t.x,e.x),jv(t.y,e.y)}function Vw(t,e){t.translate=e.translate,t.scale=e.scale,t.originPoint=e.originPoint,t.origin=e.origin}const EC=1e-4,g5=1-EC,v5=1+EC,TC=.01,y5=0-TC,_5=0+TC;function Ri(t){return t.max-t.min}function x5(t,e,n){return Math.abs(t-e)<=n}function Hw(t,e,n,i=.5){t.origin=i,t.originPoint=Ln(e.min,e.max,t.origin),t.scale=Ri(n)/Ri(e),t.translate=Ln(n.min,n.max,t.origin)-t.originPoint,(t.scale>=g5&&t.scale<=v5||isNaN(t.scale))&&(t.scale=1),(t.translate>=y5&&t.translate<=_5||isNaN(t.translate))&&(t.translate=0)}function cu(t,e,n,i){Hw(t.x,e.x,n.x,i?i.originX:void 0),Hw(t.y,e.y,n.y,i?i.originY:void 0)}function Gw(t,e,n,i=0){const r=i?Ln(n.min,n.max,i):n.min;t.min=r+e.min,t.max=t.min+Ri(e)}function b5(t,e,n,i){Gw(t.x,e.x,n.x,i?.x),Gw(t.y,e.y,n.y,i?.y)}function jw(t,e,n,i=0){const r=i?Ln(n.min,n.max,i):n.min;t.min=e.min-r,t.max=t.min+Ri(e)}function wf(t,e,n,i){jw(t.x,e.x,n.x,i?.x),jw(t.y,e.y,n.y,i?.y)}function Ww(t,e,n,i,r){return t-=e,t=Sf(t,1/n,i),r!==void 0&&(t=Sf(t,1/r,i)),t}function S5(t,e=0,n=1,i=.5,r,a=t,o=t){if(ia.test(e)&&(e=parseFloat(e),e=Ln(o.min,o.max,e/100)-o.min),typeof e!="number")return;let c=Ln(a.min,a.max,i);t===a&&(c-=e),t.min=Ww(t.min,e,n,c,r),t.max=Ww(t.max,e,n,c,r)}function $w(t,e,[n,i,r],a,o){S5(t,e[n],e[i],e[r],e.scale,a,o)}const w5=["x","scaleX","originX"],E5=["y","scaleY","originY"];function Xw(t,e,n,i){$w(t.x,e,w5,n?n.x:void 0,i?i.x:void 0),$w(t.y,e,E5,n?n.y:void 0,i?i.y:void 0)}function qw(t){return t.translate===0&&t.scale===1}function MC(t){return qw(t.x)&&qw(t.y)}function Yw(t,e){return t.min===e.min&&t.max===e.max}function T5(t,e){return Yw(t.x,e.x)&&Yw(t.y,e.y)}function Kw(t,e){return Math.round(t.min)===Math.round(e.min)&&Math.round(t.max)===Math.round(e.max)}function AC(t,e){return Kw(t.x,e.x)&&Kw(t.y,e.y)}function Zw(t){return Ri(t.x)/Ri(t.y)}function Jw(t,e){return t.translate===e.translate&&t.scale===e.scale&&t.originPoint===e.originPoint}function Yr(t){return[t("x"),t("y")]}function M5(t,e,n){let i="";const r=t.x.translate/e.x,a=t.y.translate/e.y,o=n?.z||0;if((r||a||o)&&(i=`translate3d(${r}px, ${a}px, ${o}px) `),(e.x!==1||e.y!==1)&&(i+=`scale(${1/e.x}, ${1/e.y}) `),n){const{transformPerspective:d,rotate:f,rotateX:p,rotateY:m,skewX:v,skewY:_}=n;d&&(i=`perspective(${d}px) ${i}`),f&&(i+=`rotate(${f}deg) `),p&&(i+=`rotateX(${p}deg) `),m&&(i+=`rotateY(${m}deg) `),v&&(i+=`skewX(${v}deg) `),_&&(i+=`skewY(${_}deg) `)}const c=t.x.scale*e.x,u=t.y.scale*e.y;return(c!==1||u!==1)&&(i+=`scale(${c}, ${u})`),i||"none"}const CC=["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"],A5=CC.length,Qw=t=>typeof t=="string"?parseFloat(t):t,e1=t=>typeof t=="number"||ft.test(t);function C5(t,e,n,i,r,a){r?(t.opacity=Ln(0,n.opacity??1,P5(i)),t.opacityExit=Ln(e.opacity??1,0,R5(i))):a&&(t.opacity=Ln(e.opacity??1,n.opacity??1,i));for(let o=0;o<A5;o++){const c=CC[o];let u=t1(e,c),d=t1(n,c);if(u===void 0&&d===void 0)continue;u||(u=0),d||(d=0),u===0||d===0||e1(u)===e1(d)?(t[c]=Math.max(Ln(Qw(u),Qw(d),i),0),(ia.test(d)||ia.test(u))&&(t[c]+="%")):t[c]=d}(e.rotate||n.rotate)&&(t.rotate=Ln(e.rotate||0,n.rotate||0,i))}function t1(t,e){return t[e]!==void 0?t[e]:t.borderRadius}const P5=PC(0,.5,_A),R5=PC(.5,.95,pr);function PC(t,e,n){return i=>i<t?0:i>e?1:n(vu(t,e,i))}function k5(t,e,n){const i=pi(t)?t:jl(t);return i.start(Hy("",i,e,n)),i.animation}function xu(t,e,n,i={passive:!0}){return t.addEventListener(e,n,i),()=>t.removeEventListener(e,n)}const L5=(t,e)=>t.depth-e.depth;class D5{constructor(){this.children=[],this.isDirty=!1}add(e){Py(this.children,e),this.isDirty=!0}remove(e){mf(this.children,e),this.isDirty=!0}forEach(e){this.isDirty&&this.children.sort(L5),this.isDirty=!1,this.children.forEach(e)}}function N5(t,e){const n=Pi.now(),i=({timestamp:r})=>{const a=r-n;a>=e&&(Is(i),t(a-e))};return An.setup(i,!0),()=>Is(i)}function jh(t){return pi(t)?t.get():t}class I5{constructor(){this.members=[]}add(e){Py(this.members,e);for(let n=this.members.length-1;n>=0;n--){const i=this.members[n];if(i===e||i===this.lead||i===this.prevLead)continue;const r=i.instance;(!r||r.isConnected===!1)&&!i.snapshot&&(mf(this.members,i),i.unmount())}e.scheduleRender()}remove(e){if(mf(this.members,e),e===this.prevLead&&(this.prevLead=void 0),e===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(e){for(let n=this.members.indexOf(e)-1;n>=0;n--){const i=this.members[n];if(i.isPresent!==!1&&i.instance?.isConnected!==!1)return this.promote(i),!0}return!1}promote(e,n){const i=this.lead;if(e!==i&&(this.prevLead=i,this.lead=e,e.show(),i)){i.updateSnapshot(),e.scheduleRender();const{layoutDependency:r}=i.options,{layoutDependency:a}=e.options;(r===void 0||r!==a)&&(e.resumeFrom=i,n&&(i.preserveOpacity=!0),i.snapshot&&(e.snapshot=i.snapshot,e.snapshot.latestValues=i.animationValues||i.latestValues),e.root?.isUpdating&&(e.isLayoutDirty=!0)),e.options.crossfade===!1&&i.hide()}}exitAnimationComplete(){this.members.forEach(e=>{e.options.onExitComplete?.(),e.resumingFrom?.options.onExitComplete?.()})}scheduleRender(){this.members.forEach(e=>e.instance&&e.scheduleRender(!1))}removeLeadSnapshot(){this.lead?.snapshot&&(this.lead.snapshot=void 0)}}const Wh={hasAnimatedSinceResize:!0,hasEverUpdated:!1},ig=["","X","Y","Z"],U5=1e3;let O5=0;function rg(t,e,n,i){const{latestValues:r}=e;r[t]&&(n[t]=r[t],e.setStaticValue(t,0),i&&(i[t]=0))}function RC(t){if(t.hasCheckedOptimisedAppear=!0,t.root===t)return;const{visualElement:e}=t.options;if(!e)return;const n=KA(e);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:r,layoutId:a}=t.options;window.MotionCancelOptimisedAnimation(n,"transform",An,!(r||a))}const{parent:i}=t;i&&!i.hasCheckedOptimisedAppear&&RC(i)}function kC({attachResizeListener:t,defaultParent:e,measureScroll:n,checkIsScrollRoot:i,resetTransform:r}){return class{constructor(o={},c=e?.()){this.id=O5++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(z5),this.nodes.forEach($5),this.nodes.forEach(X5),this.nodes.forEach(V5)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=o,this.root=c?c.root||c:this,this.path=c?[...c.path,c]:[],this.parent=c,this.depth=c?c.depth+1:0;for(let u=0;u<this.path.length;u++)this.path[u].shouldResetTransform=!0;this.root===this&&(this.nodes=new D5)}addEventListener(o,c){return this.eventHandlers.has(o)||this.eventHandlers.set(o,new ky),this.eventHandlers.get(o).add(c)}notifyListeners(o,...c){const u=this.eventHandlers.get(o);u&&u.notify(...c)}hasListeners(o){return this.eventHandlers.has(o)}mount(o){if(this.instance)return;this.isSVG=qy(o)&&!z4(o),this.instance=o;const{layoutId:c,layout:u,visualElement:d}=this.options;if(d&&!d.current&&d.mount(o),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(u||c)&&(this.isLayoutDirty=!0),t){let f,p=0;const m=()=>this.root.updateBlockedByResize=!1;An.read(()=>{p=window.innerWidth}),t(o,()=>{const v=window.innerWidth;v!==p&&(p=v,this.root.updateBlockedByResize=!0,f&&f(),f=N5(m,250),Wh.hasAnimatedSinceResize&&(Wh.hasAnimatedSinceResize=!1,this.nodes.forEach(r1)))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&d&&(c||u)&&this.addEventListener("didUpdate",({delta:f,hasLayoutChanged:p,hasRelativeLayoutChanged:m,layout:v})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const _=this.options.transition||d.getDefaultTransition()||J5,{onLayoutAnimationStart:w,onLayoutAnimationComplete:y}=d.getProps(),b=!this.targetLayout||!AC(this.targetLayout,v),M=!p&&m;if(this.options.layoutRoot||this.resumeFrom||M||p&&(b||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const A={...Vy(_,"layout"),onPlay:w,onComplete:y};(d.shouldReduceMotion||this.options.layoutRoot)&&(A.delay=0,A.type=!1),this.startAnimation(A),this.setAnimationOrigin(f,M)}else p||r1(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=v})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const o=this.getStack();o&&o.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),Is(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(q5),this.animationId++)}getTransformTemplate(){const{visualElement:o}=this.options;return o&&o.getProps().transformTemplate}willUpdate(o=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&RC(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let f=0;f<this.path.length;f++){const p=this.path[f];p.shouldResetTransform=!0,(typeof p.latestValues.x=="string"||typeof p.latestValues.y=="string")&&(p.isLayoutDirty=!0),p.updateScroll("snapshot"),p.options.layoutRoot&&p.willUpdate(!1)}const{layoutId:c,layout:u}=this.options;if(c===void 0&&!u)return;const d=this.getTransformTemplate();this.prevTransformTemplateValue=d?d(this.latestValues,""):void 0,this.updateSnapshot(),o&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){const u=this.updateBlockedByResize;this.unblockUpdate(),this.updateBlockedByResize=!1,this.clearAllSnapshots(),u&&this.nodes.forEach(G5),this.nodes.forEach(n1);return}if(this.animationId<=this.animationCommitId){this.nodes.forEach(i1);return}this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(j5),this.nodes.forEach(W5),this.nodes.forEach(F5),this.nodes.forEach(B5)):this.nodes.forEach(i1),this.clearAllSnapshots();const c=Pi.now();fi.delta=ua(0,1e3/60,c-fi.timestamp),fi.timestamp=c,fi.isProcessing=!0,Ym.update.process(fi),Ym.preRender.process(fi),Ym.render.process(fi),fi.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,$y.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(H5),this.sharedNodes.forEach(Y5)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,An.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){An.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!Ri(this.snapshot.measuredBox.x)&&!Ri(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let u=0;u<this.path.length;u++)this.path[u].updateScroll();const o=this.layout;this.layout=this.measure(!1),this.layoutVersion++,this.layoutCorrected||(this.layoutCorrected=ti()),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);const{visualElement:c}=this.options;c&&c.notify("LayoutMeasure",this.layout.layoutBox,o?o.layoutBox:void 0)}updateScroll(o="measure"){let c=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===o&&(c=!1),c&&this.instance){const u=i(this.instance);this.scroll={animationId:this.root.animationId,phase:o,isRoot:u,offset:n(this.instance),wasRoot:this.scroll?this.scroll.isRoot:u}}}resetTransform(){if(!r)return;const o=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,c=this.projectionDelta&&!MC(this.projectionDelta),u=this.getTransformTemplate(),d=u?u(this.latestValues,""):void 0,f=d!==this.prevTransformTemplateValue;o&&this.instance&&(c||so(this.latestValues)||f)&&(r(this.instance,d),this.shouldResetTransform=!1,this.scheduleRender())}measure(o=!0){const c=this.measurePageBox();let u=this.removeElementScroll(c);return o&&(u=this.removeTransform(u)),Q5(u),{animationId:this.root.animationId,measuredBox:c,layoutBox:u,latestValues:{},source:this.id}}measurePageBox(){const{visualElement:o}=this.options;if(!o)return ti();const c=o.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(ez))){const{scroll:d}=this.root;d&&(Kr(c.x,d.offset.x),Kr(c.y,d.offset.y))}return c}removeElementScroll(o){const c=ti();if(Rr(c,o),this.scroll?.wasRoot)return c;for(let u=0;u<this.path.length;u++){const d=this.path[u],{scroll:f,options:p}=d;d!==this.root&&f&&p.layoutScroll&&(f.wasRoot&&Rr(c,o),Kr(c.x,f.offset.x),Kr(c.y,f.offset.y))}return c}applyTransform(o,c=!1,u){const d=u||ti();Rr(d,o);for(let f=0;f<this.path.length;f++){const p=this.path[f];!c&&p.options.layoutScroll&&p.scroll&&p!==p.root&&(Kr(d.x,-p.scroll.offset.x),Kr(d.y,-p.scroll.offset.y)),so(p.latestValues)&&Gh(d,p.latestValues,p.layout?.layoutBox)}return so(this.latestValues)&&Gh(d,this.latestValues,this.layout?.layoutBox),d}removeTransform(o){const c=ti();Rr(c,o);for(let u=0;u<this.path.length;u++){const d=this.path[u];if(!so(d.latestValues))continue;let f;d.instance&&(Vv(d.latestValues)&&d.updateSnapshot(),f=ti(),Rr(f,d.measurePageBox())),Xw(c,d.latestValues,d.snapshot?.layoutBox,f)}return so(this.latestValues)&&Xw(c,this.latestValues),c}setTargetDelta(o){this.targetDelta=o,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(o){this.options={...this.options,...o,crossfade:o.crossfade!==void 0?o.crossfade:!0}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==fi.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(o=!1){const c=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=c.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=c.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=c.isSharedProjectionDirty);const u=!!this.resumingFrom||this!==c;if(!(o||u&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:f,layoutId:p}=this.options;if(!this.layout||!(f||p))return;this.resolvedRelativeTargetAt=fi.timestamp;const m=this.getClosestProjectingParent();m&&this.linkedParentVersion!==m.layoutVersion&&!m.options.layoutRoot&&this.removeRelativeTarget(),!this.targetDelta&&!this.relativeTarget&&(this.options.layoutAnchor!==!1&&m&&m.layout?this.createRelativeTarget(m,this.layout.layoutBox,m.layout.layoutBox):this.removeRelativeTarget()),!(!this.relativeTarget&&!this.targetDelta)&&(this.target||(this.target=ti(),this.targetWithTransforms=ti()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),b5(this.target,this.relativeTarget,this.relativeParent.target,this.options.layoutAnchor||void 0)):this.targetDelta?(this.resumingFrom?this.applyTransform(this.layout.layoutBox,!1,this.target):Rr(this.target,this.layout.layoutBox),pC(this.target,this.targetDelta)):Rr(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,this.options.layoutAnchor!==!1&&m&&!!m.resumingFrom==!!this.resumingFrom&&!m.options.layoutScroll&&m.target&&this.animationProgress!==1?this.createRelativeTarget(m,this.target,m.target):this.relativeParent=this.relativeTarget=void 0))}getClosestProjectingParent(){if(!(!this.parent||Vv(this.parent.latestValues)||fC(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(o,c,u){this.relativeParent=o,this.linkedParentVersion=o.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=ti(),this.relativeTargetOrigin=ti(),wf(this.relativeTargetOrigin,c,u,this.options.layoutAnchor||void 0),Rr(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){const o=this.getLead(),c=!!this.resumingFrom||this!==o;let u=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(u=!1),c&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(u=!1),this.resolvedRelativeTargetAt===fi.timestamp&&(u=!1),u)return;const{layout:d,layoutId:f}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(d||f))return;Rr(this.layoutCorrected,this.layout.layoutBox);const p=this.treeScale.x,m=this.treeScale.y;K4(this.layoutCorrected,this.treeScale,this.path,c),o.layout&&!o.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(o.target=o.layout.layoutBox,o.targetWithTransforms=ti());const{target:v}=o;if(!v){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(Vw(this.prevProjectionDelta.x,this.projectionDelta.x),Vw(this.prevProjectionDelta.y,this.projectionDelta.y)),cu(this.projectionDelta,this.layoutCorrected,v,this.latestValues),(this.treeScale.x!==p||this.treeScale.y!==m||!Jw(this.projectionDelta.x,this.prevProjectionDelta.x)||!Jw(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",v))}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(o=!0){if(this.options.visualElement?.scheduleRender(),o){const c=this.getStack();c&&c.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=Ll(),this.projectionDelta=Ll(),this.projectionDeltaWithTransform=Ll()}setAnimationOrigin(o,c=!1){const u=this.snapshot,d=u?u.latestValues:{},f={...this.latestValues},p=Ll();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!c;const m=ti(),v=u?u.source:void 0,_=this.layout?this.layout.source:void 0,w=v!==_,y=this.getStack(),b=!y||y.members.length<=1,M=!!(w&&!b&&this.options.crossfade===!0&&!this.path.some(Z5));this.animationProgress=0;let A;this.mixTargetDelta=T=>{const I=T/1e3;a1(p.x,o.x,I),a1(p.y,o.y,I),this.setTargetDelta(p),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(wf(m,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),K5(this.relativeTarget,this.relativeTargetOrigin,m,I),A&&T5(this.relativeTarget,A)&&(this.isProjectionDirty=!1),A||(A=ti()),Rr(A,this.relativeTarget)),w&&(this.animationValues=f,C5(f,d,this.latestValues,I,M,b)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=I},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(o){this.notifyListeners("animationStart"),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&(Is(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=An.update(()=>{Wh.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=jl(0)),this.motionValue.jump(0,!1),this.currentAnimation=k5(this.motionValue,[0,1e3],{...o,velocity:0,isSync:!0,onUpdate:c=>{this.mixTargetDelta(c),o.onUpdate&&o.onUpdate(c)},onStop:()=>{},onComplete:()=>{o.onComplete&&o.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const o=this.getStack();o&&o.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(U5),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const o=this.getLead();let{targetWithTransforms:c,target:u,layout:d,latestValues:f}=o;if(!(!c||!u||!d)){if(this!==o&&this.layout&&d&&LC(this.options.animationType,this.layout.layoutBox,d.layoutBox)){u=this.target||ti();const p=Ri(this.layout.layoutBox.x);u.x.min=o.target.x.min,u.x.max=u.x.min+p;const m=Ri(this.layout.layoutBox.y);u.y.min=o.target.y.min,u.y.max=u.y.min+m}Rr(c,u),Gh(c,f),cu(this.projectionDeltaWithTransform,this.layoutCorrected,c,f)}}registerSharedNode(o,c){this.sharedNodes.has(o)||this.sharedNodes.set(o,new I5),this.sharedNodes.get(o).add(c);const d=c.options.initialPromotionConfig;c.promote({transition:d?d.transition:void 0,preserveFollowOpacity:d&&d.shouldPreserveFollowOpacity?d.shouldPreserveFollowOpacity(c):void 0})}isLead(){const o=this.getStack();return o?o.lead===this:!0}getLead(){const{layoutId:o}=this.options;return o?this.getStack()?.lead||this:this}getPrevLead(){const{layoutId:o}=this.options;return o?this.getStack()?.prevLead:void 0}getStack(){const{layoutId:o}=this.options;if(o)return this.root.sharedNodes.get(o)}promote({needsReset:o,transition:c,preserveFollowOpacity:u}={}){const d=this.getStack();d&&d.promote(this,u),o&&(this.projectionDelta=void 0,this.needsReset=!0),c&&this.setOptions({transition:c})}relegate(){const o=this.getStack();return o?o.relegate(this):!1}resetSkewAndRotation(){const{visualElement:o}=this.options;if(!o)return;let c=!1;const{latestValues:u}=o;if((u.z||u.rotate||u.rotateX||u.rotateY||u.rotateZ||u.skewX||u.skewY)&&(c=!0),!c)return;const d={};u.z&&rg("z",o,d,this.animationValues);for(let f=0;f<ig.length;f++)rg(`rotate${ig[f]}`,o,d,this.animationValues),rg(`skew${ig[f]}`,o,d,this.animationValues);o.render();for(const f in d)o.setStaticValue(f,d[f]),this.animationValues&&(this.animationValues[f]=d[f]);o.scheduleRender()}applyProjectionStyles(o,c){if(!this.instance||this.isSVG)return;if(!this.isVisible){o.visibility="hidden";return}const u=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,o.visibility="",o.opacity="",o.pointerEvents=jh(c?.pointerEvents)||"",o.transform=u?u(this.latestValues,""):"none";return}const d=this.getLead();if(!this.projectionDelta||!this.layout||!d.target){this.options.layoutId&&(o.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,o.pointerEvents=jh(c?.pointerEvents)||""),this.hasProjected&&!so(this.latestValues)&&(o.transform=u?u({},""):"none",this.hasProjected=!1);return}o.visibility="";const f=d.animationValues||d.latestValues;this.applyTransformsToTarget();let p=M5(this.projectionDeltaWithTransform,this.treeScale,f);u&&(p=u(f,p)),o.transform=p;const{x:m,y:v}=this.projectionDelta;o.transformOrigin=`${m.origin*100}% ${v.origin*100}% 0`,d.animationValues?o.opacity=d===this?f.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:f.opacityExit:o.opacity=d===this?f.opacity!==void 0?f.opacity:"":f.opacityExit!==void 0?f.opacityExit:0;for(const _ in Gv){if(f[_]===void 0)continue;const{correct:w,applyTo:y,isCSSVariable:b}=Gv[_],M=p==="none"?f[_]:w(f[_],d);if(y){const A=y.length;for(let T=0;T<A;T++)o[y[T]]=M}else b?this.options.visualElement.renderState.vars[_]=M:o[_]=M}this.options.layoutId&&(o.pointerEvents=d===this?jh(c?.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(o=>o.currentAnimation?.stop()),this.root.nodes.forEach(n1),this.root.sharedNodes.clear()}}}function F5(t){t.updateLayout()}function B5(t){const e=t.resumeFrom?.snapshot||t.snapshot;if(t.isLead()&&t.layout&&e&&t.hasListeners("didUpdate")){const{layoutBox:n,measuredBox:i}=t.layout,{animationType:r}=t.options,a=e.source!==t.layout.source;if(r==="size")Yr(f=>{const p=a?e.measuredBox[f]:e.layoutBox[f],m=Ri(p);p.min=n[f].min,p.max=p.min+m});else if(r==="x"||r==="y"){const f=r==="x"?"y":"x";jv(a?e.measuredBox[f]:e.layoutBox[f],n[f])}else LC(r,e.layoutBox,n)&&Yr(f=>{const p=a?e.measuredBox[f]:e.layoutBox[f],m=Ri(n[f]);p.max=p.min+m,t.relativeTarget&&!t.currentAnimation&&(t.isProjectionDirty=!0,t.relativeTarget[f].max=t.relativeTarget[f].min+m)});const o=Ll();cu(o,n,e.layoutBox);const c=Ll();a?cu(c,t.applyTransform(i,!0),e.measuredBox):cu(c,n,e.layoutBox);const u=!MC(o);let d=!1;if(!t.resumeFrom){const f=t.getClosestProjectingParent();if(f&&!f.resumeFrom){const{snapshot:p,layout:m}=f;if(p&&m){const v=t.options.layoutAnchor||void 0,_=ti();wf(_,e.layoutBox,p.layoutBox,v);const w=ti();wf(w,n,m.layoutBox,v),AC(_,w)||(d=!0),f.options.layoutRoot&&(t.relativeTarget=w,t.relativeTargetOrigin=_,t.relativeParent=f)}}}t.notifyListeners("didUpdate",{layout:n,snapshot:e,delta:c,layoutDelta:o,hasLayoutChanged:u,hasRelativeLayoutChanged:d})}else if(t.isLead()){const{onExitComplete:n}=t.options;n&&n()}t.options.transition=void 0}function z5(t){t.parent&&(t.isProjecting()||(t.isProjectionDirty=t.parent.isProjectionDirty),t.isSharedProjectionDirty||(t.isSharedProjectionDirty=!!(t.isProjectionDirty||t.parent.isProjectionDirty||t.parent.isSharedProjectionDirty)),t.isTransformDirty||(t.isTransformDirty=t.parent.isTransformDirty))}function V5(t){t.isProjectionDirty=t.isSharedProjectionDirty=t.isTransformDirty=!1}function H5(t){t.clearSnapshot()}function n1(t){t.clearMeasurements()}function G5(t){t.isLayoutDirty=!0,t.updateLayout()}function i1(t){t.isLayoutDirty=!1}function j5(t){t.isAnimationBlocked&&t.layout&&!t.isLayoutDirty&&(t.snapshot=t.layout,t.isLayoutDirty=!0)}function W5(t){const{visualElement:e}=t.options;e&&e.getProps().onBeforeLayoutMeasure&&e.notify("BeforeLayoutMeasure"),t.resetTransform()}function r1(t){t.finishAnimation(),t.targetDelta=t.relativeTarget=t.target=void 0,t.isProjectionDirty=!0}function $5(t){t.resolveTargetDelta()}function X5(t){t.calcProjection()}function q5(t){t.resetSkewAndRotation()}function Y5(t){t.removeLeadSnapshot()}function a1(t,e,n){t.translate=Ln(e.translate,0,n),t.scale=Ln(e.scale,1,n),t.origin=e.origin,t.originPoint=e.originPoint}function s1(t,e,n,i){t.min=Ln(e.min,n.min,i),t.max=Ln(e.max,n.max,i)}function K5(t,e,n,i){s1(t.x,e.x,n.x,i),s1(t.y,e.y,n.y,i)}function Z5(t){return t.animationValues&&t.animationValues.opacityExit!==void 0}const J5={duration:.45,ease:[.4,0,.1,1]},o1=t=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(t),l1=o1("applewebkit/")&&!o1("chrome/")?Math.round:pr;function c1(t){t.min=l1(t.min),t.max=l1(t.max)}function Q5(t){c1(t.x),c1(t.y)}function LC(t,e,n){return t==="position"||t==="preserve-aspect"&&!x5(Zw(e),Zw(n),.2)}function ez(t){return t!==t.root&&t.scroll?.wasRoot}const tz=kC({attachResizeListener:(t,e)=>xu(t,"resize",e),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),ag={current:void 0},DC=kC({measureScroll:t=>({x:t.scrollLeft,y:t.scrollTop}),defaultParent:()=>{if(!ag.current){const t=new tz({});t.mount(window),t.setOptions({layoutScroll:!0}),ag.current=t}return ag.current},resetTransform:(t,e)=>{t.style.transform=e!==void 0?e:"none"},checkIsScrollRoot:t=>window.getComputedStyle(t).position==="fixed"}),e_=k.createContext({transformPagePoint:t=>t,isStatic:!1,reducedMotion:"never"});function u1(t,e){if(typeof t=="function")return t(e);t!=null&&(t.current=e)}function nz(...t){return e=>{let n=!1;const i=t.map(r=>{const a=u1(r,e);return!n&&typeof a=="function"&&(n=!0),a});if(n)return()=>{for(let r=0;r<i.length;r++){const a=i[r];typeof a=="function"?a():u1(t[r],null)}}}}function iz(...t){return k.useCallback(nz(...t),t)}class rz extends k.Component{getSnapshotBeforeUpdate(e){const n=this.props.childRef.current;if(Fh(n)&&e.isPresent&&!this.props.isPresent&&this.props.pop!==!1){const i=n.offsetParent,r=Fh(i)&&i.offsetWidth||0,a=Fh(i)&&i.offsetHeight||0,o=getComputedStyle(n),c=this.props.sizeRef.current;c.height=parseFloat(o.height),c.width=parseFloat(o.width),c.top=n.offsetTop,c.left=n.offsetLeft,c.right=r-c.width-c.left,c.bottom=a-c.height-c.top}return null}componentDidUpdate(){}render(){return this.props.children}}function az({children:t,isPresent:e,anchorX:n,anchorY:i,root:r,pop:a}){const o=k.useId(),c=k.useRef(null),u=k.useRef({width:0,height:0,top:0,left:0,right:0,bottom:0}),{nonce:d}=k.useContext(e_),f=t.props?.ref??t?.ref,p=iz(c,f);return k.useInsertionEffect(()=>{const{width:m,height:v,top:_,left:w,right:y,bottom:b}=u.current;if(e||a===!1||!c.current||!m||!v)return;const M=n==="left"?`left: ${w}`:`right: ${y}`,A=i==="bottom"?`bottom: ${b}`:`top: ${_}`;c.current.dataset.motionPopId=o;const T=document.createElement("style");d&&(T.nonce=d);const I=r??document.head;return I.appendChild(T),T.sheet&&T.sheet.insertRule(`
710
711
  [data-motion-pop-id="${o}"] {
@@ -5069,4 +5070,4 @@ void main() {
5069
5070
  vec4 color;
5070
5071
  mainImage(color, gl_FragCoord.xy);
5071
5072
  gl_FragColor = color;
5072
- }`;function V$({raysOrigin:t="top-center",raysColor:e="#ffffff",raysSpeed:n=1,lightSpread:i=1,rayLength:r=2,pulsating:a=!1,fadeDistance:o=1,saturation:c=1,followMouse:u=!0,mouseInfluence:d=.1,noiseAmount:f=0,distortion:p=0,className:m=""}){const v=k.useRef(null),_=k.useRef(null),w=k.useRef(null),y=k.useRef({x:.5,y:.5}),b=k.useRef({x:.5,y:.5}),M=k.useRef(null),A=k.useRef(null),T=k.useRef(null),[I,L]=k.useState(!1),U=k.useRef(null);return k.useEffect(()=>{if(v.current)return U.current=new IntersectionObserver(S=>{L(S[0].isIntersecting)},{threshold:.1}),U.current.observe(v.current),()=>{U.current&&(U.current.disconnect(),U.current=null)}},[]),k.useEffect(()=>!I||!v.current?void 0:(T.current&&(T.current(),T.current=null),(async()=>{if(!v.current||(await new Promise(Q=>setTimeout(Q,10)),!v.current))return;const P=new B7({dpr:Math.min(window.devicePixelRatio,2),alpha:!0});w.current=P;const V=P.gl;for(V.canvas.style.width="100%",V.canvas.style.height="100%";v.current.firstChild;)v.current.removeChild(v.current.firstChild);v.current.appendChild(V.canvas);const F={iTime:{value:0},iResolution:{value:[1,1]},rayPos:{value:[0,0]},rayDir:{value:[0,1]},raysColor:{value:$E(e)},raysSpeed:{value:n},lightSpread:{value:i},rayLength:{value:r},pulsating:{value:a?1:0},fadeDistance:{value:o},saturation:{value:c},mousePos:{value:[.5,.5]},mouseInfluence:{value:d},noiseAmount:{value:f},distortion:{value:p}};_.current=F;const G=new F$(V),J=new N7(V,{vertex:B$,fragment:z$,uniforms:F}),H=new O$(V,{geometry:G,program:J});A.current=H;const q=()=>{if(!v.current||!P)return;P.dpr=Math.min(window.devicePixelRatio,2);const{clientWidth:Q,clientHeight:W}=v.current;P.setSize(Q,W);const X=P.dpr,Z=Q*X,z=W*X;F.iResolution.value=[Z,z];const{anchor:ie,dir:we}=XE(t,Z,z);F.rayPos.value=ie,F.rayDir.value=we},K=Q=>{if(!(!w.current||!_.current||!A.current)){F.iTime.value=Q*.001,u&&d>0&&(b.current.x=b.current.x*.92+y.current.x*(1-.92),b.current.y=b.current.y*.92+y.current.y*(1-.92),F.mousePos.value=[b.current.x,b.current.y]);try{P.render({scene:H}),M.current=requestAnimationFrame(K)}catch(W){console.warn("WebGL rendering error:",W)}}};window.addEventListener("resize",q),q(),M.current=requestAnimationFrame(K),T.current=()=>{if(M.current&&(cancelAnimationFrame(M.current),M.current=null),window.removeEventListener("resize",q),P)try{const Q=P.gl.getExtension("WEBGL_lose_context");Q&&Q.loseContext();const W=P.gl.canvas;W&&W.parentNode&&W.parentNode.removeChild(W)}catch(Q){console.warn("Error during WebGL cleanup:",Q)}w.current=null,_.current=null,A.current=null}})(),()=>{T.current&&(T.current(),T.current=null)}),[I,t,e,n,i,r,a,o,c,u,d,f,p]),k.useEffect(()=>{if(!_.current||!v.current||!w.current)return;const S=_.current,P=w.current;S.raysColor.value=$E(e),S.raysSpeed.value=n,S.lightSpread.value=i,S.rayLength.value=r,S.pulsating.value=a?1:0,S.fadeDistance.value=o,S.saturation.value=c,S.mouseInfluence.value=d,S.noiseAmount.value=f,S.distortion.value=p;const{clientWidth:V,clientHeight:F}=v.current,G=P.dpr,{anchor:J,dir:H}=XE(t,V*G,F*G);S.rayPos.value=J,S.rayDir.value=H},[e,n,i,t,r,a,o,c,d,f,p]),k.useEffect(()=>{if(!u)return;const S=P=>{if(!v.current)return;const V=v.current.getBoundingClientRect();y.current={x:(P.clientX-V.left)/V.width,y:(P.clientY-V.top)/V.height}};return window.addEventListener("mousemove",S),()=>window.removeEventListener("mousemove",S)},[u]),O.jsx("div",{ref:v,className:`w-full h-full pointer-events-none z-[3] overflow-hidden relative ${m}`.trim()})}function H$({className:t}){return O.jsx("svg",{viewBox:"0 0 384 512",className:t,fill:"currentColor",children:O.jsx("path",{d:"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"})})}function G$({className:t}){return O.jsx("svg",{viewBox:"0 0 16 16",className:t,fill:"currentColor",children:O.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"})})}function j$({className:t}){return O.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,children:[O.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),O.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})}function W$({className:t}){return O.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,children:O.jsx("polyline",{points:"20 6 9 17 4 12"})})}const qE="https://github.com/mm7894215/TokenTracker",$$="https://github.com/mm7894215/TokenTracker/releases/latest";function X$(t="default",e="md",n){const i="inline-flex items-center justify-center rounded font-medium transition-colors duration-200 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500 focus-visible:ring-offset-2 dark:focus-visible:ring-offset-oai-gray-950",r={default:"bg-oai-gray-900 text-white hover:bg-oai-gray-800 active:bg-oai-gray-950 dark:bg-white dark:text-oai-gray-900 dark:hover:bg-oai-gray-100 dark:active:bg-oai-gray-200",ghost:"text-oai-gray-600 hover:text-oai-gray-900 hover:bg-oai-gray-100 active:bg-oai-gray-200 dark:text-oai-gray-400 dark:hover:text-white dark:hover:bg-oai-gray-800 dark:active:bg-oai-gray-700"},a={sm:"h-9 px-4 text-sm",md:"h-11 px-6 text-sm",lg:"h-12 px-8 text-base"};return Tn(i,r[t],a[e],n)}function q$({copy:t,signInUrl:e,signUpUrl:n,installCommand:i,installCopied:r,onCopyInstallCommand:a}){const o=gV(),[c,u]=k.useState(!1);k.useEffect(()=>{const w=()=>u(window.scrollY>10);return window.addEventListener("scroll",w,{passive:!0}),()=>window.removeEventListener("scroll",w)},[]);const d=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),{signedIn:f,loading:p}=Do(),m=k.useMemo(()=>({codex:t("landing.v2.models.agent.codex"),claude_code:t("landing.v2.models.agent.claude_code"),cursor:t("landing.v2.models.agent.cursor"),gemini:t("landing.v2.models.agent.gemini"),opencode:t("landing.v2.models.agent.opencode"),openclaw:t("landing.v2.models.agent.openclaw")}),[t]),v=k.useMemo(()=>[{id:"codex",icon:"/brand-logos/codex.svg"},{id:"claude_code",icon:"/brand-logos/claude-code.svg"},{id:"cursor",icon:"/brand-logos/cursor.svg"},{id:"gemini",icon:"/brand-logos/gemini.svg"},{id:"opencode",icon:"/brand-logos/opencode.svg"},{id:"openclaw",icon:"/brand-logos/openclaw.svg"}],[]),_=o?{duration:0}:void 0;return O.jsxs("div",{className:"relative min-h-screen bg-oai-gray-950 text-oai-white font-oai antialiased dark",children:[O.jsx("div",{className:"absolute inset-0 z-0 pointer-events-none",style:{height:"100vh"},children:O.jsx(V$,{raysOrigin:"top-center",raysColor:"#b8b3ff",raysSpeed:1,lightSpread:.5,rayLength:3,pulsating:!1,fadeDistance:1,saturation:1,followMouse:!0,mouseInfluence:.1,noiseAmount:0,distortion:0})}),O.jsx("header",{className:Tn("sticky top-0 z-50 transition-all duration-300",c?"bg-oai-gray-950/80 backdrop-blur-md border-b border-oai-gray-900":"bg-transparent border-b border-transparent"),children:O.jsxs("div",{className:"mx-auto flex h-14 max-w-7xl items-center justify-between px-4 sm:px-6",children:[O.jsxs("div",{className:"flex items-center gap-5",children:[O.jsxs(Oa,{to:n||"/",className:"flex items-center gap-3 no-underline outline-none rounded focus-visible:ring-2 focus-visible:ring-oai-brand-500 focus-visible:ring-offset-2 dark:ring-offset-oai-gray-950 transition-opacity hover:opacity-80",children:[O.jsx("img",{src:"/app-icon.png",alt:"",width:24,height:24,className:"rounded-md"}),O.jsx("span",{className:"text-sm font-semibold tracking-wide text-white uppercase",children:"Token Tracker"})]}),O.jsx("div",{className:"hidden sm:block",children:O.jsx(JH,{})})]}),d&&O.jsxs("div",{className:"flex flex-wrap items-center justify-end gap-2 sm:gap-3",children:[O.jsxs(Oa,{to:ZH(),className:Tn(X$(f||p?"default":"ghost","sm"),"no-underline px-5 rounded-full group",f||p?"shadow-sm ring-1 ring-white/10":"ring-1 ring-oai-gray-700"),children:[t("landing.v2.cta.primary"),O.jsx("span",{className:"ml-2 inline-block transition-transform duration-200 group-hover:translate-x-0.5",children:"→"})]}),O.jsx(qv,{})]})]})}),O.jsxs("main",{children:[O.jsx("section",{className:"relative py-16 sm:py-24 lg:py-32 overflow-hidden",children:O.jsxs("div",{className:"relative z-10 mx-auto max-w-7xl px-4 sm:px-6 flex flex-col items-center text-center gap-20 lg:gap-36",children:[O.jsxs(Il.div,{initial:o?!1:{opacity:0,y:20},animate:{opacity:1,y:0},transition:_||{duration:.5},className:"w-full max-w-3xl relative z-20",children:[O.jsxs("h1",{className:"text-balance text-5xl font-semibold tracking-tight text-white sm:text-6xl lg:text-[4rem] lg:leading-[1.05]",children:[t("landing.v2.hero.title_line1"),O.jsx("br",{}),O.jsx("span",{className:"bg-gradient-to-b from-white via-oai-gray-200 to-oai-gray-500 bg-clip-text text-transparent font-bold tracking-tight",style:{WebkitTextStroke:"1px rgba(255, 255, 255, 0.15)"},children:t("landing.v2.hero.title_line2")})]}),O.jsx("p",{className:"mt-6 text-lg leading-relaxed text-oai-gray-400",children:t("landing.v2.hero.subtagline")}),O.jsxs("div",{className:"mt-8 w-full max-w-lg mx-auto",children:[O.jsxs(Il.div,{whileHover:{scale:1.01,y:-1},transition:{type:"spring",stiffness:400,damping:25},className:"group relative inline-block w-full overflow-hidden rounded-2xl",style:{padding:"1.5px 0"},children:[O.jsx("div",{className:"absolute w-[300%] h-[50%] opacity-70 bottom-[-11px] right-[-250%] rounded-full animate-star-movement-bottom z-0",style:{background:"radial-gradient(circle, #fbdfff, transparent 10%)",animationDuration:"6s"}}),O.jsx("div",{className:"absolute w-[300%] h-[50%] opacity-70 top-[-10px] left-[-250%] rounded-full animate-star-movement-top z-0",style:{background:"radial-gradient(circle, #fbdfff, transparent 10%)",animationDuration:"6s"}}),O.jsxs("div",{className:"relative z-[1] flex items-center justify-between w-full bg-[#0a0a0a] border border-oai-gray-800 rounded-2xl p-1.5 pl-5 shadow-2xl shadow-black/50",children:[O.jsxs("div",{className:"flex items-center gap-3 overflow-hidden",children:[O.jsx("span",{className:"text-oai-gray-600 font-mono select-none","aria-hidden":"true",children:"›"}),O.jsx("code",{className:"font-mono text-sm text-oai-gray-200 overflow-x-auto whitespace-nowrap py-2 [scrollbar-width:none]",children:i?i.split(" ").map((w,y)=>O.jsxs("span",{className:w==="npx"||w==="tokentracker-cli"?"text-white font-medium":w==="--yes"?"text-oai-gray-500":"text-oai-brand-400",children:[w," "]},y)):null})]}),O.jsx("button",{type:"button",onClick:a,"aria-label":t(r?"landing.install.action.copied":"landing.install.action.copy"),className:"shrink-0 flex h-9 w-9 items-center justify-center text-oai-gray-200 bg-oai-gray-900 border border-oai-gray-700 rounded-lg hover:bg-oai-gray-800 hover:text-white active:scale-95 transition-all duration-200 shadow-sm",children:r?O.jsx(W$,{className:"h-4 w-4 text-green-400","aria-hidden":!0}):O.jsx(j$,{className:"h-4 w-4 opacity-70","aria-hidden":!0})})]})]}),O.jsxs("div",{className:"mt-8 flex flex-wrap items-center justify-center gap-x-6 gap-y-4",children:[O.jsxs("a",{href:$$,target:"_blank",rel:"noopener noreferrer",className:"group flex items-center gap-2 text-sm font-medium text-oai-gray-400 hover:text-white transition-colors",children:[O.jsx("div",{className:"flex items-center justify-center h-8 w-8 rounded-full bg-oai-gray-800 group-hover:bg-oai-gray-700 transition-colors",children:O.jsx(H$,{className:"h-4 w-4 text-oai-gray-400 group-hover:text-white"})}),t("landing.v2.install.mac_cta")]}),O.jsxs("a",{href:qE,target:"_blank",rel:"noopener noreferrer",className:"group flex items-center gap-2 text-sm font-medium text-oai-gray-400 hover:text-white transition-colors",children:[O.jsx("div",{className:"flex items-center justify-center h-8 w-8 rounded-full bg-oai-gray-800 group-hover:bg-oai-gray-700 transition-colors",children:O.jsx(G$,{className:"h-4 w-4 text-oai-gray-400 group-hover:text-white"})}),t("landing.cta.secondary")]})]}),O.jsx("span",{className:"sr-only","aria-live":"polite",children:r?t("landing.install.action.copied"):""})]})]}),O.jsx("div",{className:"relative group w-full",children:O.jsxs(Il.div,{initial:o?!1:{opacity:0,y:24},animate:{opacity:1,y:0},transition:_||{duration:.6,delay:.1},className:"relative w-full",children:[O.jsx("div",{style:{position:"absolute",top:"-256px",left:0,right:0,height:"510px",zIndex:3,pointerEvents:"none"},children:O.jsx(p7,{color:"#8a7aff",wispDensity:2,flowSpeed:.28,verticalSizing:2.2,horizontalSizing:1.22,fogIntensity:4,fogScale:.1,wispSpeed:18,wispIntensity:10,flowStrength:.12,decay:1.1,falloffStart:1.1,fogFallSpeed:.5,horizontalBeamOffset:.22,verticalBeamOffset:0,style:{width:"100%",height:"100%"}})}),O.jsx("div",{className:"relative rounded-xl p-[1px] shadow-2xl bg-gradient-to-b from-[rgba(138,122,255,0.6)] via-[rgba(138,122,255,0.15)] to-[rgba(138,122,255,0.05)]",style:{position:"relative",zIndex:10,boxShadow:"0 20px 60px -10px rgba(138,122,255,0.15), 0 4px 20px rgba(0,0,0,0.4)"},children:O.jsxs("div",{className:"relative rounded-[11px] overflow-hidden bg-oai-gray-950",children:[O.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,height:"180px",background:"linear-gradient(to bottom, rgba(138,122,255,0.35) 0%, rgba(138,122,255,0.12) 40%, transparent 100%)",mixBlendMode:"screen",zIndex:20,pointerEvents:"none"}}),O.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,height:"1px",background:"linear-gradient(90deg, transparent 0%, rgba(138,122,255,0.9) 30%, rgba(180,168,255,1) 50%, rgba(138,122,255,0.9) 70%, transparent 100%)",zIndex:25,pointerEvents:"none"}}),O.jsx("img",{src:"/dashboard-dark.png",alt:t("landing.screenshot.alt"),className:"block h-auto w-full object-cover",style:{position:"relative",zIndex:10},loading:"eager",decoding:"async"})]})})]})})]})}),O.jsx("section",{className:"border-y border-oai-gray-900 bg-oai-gray-950/50 py-12 lg:py-16",children:O.jsx("div",{className:"mx-auto max-w-6xl px-4 sm:px-6",children:O.jsxs("div",{className:"flex flex-col md:flex-row md:items-center justify-between gap-8",children:[O.jsx("p",{className:"text-sm font-semibold uppercase tracking-wider text-oai-gray-400 shrink-0",children:t("landing.v2.models.title")}),O.jsx("div",{className:"flex flex-wrap items-center gap-x-8 gap-y-6 opacity-60 hover:opacity-100 transition-opacity duration-500 grayscale hover:grayscale-0",children:v.map(w=>O.jsxs("div",{className:"flex items-center gap-2.5 transition-transform hover:-translate-y-0.5 duration-300",children:[O.jsx("img",{src:w.icon,alt:"",width:20,height:20,className:`h-5 w-5 object-contain ${w.id==="cursor"?"dark:invert":""}`,loading:"lazy"}),O.jsx("span",{className:"text-sm font-medium text-oai-gray-300",children:m[w.id]})]},w.id))})]})})}),O.jsx("section",{className:"py-20 lg:py-32",children:O.jsxs("div",{className:"mx-auto max-w-6xl px-4 sm:px-6 grid grid-cols-1 md:grid-cols-2 gap-16 lg:gap-24 items-start",children:[O.jsxs("div",{className:"max-w-md",children:[O.jsx("p",{className:"text-xs font-bold tracking-widest uppercase text-oai-brand-500 mb-4",children:t("landing.v2.compare.kicker")}),O.jsx("h2",{className:"text-3xl font-semibold tracking-tight text-white sm:text-4xl text-balance",children:t("landing.v2.compare.title")}),O.jsx("p",{className:"mt-6 text-lg leading-relaxed text-oai-gray-400",children:t("landing.v2.compare.subtitle")}),O.jsx("p",{className:"mt-6 text-base leading-relaxed text-oai-gray-500",children:t("landing.v2.distill.body")})]}),O.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-10",children:[O.jsxs("div",{className:"space-y-4",children:[O.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wider text-white border-b border-oai-gray-800 pb-3",children:t("landing.v2.compare.with.title")}),O.jsxs("ul",{className:"space-y-3 text-sm text-oai-gray-400",children:[O.jsxs("li",{className:"flex gap-2",children:[O.jsx("span",{className:"text-oai-brand-500 shrink-0",children:"✦"}),O.jsx("span",{children:t("landing.v2.compare.with.p1")})]}),O.jsxs("li",{className:"flex gap-2",children:[O.jsx("span",{className:"text-oai-brand-500 shrink-0",children:"✦"}),O.jsx("span",{children:t("landing.v2.compare.with.p2")})]}),O.jsxs("li",{className:"flex gap-2",children:[O.jsx("span",{className:"text-oai-brand-500 shrink-0",children:"✦"}),O.jsx("span",{children:t("landing.v2.compare.with.p3")})]})]})]}),O.jsxs("div",{className:"space-y-4",children:[O.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wider text-oai-gray-500 border-b border-oai-gray-800/50 pb-3",children:t("landing.v2.compare.without.title")}),O.jsxs("ul",{className:"space-y-3 text-sm text-oai-gray-500",children:[O.jsxs("li",{className:"flex gap-2",children:[O.jsx("span",{className:"opacity-50 shrink-0",children:"✕"}),O.jsx("span",{children:t("landing.v2.compare.without.p1")})]}),O.jsxs("li",{className:"flex gap-2",children:[O.jsx("span",{className:"opacity-50 shrink-0",children:"✕"}),O.jsx("span",{children:t("landing.v2.compare.without.p2")})]}),O.jsxs("li",{className:"flex gap-2",children:[O.jsx("span",{className:"opacity-50 shrink-0",children:"✕"}),O.jsx("span",{children:t("landing.v2.compare.without.p3")})]})]})]})]})]})})]}),O.jsx("footer",{className:"border-t border-oai-gray-900 bg-oai-gray-950 py-12",children:O.jsxs("div",{className:"mx-auto flex max-w-6xl flex-col items-center justify-between gap-6 px-4 sm:px-6 text-sm text-oai-gray-400 sm:flex-row",children:[O.jsx("p",{children:t("landing.v2.footer.line")}),O.jsxs("div",{className:"flex items-center gap-6",children:[O.jsx("a",{href:qE,className:"font-medium text-oai-gray-400 hover:text-white transition-colors",target:"_blank",rel:"noopener noreferrer",children:t("landing.v2.nav.github")}),d&&O.jsxs(Oa,{to:e,className:"font-medium text-oai-brand-500 hover:text-oai-brand-400 transition-colors",children:[t("landing.cta.primary")," →"]})]})]})})]})}function Y$({prefersReducedMotion:t,screenshotMode:e}){return!(e||t)}function K$(){return k.useMemo(()=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches,[])}function Z$(t=0,e=!0){const[n,i]=k.useState(()=>!e);return k.useEffect(()=>{if(!e){i(!0);return}let r=null,a=null;const o=()=>i(!0);return typeof window<"u"&&"requestIdleCallback"in window?(a=window.requestIdleCallback(o,{timeout:t||200}),()=>{typeof window.cancelIdleCallback=="function"&&a!=null&&window.cancelIdleCallback(a)}):(r=window.setTimeout(o,t),()=>{r!=null&&window.clearTimeout(r)})},[t,e]),n}function J$({signInUrl:t,signUpUrl:e}){const n=We("landing.handle.special"),i=We("landing.handle.default");We("landing.nav.login"),We("landing.nav.signup");const[r,a]=k.useState(i),o=K$(),c=k.useMemo(()=>typeof window>"u"?!1:hP(window.location.search),[]),u=Y$({prefersReducedMotion:o,screenshotMode:c});Z$(250,u);const d="tokentracker.dashboard.from_landing.v1";k.useEffect(()=>{if(!(typeof window>"u"))try{window.sessionStorage.setItem(d,"1")}catch{}},[d]),k.useMemo(()=>We("landing.handle.placeholder",{handle:n}),[n]),k.useMemo(()=>{const _=We(r===n?"landing.rank.singularity":"landing.rank.unranked");return We("landing.rank.expectation",{rank:_})},[r,n]);const f=We("landing.install.command"),[p,m]=k.useState(!1),v=async()=>{await VU(f)&&(m(!0),window.setTimeout(()=>m(!1),2e3))};return O.jsx(q$,{copy:We,reduceMotion:o,signInUrl:t,signUpUrl:e,installCommand:f,installCopied:p,onCopyInstallCommand:v})}function Q$(t){const e=new URLSearchParams(t).get("next");return typeof e!="string"||e.length===0||!e.startsWith("/")||e.startsWith("//")?"/dashboard":e}const YE={google:"Google",github:"GitHub",microsoft:"Microsoft",discord:"Discord",linkedin:"LinkedIn",facebook:"Facebook",instagram:"Instagram",tiktok:"TikTok",apple:"Apple",x:"X",spotify:"Spotify"};function KE(t){const e=String(t||"").trim();return YE[e]?YE[e]:e.replace(/-/g," ")}function eX(){const t=Cu(),[e,n]=cD(),{enabled:i,loading:r,signedIn:a,refreshUser:o,signInWithPassword:c,signUp:u,signInWithOAuth:d,getPublicAuthConfig:f}=Do(),p=k.useMemo(()=>Q$(e.toString()),[e]),[m,v]=k.useState("signin"),[_,w]=k.useState(""),[y,b]=k.useState(""),[M,A]=k.useState(""),[T,I]=k.useState(!1),[L,U]=k.useState(null),[S,P]=k.useState(null),[V,F]=k.useState(!0),[G,J]=k.useState([]),[H,q]=k.useState([]),[K,Q]=k.useState(8);k.useEffect(()=>{const Se=e.get("insforge_status"),ne=e.get("insforge_type"),ye=e.get("insforge_error");Se==="success"&&ne==="verify_email"?P(We("login.verify_email_success")):Se==="error"&&ne==="verify_email"&&ye&&P(We("shared.error.prefix",{error:ye}))},[e]),k.useEffect(()=>{if(!i){F(!1);return}let Se=!0;return(async()=>{const{data:ne,error:ye}=await f();Se&&(ye||!ne?(J(["google","github"]),q([])):(J(Array.isArray(ne.oAuthProviders)?ne.oAuthProviders:[]),q(Array.isArray(ne.customOAuthProviders)?ne.customOAuthProviders:[]),typeof ne.passwordMinLength=="number"&&ne.passwordMinLength>0&&Q(ne.passwordMinLength)),F(!1))})(),()=>{Se=!1}},[i,f]);const W=k.useMemo(()=>e.get("native")==="1",[e]),X=k.useMemo(()=>e.get("provider")||null,[e]);k.useEffect(()=>{if(!(!i||r)&&a){if(W){window.location.href="/auth/native-callback";return}t(p,{replace:!0})}},[i,r,a,t,p,W]),k.useEffect(()=>{i&&o()},[i,o]);const Z=k.useMemo(()=>typeof window>"u"||W?"":`${window.location.origin}/`,[W]),z=k.useMemo(()=>typeof window>"u"?"":`${window.location.origin}/`,[]),ie=k.useCallback(async Se=>{Se.preventDefault(),U(null),I(!0);try{if(m==="signup"){const{data:ye,error:be}=await u({email:_.trim(),password:y,name:M.trim()||void 0,redirectTo:z});if(be){U(be.message||String(be));return}if(ye?.requireEmailVerification){P(We("login.verify_email_pending")),v("signin");return}t(p,{replace:!0});return}const{error:ne}=await c({email:_.trim(),password:y});if(ne){U(ne.message||String(ne));return}t(p,{replace:!0})}finally{I(!1)}},[m,_,y,M,u,c,t,p,z]),we=k.useCallback(async Se=>{U(null),I(!0);try{const{error:ne}=await d(Se,Z);ne&&U(ne.message||String(ne))}finally{I(!1)}},[d,Z]);k.useEffect(()=>{if(W&&typeof window<"u")try{window.sessionStorage.setItem("tokentracker_native_login","1")}catch{}},[W]),k.useEffect(()=>{if(!i||r||a||V||!W||!X)return;[...G,...H].includes(X)&&we(X)},[i,r,a,V,W,X,G,H,we]);const He=k.useCallback(()=>{n(Se=>{const ne=new URLSearchParams(Se);return ne.delete("insforge_status"),ne.delete("insforge_type"),ne.delete("insforge_error"),ne},{replace:!0}),P(null)},[n]);return i?O.jsxs("div",{className:"min-h-screen bg-oai-gray-950 text-oai-white font-oai antialiased dark flex flex-col",children:[O.jsx("header",{className:"border-b border-oai-gray-900 px-4 sm:px-6 h-16 flex items-center justify-between",children:O.jsx(Oa,{to:"/",className:"text-sm font-medium text-oai-gray-400 hover:text-white no-underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500 rounded",children:We("login.back_home")})}),O.jsx("main",{className:"flex-1 flex items-center justify-center px-4 py-12",children:O.jsxs("div",{className:"w-full max-w-md space-y-8",children:[O.jsxs("div",{className:"text-center",children:[O.jsx("h1",{className:"text-2xl font-semibold text-white tracking-tight",children:We("login.title")}),O.jsx("p",{className:"mt-2 text-sm text-oai-gray-500",children:We("login.subtitle")})]}),S?O.jsxs("div",{className:"rounded-lg border border-oai-gray-800 bg-oai-gray-900/50 px-4 py-3 text-sm text-oai-gray-300 flex justify-between gap-3 items-start",role:"status",children:[O.jsx("span",{children:S}),O.jsx("button",{type:"button",onClick:He,className:"shrink-0 text-oai-gray-500 hover:text-white text-xs",children:We("login.dismiss")})]}):null,L?O.jsx("p",{className:"text-sm text-red-400",role:"alert",children:We("shared.error.prefix",{error:L})}):null,O.jsx("div",{className:"space-y-3",children:V?O.jsx("div",{className:"h-11 rounded-lg bg-oai-gray-900 animate-pulse","aria-hidden":!0}):O.jsxs(O.Fragment,{children:[G.map(Se=>O.jsx("button",{type:"button",disabled:T,onClick:()=>we(Se),className:Tn("w-full h-11 rounded-lg border border-oai-gray-700 bg-oai-gray-900 text-sm font-medium text-white","hover:bg-oai-gray-800 transition-colors disabled:opacity-50"),children:We("login.oauth.continue",{provider:KE(Se)})},Se)),H.map(Se=>O.jsx("button",{type:"button",disabled:T,onClick:()=>we(Se),className:Tn("w-full h-11 rounded-lg border border-oai-gray-700 bg-oai-gray-900 text-sm font-medium text-white","hover:bg-oai-gray-800 transition-colors disabled:opacity-50"),children:We("login.oauth.continue",{provider:KE(Se)})},Se))]})}),O.jsxs("div",{className:"relative",children:[O.jsx("div",{className:"absolute inset-0 flex items-center","aria-hidden":!0,children:O.jsx("span",{className:"w-full border-t border-oai-gray-800"})}),O.jsx("div",{className:"relative flex justify-center text-xs uppercase tracking-wider",children:O.jsx("span",{className:"bg-oai-gray-950 px-3 text-oai-gray-600",children:We("login.divider")})})]}),O.jsxs("div",{className:"flex rounded-lg border border-oai-gray-800 p-0.5 bg-oai-gray-900/50",children:[O.jsx("button",{type:"button",className:Tn("flex-1 py-2 text-sm font-medium rounded-md transition-colors",m==="signin"?"bg-oai-gray-800 text-white":"text-oai-gray-500 hover:text-oai-gray-300"),onClick:()=>{v("signin"),U(null)},children:We("login.tab.sign_in")}),O.jsx("button",{type:"button",className:Tn("flex-1 py-2 text-sm font-medium rounded-md transition-colors",m==="signup"?"bg-oai-gray-800 text-white":"text-oai-gray-500 hover:text-oai-gray-300"),onClick:()=>{v("signup"),U(null)},children:We("login.tab.sign_up")})]}),O.jsxs("form",{onSubmit:ie,className:"space-y-4",children:[m==="signup"?O.jsxs("div",{children:[O.jsx("label",{htmlFor:"login-name",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:We("login.field.name")}),O.jsx("input",{id:"login-name",type:"text",autoComplete:"name",value:M,onChange:Se=>A(Se.target.value),className:"w-full h-11 rounded-lg border border-oai-gray-800 bg-oai-gray-900 px-3 text-sm text-white placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500",placeholder:We("login.field.name_placeholder")})]}):null,O.jsxs("div",{children:[O.jsx("label",{htmlFor:"login-email",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:We("login.field.email")}),O.jsx("input",{id:"login-email",type:"email",autoComplete:"email",required:!0,value:_,onChange:Se=>w(Se.target.value),className:"w-full h-11 rounded-lg border border-oai-gray-800 bg-oai-gray-900 px-3 text-sm text-white placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"})]}),O.jsxs("div",{children:[O.jsx("label",{htmlFor:"login-password",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:We("login.field.password")}),O.jsx("input",{id:"login-password",type:"password",autoComplete:m==="signup"?"new-password":"current-password",required:!0,minLength:m==="signup"?K:void 0,value:y,onChange:Se=>b(Se.target.value),className:"w-full h-11 rounded-lg border border-oai-gray-800 bg-oai-gray-900 px-3 text-sm text-white placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"}),m==="signup"?O.jsx("p",{className:"mt-1 text-xs text-oai-gray-600",children:We("login.password_hint",{min:String(K)})}):null]}),O.jsx("button",{type:"submit",disabled:T||r,className:"w-full h-11 rounded-lg bg-white text-oai-gray-950 text-sm font-semibold hover:bg-oai-gray-100 transition-colors disabled:opacity-50",children:We(m==="signup"?"login.submit.sign_up":"login.submit.sign_in")})]})]})})]}):O.jsxs("div",{className:"min-h-screen bg-oai-gray-950 text-oai-white font-oai antialiased dark flex flex-col",children:[O.jsx("header",{className:"border-b border-oai-gray-900 px-4 sm:px-6 py-4",children:O.jsx(Oa,{to:"/",className:"text-sm font-medium text-oai-gray-400 hover:text-white no-underline",children:We("login.back_home")})}),O.jsx("main",{className:"flex-1 flex items-center justify-center px-4",children:O.jsx("p",{className:"text-oai-gray-400 text-center max-w-md",children:We("login.cloud_only")})})]})}const tX=typeof window<"u"?window.location.search:"",ZE=new URLSearchParams(tX),Mh=ZE.get("insforge_code")||ZE.get("code")||null;function nX(){Nu();const{loading:t,signedIn:e}=Do(),n=Cu(),[i,r]=k.useState("processing"),[a,o]=k.useState(null),c=k.useRef(!1);return k.useEffect(()=>{!Mh||c.current||(c.current=!0,(async()=>{try{const d=await(await fetch("/api/auth-bridge/verifier")).json();o(!!d?.native)}catch{o(!1)}})())},[]),k.useEffect(()=>{if(a!==!0||!Mh)return;r("redirecting");const u=setTimeout(()=>{window.location.href=`tokentracker://auth/callback?insforge_code=${encodeURIComponent(Mh)}`},200);return()=>clearTimeout(u)},[a]),k.useEffect(()=>{if(a!==!1||t)return;if(e){n("/dashboard",{replace:!0});return}const u=setTimeout(()=>{e||r("failed")},5e3);return()=>clearTimeout(u)},[a,t,e,n]),k.useEffect(()=>{if(!Mh&&a===null){const u=setTimeout(()=>r("failed"),3e3);return()=>clearTimeout(u)}},[a]),i==="processing"&&a!==!0&&(a===null||a===!1&&t)?O.jsx("div",{className:"min-h-screen bg-oai-gray-950"}):O.jsx("div",{className:"min-h-screen bg-oai-gray-950 text-white font-oai antialiased dark flex items-center justify-center",children:O.jsxs("div",{className:"text-center space-y-4 max-w-sm px-4",children:[i==="processing"&&O.jsxs(O.Fragment,{children:[O.jsx("div",{className:"w-8 h-8 border-2 border-oai-gray-600 border-t-white rounded-full animate-spin mx-auto"}),O.jsx("p",{className:"text-oai-gray-400 text-sm",children:We("auth.callback.processing")})]}),i==="redirecting"&&O.jsxs(O.Fragment,{children:[O.jsx("div",{className:"w-12 h-12 mx-auto rounded-full bg-green-500/15 flex items-center justify-center",children:O.jsx("svg",{className:"w-6 h-6 text-green-400",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:O.jsx("path",{d:"M20 6 9 17l-5-5"})})}),O.jsx("p",{className:"text-white text-sm font-medium",children:We("auth.callback.success")}),O.jsx("p",{className:"text-oai-gray-500 text-xs",children:We("auth.callback.redirecting")})]}),i==="failed"&&O.jsxs("div",{className:"space-y-3",children:[O.jsx("p",{className:"text-oai-gray-300 text-sm",children:We("auth.callback.failed")}),O.jsx("button",{type:"button",onClick:()=>window.close(),className:"px-4 py-2 rounded-lg bg-oai-gray-800 text-sm text-white hover:bg-oai-gray-700 transition-colors",children:We("auth.callback.close")})]})]})})}function iX(){const t=k.useContext(rA);if(t===null)throw new Error("useTheme must be used within a ThemeProvider");return t}const G0="tt.sidebarCollapsed";function rX(){return[{id:"general",label:We("nav.group.general"),items:[{id:"usage",to:"/dashboard",icon:EV,label:We("nav.usage")},{id:"limits",to:"/limits",icon:MV,label:We("nav.limits")},{id:"leaderboard",to:"/leaderboard",icon:HV,label:We("nav.leaderboard")}]},{id:"tools",label:We("nav.group.tools"),items:[{id:"widgets",to:"/widgets",icon:RV,label:We("nav.widgets")},{id:"ip-check",to:"/ip-check",icon:CV,label:We("nav.ip_check")}]},{id:"account",label:We("nav.group.account"),items:[{id:"settings",to:"/settings",icon:BV,label:We("nav.settings")}]}]}function aX(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(G0)==="1"}catch{return!1}}function sX(){const[t,e]=k.useState(aX),n=k.useCallback(()=>{e(i=>{const r=!i;try{typeof window<"u"&&window.localStorage.setItem(G0,r?"1":"0")}catch{}return r})},[]);return k.useEffect(()=>{if(typeof window>"u")return;const i=r=>{r.key===G0&&e(r.newValue==="1")};return window.addEventListener("storage",i),()=>window.removeEventListener("storage",i)},[]),{collapsed:t,toggle:n}}function oX(t,e){const n=t.replace(/\/+$/,"")||"/";return e==="/dashboard"?n==="/dashboard"||n==="/":e==="/leaderboard"?n==="/leaderboard"||n.startsWith("/leaderboard/"):n===e}function lX({label:t,collapsed:e,first:n}){return e?n?null:O.jsx("div",{className:"mx-2 my-2 h-px bg-oai-gray-200/70 dark:bg-oai-gray-800/70","aria-hidden":!0}):O.jsx("div",{className:Tn("px-3 pb-1 text-[10px] uppercase tracking-wider text-oai-gray-500 dark:text-oai-gray-500",n?"pt-2":"pt-4"),children:t})}function cX({item:t,collapsed:e,active:n,onClick:i}){const r=t.icon;return O.jsxs(Oa,{to:t.to,onClick:i,title:e?t.label:void 0,"aria-current":n?"page":void 0,className:Tn("flex items-center gap-2 rounded-md px-2 py-1.5 text-[13px] no-underline transition-colors",e&&"justify-center px-0 py-2",n?"bg-oai-gray-200/70 text-oai-black font-medium dark:bg-oai-gray-800 dark:text-white":"text-oai-gray-600 dark:text-oai-gray-400 hover:bg-oai-gray-200/50 hover:text-oai-black dark:hover:bg-oai-gray-800/60 dark:hover:text-white"),children:[O.jsx("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center",children:O.jsx(r,{className:"h-[15px] w-[15px]","aria-hidden":!0})}),!e&&O.jsx("span",{className:"truncate",children:t.label})]})}function uX({as:t="button",title:e,onClick:n,href:i,children:r,className:a,...o}){const c=Tn("flex h-10 w-10 items-center justify-center rounded-lg text-oai-gray-600 dark:text-oai-gray-400 hover:bg-oai-gray-200/60 dark:hover:bg-oai-gray-800 hover:text-oai-black dark:hover:text-white transition-colors no-underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",a);return t==="a"?O.jsx("a",{href:i,target:"_blank",rel:"noopener noreferrer",title:e,"aria-label":e,className:c,...o,children:r}):O.jsx("button",{type:"button",title:e,"aria-label":e,onClick:n,className:c,...o,children:r})}function dX({repo:t="mm7894215/TokenTracker",glassChrome:e=!1}){const[n,i]=k.useState(null);return k.useEffect(()=>{if(typeof window>"u")return;const r=typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;mP({prefersReducedMotion:r,screenshotCapture:!1})&&fetch(`https://api.github.com/repos/${t}`).then(a=>a.json()).then(a=>{a&&typeof a.stargazers_count=="number"&&i(a.stargazers_count)}).catch(()=>{})},[t]),O.jsxs("a",{href:`https://github.com/${t}`,target:"_blank",rel:"noopener noreferrer","aria-label":n!==null?`Star on GitHub (${n})`:"Star on GitHub",className:Tn("inline-flex h-7 items-center gap-1.5 rounded-full px-2.5 text-xs font-medium transition-colors no-underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",e?"border border-gray-500/20 dark:border-gray-500/30 bg-gray-500/[0.04] dark:bg-gray-500/[0.06] backdrop-blur-[2px] text-oai-gray-700 dark:text-oai-gray-300 hover:bg-gray-500/10 dark:hover:bg-gray-500/12 hover:border-gray-500/30 dark:hover:border-gray-500/40 hover:text-oai-black dark:hover:text-white":"border border-oai-gray-200 dark:border-oai-gray-700 text-oai-gray-600 dark:text-oai-gray-400 hover:bg-oai-gray-200/60 dark:hover:bg-oai-gray-800 hover:text-oai-black dark:hover:text-white hover:border-oai-gray-300 dark:hover:border-oai-gray-600"),children:[O.jsx("svg",{height:"12",viewBox:"0 0 16 16",width:"12",className:"shrink-0 fill-current",children:O.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"})}),O.jsx("span",{children:"Star"}),n!==null&&O.jsx("span",{className:"text-[10px] text-oai-gray-500 dark:text-oai-gray-500 tabular-nums",children:n})]})}const hX=[{value:"light",label:"Light",Icon:YC},{value:"dark",label:"Dark",Icon:qC},{value:"system",label:"System",Icon:UV}];function fX({theme:t,resolvedTheme:e,onSetTheme:n,glassChrome:i=!1}){const[r,a]=k.useState(!1),o=k.useRef(null),c=e==="dark"?qC:YC;return k.useEffect(()=>{if(!r)return;const u=f=>{o.current&&!o.current.contains(f.target)&&a(!1)},d=f=>{f.key==="Escape"&&a(!1)};return document.addEventListener("mousedown",u),document.addEventListener("keydown",d),()=>{document.removeEventListener("mousedown",u),document.removeEventListener("keydown",d)}},[r]),O.jsxs("div",{ref:o,className:"relative",children:[O.jsx("button",{type:"button","aria-label":"Theme","aria-expanded":r,"aria-haspopup":"menu",title:"Theme",onClick:()=>a(u=>!u),className:Tn("inline-flex h-7 w-7 items-center justify-center rounded-full transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",i?"border border-gray-500/20 dark:border-gray-500/30 bg-gray-500/[0.04] dark:bg-gray-500/[0.06] backdrop-blur-[2px] text-oai-gray-700 dark:text-oai-gray-300 hover:bg-gray-500/10 dark:hover:bg-gray-500/12 hover:border-gray-500/30 dark:hover:border-gray-500/40 hover:text-oai-black dark:hover:text-white":"border border-oai-gray-200 dark:border-oai-gray-700 text-oai-gray-600 dark:text-oai-gray-400 hover:bg-oai-gray-200/60 dark:hover:bg-oai-gray-800 hover:text-oai-black dark:hover:text-white hover:border-oai-gray-300 dark:hover:border-oai-gray-600"),children:O.jsx(c,{className:"h-3.5 w-3.5","aria-hidden":!0})}),r&&O.jsx("div",{role:"menu",className:"absolute bottom-full left-0 mb-2 z-50 min-w-[140px] py-1 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-900 shadow-lg",children:hX.map(({value:u,label:d,Icon:f})=>{const p=t===u;return O.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{n(u),a(!1)},className:Tn("flex w-full items-center gap-2.5 px-3 py-1.5 text-[13px] transition-colors",p?"text-oai-black dark:text-white bg-oai-gray-100 dark:bg-oai-gray-800":"text-oai-gray-600 dark:text-oai-gray-400 hover:bg-oai-gray-50 dark:hover:bg-oai-gray-800/60 hover:text-oai-black dark:hover:text-white"),children:[O.jsx(f,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),O.jsx("span",{children:d})]},u)})})]})}function nR({collapsed:t,onToggleCollapsed:e,onItemClick:n,showCloseButton:i=!1,onClose:r,glassChrome:a=!1}){const c=vr()?.pathname||"/",{theme:u,resolvedTheme:d,setTheme:f}=iX(),{resolvedLocale:p}=Nu(),m=k.useMemo(()=>rX(),[p]);return O.jsxs(O.Fragment,{children:[O.jsx("div",{className:Tn("px-2 pt-2 pb-2",t&&"flex justify-center"),children:i?O.jsxs("div",{className:"flex items-center gap-2",children:[O.jsx("div",{className:"flex-1 min-w-0",children:O.jsx(qv,{variant:"sidebar",collapsed:t,onAfterAction:n})}),O.jsx("button",{type:"button",onClick:r,"aria-label":We("nav.close_menu"),title:We("nav.close_menu"),className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md text-oai-gray-500 dark:text-oai-gray-500 hover:bg-oai-gray-200/60 dark:hover:bg-oai-gray-800 hover:text-oai-gray-900 dark:hover:text-oai-gray-200 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",children:O.jsx(KC,{className:"h-4 w-4",strokeWidth:1.75,"aria-hidden":!0})})]}):O.jsx(qv,{variant:"sidebar",collapsed:t,onAfterAction:n})}),O.jsx("nav",{"aria-label":We("nav.nav_label"),className:"flex-1 px-2 pb-2 flex flex-col overflow-y-auto",children:m.map((v,_)=>O.jsxs("div",{className:"flex flex-col",children:[O.jsx(lX,{label:v.label,collapsed:t,first:_===0}),O.jsx("div",{className:"flex flex-col gap-0.5",children:v.items.map(w=>O.jsx(cX,{item:w,collapsed:t,active:oX(c,w.to),onClick:n},w.id))})]},v.id))}),O.jsxs("div",{className:Tn("flex items-center px-2 py-3",t?"flex-col justify-center gap-2":"justify-between gap-2"),children:[O.jsx(fX,{theme:u,resolvedTheme:d,onSetTheme:f,glassChrome:a}),O.jsx("div",{className:"flex items-center gap-1.5",children:!t&&O.jsx(dX,{glassChrome:a})})]})]})}function pX({collapsed:t,onToggleCollapsed:e}){const n=k.useMemo(()=>typeof window>"u"?!1:Jr()||zM(),[]);return O.jsx("aside",{"aria-label":We("nav.aside_label"),className:Tn("hidden lg:flex flex-col shrink-0 h-full min-h-0 transition-[width] duration-200",t?"w-[72px]":"w-[220px]"),children:O.jsx(nR,{collapsed:t,onToggleCollapsed:e,glassChrome:n})})}function mX({open:t,onClose:e}){return k.useEffect(()=>{if(!t)return;const n=i=>{i.key==="Escape"&&e()};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[t,e]),k.useEffect(()=>{if(!t)return;const n=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=n}},[t]),t?O.jsxs("div",{className:"lg:hidden fixed inset-0 z-[80] flex",children:[O.jsx("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-sm",onClick:e,"aria-hidden":!0}),O.jsx("aside",{"aria-label":We("nav.aside_label"),className:"relative w-[260px] max-w-[80vw] flex flex-col bg-oai-white dark:bg-oai-gray-900 border-r border-oai-gray-200 dark:border-oai-gray-800 shadow-2xl",children:O.jsx(nR,{collapsed:!1,showCloseButton:!0,onClose:e,onItemClick:e})})]}):null}function gX({onOpenDrawer:t}){return O.jsxs("div",{className:"lg:hidden flex items-center justify-between gap-2 px-3 h-14 border-b border-oai-gray-200 dark:border-oai-gray-800",children:[O.jsx(uX,{title:We("nav.menu"),onClick:t,children:O.jsx(NV,{className:"h-5 w-5","aria-hidden":!0})}),O.jsxs(Oa,{to:"/landing",className:"flex items-center gap-2 no-underline hover:opacity-80 transition-opacity","aria-label":"Token Tracker",children:[O.jsx("img",{src:"/app-icon.png",alt:"",width:24,height:24,className:"rounded-md"}),O.jsx("span",{className:"text-sm font-semibold text-oai-black dark:text-oai-white",children:"Token Tracker"})]}),O.jsx("div",{className:"w-10 shrink-0","aria-hidden":!0})]})}function vX({children:t}){const{collapsed:e,toggle:n}=sX(),[i,r]=k.useState(!1),a=k.useCallback(()=>r(!0),[]),o=k.useCallback(()=>r(!1),[]),c=k.useMemo(()=>typeof window>"u"?!1:Jr()||zM(),[]);return O.jsxs("div",{className:Tn("fixed inset-0 flex flex-col text-oai-black dark:text-oai-white font-sans overflow-hidden",c?"bg-transparent":"bg-oai-gray-100 dark:bg-oai-gray-950"),children:[c&&O.jsx("div",{className:"h-7 shrink-0",style:{WebkitAppRegion:"drag"},"aria-hidden":!0}),O.jsxs("div",{className:"flex-1 min-h-0 flex",children:[O.jsx(pX,{collapsed:e,onToggleCollapsed:n}),O.jsx(mX,{open:i,onClose:o}),O.jsx("div",{className:"flex-1 min-w-0 min-h-0 p-2 lg:pl-0 lg:pr-3 lg:pb-3 flex flex-col",children:O.jsxs("div",{className:Tn("flex-1 min-h-0 flex flex-col bg-oai-white dark:bg-oai-gray-900 border border-oai-gray-200 dark:border-oai-gray-800 overflow-hidden",c?"tt-native-main-card":"rounded-2xl",!c&&"shadow-sm"),children:[O.jsx(gX,{onOpenDrawer:a}),O.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto",children:t})]})})]})]})}const yX=pa.lazy(()=>No(()=>import("./DashboardPage-B-2PxAXT.js"),__vite__mapDeps([0,1,2,3,4])).then(t=>({default:t.DashboardPage}))),_X=pa.lazy(()=>No(()=>import("./LeaderboardPage-DazS-BOp.js"),__vite__mapDeps([5,4,6])).then(t=>({default:t.LeaderboardPage}))),xX=pa.lazy(()=>No(()=>import("./LeaderboardProfilePage-DQMr9vjY.js"),__vite__mapDeps([7,6])).then(t=>({default:t.LeaderboardProfilePage}))),bX=pa.lazy(()=>No(()=>import("./LimitsPage-BKaitxPe.js"),__vite__mapDeps([8,1,9,2,3])).then(t=>({default:t.LimitsPage}))),SX=pa.lazy(()=>No(()=>import("./SettingsPage-CYpMYSR7.js"),__vite__mapDeps([10,9,2,11])).then(t=>({default:t.SettingsPage}))),wX=pa.lazy(()=>No(()=>import("./WidgetsPage-C-VjXvcB.js"),__vite__mapDeps([12,3,11])).then(t=>({default:t.WidgetsPage}))),EX=pa.lazy(()=>No(()=>import("./IpCheckPage-BN6f0ZOs.js"),[]));function TX(){const{resolvedLocale:t}=Nu(),e=vr(),n=Do();YH();const i=xr(),r=k.useMemo(()=>typeof window>"u"?!1:hP(window.location.search),[]),a=e?.pathname||"/",o=new URL(window.location.href),c=o.pathname.replace(/\/+$/,"")||"/",d=c.match(/^\/share\/([^/?#]+)$/i)?.[1]||null,f=o.searchParams.get("token")||null,p=d||f,m=c==="/share"||c==="/share.html"||c.startsWith("/share/"),v=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),_=a.replace(/\/+$/,"")||"/",w=_.match(/^\/leaderboard\/u\/([^/]+)$/i),y=w?w[1]:null,b=_==="/leaderboard"||!!y,M=!!(n.enabled&&n.signedIn),A=v||M,T=!1,I=VH(),L=k.useMemo(()=>!n.enabled||!M?null:{getAccessToken:()=>n.getAccessToken(),name:n.displayName||"",userId:n.user?.id||null},[M,n]);let U=v||i||r?"dashboard":"landing";_==="/landing"&&(U="landing"),_==="/dashboard"&&(U="dashboard"),b&&(U="dashboard");const S=_==="/limits",P=_==="/settings",V=_==="/widgets",F=_==="/ip-check";(S||P||V||F)&&(U="dashboard");const G=y?xX:_==="/leaderboard"?_X:S?bX:P?SX:V?wX:F?EX:yX,H=!m&&(_==="/dashboard"||_==="/"||_==="/leaderboard"||S||P||V||F),q=O.jsx("div",{className:"min-h-screen bg-oai-white dark:bg-[#050505]"});let K=null;if(_==="/auth/callback"||_==="/auth/native-callback")K=O.jsx(nX,{});else if(_==="/login")K=O.jsx(eX,{});else if(U==="landing")K=O.jsx(J$,{signInUrl:"/login",signUpUrl:"/login"});else{const Q=O.jsx(k.Suspense,{fallback:q,children:O.jsx(G,{baseUrl:I,auth:L,signedIn:A,sessionSoftExpired:T,signOut:()=>n.enabled?n.signOut():Promise.resolve(),publicMode:m,publicToken:p,userId:y,signInUrl:"/login",signUpUrl:"/login"},t)});K=H?O.jsx(vX,{children:Q}):Q}return O.jsx(fF,{children:O.jsx(gF,{children:O.jsxs(vF,{children:[K,O.jsx(BH,{}),O.jsx(xO,{}),O.jsx(kO,{})]})})})}const MX=nD([{path:"*",element:O.jsx(TX,{})}]);jk.createRoot(document.getElementById("root")).render(O.jsx(pa.StrictMode,{children:O.jsx(sO,{children:O.jsx(DU,{children:O.jsx(gD,{router:MX})})})}));export{FO as $,CM as A,We as B,iX as C,O as D,My as E,GO as F,tA as G,j0 as H,rF as I,_f as J,aw as K,nw as L,e_ as M,pq as N,Ty as O,Tl as P,Ey as Q,QE as R,mD as S,$M as T,lF as U,sw as V,Zl as W,KM as X,iw as Y,XM as Z,LO as _,pi as a,lq as a$,OO as a0,DO as a1,_v as a2,YM as a3,dq as a4,UO as a5,hq as a6,qM as a7,fq as a8,Oa as a9,Tn as aA,vr as aB,Cu as aC,gq as aD,YI as aE,DX as aF,vq as aG,NX as aH,KX as aI,ZX as aJ,JH as aK,qv as aL,BV as aM,rq as aN,Ay as aO,qI as aP,YS as aQ,YX as aR,YC as aS,qC as aT,UV as aU,Hl as aV,vv as aW,by as aX,zM as aY,oq as aZ,uq as a_,gV as aa,Il as ab,JO as ac,pa as ad,KC as ae,jX as af,GX as ag,sA as ah,Do as ai,lz as aj,No as ak,sq as al,qX as am,Nu as an,hP as ao,As as ap,JX as aq,UX as ar,OX as as,WX as at,oU as au,FX as av,BX as aw,QX as ax,HX as ay,VU as az,oA as b,QS as b0,cq as b1,Jr as b2,Is as c,ww as d,br as e,An as f,PM as g,xr as h,fB as i,IX as j,tU as k,aq as l,jl as m,uU as n,dU as o,tq as p,VX as q,k as r,XX as s,nq as t,Cy as u,iq as v,zX as w,kn as x,$X as y,eq as z};
5073
+ }`;function V$({raysOrigin:t="top-center",raysColor:e="#ffffff",raysSpeed:n=1,lightSpread:i=1,rayLength:r=2,pulsating:a=!1,fadeDistance:o=1,saturation:c=1,followMouse:u=!0,mouseInfluence:d=.1,noiseAmount:f=0,distortion:p=0,className:m=""}){const v=k.useRef(null),_=k.useRef(null),w=k.useRef(null),y=k.useRef({x:.5,y:.5}),b=k.useRef({x:.5,y:.5}),M=k.useRef(null),A=k.useRef(null),T=k.useRef(null),[I,L]=k.useState(!1),U=k.useRef(null);return k.useEffect(()=>{if(v.current)return U.current=new IntersectionObserver(S=>{L(S[0].isIntersecting)},{threshold:.1}),U.current.observe(v.current),()=>{U.current&&(U.current.disconnect(),U.current=null)}},[]),k.useEffect(()=>!I||!v.current?void 0:(T.current&&(T.current(),T.current=null),(async()=>{if(!v.current||(await new Promise(Q=>setTimeout(Q,10)),!v.current))return;const P=new B7({dpr:Math.min(window.devicePixelRatio,2),alpha:!0});w.current=P;const V=P.gl;for(V.canvas.style.width="100%",V.canvas.style.height="100%";v.current.firstChild;)v.current.removeChild(v.current.firstChild);v.current.appendChild(V.canvas);const F={iTime:{value:0},iResolution:{value:[1,1]},rayPos:{value:[0,0]},rayDir:{value:[0,1]},raysColor:{value:$E(e)},raysSpeed:{value:n},lightSpread:{value:i},rayLength:{value:r},pulsating:{value:a?1:0},fadeDistance:{value:o},saturation:{value:c},mousePos:{value:[.5,.5]},mouseInfluence:{value:d},noiseAmount:{value:f},distortion:{value:p}};_.current=F;const G=new F$(V),J=new N7(V,{vertex:B$,fragment:z$,uniforms:F}),H=new O$(V,{geometry:G,program:J});A.current=H;const q=()=>{if(!v.current||!P)return;P.dpr=Math.min(window.devicePixelRatio,2);const{clientWidth:Q,clientHeight:W}=v.current;P.setSize(Q,W);const X=P.dpr,Z=Q*X,z=W*X;F.iResolution.value=[Z,z];const{anchor:ie,dir:we}=XE(t,Z,z);F.rayPos.value=ie,F.rayDir.value=we},K=Q=>{if(!(!w.current||!_.current||!A.current)){F.iTime.value=Q*.001,u&&d>0&&(b.current.x=b.current.x*.92+y.current.x*(1-.92),b.current.y=b.current.y*.92+y.current.y*(1-.92),F.mousePos.value=[b.current.x,b.current.y]);try{P.render({scene:H}),M.current=requestAnimationFrame(K)}catch(W){console.warn("WebGL rendering error:",W)}}};window.addEventListener("resize",q),q(),M.current=requestAnimationFrame(K),T.current=()=>{if(M.current&&(cancelAnimationFrame(M.current),M.current=null),window.removeEventListener("resize",q),P)try{const Q=P.gl.getExtension("WEBGL_lose_context");Q&&Q.loseContext();const W=P.gl.canvas;W&&W.parentNode&&W.parentNode.removeChild(W)}catch(Q){console.warn("Error during WebGL cleanup:",Q)}w.current=null,_.current=null,A.current=null}})(),()=>{T.current&&(T.current(),T.current=null)}),[I,t,e,n,i,r,a,o,c,u,d,f,p]),k.useEffect(()=>{if(!_.current||!v.current||!w.current)return;const S=_.current,P=w.current;S.raysColor.value=$E(e),S.raysSpeed.value=n,S.lightSpread.value=i,S.rayLength.value=r,S.pulsating.value=a?1:0,S.fadeDistance.value=o,S.saturation.value=c,S.mouseInfluence.value=d,S.noiseAmount.value=f,S.distortion.value=p;const{clientWidth:V,clientHeight:F}=v.current,G=P.dpr,{anchor:J,dir:H}=XE(t,V*G,F*G);S.rayPos.value=J,S.rayDir.value=H},[e,n,i,t,r,a,o,c,d,f,p]),k.useEffect(()=>{if(!u)return;const S=P=>{if(!v.current)return;const V=v.current.getBoundingClientRect();y.current={x:(P.clientX-V.left)/V.width,y:(P.clientY-V.top)/V.height}};return window.addEventListener("mousemove",S),()=>window.removeEventListener("mousemove",S)},[u]),O.jsx("div",{ref:v,className:`w-full h-full pointer-events-none z-[3] overflow-hidden relative ${m}`.trim()})}function H$({className:t}){return O.jsx("svg",{viewBox:"0 0 384 512",className:t,fill:"currentColor",children:O.jsx("path",{d:"M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"})})}function G$({className:t}){return O.jsx("svg",{viewBox:"0 0 16 16",className:t,fill:"currentColor",children:O.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"})})}function j$({className:t}){return O.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,children:[O.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),O.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})}function W$({className:t}){return O.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,children:O.jsx("polyline",{points:"20 6 9 17 4 12"})})}const qE="https://github.com/mm7894215/TokenTracker",$$="https://github.com/mm7894215/TokenTracker/releases/latest";function X$(t="default",e="md",n){const i="inline-flex items-center justify-center rounded font-medium transition-colors duration-200 ease-out focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500 focus-visible:ring-offset-2 dark:focus-visible:ring-offset-oai-gray-950",r={default:"bg-oai-gray-900 text-white hover:bg-oai-gray-800 active:bg-oai-gray-950 dark:bg-white dark:text-oai-gray-900 dark:hover:bg-oai-gray-100 dark:active:bg-oai-gray-200",ghost:"text-oai-gray-600 hover:text-oai-gray-900 hover:bg-oai-gray-100 active:bg-oai-gray-200 dark:text-oai-gray-400 dark:hover:text-white dark:hover:bg-oai-gray-800 dark:active:bg-oai-gray-700"},a={sm:"h-9 px-4 text-sm",md:"h-11 px-6 text-sm",lg:"h-12 px-8 text-base"};return Tn(i,r[t],a[e],n)}function q$({copy:t,signInUrl:e,signUpUrl:n,installCommand:i,installCopied:r,onCopyInstallCommand:a}){const o=gV(),[c,u]=k.useState(!1);k.useEffect(()=>{const w=()=>u(window.scrollY>10);return window.addEventListener("scroll",w,{passive:!0}),()=>window.removeEventListener("scroll",w)},[]);const d=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),{signedIn:f,loading:p}=Do(),m=k.useMemo(()=>({codex:t("landing.v2.models.agent.codex"),claude_code:t("landing.v2.models.agent.claude_code"),cursor:t("landing.v2.models.agent.cursor"),gemini:t("landing.v2.models.agent.gemini"),opencode:t("landing.v2.models.agent.opencode"),openclaw:t("landing.v2.models.agent.openclaw")}),[t]),v=k.useMemo(()=>[{id:"codex",icon:"/brand-logos/codex.svg"},{id:"claude_code",icon:"/brand-logos/claude-code.svg"},{id:"cursor",icon:"/brand-logos/cursor.svg"},{id:"gemini",icon:"/brand-logos/gemini.svg"},{id:"opencode",icon:"/brand-logos/opencode.svg"},{id:"openclaw",icon:"/brand-logos/openclaw.svg"}],[]),_=o?{duration:0}:void 0;return O.jsxs("div",{className:"relative min-h-screen bg-oai-gray-950 text-oai-white font-oai antialiased dark",children:[O.jsx("div",{className:"absolute inset-0 z-0 pointer-events-none",style:{height:"100vh"},children:O.jsx(V$,{raysOrigin:"top-center",raysColor:"#b8b3ff",raysSpeed:1,lightSpread:.5,rayLength:3,pulsating:!1,fadeDistance:1,saturation:1,followMouse:!0,mouseInfluence:.1,noiseAmount:0,distortion:0})}),O.jsx("header",{className:Tn("sticky top-0 z-50 transition-all duration-300",c?"bg-oai-gray-950/80 backdrop-blur-md border-b border-oai-gray-900":"bg-transparent border-b border-transparent"),children:O.jsxs("div",{className:"mx-auto flex h-14 max-w-7xl items-center justify-between px-4 sm:px-6",children:[O.jsxs("div",{className:"flex items-center gap-5",children:[O.jsxs(Oa,{to:n||"/",className:"flex items-center gap-3 no-underline outline-none rounded focus-visible:ring-2 focus-visible:ring-oai-brand-500 focus-visible:ring-offset-2 dark:ring-offset-oai-gray-950 transition-opacity hover:opacity-80",children:[O.jsx("img",{src:"/app-icon.png",alt:"",width:24,height:24,className:"rounded-md"}),O.jsx("span",{className:"text-sm font-semibold tracking-wide text-white uppercase",children:"Token Tracker"})]}),O.jsx("div",{className:"hidden sm:block",children:O.jsx(JH,{})})]}),d&&O.jsxs("div",{className:"flex flex-wrap items-center justify-end gap-2 sm:gap-3",children:[O.jsxs(Oa,{to:ZH(),className:Tn(X$(f||p?"default":"ghost","sm"),"no-underline px-5 rounded-full group",f||p?"shadow-sm ring-1 ring-white/10":"ring-1 ring-oai-gray-700"),children:[t("landing.v2.cta.primary"),O.jsx("span",{className:"ml-2 inline-block transition-transform duration-200 group-hover:translate-x-0.5",children:"→"})]}),O.jsx(qv,{})]})]})}),O.jsxs("main",{children:[O.jsx("section",{className:"relative py-16 sm:py-24 lg:py-32 overflow-hidden",children:O.jsxs("div",{className:"relative z-10 mx-auto max-w-7xl px-4 sm:px-6 flex flex-col items-center text-center gap-20 lg:gap-36",children:[O.jsxs(Il.div,{initial:o?!1:{opacity:0,y:20},animate:{opacity:1,y:0},transition:_||{duration:.5},className:"w-full max-w-3xl relative z-20",children:[O.jsxs("h1",{className:"text-balance text-5xl font-semibold tracking-tight text-white sm:text-6xl lg:text-[4rem] lg:leading-[1.05]",children:[t("landing.v2.hero.title_line1"),O.jsx("br",{}),O.jsx("span",{className:"bg-gradient-to-b from-white via-oai-gray-200 to-oai-gray-500 bg-clip-text text-transparent font-bold tracking-tight",style:{WebkitTextStroke:"1px rgba(255, 255, 255, 0.15)"},children:t("landing.v2.hero.title_line2")})]}),O.jsx("p",{className:"mt-6 text-lg leading-relaxed text-oai-gray-400",children:t("landing.v2.hero.subtagline")}),O.jsxs("div",{className:"mt-8 w-full max-w-lg mx-auto",children:[O.jsxs(Il.div,{whileHover:{scale:1.01,y:-1},transition:{type:"spring",stiffness:400,damping:25},className:"group relative inline-block w-full overflow-hidden rounded-2xl",style:{padding:"1.5px 0"},children:[O.jsx("div",{className:"absolute w-[300%] h-[50%] opacity-70 bottom-[-11px] right-[-250%] rounded-full animate-star-movement-bottom z-0",style:{background:"radial-gradient(circle, #fbdfff, transparent 10%)",animationDuration:"6s"}}),O.jsx("div",{className:"absolute w-[300%] h-[50%] opacity-70 top-[-10px] left-[-250%] rounded-full animate-star-movement-top z-0",style:{background:"radial-gradient(circle, #fbdfff, transparent 10%)",animationDuration:"6s"}}),O.jsxs("div",{className:"relative z-[1] flex items-center justify-between w-full bg-[#0a0a0a] border border-oai-gray-800 rounded-2xl p-1.5 pl-5 shadow-2xl shadow-black/50",children:[O.jsxs("div",{className:"flex items-center gap-3 overflow-hidden",children:[O.jsx("span",{className:"text-oai-gray-600 font-mono select-none","aria-hidden":"true",children:"›"}),O.jsx("code",{className:"font-mono text-sm text-oai-gray-200 overflow-x-auto whitespace-nowrap py-2 [scrollbar-width:none]",children:i?i.split(" ").map((w,y)=>O.jsxs("span",{className:w==="npx"||w==="tokentracker-cli"?"text-white font-medium":w==="--yes"?"text-oai-gray-500":"text-oai-brand-400",children:[w," "]},y)):null})]}),O.jsx("button",{type:"button",onClick:a,"aria-label":t(r?"landing.install.action.copied":"landing.install.action.copy"),className:"shrink-0 flex h-9 w-9 items-center justify-center text-oai-gray-200 bg-oai-gray-900 border border-oai-gray-700 rounded-lg hover:bg-oai-gray-800 hover:text-white active:scale-95 transition-all duration-200 shadow-sm",children:r?O.jsx(W$,{className:"h-4 w-4 text-green-400","aria-hidden":!0}):O.jsx(j$,{className:"h-4 w-4 opacity-70","aria-hidden":!0})})]})]}),O.jsxs("div",{className:"mt-8 flex flex-wrap items-center justify-center gap-x-6 gap-y-4",children:[O.jsxs("a",{href:$$,target:"_blank",rel:"noopener noreferrer",className:"group flex items-center gap-2 text-sm font-medium text-oai-gray-400 hover:text-white transition-colors",children:[O.jsx("div",{className:"flex items-center justify-center h-8 w-8 rounded-full bg-oai-gray-800 group-hover:bg-oai-gray-700 transition-colors",children:O.jsx(H$,{className:"h-4 w-4 text-oai-gray-400 group-hover:text-white"})}),t("landing.v2.install.mac_cta")]}),O.jsxs("a",{href:qE,target:"_blank",rel:"noopener noreferrer",className:"group flex items-center gap-2 text-sm font-medium text-oai-gray-400 hover:text-white transition-colors",children:[O.jsx("div",{className:"flex items-center justify-center h-8 w-8 rounded-full bg-oai-gray-800 group-hover:bg-oai-gray-700 transition-colors",children:O.jsx(G$,{className:"h-4 w-4 text-oai-gray-400 group-hover:text-white"})}),t("landing.cta.secondary")]})]}),O.jsx("span",{className:"sr-only","aria-live":"polite",children:r?t("landing.install.action.copied"):""})]})]}),O.jsx("div",{className:"relative group w-full",children:O.jsxs(Il.div,{initial:o?!1:{opacity:0,y:24},animate:{opacity:1,y:0},transition:_||{duration:.6,delay:.1},className:"relative w-full",children:[O.jsx("div",{style:{position:"absolute",top:"-256px",left:0,right:0,height:"510px",zIndex:3,pointerEvents:"none"},children:O.jsx(p7,{color:"#8a7aff",wispDensity:2,flowSpeed:.28,verticalSizing:2.2,horizontalSizing:1.22,fogIntensity:4,fogScale:.1,wispSpeed:18,wispIntensity:10,flowStrength:.12,decay:1.1,falloffStart:1.1,fogFallSpeed:.5,horizontalBeamOffset:.22,verticalBeamOffset:0,style:{width:"100%",height:"100%"}})}),O.jsx("div",{className:"relative rounded-xl p-[1px] shadow-2xl bg-gradient-to-b from-[rgba(138,122,255,0.6)] via-[rgba(138,122,255,0.15)] to-[rgba(138,122,255,0.05)]",style:{position:"relative",zIndex:10,boxShadow:"0 20px 60px -10px rgba(138,122,255,0.15), 0 4px 20px rgba(0,0,0,0.4)"},children:O.jsxs("div",{className:"relative rounded-[11px] overflow-hidden bg-oai-gray-950",children:[O.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,height:"180px",background:"linear-gradient(to bottom, rgba(138,122,255,0.35) 0%, rgba(138,122,255,0.12) 40%, transparent 100%)",mixBlendMode:"screen",zIndex:20,pointerEvents:"none"}}),O.jsx("div",{style:{position:"absolute",top:0,left:0,right:0,height:"1px",background:"linear-gradient(90deg, transparent 0%, rgba(138,122,255,0.9) 30%, rgba(180,168,255,1) 50%, rgba(138,122,255,0.9) 70%, transparent 100%)",zIndex:25,pointerEvents:"none"}}),O.jsx("img",{src:"/dashboard-dark.png",alt:t("landing.screenshot.alt"),className:"block h-auto w-full object-cover",style:{position:"relative",zIndex:10},loading:"eager",decoding:"async"})]})})]})})]})}),O.jsx("section",{className:"border-y border-oai-gray-900 bg-oai-gray-950/50 py-12 lg:py-16",children:O.jsx("div",{className:"mx-auto max-w-6xl px-4 sm:px-6",children:O.jsxs("div",{className:"flex flex-col md:flex-row md:items-center justify-between gap-8",children:[O.jsx("p",{className:"text-sm font-semibold uppercase tracking-wider text-oai-gray-400 shrink-0",children:t("landing.v2.models.title")}),O.jsx("div",{className:"flex flex-wrap items-center gap-x-8 gap-y-6 opacity-60 hover:opacity-100 transition-opacity duration-500 grayscale hover:grayscale-0",children:v.map(w=>O.jsxs("div",{className:"flex items-center gap-2.5 transition-transform hover:-translate-y-0.5 duration-300",children:[O.jsx("img",{src:w.icon,alt:"",width:20,height:20,className:`h-5 w-5 object-contain ${w.id==="cursor"?"dark:invert":""}`,loading:"lazy"}),O.jsx("span",{className:"text-sm font-medium text-oai-gray-300",children:m[w.id]})]},w.id))})]})})}),O.jsx("section",{className:"py-20 lg:py-32",children:O.jsxs("div",{className:"mx-auto max-w-6xl px-4 sm:px-6 grid grid-cols-1 md:grid-cols-2 gap-16 lg:gap-24 items-start",children:[O.jsxs("div",{className:"max-w-md",children:[O.jsx("p",{className:"text-xs font-bold tracking-widest uppercase text-oai-brand-500 mb-4",children:t("landing.v2.compare.kicker")}),O.jsx("h2",{className:"text-3xl font-semibold tracking-tight text-white sm:text-4xl text-balance",children:t("landing.v2.compare.title")}),O.jsx("p",{className:"mt-6 text-lg leading-relaxed text-oai-gray-400",children:t("landing.v2.compare.subtitle")}),O.jsx("p",{className:"mt-6 text-base leading-relaxed text-oai-gray-500",children:t("landing.v2.distill.body")})]}),O.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-10",children:[O.jsxs("div",{className:"space-y-4",children:[O.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wider text-white border-b border-oai-gray-800 pb-3",children:t("landing.v2.compare.with.title")}),O.jsxs("ul",{className:"space-y-3 text-sm text-oai-gray-400",children:[O.jsxs("li",{className:"flex gap-2",children:[O.jsx("span",{className:"text-oai-brand-500 shrink-0",children:"✦"}),O.jsx("span",{children:t("landing.v2.compare.with.p1")})]}),O.jsxs("li",{className:"flex gap-2",children:[O.jsx("span",{className:"text-oai-brand-500 shrink-0",children:"✦"}),O.jsx("span",{children:t("landing.v2.compare.with.p2")})]}),O.jsxs("li",{className:"flex gap-2",children:[O.jsx("span",{className:"text-oai-brand-500 shrink-0",children:"✦"}),O.jsx("span",{children:t("landing.v2.compare.with.p3")})]})]})]}),O.jsxs("div",{className:"space-y-4",children:[O.jsx("h3",{className:"text-sm font-semibold uppercase tracking-wider text-oai-gray-500 border-b border-oai-gray-800/50 pb-3",children:t("landing.v2.compare.without.title")}),O.jsxs("ul",{className:"space-y-3 text-sm text-oai-gray-500",children:[O.jsxs("li",{className:"flex gap-2",children:[O.jsx("span",{className:"opacity-50 shrink-0",children:"✕"}),O.jsx("span",{children:t("landing.v2.compare.without.p1")})]}),O.jsxs("li",{className:"flex gap-2",children:[O.jsx("span",{className:"opacity-50 shrink-0",children:"✕"}),O.jsx("span",{children:t("landing.v2.compare.without.p2")})]}),O.jsxs("li",{className:"flex gap-2",children:[O.jsx("span",{className:"opacity-50 shrink-0",children:"✕"}),O.jsx("span",{children:t("landing.v2.compare.without.p3")})]})]})]})]})]})})]}),O.jsx("footer",{className:"border-t border-oai-gray-900 bg-oai-gray-950 py-12",children:O.jsxs("div",{className:"mx-auto flex max-w-6xl flex-col items-center justify-between gap-6 px-4 sm:px-6 text-sm text-oai-gray-400 sm:flex-row",children:[O.jsx("p",{children:t("landing.v2.footer.line")}),O.jsxs("div",{className:"flex items-center gap-6",children:[O.jsx("a",{href:qE,className:"font-medium text-oai-gray-400 hover:text-white transition-colors",target:"_blank",rel:"noopener noreferrer",children:t("landing.v2.nav.github")}),d&&O.jsxs(Oa,{to:e,className:"font-medium text-oai-brand-500 hover:text-oai-brand-400 transition-colors",children:[t("landing.cta.primary")," →"]})]})]})})]})}function Y$({prefersReducedMotion:t,screenshotMode:e}){return!(e||t)}function K$(){return k.useMemo(()=>typeof window>"u"||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches,[])}function Z$(t=0,e=!0){const[n,i]=k.useState(()=>!e);return k.useEffect(()=>{if(!e){i(!0);return}let r=null,a=null;const o=()=>i(!0);return typeof window<"u"&&"requestIdleCallback"in window?(a=window.requestIdleCallback(o,{timeout:t||200}),()=>{typeof window.cancelIdleCallback=="function"&&a!=null&&window.cancelIdleCallback(a)}):(r=window.setTimeout(o,t),()=>{r!=null&&window.clearTimeout(r)})},[t,e]),n}function J$({signInUrl:t,signUpUrl:e}){const n=We("landing.handle.special"),i=We("landing.handle.default");We("landing.nav.login"),We("landing.nav.signup");const[r,a]=k.useState(i),o=K$(),c=k.useMemo(()=>typeof window>"u"?!1:hP(window.location.search),[]),u=Y$({prefersReducedMotion:o,screenshotMode:c});Z$(250,u);const d="tokentracker.dashboard.from_landing.v1";k.useEffect(()=>{if(!(typeof window>"u"))try{window.sessionStorage.setItem(d,"1")}catch{}},[d]),k.useMemo(()=>We("landing.handle.placeholder",{handle:n}),[n]),k.useMemo(()=>{const _=We(r===n?"landing.rank.singularity":"landing.rank.unranked");return We("landing.rank.expectation",{rank:_})},[r,n]);const f=We("landing.install.command"),[p,m]=k.useState(!1),v=async()=>{await VU(f)&&(m(!0),window.setTimeout(()=>m(!1),2e3))};return O.jsx(q$,{copy:We,reduceMotion:o,signInUrl:t,signUpUrl:e,installCommand:f,installCopied:p,onCopyInstallCommand:v})}function Q$(t){const e=new URLSearchParams(t).get("next");return typeof e!="string"||e.length===0||!e.startsWith("/")||e.startsWith("//")?"/dashboard":e}const YE={google:"Google",github:"GitHub",microsoft:"Microsoft",discord:"Discord",linkedin:"LinkedIn",facebook:"Facebook",instagram:"Instagram",tiktok:"TikTok",apple:"Apple",x:"X",spotify:"Spotify"};function KE(t){const e=String(t||"").trim();return YE[e]?YE[e]:e.replace(/-/g," ")}function eX(){const t=Cu(),[e,n]=cD(),{enabled:i,loading:r,signedIn:a,refreshUser:o,signInWithPassword:c,signUp:u,signInWithOAuth:d,getPublicAuthConfig:f}=Do(),p=k.useMemo(()=>Q$(e.toString()),[e]),[m,v]=k.useState("signin"),[_,w]=k.useState(""),[y,b]=k.useState(""),[M,A]=k.useState(""),[T,I]=k.useState(!1),[L,U]=k.useState(null),[S,P]=k.useState(null),[V,F]=k.useState(!0),[G,J]=k.useState([]),[H,q]=k.useState([]),[K,Q]=k.useState(8);k.useEffect(()=>{const Se=e.get("insforge_status"),ne=e.get("insforge_type"),ye=e.get("insforge_error");Se==="success"&&ne==="verify_email"?P(We("login.verify_email_success")):Se==="error"&&ne==="verify_email"&&ye&&P(We("shared.error.prefix",{error:ye}))},[e]),k.useEffect(()=>{if(!i){F(!1);return}let Se=!0;return(async()=>{const{data:ne,error:ye}=await f();Se&&(ye||!ne?(J(["google","github"]),q([])):(J(Array.isArray(ne.oAuthProviders)?ne.oAuthProviders:[]),q(Array.isArray(ne.customOAuthProviders)?ne.customOAuthProviders:[]),typeof ne.passwordMinLength=="number"&&ne.passwordMinLength>0&&Q(ne.passwordMinLength)),F(!1))})(),()=>{Se=!1}},[i,f]);const W=k.useMemo(()=>e.get("native")==="1",[e]),X=k.useMemo(()=>e.get("provider")||null,[e]);k.useEffect(()=>{if(!(!i||r)&&a){if(W){window.location.href="/auth/native-callback";return}t(p,{replace:!0})}},[i,r,a,t,p,W]),k.useEffect(()=>{i&&o()},[i,o]);const Z=k.useMemo(()=>typeof window>"u"||W?"":`${window.location.origin}/`,[W]),z=k.useMemo(()=>typeof window>"u"?"":`${window.location.origin}/`,[]),ie=k.useCallback(async Se=>{Se.preventDefault(),U(null),I(!0);try{if(m==="signup"){const{data:ye,error:be}=await u({email:_.trim(),password:y,name:M.trim()||void 0,redirectTo:z});if(be){U(be.message||String(be));return}if(ye?.requireEmailVerification){P(We("login.verify_email_pending")),v("signin");return}t(p,{replace:!0});return}const{error:ne}=await c({email:_.trim(),password:y});if(ne){U(ne.message||String(ne));return}t(p,{replace:!0})}finally{I(!1)}},[m,_,y,M,u,c,t,p,z]),we=k.useCallback(async Se=>{U(null),I(!0);try{const{error:ne}=await d(Se,Z);ne&&U(ne.message||String(ne))}finally{I(!1)}},[d,Z]);k.useEffect(()=>{if(W&&typeof window<"u")try{window.sessionStorage.setItem("tokentracker_native_login","1")}catch{}},[W]),k.useEffect(()=>{if(!i||r||a||V||!W||!X)return;[...G,...H].includes(X)&&we(X)},[i,r,a,V,W,X,G,H,we]);const He=k.useCallback(()=>{n(Se=>{const ne=new URLSearchParams(Se);return ne.delete("insforge_status"),ne.delete("insforge_type"),ne.delete("insforge_error"),ne},{replace:!0}),P(null)},[n]);return i?O.jsxs("div",{className:"min-h-screen bg-oai-gray-950 text-oai-white font-oai antialiased dark flex flex-col",children:[O.jsx("header",{className:"border-b border-oai-gray-900 px-4 sm:px-6 h-16 flex items-center justify-between",children:O.jsx(Oa,{to:"/",className:"text-sm font-medium text-oai-gray-400 hover:text-white no-underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500 rounded",children:We("login.back_home")})}),O.jsx("main",{className:"flex-1 flex items-center justify-center px-4 py-12",children:O.jsxs("div",{className:"w-full max-w-md space-y-8",children:[O.jsxs("div",{className:"text-center",children:[O.jsx("h1",{className:"text-2xl font-semibold text-white tracking-tight",children:We("login.title")}),O.jsx("p",{className:"mt-2 text-sm text-oai-gray-500",children:We("login.subtitle")})]}),S?O.jsxs("div",{className:"rounded-lg border border-oai-gray-800 bg-oai-gray-900/50 px-4 py-3 text-sm text-oai-gray-300 flex justify-between gap-3 items-start",role:"status",children:[O.jsx("span",{children:S}),O.jsx("button",{type:"button",onClick:He,className:"shrink-0 text-oai-gray-500 hover:text-white text-xs",children:We("login.dismiss")})]}):null,L?O.jsx("p",{className:"text-sm text-red-400",role:"alert",children:We("shared.error.prefix",{error:L})}):null,O.jsx("div",{className:"space-y-3",children:V?O.jsx("div",{className:"h-11 rounded-lg bg-oai-gray-900 animate-pulse","aria-hidden":!0}):O.jsxs(O.Fragment,{children:[G.map(Se=>O.jsx("button",{type:"button",disabled:T,onClick:()=>we(Se),className:Tn("w-full h-11 rounded-lg border border-oai-gray-700 bg-oai-gray-900 text-sm font-medium text-white","hover:bg-oai-gray-800 transition-colors disabled:opacity-50"),children:We("login.oauth.continue",{provider:KE(Se)})},Se)),H.map(Se=>O.jsx("button",{type:"button",disabled:T,onClick:()=>we(Se),className:Tn("w-full h-11 rounded-lg border border-oai-gray-700 bg-oai-gray-900 text-sm font-medium text-white","hover:bg-oai-gray-800 transition-colors disabled:opacity-50"),children:We("login.oauth.continue",{provider:KE(Se)})},Se))]})}),O.jsxs("div",{className:"relative",children:[O.jsx("div",{className:"absolute inset-0 flex items-center","aria-hidden":!0,children:O.jsx("span",{className:"w-full border-t border-oai-gray-800"})}),O.jsx("div",{className:"relative flex justify-center text-xs uppercase tracking-wider",children:O.jsx("span",{className:"bg-oai-gray-950 px-3 text-oai-gray-600",children:We("login.divider")})})]}),O.jsxs("div",{className:"flex rounded-lg border border-oai-gray-800 p-0.5 bg-oai-gray-900/50",children:[O.jsx("button",{type:"button",className:Tn("flex-1 py-2 text-sm font-medium rounded-md transition-colors",m==="signin"?"bg-oai-gray-800 text-white":"text-oai-gray-500 hover:text-oai-gray-300"),onClick:()=>{v("signin"),U(null)},children:We("login.tab.sign_in")}),O.jsx("button",{type:"button",className:Tn("flex-1 py-2 text-sm font-medium rounded-md transition-colors",m==="signup"?"bg-oai-gray-800 text-white":"text-oai-gray-500 hover:text-oai-gray-300"),onClick:()=>{v("signup"),U(null)},children:We("login.tab.sign_up")})]}),O.jsxs("form",{onSubmit:ie,className:"space-y-4",children:[m==="signup"?O.jsxs("div",{children:[O.jsx("label",{htmlFor:"login-name",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:We("login.field.name")}),O.jsx("input",{id:"login-name",type:"text",autoComplete:"name",value:M,onChange:Se=>A(Se.target.value),className:"w-full h-11 rounded-lg border border-oai-gray-800 bg-oai-gray-900 px-3 text-sm text-white placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500",placeholder:We("login.field.name_placeholder")})]}):null,O.jsxs("div",{children:[O.jsx("label",{htmlFor:"login-email",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:We("login.field.email")}),O.jsx("input",{id:"login-email",type:"email",autoComplete:"email",required:!0,value:_,onChange:Se=>w(Se.target.value),className:"w-full h-11 rounded-lg border border-oai-gray-800 bg-oai-gray-900 px-3 text-sm text-white placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"})]}),O.jsxs("div",{children:[O.jsx("label",{htmlFor:"login-password",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:We("login.field.password")}),O.jsx("input",{id:"login-password",type:"password",autoComplete:m==="signup"?"new-password":"current-password",required:!0,minLength:m==="signup"?K:void 0,value:y,onChange:Se=>b(Se.target.value),className:"w-full h-11 rounded-lg border border-oai-gray-800 bg-oai-gray-900 px-3 text-sm text-white placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"}),m==="signup"?O.jsx("p",{className:"mt-1 text-xs text-oai-gray-600",children:We("login.password_hint",{min:String(K)})}):null]}),O.jsx("button",{type:"submit",disabled:T||r,className:"w-full h-11 rounded-lg bg-white text-oai-gray-950 text-sm font-semibold hover:bg-oai-gray-100 transition-colors disabled:opacity-50",children:We(m==="signup"?"login.submit.sign_up":"login.submit.sign_in")})]})]})})]}):O.jsxs("div",{className:"min-h-screen bg-oai-gray-950 text-oai-white font-oai antialiased dark flex flex-col",children:[O.jsx("header",{className:"border-b border-oai-gray-900 px-4 sm:px-6 py-4",children:O.jsx(Oa,{to:"/",className:"text-sm font-medium text-oai-gray-400 hover:text-white no-underline",children:We("login.back_home")})}),O.jsx("main",{className:"flex-1 flex items-center justify-center px-4",children:O.jsx("p",{className:"text-oai-gray-400 text-center max-w-md",children:We("login.cloud_only")})})]})}const tX=typeof window<"u"?window.location.search:"",ZE=new URLSearchParams(tX),Mh=ZE.get("insforge_code")||ZE.get("code")||null;function nX(){Nu();const{loading:t,signedIn:e}=Do(),n=Cu(),[i,r]=k.useState("processing"),[a,o]=k.useState(null),c=k.useRef(!1);return k.useEffect(()=>{!Mh||c.current||(c.current=!0,(async()=>{try{const d=await(await fetch("/api/auth-bridge/verifier")).json();o(!!d?.native)}catch{o(!1)}})())},[]),k.useEffect(()=>{if(a!==!0||!Mh)return;r("redirecting");const u=setTimeout(()=>{window.location.href=`tokentracker://auth/callback?insforge_code=${encodeURIComponent(Mh)}`},200);return()=>clearTimeout(u)},[a]),k.useEffect(()=>{if(a!==!1||t)return;if(e){n("/dashboard",{replace:!0});return}const u=setTimeout(()=>{e||r("failed")},5e3);return()=>clearTimeout(u)},[a,t,e,n]),k.useEffect(()=>{if(!Mh&&a===null){const u=setTimeout(()=>r("failed"),3e3);return()=>clearTimeout(u)}},[a]),i==="processing"&&a!==!0&&(a===null||a===!1&&t)?O.jsx("div",{className:"min-h-screen bg-oai-gray-950"}):O.jsx("div",{className:"min-h-screen bg-oai-gray-950 text-white font-oai antialiased dark flex items-center justify-center",children:O.jsxs("div",{className:"text-center space-y-4 max-w-sm px-4",children:[i==="processing"&&O.jsxs(O.Fragment,{children:[O.jsx("div",{className:"w-8 h-8 border-2 border-oai-gray-600 border-t-white rounded-full animate-spin mx-auto"}),O.jsx("p",{className:"text-oai-gray-400 text-sm",children:We("auth.callback.processing")})]}),i==="redirecting"&&O.jsxs(O.Fragment,{children:[O.jsx("div",{className:"w-12 h-12 mx-auto rounded-full bg-green-500/15 flex items-center justify-center",children:O.jsx("svg",{className:"w-6 h-6 text-green-400",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:O.jsx("path",{d:"M20 6 9 17l-5-5"})})}),O.jsx("p",{className:"text-white text-sm font-medium",children:We("auth.callback.success")}),O.jsx("p",{className:"text-oai-gray-500 text-xs",children:We("auth.callback.redirecting")})]}),i==="failed"&&O.jsxs("div",{className:"space-y-3",children:[O.jsx("p",{className:"text-oai-gray-300 text-sm",children:We("auth.callback.failed")}),O.jsx("button",{type:"button",onClick:()=>window.close(),className:"px-4 py-2 rounded-lg bg-oai-gray-800 text-sm text-white hover:bg-oai-gray-700 transition-colors",children:We("auth.callback.close")})]})]})})}function iX(){const t=k.useContext(rA);if(t===null)throw new Error("useTheme must be used within a ThemeProvider");return t}const G0="tt.sidebarCollapsed";function rX(){return[{id:"general",label:We("nav.group.general"),items:[{id:"usage",to:"/dashboard",icon:EV,label:We("nav.usage")},{id:"limits",to:"/limits",icon:MV,label:We("nav.limits")},{id:"leaderboard",to:"/leaderboard",icon:HV,label:We("nav.leaderboard")}]},{id:"tools",label:We("nav.group.tools"),items:[{id:"widgets",to:"/widgets",icon:RV,label:We("nav.widgets")},{id:"ip-check",to:"/ip-check",icon:CV,label:We("nav.ip_check")}]},{id:"account",label:We("nav.group.account"),items:[{id:"settings",to:"/settings",icon:BV,label:We("nav.settings")}]}]}function aX(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(G0)==="1"}catch{return!1}}function sX(){const[t,e]=k.useState(aX),n=k.useCallback(()=>{e(i=>{const r=!i;try{typeof window<"u"&&window.localStorage.setItem(G0,r?"1":"0")}catch{}return r})},[]);return k.useEffect(()=>{if(typeof window>"u")return;const i=r=>{r.key===G0&&e(r.newValue==="1")};return window.addEventListener("storage",i),()=>window.removeEventListener("storage",i)},[]),{collapsed:t,toggle:n}}function oX(t,e){const n=t.replace(/\/+$/,"")||"/";return e==="/dashboard"?n==="/dashboard"||n==="/":e==="/leaderboard"?n==="/leaderboard"||n.startsWith("/leaderboard/"):n===e}function lX({label:t,collapsed:e,first:n}){return e?n?null:O.jsx("div",{className:"mx-2 my-2 h-px bg-oai-gray-200/70 dark:bg-oai-gray-800/70","aria-hidden":!0}):O.jsx("div",{className:Tn("px-3 pb-1 text-[10px] uppercase tracking-wider text-oai-gray-500 dark:text-oai-gray-500",n?"pt-2":"pt-4"),children:t})}function cX({item:t,collapsed:e,active:n,onClick:i}){const r=t.icon;return O.jsxs(Oa,{to:t.to,onClick:i,title:e?t.label:void 0,"aria-current":n?"page":void 0,className:Tn("flex items-center gap-2 rounded-md px-2 py-1.5 text-[13px] no-underline transition-colors",e&&"justify-center px-0 py-2",n?"bg-oai-gray-200/70 text-oai-black font-medium dark:bg-oai-gray-800 dark:text-white":"text-oai-gray-600 dark:text-oai-gray-400 hover:bg-oai-gray-200/50 hover:text-oai-black dark:hover:bg-oai-gray-800/60 dark:hover:text-white"),children:[O.jsx("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center",children:O.jsx(r,{className:"h-[15px] w-[15px]","aria-hidden":!0})}),!e&&O.jsx("span",{className:"truncate",children:t.label})]})}function uX({as:t="button",title:e,onClick:n,href:i,children:r,className:a,...o}){const c=Tn("flex h-10 w-10 items-center justify-center rounded-lg text-oai-gray-600 dark:text-oai-gray-400 hover:bg-oai-gray-200/60 dark:hover:bg-oai-gray-800 hover:text-oai-black dark:hover:text-white transition-colors no-underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",a);return t==="a"?O.jsx("a",{href:i,target:"_blank",rel:"noopener noreferrer",title:e,"aria-label":e,className:c,...o,children:r}):O.jsx("button",{type:"button",title:e,"aria-label":e,onClick:n,className:c,...o,children:r})}function dX({repo:t="mm7894215/TokenTracker",glassChrome:e=!1}){const[n,i]=k.useState(null);return k.useEffect(()=>{if(typeof window>"u")return;const r=typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;mP({prefersReducedMotion:r,screenshotCapture:!1})&&fetch(`https://api.github.com/repos/${t}`).then(a=>a.json()).then(a=>{a&&typeof a.stargazers_count=="number"&&i(a.stargazers_count)}).catch(()=>{})},[t]),O.jsxs("a",{href:`https://github.com/${t}`,target:"_blank",rel:"noopener noreferrer","aria-label":n!==null?`Star on GitHub (${n})`:"Star on GitHub",className:Tn("inline-flex h-7 items-center gap-1.5 rounded-full px-2.5 text-xs font-medium transition-colors no-underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",e?"border border-gray-500/20 dark:border-gray-500/30 bg-gray-500/[0.04] dark:bg-gray-500/[0.06] backdrop-blur-[2px] text-oai-gray-700 dark:text-oai-gray-300 hover:bg-gray-500/10 dark:hover:bg-gray-500/12 hover:border-gray-500/30 dark:hover:border-gray-500/40 hover:text-oai-black dark:hover:text-white":"border border-oai-gray-200 dark:border-oai-gray-700 text-oai-gray-600 dark:text-oai-gray-400 hover:bg-oai-gray-200/60 dark:hover:bg-oai-gray-800 hover:text-oai-black dark:hover:text-white hover:border-oai-gray-300 dark:hover:border-oai-gray-600"),children:[O.jsx("svg",{height:"12",viewBox:"0 0 16 16",width:"12",className:"shrink-0 fill-current",children:O.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"})}),O.jsx("span",{children:"Star"}),n!==null&&O.jsx("span",{className:"text-[10px] text-oai-gray-500 dark:text-oai-gray-500 tabular-nums",children:n})]})}const hX=[{value:"light",label:"Light",Icon:YC},{value:"dark",label:"Dark",Icon:qC},{value:"system",label:"System",Icon:UV}];function fX({theme:t,resolvedTheme:e,onSetTheme:n,glassChrome:i=!1}){const[r,a]=k.useState(!1),o=k.useRef(null),c=e==="dark"?qC:YC;return k.useEffect(()=>{if(!r)return;const u=f=>{o.current&&!o.current.contains(f.target)&&a(!1)},d=f=>{f.key==="Escape"&&a(!1)};return document.addEventListener("mousedown",u),document.addEventListener("keydown",d),()=>{document.removeEventListener("mousedown",u),document.removeEventListener("keydown",d)}},[r]),O.jsxs("div",{ref:o,className:"relative",children:[O.jsx("button",{type:"button","aria-label":"Theme","aria-expanded":r,"aria-haspopup":"menu",title:"Theme",onClick:()=>a(u=>!u),className:Tn("inline-flex h-7 w-7 items-center justify-center rounded-full transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",i?"border border-gray-500/20 dark:border-gray-500/30 bg-gray-500/[0.04] dark:bg-gray-500/[0.06] backdrop-blur-[2px] text-oai-gray-700 dark:text-oai-gray-300 hover:bg-gray-500/10 dark:hover:bg-gray-500/12 hover:border-gray-500/30 dark:hover:border-gray-500/40 hover:text-oai-black dark:hover:text-white":"border border-oai-gray-200 dark:border-oai-gray-700 text-oai-gray-600 dark:text-oai-gray-400 hover:bg-oai-gray-200/60 dark:hover:bg-oai-gray-800 hover:text-oai-black dark:hover:text-white hover:border-oai-gray-300 dark:hover:border-oai-gray-600"),children:O.jsx(c,{className:"h-3.5 w-3.5","aria-hidden":!0})}),r&&O.jsx("div",{role:"menu",className:"absolute bottom-full left-0 mb-2 z-50 min-w-[140px] py-1 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-900 shadow-lg",children:hX.map(({value:u,label:d,Icon:f})=>{const p=t===u;return O.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{n(u),a(!1)},className:Tn("flex w-full items-center gap-2.5 px-3 py-1.5 text-[13px] transition-colors",p?"text-oai-black dark:text-white bg-oai-gray-100 dark:bg-oai-gray-800":"text-oai-gray-600 dark:text-oai-gray-400 hover:bg-oai-gray-50 dark:hover:bg-oai-gray-800/60 hover:text-oai-black dark:hover:text-white"),children:[O.jsx(f,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),O.jsx("span",{children:d})]},u)})})]})}function nR({collapsed:t,onToggleCollapsed:e,onItemClick:n,showCloseButton:i=!1,onClose:r,glassChrome:a=!1}){const c=vr()?.pathname||"/",{theme:u,resolvedTheme:d,setTheme:f}=iX(),{resolvedLocale:p}=Nu(),m=k.useMemo(()=>rX(),[p]);return O.jsxs(O.Fragment,{children:[O.jsx("div",{className:Tn("px-2 pt-2 pb-2",t&&"flex justify-center"),children:i?O.jsxs("div",{className:"flex items-center gap-2",children:[O.jsx("div",{className:"flex-1 min-w-0",children:O.jsx(qv,{variant:"sidebar",collapsed:t,onAfterAction:n})}),O.jsx("button",{type:"button",onClick:r,"aria-label":We("nav.close_menu"),title:We("nav.close_menu"),className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md text-oai-gray-500 dark:text-oai-gray-500 hover:bg-oai-gray-200/60 dark:hover:bg-oai-gray-800 hover:text-oai-gray-900 dark:hover:text-oai-gray-200 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500",children:O.jsx(KC,{className:"h-4 w-4",strokeWidth:1.75,"aria-hidden":!0})})]}):O.jsx(qv,{variant:"sidebar",collapsed:t,onAfterAction:n})}),O.jsx("nav",{"aria-label":We("nav.nav_label"),className:"flex-1 px-2 pb-2 flex flex-col overflow-y-auto",children:m.map((v,_)=>O.jsxs("div",{className:"flex flex-col",children:[O.jsx(lX,{label:v.label,collapsed:t,first:_===0}),O.jsx("div",{className:"flex flex-col gap-0.5",children:v.items.map(w=>O.jsx(cX,{item:w,collapsed:t,active:oX(c,w.to),onClick:n},w.id))})]},v.id))}),O.jsxs("div",{className:Tn("flex items-center px-2 py-3",t?"flex-col justify-center gap-2":"justify-between gap-2"),children:[O.jsx(fX,{theme:u,resolvedTheme:d,onSetTheme:f,glassChrome:a}),O.jsx("div",{className:"flex items-center gap-1.5",children:!t&&O.jsx(dX,{glassChrome:a})})]})]})}function pX({collapsed:t,onToggleCollapsed:e}){const n=k.useMemo(()=>typeof window>"u"?!1:Jr()||zM(),[]);return O.jsx("aside",{"aria-label":We("nav.aside_label"),className:Tn("hidden lg:flex flex-col shrink-0 h-full min-h-0 transition-[width] duration-200",t?"w-[72px]":"w-[220px]"),children:O.jsx(nR,{collapsed:t,onToggleCollapsed:e,glassChrome:n})})}function mX({open:t,onClose:e}){return k.useEffect(()=>{if(!t)return;const n=i=>{i.key==="Escape"&&e()};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[t,e]),k.useEffect(()=>{if(!t)return;const n=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=n}},[t]),t?O.jsxs("div",{className:"lg:hidden fixed inset-0 z-[80] flex",children:[O.jsx("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-sm",onClick:e,"aria-hidden":!0}),O.jsx("aside",{"aria-label":We("nav.aside_label"),className:"relative w-[260px] max-w-[80vw] flex flex-col bg-oai-white dark:bg-oai-gray-900 border-r border-oai-gray-200 dark:border-oai-gray-800 shadow-2xl",children:O.jsx(nR,{collapsed:!1,showCloseButton:!0,onClose:e,onItemClick:e})})]}):null}function gX({onOpenDrawer:t}){return O.jsxs("div",{className:"lg:hidden flex items-center justify-between gap-2 px-3 h-14 border-b border-oai-gray-200 dark:border-oai-gray-800",children:[O.jsx(uX,{title:We("nav.menu"),onClick:t,children:O.jsx(NV,{className:"h-5 w-5","aria-hidden":!0})}),O.jsxs(Oa,{to:"/landing",className:"flex items-center gap-2 no-underline hover:opacity-80 transition-opacity","aria-label":"Token Tracker",children:[O.jsx("img",{src:"/app-icon.png",alt:"",width:24,height:24,className:"rounded-md"}),O.jsx("span",{className:"text-sm font-semibold text-oai-black dark:text-oai-white",children:"Token Tracker"})]}),O.jsx("div",{className:"w-10 shrink-0","aria-hidden":!0})]})}function vX({children:t}){const{collapsed:e,toggle:n}=sX(),[i,r]=k.useState(!1),a=k.useCallback(()=>r(!0),[]),o=k.useCallback(()=>r(!1),[]),c=k.useMemo(()=>typeof window>"u"?!1:Jr()||zM(),[]);return O.jsxs("div",{className:Tn("fixed inset-0 flex flex-col text-oai-black dark:text-oai-white font-sans overflow-hidden",c?"bg-transparent":"bg-oai-gray-100 dark:bg-oai-gray-950"),children:[c&&O.jsx("div",{className:"h-7 shrink-0",style:{WebkitAppRegion:"drag"},"aria-hidden":!0}),O.jsxs("div",{className:"flex-1 min-h-0 flex",children:[O.jsx(pX,{collapsed:e,onToggleCollapsed:n}),O.jsx(mX,{open:i,onClose:o}),O.jsx("div",{className:"flex-1 min-w-0 min-h-0 p-2 lg:pl-0 lg:pr-3 lg:pb-3 flex flex-col",children:O.jsxs("div",{className:Tn("flex-1 min-h-0 flex flex-col bg-oai-white dark:bg-oai-gray-900 border border-oai-gray-200 dark:border-oai-gray-800 overflow-hidden",c?"tt-native-main-card":"rounded-2xl",!c&&"shadow-sm"),children:[O.jsx(gX,{onOpenDrawer:a}),O.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto",children:t})]})})]})]})}const yX=pa.lazy(()=>No(()=>import("./DashboardPage-B_Yvna3-.js"),__vite__mapDeps([0,1,2,3,4])).then(t=>({default:t.DashboardPage}))),_X=pa.lazy(()=>No(()=>import("./LeaderboardPage-BQSqJVlP.js"),__vite__mapDeps([5,4,6])).then(t=>({default:t.LeaderboardPage}))),xX=pa.lazy(()=>No(()=>import("./LeaderboardProfilePage-DP8bewz7.js"),__vite__mapDeps([7,6])).then(t=>({default:t.LeaderboardProfilePage}))),bX=pa.lazy(()=>No(()=>import("./LimitsPage-BXDoE-jU.js"),__vite__mapDeps([8,1,9,2,3])).then(t=>({default:t.LimitsPage}))),SX=pa.lazy(()=>No(()=>import("./SettingsPage-XFSmA7VB.js"),__vite__mapDeps([10,9,2,11])).then(t=>({default:t.SettingsPage}))),wX=pa.lazy(()=>No(()=>import("./WidgetsPage-D5guzG01.js"),__vite__mapDeps([12,3,11])).then(t=>({default:t.WidgetsPage}))),EX=pa.lazy(()=>No(()=>import("./IpCheckPage-FulDeMPC.js"),[]));function TX(){const{resolvedLocale:t}=Nu(),e=vr(),n=Do();YH();const i=xr(),r=k.useMemo(()=>typeof window>"u"?!1:hP(window.location.search),[]),a=e?.pathname||"/",o=new URL(window.location.href),c=o.pathname.replace(/\/+$/,"")||"/",d=c.match(/^\/share\/([^/?#]+)$/i)?.[1]||null,f=o.searchParams.get("token")||null,p=d||f,m=c==="/share"||c==="/share.html"||c.startsWith("/share/"),v=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),_=a.replace(/\/+$/,"")||"/",w=_.match(/^\/leaderboard\/u\/([^/]+)$/i),y=w?w[1]:null,b=_==="/leaderboard"||!!y,M=!!(n.enabled&&n.signedIn),A=v||M,T=!1,I=VH(),L=k.useMemo(()=>!n.enabled||!M?null:{getAccessToken:()=>n.getAccessToken(),name:n.displayName||"",userId:n.user?.id||null},[M,n]);let U=v||i||r?"dashboard":"landing";_==="/landing"&&(U="landing"),_==="/dashboard"&&(U="dashboard"),b&&(U="dashboard");const S=_==="/limits",P=_==="/settings",V=_==="/widgets",F=_==="/ip-check";(S||P||V||F)&&(U="dashboard");const G=y?xX:_==="/leaderboard"?_X:S?bX:P?SX:V?wX:F?EX:yX,H=!m&&(_==="/dashboard"||_==="/"||_==="/leaderboard"||S||P||V||F),q=O.jsx("div",{className:"min-h-screen bg-oai-white dark:bg-[#050505]"});let K=null;if(_==="/auth/callback"||_==="/auth/native-callback")K=O.jsx(nX,{});else if(_==="/login")K=O.jsx(eX,{});else if(U==="landing")K=O.jsx(J$,{signInUrl:"/login",signUpUrl:"/login"});else{const Q=O.jsx(k.Suspense,{fallback:q,children:O.jsx(G,{baseUrl:I,auth:L,signedIn:A,sessionSoftExpired:T,signOut:()=>n.enabled?n.signOut():Promise.resolve(),publicMode:m,publicToken:p,userId:y,signInUrl:"/login",signUpUrl:"/login"},t)});K=H?O.jsx(vX,{children:Q}):Q}return O.jsx(fF,{children:O.jsx(gF,{children:O.jsxs(vF,{children:[K,O.jsx(BH,{}),O.jsx(xO,{}),O.jsx(kO,{})]})})})}const MX=nD([{path:"*",element:O.jsx(TX,{})}]);jk.createRoot(document.getElementById("root")).render(O.jsx(pa.StrictMode,{children:O.jsx(sO,{children:O.jsx(DU,{children:O.jsx(gD,{router:MX})})})}));export{FO as $,CM as A,We as B,iX as C,O as D,My as E,GO as F,tA as G,j0 as H,rF as I,_f as J,aw as K,nw as L,e_ as M,pq as N,Ty as O,Tl as P,Ey as Q,QE as R,mD as S,$M as T,lF as U,sw as V,Zl as W,KM as X,iw as Y,XM as Z,LO as _,pi as a,lq as a$,OO as a0,DO as a1,_v as a2,YM as a3,dq as a4,UO as a5,hq as a6,qM as a7,fq as a8,Oa as a9,Tn as aA,vr as aB,Cu as aC,gq as aD,YI as aE,DX as aF,vq as aG,NX as aH,KX as aI,ZX as aJ,JH as aK,qv as aL,BV as aM,rq as aN,Ay as aO,qI as aP,YS as aQ,YX as aR,YC as aS,qC as aT,UV as aU,Hl as aV,vv as aW,by as aX,zM as aY,oq as aZ,uq as a_,gV as aa,Il as ab,JO as ac,pa as ad,KC as ae,jX as af,GX as ag,sA as ah,Do as ai,lz as aj,No as ak,sq as al,qX as am,Nu as an,hP as ao,As as ap,JX as aq,UX as ar,OX as as,WX as at,oU as au,FX as av,BX as aw,QX as ax,HX as ay,VU as az,oA as b,QS as b0,cq as b1,Jr as b2,Is as c,ww as d,br as e,An as f,PM as g,xr as h,fB as i,IX as j,tU as k,aq as l,jl as m,uU as n,dU as o,tq as p,VX as q,k as r,XX as s,nq as t,Cy as u,iq as v,zX as w,kn as x,$X as y,eq as z};