tokentracker-cli 0.19.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/README.zh-CN.md +2 -2
- package/dashboard/dist/assets/{Card-ANC9ZmIT.js → Card-jA08WeEw.js} +1 -1
- package/dashboard/dist/assets/{DashboardPage-DpZaCksZ.js → DashboardPage-chDVOYmG.js} +1 -1
- package/dashboard/dist/assets/{FadeIn-WXGyOn0H.js → FadeIn-DqSYXuUL.js} +1 -1
- package/dashboard/dist/assets/{HeaderGithubStar-DUkE0Dwd.js → HeaderGithubStar-C11rWv0B.js} +1 -1
- package/dashboard/dist/assets/{IpCheckPage-BPF8eGpg.js → IpCheckPage-CkEZ9yLK.js} +1 -1
- package/dashboard/dist/assets/{LandingPage-0uTpqpAU.js → LandingPage-BgckTHRQ.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardPage-DzxRJEzb.js → LeaderboardPage-BCNW7UWp.js} +1 -1
- package/dashboard/dist/assets/{LeaderboardProfilePage-C3_oUxhG.js → LeaderboardProfilePage-BLATxMt-.js} +1 -1
- package/dashboard/dist/assets/{LimitsPage-BVuvoeY9.js → LimitsPage-arF--WgR.js} +1 -1
- package/dashboard/dist/assets/{LoginPage-CfkNRmT6.js → LoginPage-DpoFP0va.js} +1 -1
- package/dashboard/dist/assets/{PopoverPopup-CfxiYbJm.js → PopoverPopup-kdgc2H6C.js} +1 -1
- package/dashboard/dist/assets/{ProviderIcon-DiPzAed2.js → ProviderIcon-DV5r9qqP.js} +1 -1
- package/dashboard/dist/assets/{SettingsPage-Devu7beE.js → SettingsPage-Bb22ORmU.js} +1 -1
- package/dashboard/dist/assets/{SkillsPage-CSe8fW4V.js → SkillsPage-xhtBqVKC.js} +1 -1
- package/dashboard/dist/assets/{WidgetsPage-BrLp5YLk.js → WidgetsPage-CUoSVDET.js} +1 -1
- package/dashboard/dist/assets/{chevron-down-nFF6Yj_r.js → chevron-down-DYb2EChD.js} +1 -1
- package/dashboard/dist/assets/{download-DhSZ--68.js → download-C-_8o6dh.js} +1 -1
- package/dashboard/dist/assets/{leaderboard-columns-CvFdXrw5.js → leaderboard-columns-BgzBlYo7.js} +1 -1
- package/dashboard/dist/assets/{main-DtrPNYb7.js → main-11hApDak.js} +3 -3
- package/dashboard/dist/assets/{use-limits-display-prefs-Yy8t7tbB.js → use-limits-display-prefs-BeGKWUuk.js} +1 -1
- package/dashboard/dist/assets/{use-native-settings-uemf9RSH.js → use-native-settings-nTTHktn0.js} +1 -1
- package/dashboard/dist/assets/{use-reduced-motion-DH8DxE18.js → use-reduced-motion-DU8Gm6j1.js} +1 -1
- package/dashboard/dist/assets/{use-usage-limits-C3vUT6PH.js → use-usage-limits-DTPmEB8Y.js} +1 -1
- package/dashboard/dist/index.html +1 -1
- package/dashboard/dist/share.html +1 -1
- package/package.json +1 -1
- package/src/commands/init.js +9 -5
- package/src/commands/serve.js +0 -12
- package/src/commands/sync.js +370 -7
- package/src/lib/grok-hook.js +86 -7
- package/src/lib/pricing/curated-overrides.json +1 -1
- package/src/lib/pricing/seed-snapshot.json +1 -1
- package/src/lib/rollout.js +403 -140
- package/src/lib/subscriptions.js +92 -40
- package/src/lib/usage-limits.js +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardPage-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardPage-chDVOYmG.js","assets/use-usage-limits-DTPmEB8Y.js","assets/PopoverPopup-kdgc2H6C.js","assets/Card-jA08WeEw.js","assets/use-reduced-motion-DU8Gm6j1.js","assets/ProviderIcon-DV5r9qqP.js","assets/FadeIn-DqSYXuUL.js","assets/LandingPage-BgckTHRQ.js","assets/HeaderGithubStar-C11rWv0B.js","assets/LeaderboardPage-BCNW7UWp.js","assets/leaderboard-columns-BgzBlYo7.js","assets/chevron-down-DYb2EChD.js","assets/LeaderboardProfilePage-BLATxMt-.js","assets/LimitsPage-arF--WgR.js","assets/use-limits-display-prefs-BeGKWUuk.js","assets/SettingsPage-Bb22ORmU.js","assets/use-native-settings-nTTHktn0.js","assets/download-C-_8o6dh.js","assets/SkillsPage-xhtBqVKC.js","assets/WidgetsPage-CUoSVDET.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
function iP(e,t){for(var n=0;n<t.length;n++){const a=t[n];if(typeof a!="string"&&!Array.isArray(a)){for(const s in a)if(s!=="default"&&!(s in e)){const o=Object.getOwnPropertyDescriptor(a,s);o&&Object.defineProperty(e,s,o.get?o:{enumerable:!0,get:()=>a[s]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))a(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const u of o.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&a(u)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function a(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();function _b(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function sP(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var t=e.default;if(typeof t=="function"){var n=function a(){var s=!1;try{s=this instanceof a}catch{}return s?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(a){var s=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(n,a,s.get?s:{enumerable:!0,get:function(){return e[a]}})}),n}var lh={exports:{}},lo={},uh={exports:{}},Ze={};var Py;function oP(){if(Py)return Ze;Py=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),o=Symbol.for("react.provider"),u=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),y=Symbol.iterator;function b(N){return N===null||typeof N!="object"?null:(N=y&&N[y]||N["@@iterator"],typeof N=="function"?N:null)}var w={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},x=Object.assign,T={};function P(N,q,xe){this.props=N,this.context=q,this.refs=T,this.updater=xe||w}P.prototype.isReactComponent={},P.prototype.setState=function(N,q){if(typeof N!="object"&&typeof N!="function"&&N!=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,N,q,"setState")},P.prototype.forceUpdate=function(N){this.updater.enqueueForceUpdate(this,N,"forceUpdate")};function L(){}L.prototype=P.prototype;function D(N,q,xe){this.props=N,this.context=q,this.refs=T,this.updater=xe||w}var M=D.prototype=new L;M.constructor=D,x(M,P.prototype),M.isPureReactComponent=!0;var j=Array.isArray,K=Object.prototype.hasOwnProperty,G={current:null},W={key:!0,ref:!0,__self:!0,__source:!0};function S(N,q,xe){var Ae,Se={},Ce=null,qe=null;if(q!=null)for(Ae in q.ref!==void 0&&(qe=q.ref),q.key!==void 0&&(Ce=""+q.key),q)K.call(q,Ae)&&!W.hasOwnProperty(Ae)&&(Se[Ae]=q[Ae]);var Xe=arguments.length-2;if(Xe===1)Se.children=xe;else if(1<Xe){for(var Ue=Array(Xe),jt=0;jt<Xe;jt++)Ue[jt]=arguments[jt+2];Se.children=Ue}if(N&&N.defaultProps)for(Ae in Xe=N.defaultProps,Xe)Se[Ae]===void 0&&(Se[Ae]=Xe[Ae]);return{$$typeof:e,type:N,key:Ce,ref:qe,props:Se,_owner:G.current}}function Z(N,q){return{$$typeof:e,type:N.type,key:q,ref:N.ref,props:N.props,_owner:N._owner}}function X(N){return typeof N=="object"&&N!==null&&N.$$typeof===e}function _e(N){var q={"=":"=0",":":"=2"};return"$"+N.replace(/[=:]/g,function(xe){return q[xe]})}var oe=/\/+/g;function Re(N,q){return typeof N=="object"&&N!==null&&N.key!=null?_e(""+N.key):q.toString(36)}function fe(N,q,xe,Ae,Se){var Ce=typeof N;(Ce==="undefined"||Ce==="boolean")&&(N=null);var qe=!1;if(N===null)qe=!0;else switch(Ce){case"string":case"number":qe=!0;break;case"object":switch(N.$$typeof){case e:case t:qe=!0}}if(qe)return qe=N,Se=Se(qe),N=Ae===""?"."+Re(qe,0):Ae,j(Se)?(xe="",N!=null&&(xe=N.replace(oe,"$&/")+"/"),fe(Se,q,xe,"",function(jt){return jt})):Se!=null&&(X(Se)&&(Se=Z(Se,xe+(!Se.key||qe&&qe.key===Se.key?"":(""+Se.key).replace(oe,"$&/")+"/")+N)),q.push(Se)),1;if(qe=0,Ae=Ae===""?".":Ae+":",j(N))for(var Xe=0;Xe<N.length;Xe++){Ce=N[Xe];var Ue=Ae+Re(Ce,Xe);qe+=fe(Ce,q,xe,Ue,Se)}else if(Ue=b(N),typeof Ue=="function")for(N=Ue.call(N),Xe=0;!(Ce=N.next()).done;)Ce=Ce.value,Ue=Ae+Re(Ce,Xe++),qe+=fe(Ce,q,xe,Ue,Se);else if(Ce==="object")throw q=String(N),Error("Objects are not valid as a React child (found: "+(q==="[object Object]"?"object with keys {"+Object.keys(N).join(", ")+"}":q)+"). If you meant to render a collection of children, use an array instead.");return qe}function ce(N,q,xe){if(N==null)return N;var Ae=[],Se=0;return fe(N,Ae,"","",function(Ce){return q.call(xe,Ce,Se++)}),Ae}function ue(N){if(N._status===-1){var q=N._result;q=q(),q.then(function(xe){(N._status===0||N._status===-1)&&(N._status=1,N._result=xe)},function(xe){(N._status===0||N._status===-1)&&(N._status=2,N._result=xe)}),N._status===-1&&(N._status=0,N._result=q)}if(N._status===1)return N._result.default;throw N._result}var Me={current:null},H={transition:null},Y={ReactCurrentDispatcher:Me,ReactCurrentBatchConfig:H,ReactCurrentOwner:G};function $(){throw Error("act(...) is not supported in production builds of React.")}return Ze.Children={map:ce,forEach:function(N,q,xe){ce(N,function(){q.apply(this,arguments)},xe)},count:function(N){var q=0;return ce(N,function(){q++}),q},toArray:function(N){return ce(N,function(q){return q})||[]},only:function(N){if(!X(N))throw Error("React.Children.only expected to receive a single React element child.");return N}},Ze.Component=P,Ze.Fragment=n,Ze.Profiler=s,Ze.PureComponent=D,Ze.StrictMode=a,Ze.Suspense=h,Ze.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Y,Ze.act=$,Ze.cloneElement=function(N,q,xe){if(N==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+N+".");var Ae=x({},N.props),Se=N.key,Ce=N.ref,qe=N._owner;if(q!=null){if(q.ref!==void 0&&(Ce=q.ref,qe=G.current),q.key!==void 0&&(Se=""+q.key),N.type&&N.type.defaultProps)var Xe=N.type.defaultProps;for(Ue in q)K.call(q,Ue)&&!W.hasOwnProperty(Ue)&&(Ae[Ue]=q[Ue]===void 0&&Xe!==void 0?Xe[Ue]:q[Ue])}var Ue=arguments.length-2;if(Ue===1)Ae.children=xe;else if(1<Ue){Xe=Array(Ue);for(var jt=0;jt<Ue;jt++)Xe[jt]=arguments[jt+2];Ae.children=Xe}return{$$typeof:e,type:N.type,key:Se,ref:Ce,props:Ae,_owner:qe}},Ze.createContext=function(N){return N={$$typeof:u,_currentValue:N,_currentValue2:N,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},N.Provider={$$typeof:o,_context:N},N.Consumer=N},Ze.createElement=S,Ze.createFactory=function(N){var q=S.bind(null,N);return q.type=N,q},Ze.createRef=function(){return{current:null}},Ze.forwardRef=function(N){return{$$typeof:c,render:N}},Ze.isValidElement=X,Ze.lazy=function(N){return{$$typeof:m,_payload:{_status:-1,_result:N},_init:ue}},Ze.memo=function(N,q){return{$$typeof:f,type:N,compare:q===void 0?null:q}},Ze.startTransition=function(N){var q=H.transition;H.transition={};try{N()}finally{H.transition=q}},Ze.unstable_act=$,Ze.useCallback=function(N,q){return Me.current.useCallback(N,q)},Ze.useContext=function(N){return Me.current.useContext(N)},Ze.useDebugValue=function(){},Ze.useDeferredValue=function(N){return Me.current.useDeferredValue(N)},Ze.useEffect=function(N,q){return Me.current.useEffect(N,q)},Ze.useId=function(){return Me.current.useId()},Ze.useImperativeHandle=function(N,q,xe){return Me.current.useImperativeHandle(N,q,xe)},Ze.useInsertionEffect=function(N,q){return Me.current.useInsertionEffect(N,q)},Ze.useLayoutEffect=function(N,q){return Me.current.useLayoutEffect(N,q)},Ze.useMemo=function(N,q){return Me.current.useMemo(N,q)},Ze.useReducer=function(N,q,xe){return Me.current.useReducer(N,q,xe)},Ze.useRef=function(N){return Me.current.useRef(N)},Ze.useState=function(N){return Me.current.useState(N)},Ze.useSyncExternalStore=function(N,q,xe){return Me.current.useSyncExternalStore(N,q,xe)},Ze.useTransition=function(){return Me.current.useTransition()},Ze.version="18.3.1",Ze}var Ty;function $f(){return Ty||(Ty=1,uh.exports=oP()),uh.exports}var Cy;function lP(){if(Cy)return lo;Cy=1;var e=$f(),t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,s=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function u(c,h,f){var m,y={},b=null,w=null;f!==void 0&&(b=""+f),h.key!==void 0&&(b=""+h.key),h.ref!==void 0&&(w=h.ref);for(m in h)a.call(h,m)&&!o.hasOwnProperty(m)&&(y[m]=h[m]);if(c&&c.defaultProps)for(m in h=c.defaultProps,h)y[m]===void 0&&(y[m]=h[m]);return{$$typeof:t,type:c,key:b,ref:w,props:y,_owner:s.current}}return lo.Fragment=n,lo.jsx=u,lo.jsxs=u,lo}var Ey;function uP(){return Ey||(Ey=1,lh.exports=lP()),lh.exports}var I=uP(),k=$f();const Hf=_b(k),cP=iP({__proto__:null,default:Hf},[k]);var au={},ch={exports:{}},yn={},dh={exports:{}},hh={};var Ry;function dP(){return Ry||(Ry=1,(function(e){function t(H,Y){var $=H.length;H.push(Y);e:for(;0<$;){var N=$-1>>>1,q=H[N];if(0<s(q,Y))H[N]=Y,H[$]=q,$=N;else break e}}function n(H){return H.length===0?null:H[0]}function a(H){if(H.length===0)return null;var Y=H[0],$=H.pop();if($!==Y){H[0]=$;e:for(var N=0,q=H.length,xe=q>>>1;N<xe;){var Ae=2*(N+1)-1,Se=H[Ae],Ce=Ae+1,qe=H[Ce];if(0>s(Se,$))Ce<q&&0>s(qe,Se)?(H[N]=qe,H[Ce]=$,N=Ce):(H[N]=Se,H[Ae]=$,N=Ae);else if(Ce<q&&0>s(qe,$))H[N]=qe,H[Ce]=$,N=Ce;else break e}}return Y}function s(H,Y){var $=H.sortIndex-Y.sortIndex;return $!==0?$:H.id-Y.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var u=Date,c=u.now();e.unstable_now=function(){return u.now()-c}}var h=[],f=[],m=1,y=null,b=3,w=!1,x=!1,T=!1,P=typeof setTimeout=="function"?setTimeout:null,L=typeof clearTimeout=="function"?clearTimeout:null,D=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function M(H){for(var Y=n(f);Y!==null;){if(Y.callback===null)a(f);else if(Y.startTime<=H)a(f),Y.sortIndex=Y.expirationTime,t(h,Y);else break;Y=n(f)}}function j(H){if(T=!1,M(H),!x)if(n(h)!==null)x=!0,ue(K);else{var Y=n(f);Y!==null&&Me(j,Y.startTime-H)}}function K(H,Y){x=!1,T&&(T=!1,L(S),S=-1),w=!0;var $=b;try{for(M(Y),y=n(h);y!==null&&(!(y.expirationTime>Y)||H&&!_e());){var N=y.callback;if(typeof N=="function"){y.callback=null,b=y.priorityLevel;var q=N(y.expirationTime<=Y);Y=e.unstable_now(),typeof q=="function"?y.callback=q:y===n(h)&&a(h),M(Y)}else a(h);y=n(h)}if(y!==null)var xe=!0;else{var Ae=n(f);Ae!==null&&Me(j,Ae.startTime-Y),xe=!1}return xe}finally{y=null,b=$,w=!1}}var G=!1,W=null,S=-1,Z=5,X=-1;function _e(){return!(e.unstable_now()-X<Z)}function oe(){if(W!==null){var H=e.unstable_now();X=H;var Y=!0;try{Y=W(!0,H)}finally{Y?Re():(G=!1,W=null)}}else G=!1}var Re;if(typeof D=="function")Re=function(){D(oe)};else if(typeof MessageChannel<"u"){var fe=new MessageChannel,ce=fe.port2;fe.port1.onmessage=oe,Re=function(){ce.postMessage(null)}}else Re=function(){P(oe,0)};function ue(H){W=H,G||(G=!0,Re())}function Me(H,Y){S=P(function(){H(e.unstable_now())},Y)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(H){H.callback=null},e.unstable_continueExecution=function(){x||w||(x=!0,ue(K))},e.unstable_forceFrameRate=function(H){0>H||125<H?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):Z=0<H?Math.floor(1e3/H):5},e.unstable_getCurrentPriorityLevel=function(){return b},e.unstable_getFirstCallbackNode=function(){return n(h)},e.unstable_next=function(H){switch(b){case 1:case 2:case 3:var Y=3;break;default:Y=b}var $=b;b=Y;try{return H()}finally{b=$}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(H,Y){switch(H){case 1:case 2:case 3:case 4:case 5:break;default:H=3}var $=b;b=H;try{return Y()}finally{b=$}},e.unstable_scheduleCallback=function(H,Y,$){var N=e.unstable_now();switch(typeof $=="object"&&$!==null?($=$.delay,$=typeof $=="number"&&0<$?N+$:N):$=N,H){case 1:var q=-1;break;case 2:q=250;break;case 5:q=1073741823;break;case 4:q=1e4;break;default:q=5e3}return q=$+q,H={id:m++,callback:Y,priorityLevel:H,startTime:$,expirationTime:q,sortIndex:-1},$>N?(H.sortIndex=$,t(f,H),n(h)===null&&H===n(f)&&(T?(L(S),S=-1):T=!0,Me(j,$-N))):(H.sortIndex=q,t(h,H),x||w||(x=!0,ue(K))),H},e.unstable_shouldYield=_e,e.unstable_wrapCallback=function(H){var Y=b;return function(){var $=b;b=Y;try{return H.apply(this,arguments)}finally{b=$}}}})(hh)),hh}var Ay;function hP(){return Ay||(Ay=1,dh.exports=dP()),dh.exports}var Ly;function fP(){if(Ly)return yn;Ly=1;var e=$f(),t=hP();function n(r){for(var i="https://reactjs.org/docs/error-decoder.html?invariant="+r,l=1;l<arguments.length;l++)i+="&args[]="+encodeURIComponent(arguments[l]);return"Minified React error #"+r+"; visit "+i+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var a=new Set,s={};function o(r,i){u(r,i),u(r+"Capture",i)}function u(r,i){for(s[r]=i,r=0;r<i.length;r++)a.add(i[r])}var c=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),h=Object.prototype.hasOwnProperty,f=/^[: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]*$/,m={},y={};function b(r){return h.call(y,r)?!0:h.call(m,r)?!1:f.test(r)?y[r]=!0:(m[r]=!0,!1)}function w(r,i,l,d){if(l!==null&&l.type===0)return!1;switch(typeof i){case"function":case"symbol":return!0;case"boolean":return d?!1:l!==null?!l.acceptsBooleans:(r=r.toLowerCase().slice(0,5),r!=="data-"&&r!=="aria-");default:return!1}}function x(r,i,l,d){if(i===null||typeof i>"u"||w(r,i,l,d))return!0;if(d)return!1;if(l!==null)switch(l.type){case 3:return!i;case 4:return i===!1;case 5:return isNaN(i);case 6:return isNaN(i)||1>i}return!1}function T(r,i,l,d,p,g,_){this.acceptsBooleans=i===2||i===3||i===4,this.attributeName=d,this.attributeNamespace=p,this.mustUseProperty=l,this.propertyName=r,this.type=i,this.sanitizeURL=g,this.removeEmptyString=_}var P={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(r){P[r]=new T(r,0,!1,r,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(r){var i=r[0];P[i]=new T(i,1,!1,r[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(r){P[r]=new T(r,2,!1,r.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(r){P[r]=new T(r,2,!1,r,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(r){P[r]=new T(r,3,!1,r.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(r){P[r]=new T(r,3,!0,r,null,!1,!1)}),["capture","download"].forEach(function(r){P[r]=new T(r,4,!1,r,null,!1,!1)}),["cols","rows","size","span"].forEach(function(r){P[r]=new T(r,6,!1,r,null,!1,!1)}),["rowSpan","start"].forEach(function(r){P[r]=new T(r,5,!1,r.toLowerCase(),null,!1,!1)});var L=/[\-:]([a-z])/g;function D(r){return r[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(r){var i=r.replace(L,D);P[i]=new T(i,1,!1,r,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(r){var i=r.replace(L,D);P[i]=new T(i,1,!1,r,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(r){var i=r.replace(L,D);P[i]=new T(i,1,!1,r,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(r){P[r]=new T(r,1,!1,r.toLowerCase(),null,!1,!1)}),P.xlinkHref=new T("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(r){P[r]=new T(r,1,!1,r.toLowerCase(),null,!0,!0)});function M(r,i,l,d){var p=P.hasOwnProperty(i)?P[i]:null;(p!==null?p.type!==0:d||!(2<i.length)||i[0]!=="o"&&i[0]!=="O"||i[1]!=="n"&&i[1]!=="N")&&(x(i,l,p,d)&&(l=null),d||p===null?b(i)&&(l===null?r.removeAttribute(i):r.setAttribute(i,""+l)):p.mustUseProperty?r[p.propertyName]=l===null?p.type===3?!1:"":l:(i=p.attributeName,d=p.attributeNamespace,l===null?r.removeAttribute(i):(p=p.type,l=p===3||p===4&&l===!0?"":""+l,d?r.setAttributeNS(d,i,l):r.setAttribute(i,l))))}var j=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,K=Symbol.for("react.element"),G=Symbol.for("react.portal"),W=Symbol.for("react.fragment"),S=Symbol.for("react.strict_mode"),Z=Symbol.for("react.profiler"),X=Symbol.for("react.provider"),_e=Symbol.for("react.context"),oe=Symbol.for("react.forward_ref"),Re=Symbol.for("react.suspense"),fe=Symbol.for("react.suspense_list"),ce=Symbol.for("react.memo"),ue=Symbol.for("react.lazy"),Me=Symbol.for("react.offscreen"),H=Symbol.iterator;function Y(r){return r===null||typeof r!="object"?null:(r=H&&r[H]||r["@@iterator"],typeof r=="function"?r:null)}var $=Object.assign,N;function q(r){if(N===void 0)try{throw Error()}catch(l){var i=l.stack.trim().match(/\n( *(at )?)/);N=i&&i[1]||""}return`
|
|
3
3
|
`+N+r}var xe=!1;function Ae(r,i){if(!r||xe)return"";xe=!0;var l=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(i)if(i=function(){throw Error()},Object.defineProperty(i.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(i,[])}catch(z){var d=z}Reflect.construct(r,[],i)}else{try{i.call()}catch(z){d=z}r.call(i.prototype)}else{try{throw Error()}catch(z){d=z}r()}}catch(z){if(z&&d&&typeof z.stack=="string"){for(var p=z.stack.split(`
|
|
4
4
|
`),g=d.stack.split(`
|
|
@@ -39,7 +39,7 @@ Please change the parent <Route path="${P}"> to <Route path="${P==="/"?"*":`${P}
|
|
|
39
39
|
`))}logResponse(e,t,n,a,s){if(!this.enabled)return;const o=[`← ${e} ${t} ${n} (${a}ms)`],u=Dv(ko(s));if(u){const c=u.length>1e3?u.slice(0,1e3)+"... [truncated]":u;o.push(` Body: ${c}`)}n>=400?this.error(o.join(`
|
|
40
40
|
`)):this.log(o.join(`
|
|
41
41
|
`))}},pp="insforge_csrf_token";function j_(){if(typeof document>"u")return null;const e=document.cookie.split(";").find(t=>t.trim().startsWith(`${pp}=`));return e&&e.split("=")[1]||null}function U_(e){if(typeof document>"u")return;const t=10080*60,n=typeof window<"u"&&window.location.protocol==="https:"?"; Secure":"";document.cookie=`${pp}=${encodeURIComponent(e)}; path=/; max-age=${t}; SameSite=Lax${n}`}function B_(){if(typeof document>"u")return;const e=typeof window<"u"&&window.location.protocol==="https:"?"; Secure":"";document.cookie=`${pp}=; path=/; max-age=0; SameSite=Lax${e}`}var F_=class{constructor(){this.accessToken=null,this.user=null,this.onTokenChange=null}saveSession(e){const t=e.accessToken!==this.accessToken;this.accessToken=e.accessToken,this.user=e.user,t&&this.onTokenChange&&this.onTokenChange()}getSession(){return!this.accessToken||!this.user?null:{accessToken:this.accessToken,user:this.user}}getAccessToken(){return this.accessToken}setAccessToken(e){const t=e!==this.accessToken;this.accessToken=e,t&&this.onTokenChange&&this.onTokenChange()}getUser(){return this.user}setUser(e){this.user=e}clearSession(){const e=this.accessToken!==null;this.accessToken=null,this.user=null,e&&this.onTokenChange&&this.onTokenChange()}},GR=new Set([500,502,503,504]),YR=new Set(["GET","HEAD","PUT","DELETE","OPTIONS"]),ZR=class{constructor(e,t,n){if(this.userToken=null,this.autoRefreshToken=!0,this.isRefreshing=!1,this.refreshPromise=null,this.refreshToken=null,this.baseUrl=e.baseUrl||"http://localhost:7130",this.autoRefreshToken=e.autoRefreshToken??!0,this.fetch=e.fetch||(globalThis.fetch?globalThis.fetch.bind(globalThis):void 0),this.anonKey=e.anonKey,this.defaultHeaders={...e.headers},this.tokenManager=t??new F_,this.logger=n||new I_(!1),this.timeout=e.timeout??3e4,this.retryCount=e.retryCount??3,this.retryDelay=e.retryDelay??500,!this.fetch)throw new Error("Fetch is not available. Please provide a fetch implementation in the config.")}buildUrl(e,t){const n=new URL(e,this.baseUrl);return t&&Object.entries(t).forEach(([a,s])=>{if(a==="select"){let o=s.replace(/\s+/g," ").trim();o=o.replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\(\s+/g,"(").replace(/\s+\)/g,")").replace(/,\s+(?=[^()]*\))/g,","),n.searchParams.append(a,o)}else n.searchParams.append(a,s)}),n.toString()}isRetryableStatus(e){return GR.has(e)}computeRetryDelay(e){const n=this.retryDelay*Math.pow(2,e-1)*(.85+Math.random()*.3);return Math.round(n)}async handleRequest(e,t,n={}){const{params:a,headers:s={},body:o,signal:u,...c}=n,h=this.buildUrl(t,a),f=Date.now(),y=YR.has(e.toUpperCase())||n.idempotent===!0?this.retryCount:0,b={...this.defaultHeaders},w=this.userToken||this.anonKey;w&&(b.Authorization=`Bearer ${w}`);let x;o!==void 0&&(typeof FormData<"u"&&o instanceof FormData?x=o:(e!=="GET"&&(b["Content-Type"]="application/json;charset=UTF-8"),x=JSON.stringify(o))),s instanceof Headers?s.forEach((P,L)=>{b[L]=P}):Array.isArray(s)?s.forEach(([P,L])=>{b[P]=L}):Object.assign(b,s),this.logger.logRequest(e,h,b,x);let T;for(let P=0;P<=y;P++){if(P>0){const M=this.computeRetryDelay(P);if(this.logger.warn(`Retry ${P}/${y} for ${e} ${h} in ${M}ms`),u?.aborted)throw u.reason;await new Promise((j,K)=>{const G=()=>{clearTimeout(W),K(u.reason)},W=setTimeout(()=>{u&&u.removeEventListener("abort",G),j()},M);u&&u.addEventListener("abort",G,{once:!0})})}let L,D;if((this.timeout>0||u)&&(L=new AbortController,this.timeout>0&&(D=setTimeout(()=>L.abort(),this.timeout)),u))if(u.aborted)L.abort(u.reason);else{const M=()=>L.abort(u.reason);u.addEventListener("abort",M,{once:!0}),L.signal.addEventListener("abort",()=>{u.removeEventListener("abort",M)},{once:!0})}try{const M=await this.fetch(h,{method:e,headers:b,body:x,...c,...L?{signal:L.signal}:{}});if(this.isRetryableStatus(M.status)&&P<y){D!==void 0&&clearTimeout(D),await M.body?.cancel(),T=new We(`Server error: ${M.status} ${M.statusText}`,M.status,"SERVER_ERROR");continue}if(M.status===204){D!==void 0&&clearTimeout(D);return}let j;const K=M.headers.get("content-type");try{K?.includes("json")?j=await M.json():j=await M.text()}catch(G){throw D!==void 0&&clearTimeout(D),new We(`Failed to parse response body: ${G?.message||"Unknown error"}`,M.status,M.ok?"PARSE_ERROR":"REQUEST_FAILED")}if(D!==void 0&&clearTimeout(D),!M.ok){if(this.logger.logResponse(e,h,M.status,Date.now()-f,j),j&&typeof j=="object"&&"error"in j){!j.statusCode&&!j.status&&(j.statusCode=M.status);const G=We.fromApiError(j);throw Object.keys(j).forEach(W=>{W!=="error"&&W!=="message"&&W!=="statusCode"&&(G[W]=j[W])}),G}throw new We(`Request failed: ${M.statusText}`,M.status,"REQUEST_FAILED")}return this.logger.logResponse(e,h,M.status,Date.now()-f,j),j}catch(M){if(D!==void 0&&clearTimeout(D),M?.name==="AbortError")throw L&&L.signal.aborted&&this.timeout>0&&!u?.aborted?new We(`Request timed out after ${this.timeout}ms`,408,"REQUEST_TIMEOUT"):M;if(M instanceof We)throw M;if(P<y){T=M;continue}throw new We(`Network request failed: ${M?.message||"Unknown error"}`,0,"NETWORK_ERROR")}}throw T||new We("Request failed after all retry attempts",0,"NETWORK_ERROR")}async request(e,t,n={}){try{return await this.handleRequest(e,t,{...n})}catch(a){if(a instanceof We&&a.statusCode===401&&a.error==="INVALID_TOKEN"&&this.autoRefreshToken)try{const s=await this.handleTokenRefresh();return this.setAuthToken(s.accessToken),this.tokenManager.saveSession(s),s.csrfToken&&U_(s.csrfToken),s.refreshToken&&this.setRefreshToken(s.refreshToken),await this.handleRequest(e,t,{...n})}catch(s){throw this.tokenManager.clearSession(),this.userToken=null,this.refreshToken=null,B_(),s}throw a}}get(e,t){return this.request("GET",e,t)}post(e,t,n){return this.request("POST",e,{...n,body:t})}put(e,t,n){return this.request("PUT",e,{...n,body:t})}patch(e,t,n){return this.request("PATCH",e,{...n,body:t})}delete(e,t){return this.request("DELETE",e,t)}setAuthToken(e){this.userToken=e}setRefreshToken(e){this.refreshToken=e}getHeaders(){const e={...this.defaultHeaders},t=this.userToken||this.anonKey;return t&&(e.Authorization=`Bearer ${t}`),e}async handleTokenRefresh(){return this.isRefreshing?this.refreshPromise:(this.isRefreshing=!0,this.refreshPromise=(async()=>{try{const e=j_(),t=this.refreshToken?{refreshToken:this.refreshToken}:void 0;return await this.handleRequest("POST","/api/auth/sessions/current",{body:t,headers:e?{"X-CSRF-Token":e}:{},credentials:"include"})}finally{this.isRefreshing=!1,this.refreshPromise=null}})(),this.refreshPromise)}},hf="insforge_pkce_verifier";function V_(e){return btoa(String.fromCharCode(...e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function QR(){const e=new Uint8Array(32);return crypto.getRandomValues(e),V_(e)}async function XR(e){const n=new TextEncoder().encode(e),a=await crypto.subtle.digest("SHA-256",n);return V_(new Uint8Array(a))}function JR(e){typeof sessionStorage<"u"&&sessionStorage.setItem(hf,e)}function eA(){if(typeof sessionStorage>"u")return null;const e=sessionStorage.getItem(hf);return e&&sessionStorage.removeItem(hf),e}function kn(e,t){return e instanceof We?{data:null,error:e}:{data:null,error:new We(e instanceof Error?e.message:t,500,"UNEXPECTED_ERROR")}}function Mv(...e){if(typeof window>"u")return;const t=new URL(window.location.href);e.forEach(n=>t.searchParams.delete(n)),window.history.replaceState({},document.title,t.toString())}var tA=class{constructor(e,t,n={}){this.http=e,this.tokenManager=t,this.options=n,this.authCallbackHandled=this.detectAuthCallback()}isServerMode(){return!!this.options.isServerMode}saveSessionFromResponse(e){if(!e.accessToken||!e.user)return!1;const t={accessToken:e.accessToken,user:e.user};return!this.isServerMode()&&e.csrfToken&&U_(e.csrfToken),this.isServerMode()||this.tokenManager.saveSession(t),this.http.setAuthToken(e.accessToken),this.http.setRefreshToken(e.refreshToken??null),!0}async detectAuthCallback(){if(!(this.isServerMode()||typeof window>"u"))try{const e=new URLSearchParams(window.location.search),t=e.get("error");if(t){Mv("error"),console.debug("OAuth callback error:",t);return}const n=e.get("insforge_code");if(n){Mv("insforge_code");const{error:a}=await this.exchangeOAuthCode(n);a&&console.debug("OAuth code exchange failed:",a.message);return}}catch(e){console.debug("OAuth callback detection skipped:",e)}}async signUp(e){try{const t=await this.http.post(this.isServerMode()?"/api/auth/users?client_type=mobile":"/api/auth/users",e,{credentials:"include"});return t.accessToken&&t.user&&this.saveSessionFromResponse(t),t.refreshToken&&this.http.setRefreshToken(t.refreshToken),{data:t,error:null}}catch(t){return kn(t,"An unexpected error occurred during sign up")}}async signInWithPassword(e){try{const t=await this.http.post(this.isServerMode()?"/api/auth/sessions?client_type=mobile":"/api/auth/sessions",e,{credentials:"include"});return this.saveSessionFromResponse(t),t.refreshToken&&this.http.setRefreshToken(t.refreshToken),{data:t,error:null}}catch(t){return kn(t,"An unexpected error occurred during sign in")}}async signOut(){try{try{await this.http.post(this.isServerMode()?"/api/auth/logout?client_type=mobile":"/api/auth/logout",void 0,{credentials:"include"})}catch{}return this.tokenManager.clearSession(),this.http.setAuthToken(null),this.http.setRefreshToken(null),this.isServerMode()||B_(),{error:null}}catch{return{error:new We("Failed to sign out",500,"SIGNOUT_ERROR")}}}async signInWithOAuth(e){try{const{provider:t,redirectTo:n,skipBrowserRedirect:a}=e,s=encodeURIComponent(t.toLowerCase()),o=QR(),u=await XR(o);JR(o);const c={code_challenge:u};n&&(c.redirect_uri=n);const f=yc.options.includes(s)?`/api/auth/oauth/${s}`:`/api/auth/oauth/custom/${s}`,m=await this.http.get(f,{params:c});return!this.isServerMode()&&typeof window<"u"&&!a?(window.location.href=m.authUrl,{data:{},error:null}):{data:{url:m.authUrl,provider:s,codeVerifier:o},error:null}}catch(t){return t instanceof We?{data:{},error:t}:{data:{},error:new We("An unexpected error occurred during OAuth initialization",500,"UNEXPECTED_ERROR")}}}async exchangeOAuthCode(e,t){try{const n=t??eA();if(!n)return{data:null,error:new We("PKCE code verifier not found. Ensure signInWithOAuth was called in the same browser session.",400,"PKCE_VERIFIER_MISSING")};const a={code:e,code_verifier:n},s=await this.http.post(this.isServerMode()?"/api/auth/oauth/exchange?client_type=mobile":"/api/auth/oauth/exchange",a,{credentials:"include"});return this.saveSessionFromResponse(s),{data:s,error:null}}catch(n){return kn(n,"An unexpected error occurred during OAuth code exchange")}}async signInWithIdToken(e){try{const{provider:t,token:n}=e,a=await this.http.post("/api/auth/id-token?client_type=mobile",{provider:t,token:n},{credentials:"include"});return this.saveSessionFromResponse(a),a.refreshToken&&this.http.setRefreshToken(a.refreshToken),{data:a,error:null}}catch(t){return kn(t,"An unexpected error occurred during ID token sign in")}}async refreshSession(e){try{if(this.isServerMode()&&!e?.refreshToken)return{data:null,error:new We("refreshToken is required when refreshing session in server mode",400,"REFRESH_TOKEN_REQUIRED")};const t=this.isServerMode()?null:j_(),n=await this.http.post(this.isServerMode()?"/api/auth/refresh?client_type=mobile":"/api/auth/refresh",this.isServerMode()?{refresh_token:e?.refreshToken}:void 0,{headers:t?{"X-CSRF-Token":t}:{},credentials:"include"});return n.accessToken&&this.saveSessionFromResponse(n),{data:n,error:null}}catch(t){return kn(t,"An unexpected error occurred during session refresh")}}async getCurrentUser(){await this.authCallbackHandled;try{if(this.isServerMode()){const t=this.tokenManager.getAccessToken();return t?(this.http.setAuthToken(t),{data:{user:(await this.http.get("/api/auth/sessions/current")).user??null},error:null}):{data:{user:null},error:null}}const e=this.tokenManager.getSession();if(e)return this.http.setAuthToken(e.accessToken),{data:{user:e.user},error:null};if(typeof window<"u"){const{data:t,error:n}=await this.refreshSession();if(n)return{data:{user:null},error:n};if(t?.accessToken)return{data:{user:t.user??null},error:null}}return{data:{user:null},error:null}}catch(e){return e instanceof We?{data:{user:null},error:e}:{data:{user:null},error:new We("An unexpected error occurred while getting user",500,"UNEXPECTED_ERROR")}}}async getProfile(e){try{return{data:await this.http.get(`/api/auth/profiles/${e}`),error:null}}catch(t){return kn(t,"An unexpected error occurred while fetching user profile")}}async setProfile(e){try{const t=await this.http.patch("/api/auth/profiles/current",{profile:e}),n=this.tokenManager.getUser();return!this.isServerMode()&&n&&t.profile!==void 0&&this.tokenManager.setUser({...n,profile:t.profile}),{data:t,error:null}}catch(t){return kn(t,"An unexpected error occurred while updating user profile")}}async resendVerificationEmail(e){try{return{data:await this.http.post("/api/auth/email/send-verification",e),error:null}}catch(t){return kn(t,"An unexpected error occurred while sending verification email")}}async verifyEmail(e){try{const t=await this.http.post(this.isServerMode()?"/api/auth/email/verify?client_type=mobile":"/api/auth/email/verify",e,{credentials:"include"});return this.saveSessionFromResponse(t),t.refreshToken&&this.http.setRefreshToken(t.refreshToken),{data:t,error:null}}catch(t){return kn(t,"An unexpected error occurred while verifying email")}}async sendResetPasswordEmail(e){try{return{data:await this.http.post("/api/auth/email/send-reset-password",e),error:null}}catch(t){return kn(t,"An unexpected error occurred while sending password reset email")}}async exchangeResetPasswordToken(e){try{return{data:await this.http.post("/api/auth/email/exchange-reset-password-token",e),error:null}}catch(t){return kn(t,"An unexpected error occurred while verifying reset code")}}async resetPassword(e){try{return{data:await this.http.post("/api/auth/email/reset-password",e),error:null}}catch(t){return kn(t,"An unexpected error occurred while resetting password")}}async getPublicAuthConfig(){try{return{data:await this.http.get("/api/auth/public-config"),error:null}}catch(e){return kn(e,"An unexpected error occurred while fetching auth configuration")}}};function nA(e,t){return async(n,a)=>{const s=typeof n=="string"?n:n.toString(),o=new URL(s),u=o.pathname.slice(1),c=u.match(/^rpc\/(.+)$/),h=c?`/api/database/rpc/${c[1]}`:`/api/database/records/${u}`,f=`${e.baseUrl}${h}${o.search}`,m=t.getAccessToken(),y=e.getHeaders(),b=m||y.Authorization?.replace("Bearer ",""),w=new Headers(a?.headers);return b&&!w.has("Authorization")&&w.set("Authorization",`Bearer ${b}`),await fetch(f,{...a,headers:w})}}var rA=class{constructor(e,t){this.postgrest=new QE("http://dummy",{fetch:nA(e,t),headers:{}})}from(e){return this.postgrest.from(e)}rpc(e,t,n){return this.postgrest.rpc(e,t,n)}},aA=class{constructor(e,t){this.bucketName=e,this.http=t}async upload(e,t){try{const n=await this.http.post(`/api/storage/buckets/${this.bucketName}/upload-strategy`,{filename:e,contentType:t.type||"application/octet-stream",size:t.size});if(n.method==="presigned")return await this.uploadWithPresignedUrl(n,t);if(n.method==="direct"){const a=new FormData;return a.append("file",t),{data:await this.http.request("PUT",`/api/storage/buckets/${this.bucketName}/objects/${encodeURIComponent(e)}`,{body:a,headers:{}}),error:null}}throw new We(`Unsupported upload method: ${n.method}`,500,"STORAGE_ERROR")}catch(n){return{data:null,error:n instanceof We?n:new We("Upload failed",500,"STORAGE_ERROR")}}}async uploadAuto(e){try{const t=e instanceof File?e.name:"file",n=await this.http.post(`/api/storage/buckets/${this.bucketName}/upload-strategy`,{filename:t,contentType:e.type||"application/octet-stream",size:e.size});if(n.method==="presigned")return await this.uploadWithPresignedUrl(n,e);if(n.method==="direct"){const a=new FormData;return a.append("file",e),{data:await this.http.request("POST",`/api/storage/buckets/${this.bucketName}/objects`,{body:a,headers:{}}),error:null}}throw new We(`Unsupported upload method: ${n.method}`,500,"STORAGE_ERROR")}catch(t){return{data:null,error:t instanceof We?t:new We("Upload failed",500,"STORAGE_ERROR")}}}async uploadWithPresignedUrl(e,t){try{const n=new FormData;e.fields&&Object.entries(e.fields).forEach(([s,o])=>{n.append(s,o)}),n.append("file",t);const a=await fetch(e.uploadUrl,{method:"POST",body:n});if(!a.ok)throw new We(`Upload to storage failed: ${a.statusText}`,a.status,"STORAGE_ERROR");return e.confirmRequired&&e.confirmUrl?{data:await this.http.post(e.confirmUrl,{size:t.size,contentType:t.type||"application/octet-stream"}),error:null}:{data:{key:e.key,bucket:this.bucketName,size:t.size,mimeType:t.type||"application/octet-stream",uploadedAt:new Date().toISOString(),url:this.getPublicUrl(e.key)},error:null}}catch(n){throw n instanceof We?n:new We("Presigned upload failed",500,"STORAGE_ERROR")}}async download(e){try{const t=await this.http.post(`/api/storage/buckets/${this.bucketName}/objects/${encodeURIComponent(e)}/download-strategy`,{expiresIn:3600}),n=t.url,a={};t.method==="direct"&&Object.assign(a,this.http.getHeaders());const s=await fetch(n,{method:"GET",headers:a});if(!s.ok)try{const u=await s.json();throw We.fromApiError(u)}catch{throw new We(`Download failed: ${s.statusText}`,s.status,"STORAGE_ERROR")}return{data:await s.blob(),error:null}}catch(t){return{data:null,error:t instanceof We?t:new We("Download failed",500,"STORAGE_ERROR")}}}getPublicUrl(e){return`${this.http.baseUrl}/api/storage/buckets/${this.bucketName}/objects/${encodeURIComponent(e)}`}async list(e){try{const t={};return e?.prefix&&(t.prefix=e.prefix),e?.search&&(t.search=e.search),e?.limit&&(t.limit=e.limit.toString()),e?.offset&&(t.offset=e.offset.toString()),{data:await this.http.get(`/api/storage/buckets/${this.bucketName}/objects`,{params:t}),error:null}}catch(t){return{data:null,error:t instanceof We?t:new We("List failed",500,"STORAGE_ERROR")}}}async remove(e){try{return{data:await this.http.delete(`/api/storage/buckets/${this.bucketName}/objects/${encodeURIComponent(e)}`),error:null}}catch(t){return{data:null,error:t instanceof We?t:new We("Delete failed",500,"STORAGE_ERROR")}}}},iA=class{constructor(e){this.http=e}from(e){return new aA(e,this.http)}},sA=class{constructor(e){this.http=e,this.chat=new oA(e),this.images=new cA(e),this.embeddings=new uA(e)}},oA=class{constructor(e){this.completions=new lA(e)}},lA=class{constructor(e){this.http=e}async create(e){const t={model:e.model,messages:e.messages,temperature:e.temperature,maxTokens:e.maxTokens,topP:e.topP,stream:e.stream,webSearch:e.webSearch,fileParser:e.fileParser,thinking:e.thinking,tools:e.tools,toolChoice:e.toolChoice,parallelToolCalls:e.parallelToolCalls};if(e.stream){const s=this.http.getHeaders();s["Content-Type"]="application/json";const o=await this.http.fetch(`${this.http.baseUrl}/api/ai/chat/completion`,{method:"POST",headers:s,body:JSON.stringify(t)});if(!o.ok){const u=await o.json();throw new Error(u.error||"Stream request failed")}return this.parseSSEStream(o,e.model)}const n=await this.http.post("/api/ai/chat/completion",t),a=n.text||"";return{id:`chatcmpl-${Date.now()}`,object:"chat.completion",created:Math.floor(Date.now()/1e3),model:n.metadata?.model,choices:[{index:0,message:{role:"assistant",content:a,...n.tool_calls?.length&&{tool_calls:n.tool_calls},...n.annotations?.length&&{annotations:n.annotations}},finish_reason:n.tool_calls?.length?"tool_calls":"stop"}],usage:n.metadata?.usage||{prompt_tokens:0,completion_tokens:0,total_tokens:0}}}async*parseSSEStream(e,t){const n=e.body.getReader(),a=new TextDecoder;let s="";try{for(;;){const{done:o,value:u}=await n.read();if(o)break;s+=a.decode(u,{stream:!0});const c=s.split(`
|
|
42
|
-
`);s=c.pop()||"";for(const h of c)if(h.startsWith("data: ")){const f=h.slice(6).trim();if(f)try{const m=JSON.parse(f);if((m.chunk||m.content)&&(yield{id:`chatcmpl-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:t,choices:[{index:0,delta:{content:m.chunk||m.content},finish_reason:null}]}),m.tool_calls?.length&&(yield{id:`chatcmpl-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:t,choices:[{index:0,delta:{tool_calls:m.tool_calls},finish_reason:"tool_calls"}]}),m.done){n.releaseLock();return}}catch{console.warn("Failed to parse SSE data:",f)}}}}finally{n.releaseLock()}}},uA=class{constructor(e){this.http=e}async create(e){const t=await this.http.post("/api/ai/embeddings",e);return{object:t.object,data:t.data,model:t.metadata?.model,usage:t.metadata?.usage?{prompt_tokens:t.metadata.usage.promptTokens||0,total_tokens:t.metadata.usage.totalTokens||0}:{prompt_tokens:0,total_tokens:0}}}},cA=class{constructor(e){this.http=e}async generate(e){const t=await this.http.post("/api/ai/image/generation",e);let n=[];return t.images&&t.images.length>0?n=t.images.map(a=>({b64_json:a.imageUrl.replace(/^data:image\/\w+;base64,/,""),content:t.text})):t.text&&(n=[{content:t.text}]),{created:Math.floor(Date.now()/1e3),data:n,...t.metadata?.usage&&{usage:{total_tokens:t.metadata.usage.totalTokens||0,input_tokens:t.metadata.usage.promptTokens||0,output_tokens:t.metadata.usage.completionTokens||0}}}}},dA=class z_{constructor(t,n){this.http=t,this.functionsUrl=n||z_.deriveSubhostingUrl(t.baseUrl)}static deriveSubhostingUrl(t){try{const{hostname:n}=new URL(t);return n.endsWith(".insforge.app")?`https://${n.split(".")[0]}.functions.insforge.app`:void 0}catch{return}}async invoke(t,n={}){const{method:a="POST",body:s,headers:o={}}=n;if(this.functionsUrl)try{return{data:await this.http.request(a,`${this.functionsUrl}/${t}`,{body:s,headers:o}),error:null}}catch(u){if(u instanceof Error&&u.name==="AbortError")throw u;if(!(u instanceof We&&u.statusCode===404))return{data:null,error:u instanceof We?u:new We(u instanceof Error?u.message:"Function invocation failed",500,"FUNCTION_ERROR")}}try{const u=`/functions/${t}`;return{data:await this.http.request(a,u,{body:s,headers:o}),error:null}}catch(u){if(u instanceof Error&&u.name==="AbortError")throw u;return{data:null,error:u instanceof We?u:new We(u instanceof Error?u.message:"Function invocation failed",500,"FUNCTION_ERROR")}}}},Nv=1e4,hA=class{constructor(e,t,n){this.socket=null,this.connectPromise=null,this.subscribedChannels=new Set,this.eventListeners=new Map,this.baseUrl=e,this.tokenManager=t,this.anonKey=n,this.tokenManager.onTokenChange=()=>this.onTokenChange()}notifyListeners(e,t){const n=this.eventListeners.get(e);if(n)for(const a of n)try{a(t)}catch(s){console.error(`Error in ${e} callback:`,s)}}connect(){return this.socket?.connected?Promise.resolve():this.connectPromise?this.connectPromise:(this.connectPromise=new Promise((e,t)=>{const n=this.tokenManager.getAccessToken()??this.anonKey;this.socket=Cu(this.baseUrl,{transports:["websocket"],auth:n?{token:n}:void 0});let a=!0,s=null;const o=()=>{s&&(clearTimeout(s),s=null)};s=setTimeout(()=>{a&&(a=!1,this.connectPromise=null,this.socket?.disconnect(),this.socket=null,t(new Error(`Connection timeout after ${Nv}ms`)))},Nv),this.socket.on("connect",()=>{o();for(const u of this.subscribedChannels)this.socket.emit("realtime:subscribe",{channel:u});this.notifyListeners("connect"),a&&(a=!1,this.connectPromise=null,e())}),this.socket.on("connect_error",u=>{o(),this.notifyListeners("connect_error",u),a&&(a=!1,this.connectPromise=null,t(u))}),this.socket.on("disconnect",u=>{this.notifyListeners("disconnect",u)}),this.socket.on("realtime:error",u=>{this.notifyListeners("error",u)}),this.socket.onAny((u,c)=>{u!=="realtime:error"&&this.notifyListeners(u,c)})}),this.connectPromise)}disconnect(){this.socket&&(this.socket.disconnect(),this.socket=null),this.subscribedChannels.clear()}onTokenChange(){const e=this.tokenManager.getAccessToken()??this.anonKey;this.socket&&(this.socket.auth=e?{token:e}:{}),this.socket&&(this.socket.connected||this.connectPromise)&&(this.socket.disconnect(),this.socket.connect())}get isConnected(){return this.socket?.connected??!1}get connectionState(){return this.socket?this.socket.connected?"connected":"connecting":"disconnected"}get socketId(){return this.socket?.id}async subscribe(e){if(this.subscribedChannels.has(e))return{ok:!0,channel:e};if(!this.socket?.connected)try{await this.connect()}catch(t){const n=t instanceof Error?t.message:"Connection failed";return{ok:!1,channel:e,error:{code:"CONNECTION_FAILED",message:n}}}return new Promise(t=>{this.socket.emit("realtime:subscribe",{channel:e},n=>{n.ok&&this.subscribedChannels.add(e),t(n)})})}unsubscribe(e){this.subscribedChannels.delete(e),this.socket?.connected&&this.socket.emit("realtime:unsubscribe",{channel:e})}async publish(e,t,n){if(!this.socket?.connected)throw new Error("Not connected to realtime server. Call connect() first.");this.socket.emit("realtime:publish",{channel:e,event:t,payload:n})}on(e,t){this.eventListeners.has(e)||this.eventListeners.set(e,new Set),this.eventListeners.get(e).add(t)}off(e,t){const n=this.eventListeners.get(e);n&&(n.delete(t),n.size===0&&this.eventListeners.delete(e))}once(e,t){const n=a=>{this.off(e,n),t(a)};this.on(e,n)}getSubscribedChannels(){return Array.from(this.subscribedChannels)}},fA=class{constructor(e){this.http=e}async send(e){try{return{data:await this.http.post("/api/email/send-raw",e),error:null}}catch(t){if(t instanceof Error&&t.name==="AbortError")throw t;return{data:null,error:t instanceof We?t:new We(t instanceof Error?t.message:"Email send failed",500,"EMAIL_ERROR")}}}},pA=class{constructor(e={}){const t=new I_(e.debug);this.tokenManager=new F_,this.http=new ZR(e,this.tokenManager,t),e.edgeFunctionToken&&(this.http.setAuthToken(e.edgeFunctionToken),this.tokenManager.setAccessToken(e.edgeFunctionToken)),this.auth=new tA(this.http,this.tokenManager,{isServerMode:e.isServerMode??!1}),this.database=new rA(this.http,this.tokenManager),this.storage=new iA(this.http),this.ai=new sA(this.http),this.functions=new dA(this.http,e.functionsUrl),this.realtime=new hA(this.http.baseUrl,this.tokenManager,e.anonKey),this.emails=new fA(this.http)}getHttpClient(){return this.http}};function mA(e){return new pA(e)}const mp={VITE_INSFORGE_ANON_KEY:"ik_9f35735991b684f7cf57fa00bb4d0487",VITE_INSFORGE_BASE_URL:"https://srctyff5.us-east.insforge.app"};function fi(){const e=typeof import.meta<"u"?mp:void 0;return(e?.VITE_INSFORGE_BASE_URL||e?.VITE_TOKENTRACKER_BACKEND_BASE_URL||"").trim()}function $_(){if(typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"))return window.location.origin;const t=typeof import.meta<"u"?mp:void 0;return(t?.VITE_INSFORGE_BASE_URL||t?.VITE_TOKENTRACKER_BACKEND_BASE_URL||"").trim()}function _c(){const e=typeof import.meta<"u"?mp:void 0;return(e?.VITE_INSFORGE_ANON_KEY||e?.VITE_TOKENTRACKER_BACKEND_ANON_KEY||"").trim()}function ff(){return!!$_()}let Sh=null;function gA(){return ff()?(Sh||(Sh=mA({baseUrl:$_(),anonKey:_c()||void 0,autoRefreshToken:!0})),Sh):null}const H_="tokentracker_cloud_sync_enabled",yA="tokentracker_cloud_device_session_v1",gp="tokentracker_cloud_last_sync_ts";let yp=null;function vp(){try{localStorage.removeItem(yA)}catch{}}function vA(){if(typeof window>"u")return!1;const e=window.location.hostname;return e==="localhost"||e==="127.0.0.1"}function bA(){try{const e=localStorage.getItem(H_);return e===null||e===""?!1:e==="1"||e==="true"}catch{return!1}}function L4(e){try{localStorage.setItem(H_,e?"1":"0")}catch{}}function W_(){return vp(),yp}function _A(e){yp=e,vp()}function K_(){yp=null;try{localStorage.removeItem(gp)}catch{}vp()}function wA(){try{const e=Number(localStorage.getItem(gp));return Number.isFinite(e)?e:0}catch{return 0}}function q_(e){try{localStorage.setItem(gp,String(e))}catch{}}function Ea(e){if(typeof e!="string")return null;const t=e.trim();return t.length>0?t:null}function kA(e){const t=Ea(e);if(!t)return null;const n=t.split(".");if(n.length<2)return null;const a=n[1];try{const s=a.replace(/-/g,"+").replace(/_/g,"/").padEnd(a.length+(4-a.length%4)%4,"="),o=typeof atob=="function"?atob(s):Buffer.from(s,"base64").toString("utf8"),c=JSON.parse(o)?.exp;return typeof c!="number"||!Number.isFinite(c)||c<=0?null:Math.floor(c*1e3)}catch{return null}}function xA(e){const t=Ea(e);if(!t)return!1;const n=t.split(".");if(n.length!==3)return!1;try{for(let a=0;a<2;a++){const s=n[a];if(!/^[A-Za-z0-9_-]+$/.test(s))return!1;const o=s.replace(/-/g,"+").replace(/_/g,"/").padEnd(s.length+(4-s.length%4)%4,"="),u=typeof atob=="function"?atob(o):Buffer.from(o,"base64").toString("utf8");a===1&&JSON.parse(u)}return!0}catch{return!1}}function SA(e,t=3e4){const n=kA(e);return n?n<=Date.now()+Math.max(0,Number(t)||0):!1}async function PA(e){if(!e)return null;if(typeof e=="string")return Ea(e);if(typeof e=="function")try{const t=await e();return Ea(t)}catch{return null}if(typeof e=="object"){if(typeof e.getAccessToken=="function"){try{const t=await e.getAccessToken(),n=Ea(t);if(n)return n}catch{}return Ea(e.accessToken)}return null}return Ea(e)}async function D4(e,t={}){const n=Math.max(1,Math.min(12,Math.floor(Number(t.maxAttempts)||8))),a=Math.max(20,Math.floor(Number(t.baseDelayMs)||50));for(let s=0;s<n;s++){const o=await PA(e);if(o)return o;s<n-1&&await new Promise(u=>setTimeout(u,a*(s+1)))}return null}function M4(e){return typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1")||typeof e=="function"||e&&typeof e=="object"&&typeof e.getAccessToken=="function"?!0:!!Ea(e)}function N4(){if(typeof Intl>"u"||!Intl.DateTimeFormat)return null;try{return Intl.DateTimeFormat().resolvedOptions().timeZone||null}catch{return null}}function O4(e=new Date){const t=e instanceof Date?e:new Date(e);if(!Number.isFinite(t.getTime()))return 0;const n=t.getTimezoneOffset();return Number.isFinite(n)?-n:0}function G_(e){if(!Number.isFinite(e)||e===0)return"UTC";const t=e>=0?"+":"-",n=Math.abs(e),a=String(Math.floor(n/60)).padStart(2,"0"),s=String(n%60).padStart(2,"0");return`UTC${t}${a}:${s}`}function I4({timeZone:e,offsetMinutes:t}={}){const n=G_(t);return e&&e!=="UTC"?`${e} (${n})`:n}function j4({timeZone:e,offsetMinutes:t}={}){return Number.isFinite(t)?G_(t):e||"UTC"}function U4({timeZone:e,offsetMinutes:t,date:n=new Date}={}){const a=n instanceof Date?n:new Date(n);if(!Number.isFinite(a.getTime()))return"";if(e&&typeof Intl<"u"&&Intl.DateTimeFormat)try{const u=new Intl.DateTimeFormat("en-CA",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(a).reduce((m,y)=>(y.type&&y.value&&(m[y.type]=y.value),m),{}),c=u.year,h=u.month,f=u.day;if(c&&h&&f)return`${c}-${h}-${f}`}catch{}if(typeof t=="number"&&Number.isFinite(t)){const s=new Date(a.getTime()+t*6e4);return CA(s)}return EA(a)}function TA({timeZone:e,offsetMinutes:t,date:n=new Date}={}){const a=n instanceof Date?n:new Date(n);if(!Number.isFinite(a.getTime()))return null;if(e&&typeof Intl<"u"&&Intl.DateTimeFormat)try{const u=new Intl.DateTimeFormat("en-CA",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(a).reduce((m,y)=>(y.type&&y.value&&(m[y.type]=y.value),m),{}),c=Number(u.year),h=Number(u.month),f=Number(u.day);if(Number.isFinite(c)&&Number.isFinite(h)&&Number.isFinite(f))return{year:c,month:h,day:f}}catch{}if(typeof t=="number"&&Number.isFinite(t)){const s=new Date(a.getTime()+t*6e4);return{year:s.getUTCFullYear(),month:s.getUTCMonth()+1,day:s.getUTCDate()}}return{year:a.getFullYear(),month:a.getMonth()+1,day:a.getDate()}}function B4({timeZone:e,offsetMinutes:t}={}){return e?`tz:${e}`:typeof t=="number"&&Number.isFinite(t)?`offset:${Math.trunc(t)}`:"utc"}function CA(e){const t=e.getUTCFullYear(),n=String(e.getUTCMonth()+1).padStart(2,"0"),a=String(e.getUTCDate()).padStart(2,"0");return`${t}-${n}-${a}`}function EA(e){const t=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),a=String(e.getDate()).padStart(2,"0");return`${t}-${n}-${a}`}function yt(e){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate())).toISOString().slice(0,10)}function xr(e){const t=e instanceof Date?e:new Date(e);if(!Number.isFinite(t.getTime()))return"";const n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),s=String(t.getDate()).padStart(2,"0");return`${n}-${a}-${s}`}function RA(e){if(!e)return null;const t=String(e).trim(),n=t.split("-");if(n.length!==3)return null;const a=Number(n[0]),s=Number(n[1])-1,o=Number(n[2]);if(!Number.isFinite(a)||!Number.isFinite(s)||!Number.isFinite(o))return null;const u=new Date(Date.UTC(a,s,o));return Number.isFinite(u.getTime())&&yt(u)===t?u:null}function AA(e){if(!e)return"";const t=e.year,n=String(e.month).padStart(2,"0"),a=String(e.day).padStart(2,"0");return!t||!n||!a?"":`${t}-${n}-${a}`}function LA(e,{timeZone:t,offsetMinutes:n,now:a}={}){const s=a instanceof Date&&Number.isFinite(a.getTime())?a:new Date,o=TA({timeZone:t,offsetMinutes:n,date:s});if(!o){const h=xr(new Date);return{from:h,to:h}}const u=AA(o),c=RA(u);if(!c)return{from:u,to:u};if(e==="day")return{from:u,to:u};if(e==="week"){const h=new Date(c),m=(h.getUTCDay()+6)%7;h.setUTCDate(h.getUTCDate()-m);const y=new Date(h);return y.setUTCDate(y.getUTCDate()+6),{from:yt(h),to:yt(y)}}if(e==="month"){const h=new Date(Date.UTC(c.getUTCFullYear(),c.getUTCMonth(),1)),f=new Date(Date.UTC(c.getUTCFullYear(),c.getUTCMonth()+1,0));return{from:yt(h),to:yt(f)}}if(e==="total"){const h=new Date(Date.UTC(c.getUTCFullYear(),c.getUTCMonth()-23,1));return{from:yt(h),to:u}}return LA("week")}function F4(e){if(e==null)return"-";try{if(typeof e=="bigint")return new Intl.NumberFormat().format(e);if(typeof e=="number")return new Intl.NumberFormat().format(e);const t=String(e).trim();return/^[0-9]+$/.test(t)?new Intl.NumberFormat().format(BigInt(t)):t}catch{return String(e)}}function V4(e,{thousandSuffix:t="K",millionSuffix:n="M",billionSuffix:a="B",decimals:s=1}={}){const o=Number(String(e));if(!Number.isFinite(o))return"-";const u=o<0?"-":"",c=Math.abs(o),h=Math.max(0,Math.min(6,Math.floor(s)));if(c<1e3)return`${u}${String(c)}`;const f=(w,x)=>{const T=w.toFixed(h),P=Number(T).toString();return`${u}${P}${x}`},m=(w,x,T)=>{const P=w.toFixed(h),L=Number(P);return T&&L>=1e3?f(L/1e3,T):`${u}${L.toString()}${x}`};if(c>=1e9)return f(c/1e9,a);if(c>=1e6)return m(c/1e6,n,a);const y=c/1e3,b=Number(y.toFixed(h));return b>=1e3?f(b/1e3,n):f(b,t)}function Y_(e){const t=Number(String(e));return Number.isFinite(t)?t:null}function z4(e,{decimals:t=2}={}){if(e==null)return"-";const n=String(e).trim();if(!n)return"-";const a=n.match(/^(-?\d+)(?:\.(\d+))?$/);if(!a)return n;const s=a[1],o=a[2]||"";let u=s;try{u=new Intl.NumberFormat().format(BigInt(s))}catch{u=s}const c=Math.max(0,Math.min(6,Math.floor(t))),h=c?o.slice(0,c).padEnd(c,"0"):"",f=s.startsWith("-")?"-":"",m=c?`${u.replace("-","")}.${h}`:u.replace("-","");return`${f}$${m}`}function Yu(e){if(typeof e!="string")return null;const t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());if(!t)return null;const n=Number(t[1]),a=Number(t[2])-1,s=Number(t[3]),o=new Date(Date.UTC(n,a,s));return Number.isFinite(o.getTime())&&yt(o)===e.trim()?o:null}function ni(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function DA(e,t){const n=Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate())-Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate());return Math.floor(n/864e5)}function Ph(e,t){if(!Array.isArray(e)||e.length===0)return 0;const n=e.length,a=(n-1)*t,s=Math.floor(a),o=a-s,u=e[s]??e[n-1],c=e[Math.min(n-1,s+1)]??e[n-1];return Math.round(u+(c-u)*o)}function MA(e){return e<=0?0:e>=4?4:e}function Z_({weeks:e=52,now:t,weekStartsOn:n="sun"}={}){const a=t instanceof Date&&Number.isFinite(t.getTime())?t:new Date,s=xr(a),o=Yu(s)||new Date(Date.UTC(a.getFullYear(),a.getMonth(),a.getDate())),u=n==="mon"?1:0,c=o.getUTCDay(),h=ni(o,-((c-u+7)%7)),f=ni(h,-7*(Math.max(1,e)-1));return{from:yt(f),to:s}}function NA({dailyRows:e,weeks:t=52,to:n,weekStartsOn:a="sun"}={}){const s=Yu(n)||new Date(Date.UTC(new Date().getFullYear(),new Date().getMonth(),new Date().getDate())),{from:o}=Z_({weeks:t,now:s,weekStartsOn:a}),u=Yu(o)||ni(s,-(t*7-1)),c=(()=>{const j=(u.getUTCDay()-(a==="mon"?1:0)+7)%7;return ni(u,-j)})(),h=new Map;for(const D of Array.isArray(e)?e:[]){const M=typeof D?.day=="string"?D.day:null;if(!M)continue;const j=Y_(D?.billable_total_tokens??D?.total_tokens)??0;h.set(M,Math.max(0,j))}const f=DA(c,s)+1,m=Math.ceil(f/7),y=[];for(let D=0;D<f;D++){const M=ni(c,D),j=yt(M),K=h.get(j)??0;K>0&&y.push(K)}y.sort((D,M)=>D-M);const b=Ph(y,.5),w=Ph(y,.75),x=Ph(y,.9);function T(D){return!D||D<=0?0:D<=b?1:D<=w?2:D<=x?3:4}const P=[];for(let D=0;D<m;D++){const M=[];for(let j=0;j<7;j++){const K=D*7+j,G=ni(c,K);if(G.getTime()>s.getTime()){M.push(null);continue}const W=yt(G),S=h.get(W)??0;M.push({day:W,value:S,level:MA(T(S))})}P.push(M)}const L=P.length>t?P.slice(P.length-t):P;return{from:o,to:yt(s),weeks:L,thresholds:{t1:b,t2:w,t3:x}}}function OA({dailyRows:e,to:t}={}){const n=Yu(t)||new Date(Date.UTC(new Date().getFullYear(),new Date().getMonth(),new Date().getDate())),a=new Map;for(const o of Array.isArray(e)?e:[]){const u=typeof o?.day=="string"?o.day:null;if(!u)continue;const c=Y_(o?.billable_total_tokens??o?.total_tokens)??0;a.set(u,Math.max(0,c))}let s=0;for(let o=0;o<370;o++){const u=yt(ni(n,-o));if((a.get(u)??0)>0){s+=1;continue}break}return s}const wc={},Q_="tokentracker",IA=["victorgpt/tokentracker","spacedriveapp/spacedrive","acme/alpha","acme/beta","neo/nebula","signal/flux","matrix/terminal","orbit/atlas","lumen/core","delta/horizon"],Ov=["NEO","TRINITY","MORPHEUS","ORACLE","CYPHER","SWITCH","APOC","TANK","SMITH","SERAPH","NIOBE","MOUSE","DOZER","LINK","BLADE"];function Pn(){if(typeof window<"u"){const e=new URLSearchParams(window.location.search),t=String(e.get("mock")||"").toLowerCase();if(t==="0"||t==="false"||t==="off"||t==="no")return!1;if(t==="1"||t==="true"||t==="on"||t==="yes")return!0}if(typeof import.meta<"u"&&wc){const e="".toLowerCase();if(e==="1"||e==="true")return!0}return!1}function jA(){if(typeof import.meta<"u"&&wc){const e="".trim();if(e)return e;const t="".trim();if(t)return t}if(typeof window<"u"){const e=new URLSearchParams(window.location.search),t=String(e.get("mock_now")||"").trim();if(t)return t;const n=String(e.get("mock_today")||"").trim();if(n)return n}return""}function UA(e){if(!e)return null;const t=String(e).trim();if(!t)return null;if(/^\d{4}-\d{2}-\d{2}$/.test(t)){const[a,s,o]=t.split("-").map(Number);if(!Number.isFinite(a)||!Number.isFinite(s)||!Number.isFinite(o))return null;const u=new Date(a,s-1,o,12,0,0);return Number.isFinite(u.getTime())?u:null}const n=new Date(t);return Number.isFinite(n.getTime())?n:null}function $4(){return Pn()?UA(jA()):null}function BA(){if(typeof import.meta<"u"&&wc){const e="".trim();if(e)return e}if(typeof window<"u"){const e=new URLSearchParams(window.location.search),t=String(e.get("mock_seed")||"").trim();if(t)return t}return Q_}function FA(){if(typeof import.meta<"u"&&wc){const e="".trim(),t=Number(e);if(Number.isFinite(t)&&t>0)return Math.floor(t)}if(typeof window<"u"){const e=new URLSearchParams(window.location.search),t=String(e.get("mock_missing")||"").trim(),n=Number(t);if(Number.isFinite(n)&&n>0)return Math.floor(n)}return 0}function Vo(e){return(e==null?BA():String(e)).trim()||Q_}function zo(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}function un(e){if(typeof e!="string")return null;const t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());if(!t)return null;const n=Number(t[1]),a=Number(t[2])-1,s=Number(t[3]),o=new Date(Date.UTC(n,a,s));return Number.isFinite(o.getTime())&&yt(o)===e.trim()?o:null}function Lo(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function X_(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth()+t,1))}function VA(e){return`${e.getUTCFullYear()}-${String(e.getUTCMonth()+1).padStart(2,"0")}`}function fs({from:e,to:t,seed:n}){const a=un(xr(new Date))||new Date,s=un(e)||a,o=un(t)||s,u=[],c=Vo(n),h=Math.floor((Date.UTC(o.getUTCFullYear(),o.getUTCMonth(),o.getUTCDate())-Date.UTC(s.getUTCFullYear(),s.getUTCMonth(),s.getUTCDate()))/864e5)+1;for(let f=0;f<h;f+=1){const m=Lo(s,f),y=yt(m),b=zo(`${c}:${y}`),w=b%1e3/1e3,x=.6+.4*Math.sin(f/6*Math.PI*.5),T=m.getUTCDay()===0||m.getUTCDay()===6?.65:1,P=18e3+Math.round(12e3*w),L=Math.max(0,Math.round(P*x*T)),D=Math.round(L*.46),M=Math.round(L*.34),j=Math.round(L*.14),K=Math.max(0,L-D-M-j);u.push({day:y,total_tokens:L,billable_total_tokens:L,input_tokens:D,output_tokens:M,cached_input_tokens:j,reasoning_output_tokens:K,conversation_count:1+b%5})}return u}function zA({day:e,seed:t}){const n=un(e)||un(xr(new Date))||new Date,a=yt(n),s=Vo(t),o=Array.from({length:48},(c,h)=>{const f=Math.floor(h/2),m=h%2===0?0:30,b=zo(`${s}:${a}:${f}:${m}`)%1e3/1e3,w=(f+m/60)/24,x=.4+.6*Math.sin(w*Math.PI*2),T=900+Math.round(700*b),P=Math.max(0,Math.round(T*x)),L=Math.round(P*.46),D=Math.round(P*.34),M=Math.round(P*.14),j=Math.max(0,P-L-D-M);return{hour:`${a}T${String(f).padStart(2,"0")}:${String(m).padStart(2,"0")}:00`,total_tokens:P,billable_total_tokens:P,input_tokens:L,output_tokens:D,cached_input_tokens:M,reasoning_output_tokens:j}}),u=Math.max(0,Math.min(48,FA()));if(u>0){const c=Date.now(),h=o.map((y,b)=>{const w=Date.parse(y.hour);return Number.isFinite(w)&&w<=c?{index:b,ts:w}:null}).filter(Boolean),f=Math.max(0,h.length-u),m=h.slice(f);for(const y of m){const b=o[y.index];b&&(o[y.index]={...b,missing:!0})}}return o}function $A({months:e=24,to:t,seed:n}){const a=un(t)||un(xr(new Date))||new Date,s=new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),1)),o=Vo(n),u=[];for(let c=e-1;c>=0;c-=1){const h=X_(s,-c),f=VA(h),y=zo(`${o}:${f}`)%1e3/1e3,b=.7+.3*Math.sin(u.length/6*Math.PI*.5),w=36e4+Math.round(2e5*y),x=Math.max(0,Math.round(w*b)),T=Math.round(x*.46),P=Math.round(x*.34),L=Math.round(x*.14),D=Math.max(0,x-T-P-L);u.push({month:f,total_tokens:x,billable_total_tokens:x,input_tokens:T,output_tokens:P,cached_input_tokens:L,reasoning_output_tokens:D})}return u}function bp(e){return e.reduce((t,n)=>(t.total_tokens+=Number(n.total_tokens||0),t.billable_total_tokens+=Number(n.billable_total_tokens||n.total_tokens||0),t.input_tokens+=Number(n.input_tokens||0),t.output_tokens+=Number(n.output_tokens||0),t.cached_input_tokens+=Number(n.cached_input_tokens||0),t.reasoning_output_tokens+=Number(n.reasoning_output_tokens||0),t.conversation_count+=Number(n.conversation_count||0),t),{total_tokens:0,billable_total_tokens:0,input_tokens:0,output_tokens:0,cached_input_tokens:0,reasoning_output_tokens:0,conversation_count:0})}function HA(e,t=1.75){const n=Number(e||0);return!Number.isFinite(n)||n<=0?"0.000000":(n*t/1e6).toFixed(6)}function Iv(e,t){const n=Number.isFinite(t)?t:0;return{total_tokens:Math.max(0,Math.round(e.total_tokens*n)),billable_total_tokens:Math.max(0,Math.round((e.billable_total_tokens??e.total_tokens)*n)),input_tokens:Math.max(0,Math.round(e.input_tokens*n)),output_tokens:Math.max(0,Math.round(e.output_tokens*n)),cached_input_tokens:Math.max(0,Math.round(e.cached_input_tokens*n)),reasoning_output_tokens:Math.max(0,Math.round(e.reasoning_output_tokens*n))}}function pf(e){return{...e,total_cost_usd:HA(e.total_tokens)}}function WA({from:e,to:t,seed:n}={}){const a=fs({from:e,to:t,seed:n});return{from:e,to:t,data:a}}function KA({day:e,seed:t}={}){const n=un(e)||new Date,a=yt(n),s=zA({day:a,seed:t});return{day:a,data:s}}function qA({months:e=24,to:t,seed:n}={}){const a=un(t)||un(xr(new Date))||new Date,s=yt(a),o=$A({months:e,to:s,seed:n}),u=X_(new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),1)),-(e-1));return{from:yt(u),to:s,months:e,data:o}}function GA({from:e,to:t,seed:n,rolling:a=!0}={}){const s=fs({from:e,to:t,seed:n}),o=bp(s),u=pf(o),c=a?YA({to:t,seed:n}):null;return{from:e,to:t,days:s.length,totals:u,...c?{rolling:c}:{}}}function YA({to:e,seed:t}={}){const n=un(e)||un(xr(new Date))||new Date,a=yt(n),s=yt(Lo(n,-6)),o=yt(Lo(n,-29)),u=fs({from:s,to:a,seed:t}),c=fs({from:o,to:a,seed:t});return{last_7d:jv({rows:u,from:s,to:a}),last_30d:jv({rows:c,from:o,to:a})}}function jv({rows:e,from:t,to:n}={}){const a=bp(e||[]),s=(e||[]).filter(u=>Number(u.billable_total_tokens??u.total_tokens)>0).length,o=s>0?Math.floor(a.billable_total_tokens/s):0;return{from:t,to:n,totals:{billable_total_tokens:a.billable_total_tokens,conversation_count:a.conversation_count},active_days:s,avg_per_active_day:o}}function ZA({seed:e,limit:t=3}={}){const n=Vo(e),a=IA.map((s,o)=>{const c=12e4+zo(`${n}:${s}`)%9e5,h=o%4*4200,f=Math.max(0,c+h),m=Math.max(0,Math.round(f*.96));return{project_key:s,project_ref:`https://github.com/${s}`,total_tokens:String(f),billable_total_tokens:String(m)}}).sort((s,o)=>Number(o.billable_total_tokens)-Number(s.billable_total_tokens)).slice(0,Math.max(1,Math.min(10,Math.floor(Number(t)||3))));return{generated_at:new Date().toISOString(),entries:a}}function QA(e){const t=un(xr(new Date))||new Date,n=String(e).trim().toLowerCase()||"week";if(n==="total")return{from:"1970-01-01",to:"9999-12-31"};if(n==="month"){const u=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1)),c=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,0));return{from:yt(u),to:yt(c)}}const a=t.getUTCDay(),s=yt(Lo(t,-a)),o=yt(Lo(t,-a+6));return{from:s,to:o}}function J_({seed:e,period:t,metric:n,limit:a=20,offset:s=0}={}){const o=Vo(e),u=Math.max(1,Math.min(100,Math.floor(Number(a)||20))),c=Math.max(0,Math.min(1e4,Math.floor(Number(s)||0))),h=String(n||"all").trim().toLowerCase()||"all",f=String(t||"week").trim().toLowerCase()||"week",m=f==="month"||f==="total"||f==="week"?f:"week",{from:y,to:b}=QA(m),w=250,x=w>0?Math.ceil(w/u):0,T=Math.floor(c/u)+1,P=Array.from({length:w},(W,S)=>{const Z=S+1,X=`00000000-0000-0000-0000-${String(Z).padStart(12,"0")}`,_e=Ov[Z%Ov.length],Re=18e4+zo(`${o}:${_e}:${Z}`)%9e5,fe=Math.max(0,Re+Z*1200),ce=Math.floor(fe*.28),ue=Math.floor(fe*.18),Me=Math.floor(fe*.1),H=Math.floor(fe*.1),Y=Math.floor(fe*.08),$=Math.floor(fe*.03),N=Math.floor(fe*.02),q=Math.floor(fe*.04),xe=Math.floor(fe*.03),Ae=Math.max(0,fe-ce-ue-Me-H-Y-$-N-q-xe),Se=Z%7!==0;return{id:Z,user_id:X,is_public:Se,is_me:!1,display_name:Se?_e:"Anonymous",avatar_url:null,gpt_tokens:ce,claude_tokens:ue,gemini_tokens:Me,cursor_tokens:H,opencode_tokens:Y,openclaw_tokens:Ae,hermes_tokens:$,kiro_tokens:N,copilot_tokens:q,kimi_tokens:xe,other_tokens:0,total_tokens:fe}}),L=Math.max(0,Math.min(w-1,Math.floor(w*.8)));P[L]&&(P[L].is_me=!0);const D=h==="gpt"||h==="codex"?"gpt_tokens":h==="claude"?"claude_tokens":h==="gemini"?"gemini_tokens":h==="cursor"?"cursor_tokens":h==="opencode"?"opencode_tokens":h==="openclaw"?"openclaw_tokens":h==="hermes"?"hermes_tokens":h==="kiro"?"kiro_tokens":h==="copilot"?"copilot_tokens":h==="kimi"?"kimi_tokens":"total_tokens",M=P.slice().sort((W,S)=>Number(S[D])-Number(W[D])||W.id-S.id).map((W,S)=>({user_id:W.is_public?W.user_id:null,rank:S+1,is_me:!!W.is_me,display_name:W.display_name,avatar_url:W.avatar_url,gpt_tokens:String(W.gpt_tokens),claude_tokens:String(W.claude_tokens),gemini_tokens:String(W.gemini_tokens),cursor_tokens:String(W.cursor_tokens),opencode_tokens:String(W.opencode_tokens),openclaw_tokens:String(W.openclaw_tokens),hermes_tokens:String(W.hermes_tokens??0),kiro_tokens:String(W.kiro_tokens??0),copilot_tokens:String(W.copilot_tokens??0),kimi_tokens:String(W.kimi_tokens??0),other_tokens:String(W.other_tokens??0),total_tokens:String(W.total_tokens),is_public:!!W.is_public})),j=M.find(W=>W?.is_me)||null,K=j?{rank:j.rank,gpt_tokens:j.gpt_tokens,claude_tokens:j.claude_tokens,gemini_tokens:j.gemini_tokens,cursor_tokens:j.cursor_tokens,opencode_tokens:j.opencode_tokens,openclaw_tokens:j.openclaw_tokens,hermes_tokens:j.hermes_tokens,kiro_tokens:j.kiro_tokens,copilot_tokens:j.copilot_tokens,kimi_tokens:j.kimi_tokens,other_tokens:j.other_tokens,total_tokens:j.total_tokens}:{rank:null,gpt_tokens:"0",claude_tokens:"0",gemini_tokens:"0",cursor_tokens:"0",opencode_tokens:"0",openclaw_tokens:"0",hermes_tokens:"0",kiro_tokens:"0",copilot_tokens:"0",kimi_tokens:"0",other_tokens:"0",total_tokens:"0"},G=M.slice(c,c+u);return{period:m,metric:h,from:y,to:b,generated_at:new Date().toISOString(),page:T,limit:u,offset:c,total_entries:w,total_pages:x,entries:G,me:K}}function XA({weeks:e=52,to:t,weekStartsOn:n="sun",seed:a}={}){const s=Z_({weeks:e,now:un(t)||un(xr(new Date))||new Date,weekStartsOn:n}),o=fs({from:s.from,to:s.to,seed:a});return{...NA({dailyRows:o,weeks:e,to:s.to,weekStartsOn:n}),week_starts_on:n,active_days:o.filter(c=>Number(c.billable_total_tokens??c.total_tokens)>0).length,streak_days:OA({dailyRows:o,to:s.to})}}function JA({from:e,to:t,seed:n}={}){const a=fs({from:e,to:t,seed:n}),s=bp(a),u=[{source:"codex",weight:.7,models:[{model:"gpt-5.2-codex",model_id:"gpt-5.2-codex",weight:.2},{model:"unknown",model_id:"unknown",weight:.8}]},{source:"claude",weight:.2,models:[{model:"claude-3.5",model_id:"claude-3.5",weight:.3},{model:"unknown",model_id:"unknown",weight:.7}]},{source:"every-code",weight:.1,models:[{model:"unknown",model_id:"unknown",weight:1}]}].map(c=>{const h=Iv(s,c.weight),f=c.models.map(m=>{const y=Iv(h,m.weight);return{model:m.model,model_id:m.model_id||m.model,totals:pf(y)}});return{source:c.source,totals:pf(h),models:f}});return{from:e,to:t,days:a.length,sources:u,pricing:{model:"mock",pricing_mode:"add",source:"mock",effective_from:xr(new Date),rates_per_million_usd:{input:"1.750000",cached_input:"0.175000",output:"14.000000",reasoning_output:"14.000000"}}}}function eL({from:e,to:t,source:n="claude"}={}){if(n==="codex")return{from:e,to:t,source:"codex",scope:"supported",totals:{input_tokens:142e4,cached_input_tokens:588e4,cache_creation_input_tokens:92e4,output_tokens:256e4,reasoning_output_tokens:61e4,total_tokens:1078e4},session_count:188,message_count:5436,tool_calls_breakdown:{categories:[{name:"Execution",calls:742,totals:{input_tokens:32e4,cached_input_tokens:104e4,cache_creation_input_tokens:11e4,output_tokens:46e4,reasoning_output_tokens:12e4,total_tokens:193e4},tools:[{name:"exec_command",calls:510,totals:{input_tokens:25e4,cached_input_tokens:82e4,cache_creation_input_tokens:8e4,output_tokens:37e4,reasoning_output_tokens:9e4,total_tokens:152e4}},{name:"write_stdin",calls:232,totals:{input_tokens:7e4,cached_input_tokens:22e4,cache_creation_input_tokens:3e4,output_tokens:9e4,reasoning_output_tokens:3e4,total_tokens:41e4}}]},{name:"Browser",calls:406,totals:{input_tokens:21e4,cached_input_tokens:88e4,cache_creation_input_tokens:9e4,output_tokens:42e4,reasoning_output_tokens:1e5,total_tokens:17e5},tools:[{name:"take_snapshot",calls:180,totals:{input_tokens:1e5,cached_input_tokens:4e5,cache_creation_input_tokens:4e4,output_tokens:18e4,reasoning_output_tokens:4e4,total_tokens:76e4}},{name:"click",calls:126,totals:{input_tokens:6e4,cached_input_tokens:25e4,cache_creation_input_tokens:3e4,output_tokens:12e4,reasoning_output_tokens:35e3,total_tokens:495e3}},{name:"evaluate_script",calls:100,totals:{input_tokens:5e4,cached_input_tokens:23e4,cache_creation_input_tokens:2e4,output_tokens:12e4,reasoning_output_tokens:25e3,total_tokens:445e3}}]}],tools_total:363e4,privacy:{includes_inputs:!1,note:"Aggregated tool names only; no tool arguments or outputs are included."}},exec_command_breakdown:{by_type:[{name:"test",calls:168,failures:14,duration_ms:482e3,max_duration_ms:18400,output_chars:45e4,output_lines:8600,totals:{input_tokens:9e4,cached_input_tokens:32e4,output_tokens:16e4,reasoning_output_tokens:42e3,total_tokens:612e3}},{name:"build",calls:116,failures:9,duration_ms:392e3,max_duration_ms:22100,output_chars:31e4,output_lines:5200,totals:{input_tokens:7e4,cached_input_tokens:24e4,output_tokens:13e4,reasoning_output_tokens:3e4,total_tokens:47e4}}],by_exit:[{name:"completed:0",calls:438,failures:0,duration_ms:104e4,max_duration_ms:22100,output_chars:83e4,output_lines:13100,totals:{input_tokens:22e4,cached_input_tokens:78e4,output_tokens:35e4,reasoning_output_tokens:82e3,total_tokens:1432e3}},{name:"completed:1",calls:72,failures:72,duration_ms:155e3,max_duration_ms:11800,output_chars:12e4,output_lines:2300,totals:{input_tokens:3e4,cached_input_tokens:11e4,output_tokens:55e3,reasoning_output_tokens:8e3,total_tokens:195e3}}]}};if(n!=="claude")return{from:e,to:t,source:n,scope:"unsupported",totals:{input_tokens:0,cached_input_tokens:0,cache_creation_input_tokens:0,output_tokens:0,reasoning_output_tokens:0,total_tokens:0},categories:["system_prefix","conversation_history","user_input","tool_calls","subagents","reasoning","assistant_response"].map(u=>({key:u,totals:{input_tokens:0,cached_input_tokens:0,cache_creation_input_tokens:0,output_tokens:0,reasoning_output_tokens:0,total_tokens:0},percent:0})),session_count:0,message_count:0};const a=[{key:"system_prefix",total:12896539},{key:"conversation_history",total:320207200},{key:"user_input",total:998025},{key:"tool_calls",total:4808739},{key:"subagents",total:1022828},{key:"reasoning",total:11073118},{key:"assistant_response",total:1289174}],s=a.reduce((u,c)=>u+c.total,0),o=a.map(({key:u,total:c})=>({key:u,totals:{input_tokens:u==="user_input"?c:0,cached_input_tokens:u==="conversation_history"?Math.round(c*.95):0,cache_creation_input_tokens:u==="system_prefix"?c:u==="conversation_history"?Math.round(c*.05):0,output_tokens:["tool_calls","subagents","reasoning","assistant_response"].includes(u)?c:0,reasoning_output_tokens:u==="reasoning"?c:0,total_tokens:c},percent:Number((c/s*100).toFixed(2))}));return{from:e,to:t,source:"claude",scope:"supported",totals:{input_tokens:998025,cached_input_tokens:Math.round(320207200*.95),cache_creation_input_tokens:12896539+Math.round(320207200*.05),output_tokens:18193859,reasoning_output_tokens:11073118,total_tokens:s},categories:o,session_count:312,message_count:12046}}let Eu=null;function tL(){Eu=null}async function nL(e=fetch){if(Eu)return Eu;const t=await e("/api/local-auth",{method:"GET",headers:{Accept:"application/json"},cache:"no-store"});if(!t.ok)throw new Error(`Local auth request failed with HTTP ${t.status}`);const n=await t.json().catch(()=>null),a=typeof n?.token=="string"?n.token.trim():"";if(!a)throw new Error("Local auth token missing from response");return Eu=a,a}async function _p(e=fetch){return{"x-tokentracker-local-auth":await nL(e)}}const ir={usageSummary:"tokentracker-usage-summary",usageDaily:"tokentracker-usage-daily",usageHourly:"tokentracker-usage-hourly",usageMonthly:"tokentracker-usage-monthly",usageHeatmap:"tokentracker-usage-heatmap",usageModelBreakdown:"tokentracker-usage-model-breakdown",usageCategoryBreakdown:"tokentracker-usage-category-breakdown",projectUsageSummary:"tokentracker-project-usage-summary",userStatus:"tokentracker-user-status",localSync:"tokentracker-local-sync",usageLimits:"tokentracker-usage-limits"};async function Sr(e,t,n){const a=new URL(`/functions/${e}`,window.location.origin);if(t)for(const[o,u]of Object.entries(t))u!=null&&u!==""&&a.searchParams.set(o,String(u));const s=await fetch(a.toString(),{headers:{Accept:"application/json"},cache:"no-store",...n});if(!s.ok){const o=new Error(`Request failed with HTTP ${s.status}`);throw o.status=s.status,o}return s.json()}function Oa({timeZone:e,tzOffsetMinutes:t}={}){const n={},a=typeof e=="string"?e.trim():"";return a&&(n.tz=a),Number.isFinite(t)&&(n.tz_offset_minutes=String(Math.trunc(t))),n}function mi({source:e,model:t}={}){const n={},a=typeof e=="string"?e.trim().toLowerCase():"";a&&(n.source=a);const s=typeof t=="string"?t.trim():"";return s&&(n.model=s),n}async function H4({from:e,to:t,source:n,model:a,timeZone:s,tzOffsetMinutes:o,rolling:u=!1,accessToken:c}={}){if(Pn())return GA({from:e,to:t,seed:c,rolling:u});const h=Oa({timeZone:s,tzOffsetMinutes:o}),f=mi({source:n,model:a}),m=u?{rolling:"1"}:{};return Sr(ir.usageSummary,{from:e,to:t,...f,...h,...m})}async function W4({from:e,to:t,source:n,limit:a,timeZone:s,tzOffsetMinutes:o,accessToken:u}={}){if(Pn())return ZA({seed:u,limit:a});const c=Oa({timeZone:s,tzOffsetMinutes:o}),f={...mi({source:n}),...c};return e&&(f.from=e),t&&(f.to=t),a!=null&&(f.limit=String(a)),Sr(ir.projectUsageSummary,f)}async function $o(e,t={}){const n=fi();if(!n)throw new Error("InsForge base URL not configured");const a=n.replace(/\/$/,""),s=new URL(`${a}/functions/${e}`);if(t.params)for(const[h,f]of Object.entries(t.params))f!=null&&f!==""&&s.searchParams.set(h,String(f));const o={Accept:"application/json","Content-Type":"application/json"},u=_c();u&&(o.apikey=u),t.accessToken&&xA(t.accessToken)&&(o.Authorization=`Bearer ${t.accessToken}`);const c=await fetch(s.toString(),{method:t.method||"GET",headers:o,...t.body!=null?{body:JSON.stringify(t.body)}:{}});if(!c.ok){const h=new Error(`Request failed with HTTP ${c.status}`);throw h.status=c.status,h}return c.json()}async function K4({accessToken:e,userId:t,period:n,metric:a,limit:s,offset:o}={}){return Pn()?J_({seed:e||t,period:n,metric:a,limit:s,offset:o}):$o("tokentracker-leaderboard",{params:{period:n,limit:s,offset:o,user_id:t}})}async function Uv({accessToken:e}={}){return $o("tokentracker-public-visibility",{accessToken:e,method:"GET"})}async function q4({accessToken:e,enabled:t,anonymous:n,display_name:a,github_url:s,show_github_url:o}={}){const u={};return t!==void 0&&(u.enabled=!!t),n!==void 0&&(u.anonymous=!!n),a!==void 0&&(u.display_name=String(a)),s!==void 0&&(u.github_url=s===null?null:String(s)),o!==void 0&&(u.show_github_url=!!o),$o("tokentracker-public-visibility",{accessToken:e,method:"POST",body:u})}async function G4({accessToken:e,period:t,source:n}={}){const a={};return t&&(a.period=t),typeof n=="string"&&n.trim()&&(a.source=n.trim()),$o("tokentracker-leaderboard-refresh",{accessToken:e,method:"POST",body:a})}async function Y4({accessToken:e,userId:t,period:n}={}){if(Pn()){const a=J_({seed:e,period:n,metric:"all",limit:250,offset:0}),o=(Array.isArray(a?.entries)?a.entries:[]).find(u=>u?.user_id===t)||null;return{period:a?.period??"week",from:a?.from??null,to:a?.to??null,generated_at:a?.generated_at??new Date().toISOString(),entry:o}}return $o("tokentracker-leaderboard-profile",{accessToken:e,params:{user_id:t,period:n}})}async function Z4(e={}){if(Pn()){const t=new Date().toISOString();return{user_id:"local-user",created_at:t,pro:{active:!1,sources:[],expires_at:null,partial:!1,as_of:t},subscriptions:{partial:!1,as_of:t,items:[]},install:{partial:!1,as_of:t,has_active_device_token:!1,has_active_device:!1,active_device_tokens:0,active_devices:0,latest_token_activity_at:null,latest_device_seen_at:null}}}return Sr(ir.userStatus)}async function Q4({signal:e}={}){const t=await _p(),n=await fetch(`/functions/${ir.localSync}`,{method:"POST",headers:{Accept:"application/json",...t},cache:"no-store",signal:e}),a=await n.json().catch(()=>({ok:!1,error:`Local sync request failed with HTTP ${n.status}`}));if(!n.ok||a?.ok===!1){const s=a?.error||a?.message||`Local sync request failed with HTTP ${n.status}`,o=new Error(s);throw o.status=n.status,o}return a}async function X4({from:e,to:t,source:n,timeZone:a,tzOffsetMinutes:s,accessToken:o}={}){if(Pn())return JA({from:e,to:t,seed:o});const u=Oa({timeZone:a,tzOffsetMinutes:s}),c=mi({source:n});return Sr(ir.usageModelBreakdown,{from:e,to:t,...c,...u})}async function J4({from:e,to:t,source:n="claude",timeZone:a,tzOffsetMinutes:s}={}){if(Pn())return eL({from:e,to:t,source:n});const o=Oa({timeZone:a,tzOffsetMinutes:s});return Sr(ir.usageCategoryBreakdown,{from:e,to:t,source:n,...o})}async function e3({from:e,to:t,source:n,model:a,timeZone:s,tzOffsetMinutes:o,accessToken:u}={}){if(Pn())return WA({from:e,to:t,seed:u});const c=Oa({timeZone:s,tzOffsetMinutes:o}),h=mi({source:n,model:a});return Sr(ir.usageDaily,{from:e,to:t,...h,...c})}async function t3({day:e,source:t,model:n,timeZone:a,tzOffsetMinutes:s,accessToken:o}={}){if(Pn())return KA({day:e,seed:o});const u=Oa({timeZone:a,tzOffsetMinutes:s}),c=mi({source:t,model:n}),h=e?{day:e,...c,...u}:{...c,...u};return Sr(ir.usageHourly,h)}async function n3({months:e,to:t,source:n,model:a,timeZone:s,tzOffsetMinutes:o,accessToken:u}={}){if(Pn())return qA({months:e,to:t,seed:u});const c=Oa({timeZone:s,tzOffsetMinutes:o}),h=mi({source:n,model:a});return Sr(ir.usageMonthly,{...e?{months:String(e)}:{},...t?{to:t}:{},...h,...c})}async function r3(e={}){const t=e?.refresh?{refresh:"1"}:void 0;return Sr(ir.usageLimits,t)}async function a3({weeks:e,to:t,weekStartsOn:n,source:a,model:s,timeZone:o,tzOffsetMinutes:u,accessToken:c}={}){if(Pn())return XA({weeks:e,to:t,weekStartsOn:n,seed:c});const h=Oa({timeZone:o,tzOffsetMinutes:u}),f=mi({source:a,model:s});return Sr(ir.usageHeatmap,{weeks:String(e),to:t,week_starts_on:n,...f,...h})}const ew=k.createContext(null);function rL(e){if(!e||typeof e!="object")return"";const t=e.user_metadata&&typeof e.user_metadata=="object"?e.user_metadata:{},n=e.profile&&typeof e.profile=="object"?e.profile:{},a=t.full_name||t.name||n.name||t.user_name||t.preferred_username;return typeof a=="string"&&a.trim()?a.trim():typeof e.email=="string"&&e.email.includes("@")?e.email.split("@")[0].trim()||e.email.trim():typeof e.email=="string"?e.email.trim():""}function Bv(e){if(!e||typeof e!="object")return null;const t=e,n=t.session&&typeof t.session=="object"?t.session:null,a=typeof t.accessToken=="string"&&t.accessToken||typeof t.access_token=="string"&&t.access_token||n&&typeof n.accessToken=="string"&&n.accessToken||n&&typeof n.access_token=="string"&&n.access_token||null;return a&&a.length>0?a:null}async function Th(e,t={}){if(!e)return null;const n=Math.max(0,Math.floor(Number(t.skewMs)||6e4)),a=e.tokenManager,s=()=>a?.getAccessToken?.()??a?.getSession?.()?.accessToken??null;let o=s();if(!o||SA(o,n)){const{data:u}=await e.auth.refreshSession();if(o=s()??Bv(u)??null,!o&&typeof e.auth.getCurrentUser=="function")try{await e.auth.getCurrentUser(),o=s()??Bv(u)??null}catch{}}return o||null}function aL({children:e}){const[t,n]=k.useState(null),[a,s]=k.useState(null),[o,u]=k.useState(!0);k.useEffect(()=>{if(!ff()){n(null),s(null),u(!1);return}n(gA())},[]),k.useEffect(()=>{if(!t)return;let G=!0;return u(!0),(async()=>{try{let{data:W,error:S}=await t.auth.getCurrentUser();if(!G)return;if(!S&&!W?.user){if(await new Promise(X=>setTimeout(X,150)),!G)return;const Z=await t.auth.getCurrentUser();W=Z.data,S=Z.error}if(S){s(null);return}s(W?.user??null)}catch{G&&s(null)}finally{G&&u(!1)}})(),()=>{G=!1}},[t]);const c=k.useCallback(async()=>{if(t)try{let{data:G,error:W}=await t.auth.getCurrentUser();if(!W&&!G?.user){await new Promise(Z=>setTimeout(Z,150));const S=await t.auth.getCurrentUser();G=S.data,W=S.error}if(W){s(null);return}s(G?.user??null)}catch{s(null)}},[t]),h=k.useCallback(async(G,W)=>{if(!t)return{error:new Error("InsForge client not configured")};const S=typeof window<"u"&&window.webkit?.messageHandlers?.nativeOAuth;if(S){const _e=typeof W=="string"&&W.trim()?W.trim():`${window.location.origin}/auth/callback`,oe=await t.auth.signInWithOAuth({provider:G,redirectTo:_e,skipBrowserRedirect:!0});if(oe.data?.url){try{const Re=await _p();await fetch("/api/auth-bridge/verifier",{method:"PUT",headers:{"Content-Type":"application/json",...Re},body:JSON.stringify({native:!0})})}catch{}S.postMessage(oe.data.url)}return oe}const Z=typeof W=="string"&&W.trim()?W.trim():typeof window<"u"?`${window.location.origin}/dashboard`:void 0;return await t.auth.signInWithOAuth({provider:G,redirectTo:Z})},[t]),f=k.useCallback(async G=>{if(!t)return{data:null,error:new Error("InsForge client not configured")};const{data:W,error:S}=await t.auth.signInWithPassword(G);return W?.user&&s(W.user),{data:W,error:S}},[t]),m=k.useCallback(async G=>{if(!t)return{data:null,error:new Error("InsForge client not configured")};const{data:W,error:S}=await t.auth.signUp(G);return W?.user&&W?.accessToken&&s(W.user),{data:W,error:S}},[t]),y=k.useCallback(async()=>t?t.auth.getPublicAuthConfig():{data:null,error:new Error("InsForge client not configured")},[t]),b=k.useCallback(async()=>{t&&(await t.auth.signOut(),K_(),tL(),s(null))},[t]),w=k.useCallback(async()=>Th(t),[t]),[x,T]=k.useState(null),[P,L]=k.useState(!1),D=k.useMemo(()=>rL(a),[a]);k.useEffect(()=>{if(!a||!t){T(null),L(!1);return}let G=!0;return(async()=>{try{const W=await Th(t);if(!G||!W){G&&L(!0);return}const S=await Uv({accessToken:W});G&&S?.display_name&&T(S.display_name)}catch{}G&&L(!0)})(),()=>{G=!1}},[a,t]);const M=P?x||D:"",j=k.useCallback(async()=>{if(t)try{const G=await Th(t);if(!G)return;const W=await Uv({accessToken:G});W?.display_name&&T(W.display_name)}catch{}},[t]),K=k.useMemo(()=>!ff()||!t?{enabled:!1,client:null,user:null,signedIn:!1,loading:!1,displayName:"",refreshUser:async()=>{},refreshDisplayName:async()=>{},signInWithOAuth:async()=>({error:new Error("InsForge not configured")}),signInWithPassword:async()=>({data:null,error:new Error("InsForge not configured")}),signUp:async()=>({data:null,error:new Error("InsForge not configured")}),getPublicAuthConfig:async()=>({data:null,error:new Error("InsForge not configured")}),signOut:async()=>{},getAccessToken:async()=>null}:{enabled:!0,client:t,user:a,signedIn:!!a,loading:o,displayName:M,refreshUser:c,refreshDisplayName:j,signInWithOAuth:h,signInWithPassword:f,signUp:m,getPublicAuthConfig:y,signOut:b,getAccessToken:w},[t,a,o,M,c,j,h,f,m,y,b,w]);return I.jsx(ew.Provider,{value:K,children:e})}function Ho(){return k.useContext(ew)}const iL=`key,module,page,component,slot,text,notes,status
|
|
42
|
+
`);s=c.pop()||"";for(const h of c)if(h.startsWith("data: ")){const f=h.slice(6).trim();if(f)try{const m=JSON.parse(f);if((m.chunk||m.content)&&(yield{id:`chatcmpl-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:t,choices:[{index:0,delta:{content:m.chunk||m.content},finish_reason:null}]}),m.tool_calls?.length&&(yield{id:`chatcmpl-${Date.now()}`,object:"chat.completion.chunk",created:Math.floor(Date.now()/1e3),model:t,choices:[{index:0,delta:{tool_calls:m.tool_calls},finish_reason:"tool_calls"}]}),m.done){n.releaseLock();return}}catch{console.warn("Failed to parse SSE data:",f)}}}}finally{n.releaseLock()}}},uA=class{constructor(e){this.http=e}async create(e){const t=await this.http.post("/api/ai/embeddings",e);return{object:t.object,data:t.data,model:t.metadata?.model,usage:t.metadata?.usage?{prompt_tokens:t.metadata.usage.promptTokens||0,total_tokens:t.metadata.usage.totalTokens||0}:{prompt_tokens:0,total_tokens:0}}}},cA=class{constructor(e){this.http=e}async generate(e){const t=await this.http.post("/api/ai/image/generation",e);let n=[];return t.images&&t.images.length>0?n=t.images.map(a=>({b64_json:a.imageUrl.replace(/^data:image\/\w+;base64,/,""),content:t.text})):t.text&&(n=[{content:t.text}]),{created:Math.floor(Date.now()/1e3),data:n,...t.metadata?.usage&&{usage:{total_tokens:t.metadata.usage.totalTokens||0,input_tokens:t.metadata.usage.promptTokens||0,output_tokens:t.metadata.usage.completionTokens||0}}}}},dA=class z_{constructor(t,n){this.http=t,this.functionsUrl=n||z_.deriveSubhostingUrl(t.baseUrl)}static deriveSubhostingUrl(t){try{const{hostname:n}=new URL(t);return n.endsWith(".insforge.app")?`https://${n.split(".")[0]}.functions.insforge.app`:void 0}catch{return}}async invoke(t,n={}){const{method:a="POST",body:s,headers:o={}}=n;if(this.functionsUrl)try{return{data:await this.http.request(a,`${this.functionsUrl}/${t}`,{body:s,headers:o}),error:null}}catch(u){if(u instanceof Error&&u.name==="AbortError")throw u;if(!(u instanceof We&&u.statusCode===404))return{data:null,error:u instanceof We?u:new We(u instanceof Error?u.message:"Function invocation failed",500,"FUNCTION_ERROR")}}try{const u=`/functions/${t}`;return{data:await this.http.request(a,u,{body:s,headers:o}),error:null}}catch(u){if(u instanceof Error&&u.name==="AbortError")throw u;return{data:null,error:u instanceof We?u:new We(u instanceof Error?u.message:"Function invocation failed",500,"FUNCTION_ERROR")}}}},Nv=1e4,hA=class{constructor(e,t,n){this.socket=null,this.connectPromise=null,this.subscribedChannels=new Set,this.eventListeners=new Map,this.baseUrl=e,this.tokenManager=t,this.anonKey=n,this.tokenManager.onTokenChange=()=>this.onTokenChange()}notifyListeners(e,t){const n=this.eventListeners.get(e);if(n)for(const a of n)try{a(t)}catch(s){console.error(`Error in ${e} callback:`,s)}}connect(){return this.socket?.connected?Promise.resolve():this.connectPromise?this.connectPromise:(this.connectPromise=new Promise((e,t)=>{const n=this.tokenManager.getAccessToken()??this.anonKey;this.socket=Cu(this.baseUrl,{transports:["websocket"],auth:n?{token:n}:void 0});let a=!0,s=null;const o=()=>{s&&(clearTimeout(s),s=null)};s=setTimeout(()=>{a&&(a=!1,this.connectPromise=null,this.socket?.disconnect(),this.socket=null,t(new Error(`Connection timeout after ${Nv}ms`)))},Nv),this.socket.on("connect",()=>{o();for(const u of this.subscribedChannels)this.socket.emit("realtime:subscribe",{channel:u});this.notifyListeners("connect"),a&&(a=!1,this.connectPromise=null,e())}),this.socket.on("connect_error",u=>{o(),this.notifyListeners("connect_error",u),a&&(a=!1,this.connectPromise=null,t(u))}),this.socket.on("disconnect",u=>{this.notifyListeners("disconnect",u)}),this.socket.on("realtime:error",u=>{this.notifyListeners("error",u)}),this.socket.onAny((u,c)=>{u!=="realtime:error"&&this.notifyListeners(u,c)})}),this.connectPromise)}disconnect(){this.socket&&(this.socket.disconnect(),this.socket=null),this.subscribedChannels.clear()}onTokenChange(){const e=this.tokenManager.getAccessToken()??this.anonKey;this.socket&&(this.socket.auth=e?{token:e}:{}),this.socket&&(this.socket.connected||this.connectPromise)&&(this.socket.disconnect(),this.socket.connect())}get isConnected(){return this.socket?.connected??!1}get connectionState(){return this.socket?this.socket.connected?"connected":"connecting":"disconnected"}get socketId(){return this.socket?.id}async subscribe(e){if(this.subscribedChannels.has(e))return{ok:!0,channel:e};if(!this.socket?.connected)try{await this.connect()}catch(t){const n=t instanceof Error?t.message:"Connection failed";return{ok:!1,channel:e,error:{code:"CONNECTION_FAILED",message:n}}}return new Promise(t=>{this.socket.emit("realtime:subscribe",{channel:e},n=>{n.ok&&this.subscribedChannels.add(e),t(n)})})}unsubscribe(e){this.subscribedChannels.delete(e),this.socket?.connected&&this.socket.emit("realtime:unsubscribe",{channel:e})}async publish(e,t,n){if(!this.socket?.connected)throw new Error("Not connected to realtime server. Call connect() first.");this.socket.emit("realtime:publish",{channel:e,event:t,payload:n})}on(e,t){this.eventListeners.has(e)||this.eventListeners.set(e,new Set),this.eventListeners.get(e).add(t)}off(e,t){const n=this.eventListeners.get(e);n&&(n.delete(t),n.size===0&&this.eventListeners.delete(e))}once(e,t){const n=a=>{this.off(e,n),t(a)};this.on(e,n)}getSubscribedChannels(){return Array.from(this.subscribedChannels)}},fA=class{constructor(e){this.http=e}async send(e){try{return{data:await this.http.post("/api/email/send-raw",e),error:null}}catch(t){if(t instanceof Error&&t.name==="AbortError")throw t;return{data:null,error:t instanceof We?t:new We(t instanceof Error?t.message:"Email send failed",500,"EMAIL_ERROR")}}}},pA=class{constructor(e={}){const t=new I_(e.debug);this.tokenManager=new F_,this.http=new ZR(e,this.tokenManager,t),e.edgeFunctionToken&&(this.http.setAuthToken(e.edgeFunctionToken),this.tokenManager.setAccessToken(e.edgeFunctionToken)),this.auth=new tA(this.http,this.tokenManager,{isServerMode:e.isServerMode??!1}),this.database=new rA(this.http,this.tokenManager),this.storage=new iA(this.http),this.ai=new sA(this.http),this.functions=new dA(this.http,e.functionsUrl),this.realtime=new hA(this.http.baseUrl,this.tokenManager,e.anonKey),this.emails=new fA(this.http)}getHttpClient(){return this.http}};function mA(e){return new pA(e)}const mp={VITE_INSFORGE_ANON_KEY:"ik_9f35735991b684f7cf57fa00bb4d0487",VITE_INSFORGE_BASE_URL:"https://srctyff5.us-east.insforge.app"};function fi(){const e=typeof import.meta<"u"?mp:void 0;return(e?.VITE_INSFORGE_BASE_URL||e?.VITE_TOKENTRACKER_BACKEND_BASE_URL||"").trim()}function $_(){if(typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"))return window.location.origin;const t=typeof import.meta<"u"?mp:void 0;return(t?.VITE_INSFORGE_BASE_URL||t?.VITE_TOKENTRACKER_BACKEND_BASE_URL||"").trim()}function _c(){const e=typeof import.meta<"u"?mp:void 0;return(e?.VITE_INSFORGE_ANON_KEY||e?.VITE_TOKENTRACKER_BACKEND_ANON_KEY||"").trim()}function ff(){return!!$_()}let Sh=null;function gA(){return ff()?(Sh||(Sh=mA({baseUrl:$_(),anonKey:_c()||void 0,autoRefreshToken:!0})),Sh):null}const H_="tokentracker_cloud_sync_enabled",yA="tokentracker_cloud_device_session_v1",gp="tokentracker_cloud_last_sync_ts";let yp=null;function vp(){try{localStorage.removeItem(yA)}catch{}}function vA(){if(typeof window>"u")return!1;const e=window.location.hostname;return e==="localhost"||e==="127.0.0.1"}function bA(){try{const e=localStorage.getItem(H_);return e===null||e===""?!1:e==="1"||e==="true"}catch{return!1}}function L4(e){try{localStorage.setItem(H_,e?"1":"0")}catch{}}function W_(){return vp(),yp}function _A(e){yp=e,vp()}function K_(){yp=null;try{localStorage.removeItem(gp)}catch{}vp()}function wA(){try{const e=Number(localStorage.getItem(gp));return Number.isFinite(e)?e:0}catch{return 0}}function q_(e){try{localStorage.setItem(gp,String(e))}catch{}}function Ea(e){if(typeof e!="string")return null;const t=e.trim();return t.length>0?t:null}function kA(e){const t=Ea(e);if(!t)return null;const n=t.split(".");if(n.length<2)return null;const a=n[1];try{const s=a.replace(/-/g,"+").replace(/_/g,"/").padEnd(a.length+(4-a.length%4)%4,"="),o=typeof atob=="function"?atob(s):Buffer.from(s,"base64").toString("utf8"),c=JSON.parse(o)?.exp;return typeof c!="number"||!Number.isFinite(c)||c<=0?null:Math.floor(c*1e3)}catch{return null}}function xA(e){const t=Ea(e);if(!t)return!1;const n=t.split(".");if(n.length!==3)return!1;try{for(let a=0;a<2;a++){const s=n[a];if(!/^[A-Za-z0-9_-]+$/.test(s))return!1;const o=s.replace(/-/g,"+").replace(/_/g,"/").padEnd(s.length+(4-s.length%4)%4,"="),u=typeof atob=="function"?atob(o):Buffer.from(o,"base64").toString("utf8");a===1&&JSON.parse(u)}return!0}catch{return!1}}function SA(e,t=3e4){const n=kA(e);return n?n<=Date.now()+Math.max(0,Number(t)||0):!1}async function PA(e){if(!e)return null;if(typeof e=="string")return Ea(e);if(typeof e=="function")try{const t=await e();return Ea(t)}catch{return null}if(typeof e=="object"){if(typeof e.getAccessToken=="function"){try{const t=await e.getAccessToken(),n=Ea(t);if(n)return n}catch{}return Ea(e.accessToken)}return null}return Ea(e)}async function D4(e,t={}){const n=Math.max(1,Math.min(12,Math.floor(Number(t.maxAttempts)||8))),a=Math.max(20,Math.floor(Number(t.baseDelayMs)||50));for(let s=0;s<n;s++){const o=await PA(e);if(o)return o;s<n-1&&await new Promise(u=>setTimeout(u,a*(s+1)))}return null}function M4(e){return typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1")||typeof e=="function"||e&&typeof e=="object"&&typeof e.getAccessToken=="function"?!0:!!Ea(e)}function N4(){if(typeof Intl>"u"||!Intl.DateTimeFormat)return null;try{return Intl.DateTimeFormat().resolvedOptions().timeZone||null}catch{return null}}function O4(e=new Date){const t=e instanceof Date?e:new Date(e);if(!Number.isFinite(t.getTime()))return 0;const n=t.getTimezoneOffset();return Number.isFinite(n)?-n:0}function G_(e){if(!Number.isFinite(e)||e===0)return"UTC";const t=e>=0?"+":"-",n=Math.abs(e),a=String(Math.floor(n/60)).padStart(2,"0"),s=String(n%60).padStart(2,"0");return`UTC${t}${a}:${s}`}function I4({timeZone:e,offsetMinutes:t}={}){const n=G_(t);return e&&e!=="UTC"?`${e} (${n})`:n}function j4({timeZone:e,offsetMinutes:t}={}){return Number.isFinite(t)?G_(t):e||"UTC"}function U4({timeZone:e,offsetMinutes:t,date:n=new Date}={}){const a=n instanceof Date?n:new Date(n);if(!Number.isFinite(a.getTime()))return"";if(e&&typeof Intl<"u"&&Intl.DateTimeFormat)try{const u=new Intl.DateTimeFormat("en-CA",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(a).reduce((m,y)=>(y.type&&y.value&&(m[y.type]=y.value),m),{}),c=u.year,h=u.month,f=u.day;if(c&&h&&f)return`${c}-${h}-${f}`}catch{}if(typeof t=="number"&&Number.isFinite(t)){const s=new Date(a.getTime()+t*6e4);return CA(s)}return EA(a)}function TA({timeZone:e,offsetMinutes:t,date:n=new Date}={}){const a=n instanceof Date?n:new Date(n);if(!Number.isFinite(a.getTime()))return null;if(e&&typeof Intl<"u"&&Intl.DateTimeFormat)try{const u=new Intl.DateTimeFormat("en-CA",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(a).reduce((m,y)=>(y.type&&y.value&&(m[y.type]=y.value),m),{}),c=Number(u.year),h=Number(u.month),f=Number(u.day);if(Number.isFinite(c)&&Number.isFinite(h)&&Number.isFinite(f))return{year:c,month:h,day:f}}catch{}if(typeof t=="number"&&Number.isFinite(t)){const s=new Date(a.getTime()+t*6e4);return{year:s.getUTCFullYear(),month:s.getUTCMonth()+1,day:s.getUTCDate()}}return{year:a.getFullYear(),month:a.getMonth()+1,day:a.getDate()}}function B4({timeZone:e,offsetMinutes:t}={}){return e?`tz:${e}`:typeof t=="number"&&Number.isFinite(t)?`offset:${Math.trunc(t)}`:"utc"}function CA(e){const t=e.getUTCFullYear(),n=String(e.getUTCMonth()+1).padStart(2,"0"),a=String(e.getUTCDate()).padStart(2,"0");return`${t}-${n}-${a}`}function EA(e){const t=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),a=String(e.getDate()).padStart(2,"0");return`${t}-${n}-${a}`}function yt(e){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate())).toISOString().slice(0,10)}function xr(e){const t=e instanceof Date?e:new Date(e);if(!Number.isFinite(t.getTime()))return"";const n=t.getFullYear(),a=String(t.getMonth()+1).padStart(2,"0"),s=String(t.getDate()).padStart(2,"0");return`${n}-${a}-${s}`}function RA(e){if(!e)return null;const t=String(e).trim(),n=t.split("-");if(n.length!==3)return null;const a=Number(n[0]),s=Number(n[1])-1,o=Number(n[2]);if(!Number.isFinite(a)||!Number.isFinite(s)||!Number.isFinite(o))return null;const u=new Date(Date.UTC(a,s,o));return Number.isFinite(u.getTime())&&yt(u)===t?u:null}function AA(e){if(!e)return"";const t=e.year,n=String(e.month).padStart(2,"0"),a=String(e.day).padStart(2,"0");return!t||!n||!a?"":`${t}-${n}-${a}`}function LA(e,{timeZone:t,offsetMinutes:n,now:a}={}){const s=a instanceof Date&&Number.isFinite(a.getTime())?a:new Date,o=TA({timeZone:t,offsetMinutes:n,date:s});if(!o){const h=xr(new Date);return{from:h,to:h}}const u=AA(o),c=RA(u);if(!c)return{from:u,to:u};if(e==="day")return{from:u,to:u};if(e==="week"){const h=new Date(c),m=(h.getUTCDay()+6)%7;h.setUTCDate(h.getUTCDate()-m);const y=new Date(h);return y.setUTCDate(y.getUTCDate()+6),{from:yt(h),to:yt(y)}}if(e==="month"){const h=new Date(Date.UTC(c.getUTCFullYear(),c.getUTCMonth(),1)),f=new Date(Date.UTC(c.getUTCFullYear(),c.getUTCMonth()+1,0));return{from:yt(h),to:yt(f)}}if(e==="total"){const h=new Date(Date.UTC(c.getUTCFullYear(),c.getUTCMonth()-23,1));return{from:yt(h),to:u}}return LA("week")}function F4(e){if(e==null)return"-";try{if(typeof e=="bigint")return new Intl.NumberFormat().format(e);if(typeof e=="number")return new Intl.NumberFormat().format(e);const t=String(e).trim();return/^[0-9]+$/.test(t)?new Intl.NumberFormat().format(BigInt(t)):t}catch{return String(e)}}function V4(e,{thousandSuffix:t="K",millionSuffix:n="M",billionSuffix:a="B",decimals:s=1}={}){const o=Number(String(e));if(!Number.isFinite(o))return"-";const u=o<0?"-":"",c=Math.abs(o),h=Math.max(0,Math.min(6,Math.floor(s)));if(c<1e3)return`${u}${String(c)}`;const f=(w,x)=>{const T=w.toFixed(h),P=Number(T).toString();return`${u}${P}${x}`},m=(w,x,T)=>{const P=w.toFixed(h),L=Number(P);return T&&L>=1e3?f(L/1e3,T):`${u}${L.toString()}${x}`};if(c>=1e9)return f(c/1e9,a);if(c>=1e6)return m(c/1e6,n,a);const y=c/1e3,b=Number(y.toFixed(h));return b>=1e3?f(b/1e3,n):f(b,t)}function Y_(e){const t=Number(String(e));return Number.isFinite(t)?t:null}function z4(e,{decimals:t=2}={}){if(e==null)return"-";const n=String(e).trim();if(!n)return"-";const a=n.match(/^(-?\d+)(?:\.(\d+))?$/);if(!a)return n;const s=a[1],o=a[2]||"";let u=s;try{u=new Intl.NumberFormat().format(BigInt(s))}catch{u=s}const c=Math.max(0,Math.min(6,Math.floor(t))),h=c?o.slice(0,c).padEnd(c,"0"):"",f=s.startsWith("-")?"-":"",m=c?`${u.replace("-","")}.${h}`:u.replace("-","");return`${f}$${m}`}function Yu(e){if(typeof e!="string")return null;const t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());if(!t)return null;const n=Number(t[1]),a=Number(t[2])-1,s=Number(t[3]),o=new Date(Date.UTC(n,a,s));return Number.isFinite(o.getTime())&&yt(o)===e.trim()?o:null}function ni(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function DA(e,t){const n=Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate())-Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate());return Math.floor(n/864e5)}function Ph(e,t){if(!Array.isArray(e)||e.length===0)return 0;const n=e.length,a=(n-1)*t,s=Math.floor(a),o=a-s,u=e[s]??e[n-1],c=e[Math.min(n-1,s+1)]??e[n-1];return Math.round(u+(c-u)*o)}function MA(e){return e<=0?0:e>=4?4:e}function Z_({weeks:e=52,now:t,weekStartsOn:n="sun"}={}){const a=t instanceof Date&&Number.isFinite(t.getTime())?t:new Date,s=xr(a),o=Yu(s)||new Date(Date.UTC(a.getFullYear(),a.getMonth(),a.getDate())),u=n==="mon"?1:0,c=o.getUTCDay(),h=ni(o,-((c-u+7)%7)),f=ni(h,-7*(Math.max(1,e)-1));return{from:yt(f),to:s}}function NA({dailyRows:e,weeks:t=52,to:n,weekStartsOn:a="sun"}={}){const s=Yu(n)||new Date(Date.UTC(new Date().getFullYear(),new Date().getMonth(),new Date().getDate())),{from:o}=Z_({weeks:t,now:s,weekStartsOn:a}),u=Yu(o)||ni(s,-(t*7-1)),c=(()=>{const j=(u.getUTCDay()-(a==="mon"?1:0)+7)%7;return ni(u,-j)})(),h=new Map;for(const D of Array.isArray(e)?e:[]){const M=typeof D?.day=="string"?D.day:null;if(!M)continue;const j=Y_(D?.billable_total_tokens??D?.total_tokens)??0;h.set(M,Math.max(0,j))}const f=DA(c,s)+1,m=Math.ceil(f/7),y=[];for(let D=0;D<f;D++){const M=ni(c,D),j=yt(M),K=h.get(j)??0;K>0&&y.push(K)}y.sort((D,M)=>D-M);const b=Ph(y,.5),w=Ph(y,.75),x=Ph(y,.9);function T(D){return!D||D<=0?0:D<=b?1:D<=w?2:D<=x?3:4}const P=[];for(let D=0;D<m;D++){const M=[];for(let j=0;j<7;j++){const K=D*7+j,G=ni(c,K);if(G.getTime()>s.getTime()){M.push(null);continue}const W=yt(G),S=h.get(W)??0;M.push({day:W,value:S,level:MA(T(S))})}P.push(M)}const L=P.length>t?P.slice(P.length-t):P;return{from:o,to:yt(s),weeks:L,thresholds:{t1:b,t2:w,t3:x}}}function OA({dailyRows:e,to:t}={}){const n=Yu(t)||new Date(Date.UTC(new Date().getFullYear(),new Date().getMonth(),new Date().getDate())),a=new Map;for(const o of Array.isArray(e)?e:[]){const u=typeof o?.day=="string"?o.day:null;if(!u)continue;const c=Y_(o?.billable_total_tokens??o?.total_tokens)??0;a.set(u,Math.max(0,c))}let s=0;for(let o=0;o<370;o++){const u=yt(ni(n,-o));if((a.get(u)??0)>0){s+=1;continue}break}return s}const wc={},Q_="tokentracker",IA=["tokentracker/tokentracker","spacedriveapp/spacedrive","acme/alpha","acme/beta","neo/nebula","signal/flux","matrix/terminal","orbit/atlas","lumen/core","delta/horizon"],Ov=["NEO","TRINITY","MORPHEUS","ORACLE","CYPHER","SWITCH","APOC","TANK","SMITH","SERAPH","NIOBE","MOUSE","DOZER","LINK","BLADE"];function Pn(){if(typeof window<"u"){const e=new URLSearchParams(window.location.search),t=String(e.get("mock")||"").toLowerCase();if(t==="0"||t==="false"||t==="off"||t==="no")return!1;if(t==="1"||t==="true"||t==="on"||t==="yes")return!0}if(typeof import.meta<"u"&&wc){const e="".toLowerCase();if(e==="1"||e==="true")return!0}return!1}function jA(){if(typeof import.meta<"u"&&wc){const e="".trim();if(e)return e;const t="".trim();if(t)return t}if(typeof window<"u"){const e=new URLSearchParams(window.location.search),t=String(e.get("mock_now")||"").trim();if(t)return t;const n=String(e.get("mock_today")||"").trim();if(n)return n}return""}function UA(e){if(!e)return null;const t=String(e).trim();if(!t)return null;if(/^\d{4}-\d{2}-\d{2}$/.test(t)){const[a,s,o]=t.split("-").map(Number);if(!Number.isFinite(a)||!Number.isFinite(s)||!Number.isFinite(o))return null;const u=new Date(a,s-1,o,12,0,0);return Number.isFinite(u.getTime())?u:null}const n=new Date(t);return Number.isFinite(n.getTime())?n:null}function $4(){return Pn()?UA(jA()):null}function BA(){if(typeof import.meta<"u"&&wc){const e="".trim();if(e)return e}if(typeof window<"u"){const e=new URLSearchParams(window.location.search),t=String(e.get("mock_seed")||"").trim();if(t)return t}return Q_}function FA(){if(typeof import.meta<"u"&&wc){const e="".trim(),t=Number(e);if(Number.isFinite(t)&&t>0)return Math.floor(t)}if(typeof window<"u"){const e=new URLSearchParams(window.location.search),t=String(e.get("mock_missing")||"").trim(),n=Number(t);if(Number.isFinite(n)&&n>0)return Math.floor(n)}return 0}function Vo(e){return(e==null?BA():String(e)).trim()||Q_}function zo(e){let t=2166136261;for(let n=0;n<e.length;n+=1)t^=e.charCodeAt(n),t=Math.imul(t,16777619);return t>>>0}function un(e){if(typeof e!="string")return null;const t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());if(!t)return null;const n=Number(t[1]),a=Number(t[2])-1,s=Number(t[3]),o=new Date(Date.UTC(n,a,s));return Number.isFinite(o.getTime())&&yt(o)===e.trim()?o:null}function Lo(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function X_(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth()+t,1))}function VA(e){return`${e.getUTCFullYear()}-${String(e.getUTCMonth()+1).padStart(2,"0")}`}function fs({from:e,to:t,seed:n}){const a=un(xr(new Date))||new Date,s=un(e)||a,o=un(t)||s,u=[],c=Vo(n),h=Math.floor((Date.UTC(o.getUTCFullYear(),o.getUTCMonth(),o.getUTCDate())-Date.UTC(s.getUTCFullYear(),s.getUTCMonth(),s.getUTCDate()))/864e5)+1;for(let f=0;f<h;f+=1){const m=Lo(s,f),y=yt(m),b=zo(`${c}:${y}`),w=b%1e3/1e3,x=.6+.4*Math.sin(f/6*Math.PI*.5),T=m.getUTCDay()===0||m.getUTCDay()===6?.65:1,P=18e3+Math.round(12e3*w),L=Math.max(0,Math.round(P*x*T)),D=Math.round(L*.46),M=Math.round(L*.34),j=Math.round(L*.14),K=Math.max(0,L-D-M-j);u.push({day:y,total_tokens:L,billable_total_tokens:L,input_tokens:D,output_tokens:M,cached_input_tokens:j,reasoning_output_tokens:K,conversation_count:1+b%5})}return u}function zA({day:e,seed:t}){const n=un(e)||un(xr(new Date))||new Date,a=yt(n),s=Vo(t),o=Array.from({length:48},(c,h)=>{const f=Math.floor(h/2),m=h%2===0?0:30,b=zo(`${s}:${a}:${f}:${m}`)%1e3/1e3,w=(f+m/60)/24,x=.4+.6*Math.sin(w*Math.PI*2),T=900+Math.round(700*b),P=Math.max(0,Math.round(T*x)),L=Math.round(P*.46),D=Math.round(P*.34),M=Math.round(P*.14),j=Math.max(0,P-L-D-M);return{hour:`${a}T${String(f).padStart(2,"0")}:${String(m).padStart(2,"0")}:00`,total_tokens:P,billable_total_tokens:P,input_tokens:L,output_tokens:D,cached_input_tokens:M,reasoning_output_tokens:j}}),u=Math.max(0,Math.min(48,FA()));if(u>0){const c=Date.now(),h=o.map((y,b)=>{const w=Date.parse(y.hour);return Number.isFinite(w)&&w<=c?{index:b,ts:w}:null}).filter(Boolean),f=Math.max(0,h.length-u),m=h.slice(f);for(const y of m){const b=o[y.index];b&&(o[y.index]={...b,missing:!0})}}return o}function $A({months:e=24,to:t,seed:n}){const a=un(t)||un(xr(new Date))||new Date,s=new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),1)),o=Vo(n),u=[];for(let c=e-1;c>=0;c-=1){const h=X_(s,-c),f=VA(h),y=zo(`${o}:${f}`)%1e3/1e3,b=.7+.3*Math.sin(u.length/6*Math.PI*.5),w=36e4+Math.round(2e5*y),x=Math.max(0,Math.round(w*b)),T=Math.round(x*.46),P=Math.round(x*.34),L=Math.round(x*.14),D=Math.max(0,x-T-P-L);u.push({month:f,total_tokens:x,billable_total_tokens:x,input_tokens:T,output_tokens:P,cached_input_tokens:L,reasoning_output_tokens:D})}return u}function bp(e){return e.reduce((t,n)=>(t.total_tokens+=Number(n.total_tokens||0),t.billable_total_tokens+=Number(n.billable_total_tokens||n.total_tokens||0),t.input_tokens+=Number(n.input_tokens||0),t.output_tokens+=Number(n.output_tokens||0),t.cached_input_tokens+=Number(n.cached_input_tokens||0),t.reasoning_output_tokens+=Number(n.reasoning_output_tokens||0),t.conversation_count+=Number(n.conversation_count||0),t),{total_tokens:0,billable_total_tokens:0,input_tokens:0,output_tokens:0,cached_input_tokens:0,reasoning_output_tokens:0,conversation_count:0})}function HA(e,t=1.75){const n=Number(e||0);return!Number.isFinite(n)||n<=0?"0.000000":(n*t/1e6).toFixed(6)}function Iv(e,t){const n=Number.isFinite(t)?t:0;return{total_tokens:Math.max(0,Math.round(e.total_tokens*n)),billable_total_tokens:Math.max(0,Math.round((e.billable_total_tokens??e.total_tokens)*n)),input_tokens:Math.max(0,Math.round(e.input_tokens*n)),output_tokens:Math.max(0,Math.round(e.output_tokens*n)),cached_input_tokens:Math.max(0,Math.round(e.cached_input_tokens*n)),reasoning_output_tokens:Math.max(0,Math.round(e.reasoning_output_tokens*n))}}function pf(e){return{...e,total_cost_usd:HA(e.total_tokens)}}function WA({from:e,to:t,seed:n}={}){const a=fs({from:e,to:t,seed:n});return{from:e,to:t,data:a}}function KA({day:e,seed:t}={}){const n=un(e)||new Date,a=yt(n),s=zA({day:a,seed:t});return{day:a,data:s}}function qA({months:e=24,to:t,seed:n}={}){const a=un(t)||un(xr(new Date))||new Date,s=yt(a),o=$A({months:e,to:s,seed:n}),u=X_(new Date(Date.UTC(a.getUTCFullYear(),a.getUTCMonth(),1)),-(e-1));return{from:yt(u),to:s,months:e,data:o}}function GA({from:e,to:t,seed:n,rolling:a=!0}={}){const s=fs({from:e,to:t,seed:n}),o=bp(s),u=pf(o),c=a?YA({to:t,seed:n}):null;return{from:e,to:t,days:s.length,totals:u,...c?{rolling:c}:{}}}function YA({to:e,seed:t}={}){const n=un(e)||un(xr(new Date))||new Date,a=yt(n),s=yt(Lo(n,-6)),o=yt(Lo(n,-29)),u=fs({from:s,to:a,seed:t}),c=fs({from:o,to:a,seed:t});return{last_7d:jv({rows:u,from:s,to:a}),last_30d:jv({rows:c,from:o,to:a})}}function jv({rows:e,from:t,to:n}={}){const a=bp(e||[]),s=(e||[]).filter(u=>Number(u.billable_total_tokens??u.total_tokens)>0).length,o=s>0?Math.floor(a.billable_total_tokens/s):0;return{from:t,to:n,totals:{billable_total_tokens:a.billable_total_tokens,conversation_count:a.conversation_count},active_days:s,avg_per_active_day:o}}function ZA({seed:e,limit:t=3}={}){const n=Vo(e),a=IA.map((s,o)=>{const c=12e4+zo(`${n}:${s}`)%9e5,h=o%4*4200,f=Math.max(0,c+h),m=Math.max(0,Math.round(f*.96));return{project_key:s,project_ref:`https://github.com/${s}`,total_tokens:String(f),billable_total_tokens:String(m)}}).sort((s,o)=>Number(o.billable_total_tokens)-Number(s.billable_total_tokens)).slice(0,Math.max(1,Math.min(10,Math.floor(Number(t)||3))));return{generated_at:new Date().toISOString(),entries:a}}function QA(e){const t=un(xr(new Date))||new Date,n=String(e).trim().toLowerCase()||"week";if(n==="total")return{from:"1970-01-01",to:"9999-12-31"};if(n==="month"){const u=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),1)),c=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,0));return{from:yt(u),to:yt(c)}}const a=t.getUTCDay(),s=yt(Lo(t,-a)),o=yt(Lo(t,-a+6));return{from:s,to:o}}function J_({seed:e,period:t,metric:n,limit:a=20,offset:s=0}={}){const o=Vo(e),u=Math.max(1,Math.min(100,Math.floor(Number(a)||20))),c=Math.max(0,Math.min(1e4,Math.floor(Number(s)||0))),h=String(n||"all").trim().toLowerCase()||"all",f=String(t||"week").trim().toLowerCase()||"week",m=f==="month"||f==="total"||f==="week"?f:"week",{from:y,to:b}=QA(m),w=250,x=w>0?Math.ceil(w/u):0,T=Math.floor(c/u)+1,P=Array.from({length:w},(W,S)=>{const Z=S+1,X=`00000000-0000-0000-0000-${String(Z).padStart(12,"0")}`,_e=Ov[Z%Ov.length],Re=18e4+zo(`${o}:${_e}:${Z}`)%9e5,fe=Math.max(0,Re+Z*1200),ce=Math.floor(fe*.28),ue=Math.floor(fe*.18),Me=Math.floor(fe*.1),H=Math.floor(fe*.1),Y=Math.floor(fe*.08),$=Math.floor(fe*.03),N=Math.floor(fe*.02),q=Math.floor(fe*.04),xe=Math.floor(fe*.03),Ae=Math.max(0,fe-ce-ue-Me-H-Y-$-N-q-xe),Se=Z%7!==0;return{id:Z,user_id:X,is_public:Se,is_me:!1,display_name:Se?_e:"Anonymous",avatar_url:null,gpt_tokens:ce,claude_tokens:ue,gemini_tokens:Me,cursor_tokens:H,opencode_tokens:Y,openclaw_tokens:Ae,hermes_tokens:$,kiro_tokens:N,copilot_tokens:q,kimi_tokens:xe,other_tokens:0,total_tokens:fe}}),L=Math.max(0,Math.min(w-1,Math.floor(w*.8)));P[L]&&(P[L].is_me=!0);const D=h==="gpt"||h==="codex"?"gpt_tokens":h==="claude"?"claude_tokens":h==="gemini"?"gemini_tokens":h==="cursor"?"cursor_tokens":h==="opencode"?"opencode_tokens":h==="openclaw"?"openclaw_tokens":h==="hermes"?"hermes_tokens":h==="kiro"?"kiro_tokens":h==="copilot"?"copilot_tokens":h==="kimi"?"kimi_tokens":"total_tokens",M=P.slice().sort((W,S)=>Number(S[D])-Number(W[D])||W.id-S.id).map((W,S)=>({user_id:W.is_public?W.user_id:null,rank:S+1,is_me:!!W.is_me,display_name:W.display_name,avatar_url:W.avatar_url,gpt_tokens:String(W.gpt_tokens),claude_tokens:String(W.claude_tokens),gemini_tokens:String(W.gemini_tokens),cursor_tokens:String(W.cursor_tokens),opencode_tokens:String(W.opencode_tokens),openclaw_tokens:String(W.openclaw_tokens),hermes_tokens:String(W.hermes_tokens??0),kiro_tokens:String(W.kiro_tokens??0),copilot_tokens:String(W.copilot_tokens??0),kimi_tokens:String(W.kimi_tokens??0),other_tokens:String(W.other_tokens??0),total_tokens:String(W.total_tokens),is_public:!!W.is_public})),j=M.find(W=>W?.is_me)||null,K=j?{rank:j.rank,gpt_tokens:j.gpt_tokens,claude_tokens:j.claude_tokens,gemini_tokens:j.gemini_tokens,cursor_tokens:j.cursor_tokens,opencode_tokens:j.opencode_tokens,openclaw_tokens:j.openclaw_tokens,hermes_tokens:j.hermes_tokens,kiro_tokens:j.kiro_tokens,copilot_tokens:j.copilot_tokens,kimi_tokens:j.kimi_tokens,other_tokens:j.other_tokens,total_tokens:j.total_tokens}:{rank:null,gpt_tokens:"0",claude_tokens:"0",gemini_tokens:"0",cursor_tokens:"0",opencode_tokens:"0",openclaw_tokens:"0",hermes_tokens:"0",kiro_tokens:"0",copilot_tokens:"0",kimi_tokens:"0",other_tokens:"0",total_tokens:"0"},G=M.slice(c,c+u);return{period:m,metric:h,from:y,to:b,generated_at:new Date().toISOString(),page:T,limit:u,offset:c,total_entries:w,total_pages:x,entries:G,me:K}}function XA({weeks:e=52,to:t,weekStartsOn:n="sun",seed:a}={}){const s=Z_({weeks:e,now:un(t)||un(xr(new Date))||new Date,weekStartsOn:n}),o=fs({from:s.from,to:s.to,seed:a});return{...NA({dailyRows:o,weeks:e,to:s.to,weekStartsOn:n}),week_starts_on:n,active_days:o.filter(c=>Number(c.billable_total_tokens??c.total_tokens)>0).length,streak_days:OA({dailyRows:o,to:s.to})}}function JA({from:e,to:t,seed:n}={}){const a=fs({from:e,to:t,seed:n}),s=bp(a),u=[{source:"codex",weight:.7,models:[{model:"gpt-5.2-codex",model_id:"gpt-5.2-codex",weight:.2},{model:"unknown",model_id:"unknown",weight:.8}]},{source:"claude",weight:.2,models:[{model:"claude-3.5",model_id:"claude-3.5",weight:.3},{model:"unknown",model_id:"unknown",weight:.7}]},{source:"every-code",weight:.1,models:[{model:"unknown",model_id:"unknown",weight:1}]}].map(c=>{const h=Iv(s,c.weight),f=c.models.map(m=>{const y=Iv(h,m.weight);return{model:m.model,model_id:m.model_id||m.model,totals:pf(y)}});return{source:c.source,totals:pf(h),models:f}});return{from:e,to:t,days:a.length,sources:u,pricing:{model:"mock",pricing_mode:"add",source:"mock",effective_from:xr(new Date),rates_per_million_usd:{input:"1.750000",cached_input:"0.175000",output:"14.000000",reasoning_output:"14.000000"}}}}function eL({from:e,to:t,source:n="claude"}={}){if(n==="codex")return{from:e,to:t,source:"codex",scope:"supported",totals:{input_tokens:142e4,cached_input_tokens:588e4,cache_creation_input_tokens:92e4,output_tokens:256e4,reasoning_output_tokens:61e4,total_tokens:1078e4},session_count:188,message_count:5436,tool_calls_breakdown:{categories:[{name:"Execution",calls:742,totals:{input_tokens:32e4,cached_input_tokens:104e4,cache_creation_input_tokens:11e4,output_tokens:46e4,reasoning_output_tokens:12e4,total_tokens:193e4},tools:[{name:"exec_command",calls:510,totals:{input_tokens:25e4,cached_input_tokens:82e4,cache_creation_input_tokens:8e4,output_tokens:37e4,reasoning_output_tokens:9e4,total_tokens:152e4}},{name:"write_stdin",calls:232,totals:{input_tokens:7e4,cached_input_tokens:22e4,cache_creation_input_tokens:3e4,output_tokens:9e4,reasoning_output_tokens:3e4,total_tokens:41e4}}]},{name:"Browser",calls:406,totals:{input_tokens:21e4,cached_input_tokens:88e4,cache_creation_input_tokens:9e4,output_tokens:42e4,reasoning_output_tokens:1e5,total_tokens:17e5},tools:[{name:"take_snapshot",calls:180,totals:{input_tokens:1e5,cached_input_tokens:4e5,cache_creation_input_tokens:4e4,output_tokens:18e4,reasoning_output_tokens:4e4,total_tokens:76e4}},{name:"click",calls:126,totals:{input_tokens:6e4,cached_input_tokens:25e4,cache_creation_input_tokens:3e4,output_tokens:12e4,reasoning_output_tokens:35e3,total_tokens:495e3}},{name:"evaluate_script",calls:100,totals:{input_tokens:5e4,cached_input_tokens:23e4,cache_creation_input_tokens:2e4,output_tokens:12e4,reasoning_output_tokens:25e3,total_tokens:445e3}}]}],tools_total:363e4,privacy:{includes_inputs:!1,note:"Aggregated tool names only; no tool arguments or outputs are included."}},exec_command_breakdown:{by_type:[{name:"test",calls:168,failures:14,duration_ms:482e3,max_duration_ms:18400,output_chars:45e4,output_lines:8600,totals:{input_tokens:9e4,cached_input_tokens:32e4,output_tokens:16e4,reasoning_output_tokens:42e3,total_tokens:612e3}},{name:"build",calls:116,failures:9,duration_ms:392e3,max_duration_ms:22100,output_chars:31e4,output_lines:5200,totals:{input_tokens:7e4,cached_input_tokens:24e4,output_tokens:13e4,reasoning_output_tokens:3e4,total_tokens:47e4}}],by_exit:[{name:"completed:0",calls:438,failures:0,duration_ms:104e4,max_duration_ms:22100,output_chars:83e4,output_lines:13100,totals:{input_tokens:22e4,cached_input_tokens:78e4,output_tokens:35e4,reasoning_output_tokens:82e3,total_tokens:1432e3}},{name:"completed:1",calls:72,failures:72,duration_ms:155e3,max_duration_ms:11800,output_chars:12e4,output_lines:2300,totals:{input_tokens:3e4,cached_input_tokens:11e4,output_tokens:55e3,reasoning_output_tokens:8e3,total_tokens:195e3}}]}};if(n!=="claude")return{from:e,to:t,source:n,scope:"unsupported",totals:{input_tokens:0,cached_input_tokens:0,cache_creation_input_tokens:0,output_tokens:0,reasoning_output_tokens:0,total_tokens:0},categories:["system_prefix","conversation_history","user_input","tool_calls","subagents","reasoning","assistant_response"].map(u=>({key:u,totals:{input_tokens:0,cached_input_tokens:0,cache_creation_input_tokens:0,output_tokens:0,reasoning_output_tokens:0,total_tokens:0},percent:0})),session_count:0,message_count:0};const a=[{key:"system_prefix",total:12896539},{key:"conversation_history",total:320207200},{key:"user_input",total:998025},{key:"tool_calls",total:4808739},{key:"subagents",total:1022828},{key:"reasoning",total:11073118},{key:"assistant_response",total:1289174}],s=a.reduce((u,c)=>u+c.total,0),o=a.map(({key:u,total:c})=>({key:u,totals:{input_tokens:u==="user_input"?c:0,cached_input_tokens:u==="conversation_history"?Math.round(c*.95):0,cache_creation_input_tokens:u==="system_prefix"?c:u==="conversation_history"?Math.round(c*.05):0,output_tokens:["tool_calls","subagents","reasoning","assistant_response"].includes(u)?c:0,reasoning_output_tokens:u==="reasoning"?c:0,total_tokens:c},percent:Number((c/s*100).toFixed(2))}));return{from:e,to:t,source:"claude",scope:"supported",totals:{input_tokens:998025,cached_input_tokens:Math.round(320207200*.95),cache_creation_input_tokens:12896539+Math.round(320207200*.05),output_tokens:18193859,reasoning_output_tokens:11073118,total_tokens:s},categories:o,session_count:312,message_count:12046}}let Eu=null;function tL(){Eu=null}async function nL(e=fetch){if(Eu)return Eu;const t=await e("/api/local-auth",{method:"GET",headers:{Accept:"application/json"},cache:"no-store"});if(!t.ok)throw new Error(`Local auth request failed with HTTP ${t.status}`);const n=await t.json().catch(()=>null),a=typeof n?.token=="string"?n.token.trim():"";if(!a)throw new Error("Local auth token missing from response");return Eu=a,a}async function _p(e=fetch){return{"x-tokentracker-local-auth":await nL(e)}}const ir={usageSummary:"tokentracker-usage-summary",usageDaily:"tokentracker-usage-daily",usageHourly:"tokentracker-usage-hourly",usageMonthly:"tokentracker-usage-monthly",usageHeatmap:"tokentracker-usage-heatmap",usageModelBreakdown:"tokentracker-usage-model-breakdown",usageCategoryBreakdown:"tokentracker-usage-category-breakdown",projectUsageSummary:"tokentracker-project-usage-summary",userStatus:"tokentracker-user-status",localSync:"tokentracker-local-sync",usageLimits:"tokentracker-usage-limits"};async function Sr(e,t,n){const a=new URL(`/functions/${e}`,window.location.origin);if(t)for(const[o,u]of Object.entries(t))u!=null&&u!==""&&a.searchParams.set(o,String(u));const s=await fetch(a.toString(),{headers:{Accept:"application/json"},cache:"no-store",...n});if(!s.ok){const o=new Error(`Request failed with HTTP ${s.status}`);throw o.status=s.status,o}return s.json()}function Oa({timeZone:e,tzOffsetMinutes:t}={}){const n={},a=typeof e=="string"?e.trim():"";return a&&(n.tz=a),Number.isFinite(t)&&(n.tz_offset_minutes=String(Math.trunc(t))),n}function mi({source:e,model:t}={}){const n={},a=typeof e=="string"?e.trim().toLowerCase():"";a&&(n.source=a);const s=typeof t=="string"?t.trim():"";return s&&(n.model=s),n}async function H4({from:e,to:t,source:n,model:a,timeZone:s,tzOffsetMinutes:o,rolling:u=!1,accessToken:c}={}){if(Pn())return GA({from:e,to:t,seed:c,rolling:u});const h=Oa({timeZone:s,tzOffsetMinutes:o}),f=mi({source:n,model:a}),m=u?{rolling:"1"}:{};return Sr(ir.usageSummary,{from:e,to:t,...f,...h,...m})}async function W4({from:e,to:t,source:n,limit:a,timeZone:s,tzOffsetMinutes:o,accessToken:u}={}){if(Pn())return ZA({seed:u,limit:a});const c=Oa({timeZone:s,tzOffsetMinutes:o}),f={...mi({source:n}),...c};return e&&(f.from=e),t&&(f.to=t),a!=null&&(f.limit=String(a)),Sr(ir.projectUsageSummary,f)}async function $o(e,t={}){const n=fi();if(!n)throw new Error("InsForge base URL not configured");const a=n.replace(/\/$/,""),s=new URL(`${a}/functions/${e}`);if(t.params)for(const[h,f]of Object.entries(t.params))f!=null&&f!==""&&s.searchParams.set(h,String(f));const o={Accept:"application/json","Content-Type":"application/json"},u=_c();u&&(o.apikey=u),t.accessToken&&xA(t.accessToken)&&(o.Authorization=`Bearer ${t.accessToken}`);const c=await fetch(s.toString(),{method:t.method||"GET",headers:o,...t.body!=null?{body:JSON.stringify(t.body)}:{}});if(!c.ok){const h=new Error(`Request failed with HTTP ${c.status}`);throw h.status=c.status,h}return c.json()}async function K4({accessToken:e,userId:t,period:n,metric:a,limit:s,offset:o}={}){return Pn()?J_({seed:e||t,period:n,metric:a,limit:s,offset:o}):$o("tokentracker-leaderboard",{params:{period:n,limit:s,offset:o,user_id:t}})}async function Uv({accessToken:e}={}){return $o("tokentracker-public-visibility",{accessToken:e,method:"GET"})}async function q4({accessToken:e,enabled:t,anonymous:n,display_name:a,github_url:s,show_github_url:o}={}){const u={};return t!==void 0&&(u.enabled=!!t),n!==void 0&&(u.anonymous=!!n),a!==void 0&&(u.display_name=String(a)),s!==void 0&&(u.github_url=s===null?null:String(s)),o!==void 0&&(u.show_github_url=!!o),$o("tokentracker-public-visibility",{accessToken:e,method:"POST",body:u})}async function G4({accessToken:e,period:t,source:n}={}){const a={};return t&&(a.period=t),typeof n=="string"&&n.trim()&&(a.source=n.trim()),$o("tokentracker-leaderboard-refresh",{accessToken:e,method:"POST",body:a})}async function Y4({accessToken:e,userId:t,period:n}={}){if(Pn()){const a=J_({seed:e,period:n,metric:"all",limit:250,offset:0}),o=(Array.isArray(a?.entries)?a.entries:[]).find(u=>u?.user_id===t)||null;return{period:a?.period??"week",from:a?.from??null,to:a?.to??null,generated_at:a?.generated_at??new Date().toISOString(),entry:o}}return $o("tokentracker-leaderboard-profile",{accessToken:e,params:{user_id:t,period:n}})}async function Z4(e={}){if(Pn()){const t=new Date().toISOString();return{user_id:"local-user",created_at:t,pro:{active:!1,sources:[],expires_at:null,partial:!1,as_of:t},subscriptions:{partial:!1,as_of:t,items:[]},install:{partial:!1,as_of:t,has_active_device_token:!1,has_active_device:!1,active_device_tokens:0,active_devices:0,latest_token_activity_at:null,latest_device_seen_at:null}}}return Sr(ir.userStatus)}async function Q4({signal:e}={}){const t=await _p(),n=await fetch(`/functions/${ir.localSync}`,{method:"POST",headers:{Accept:"application/json",...t},cache:"no-store",signal:e}),a=await n.json().catch(()=>({ok:!1,error:`Local sync request failed with HTTP ${n.status}`}));if(!n.ok||a?.ok===!1){const s=a?.error||a?.message||`Local sync request failed with HTTP ${n.status}`,o=new Error(s);throw o.status=n.status,o}return a}async function X4({from:e,to:t,source:n,timeZone:a,tzOffsetMinutes:s,accessToken:o}={}){if(Pn())return JA({from:e,to:t,seed:o});const u=Oa({timeZone:a,tzOffsetMinutes:s}),c=mi({source:n});return Sr(ir.usageModelBreakdown,{from:e,to:t,...c,...u})}async function J4({from:e,to:t,source:n="claude",timeZone:a,tzOffsetMinutes:s}={}){if(Pn())return eL({from:e,to:t,source:n});const o=Oa({timeZone:a,tzOffsetMinutes:s});return Sr(ir.usageCategoryBreakdown,{from:e,to:t,source:n,...o})}async function e3({from:e,to:t,source:n,model:a,timeZone:s,tzOffsetMinutes:o,accessToken:u}={}){if(Pn())return WA({from:e,to:t,seed:u});const c=Oa({timeZone:s,tzOffsetMinutes:o}),h=mi({source:n,model:a});return Sr(ir.usageDaily,{from:e,to:t,...h,...c})}async function t3({day:e,source:t,model:n,timeZone:a,tzOffsetMinutes:s,accessToken:o}={}){if(Pn())return KA({day:e,seed:o});const u=Oa({timeZone:a,tzOffsetMinutes:s}),c=mi({source:t,model:n}),h=e?{day:e,...c,...u}:{...c,...u};return Sr(ir.usageHourly,h)}async function n3({months:e,to:t,source:n,model:a,timeZone:s,tzOffsetMinutes:o,accessToken:u}={}){if(Pn())return qA({months:e,to:t,seed:u});const c=Oa({timeZone:s,tzOffsetMinutes:o}),h=mi({source:n,model:a});return Sr(ir.usageMonthly,{...e?{months:String(e)}:{},...t?{to:t}:{},...h,...c})}async function r3(e={}){const t=e?.refresh?{refresh:"1"}:void 0;return Sr(ir.usageLimits,t)}async function a3({weeks:e,to:t,weekStartsOn:n,source:a,model:s,timeZone:o,tzOffsetMinutes:u,accessToken:c}={}){if(Pn())return XA({weeks:e,to:t,weekStartsOn:n,seed:c});const h=Oa({timeZone:o,tzOffsetMinutes:u}),f=mi({source:a,model:s});return Sr(ir.usageHeatmap,{weeks:String(e),to:t,week_starts_on:n,...f,...h})}const ew=k.createContext(null);function rL(e){if(!e||typeof e!="object")return"";const t=e.user_metadata&&typeof e.user_metadata=="object"?e.user_metadata:{},n=e.profile&&typeof e.profile=="object"?e.profile:{},a=t.full_name||t.name||n.name||t.user_name||t.preferred_username;return typeof a=="string"&&a.trim()?a.trim():typeof e.email=="string"&&e.email.includes("@")?e.email.split("@")[0].trim()||e.email.trim():typeof e.email=="string"?e.email.trim():""}function Bv(e){if(!e||typeof e!="object")return null;const t=e,n=t.session&&typeof t.session=="object"?t.session:null,a=typeof t.accessToken=="string"&&t.accessToken||typeof t.access_token=="string"&&t.access_token||n&&typeof n.accessToken=="string"&&n.accessToken||n&&typeof n.access_token=="string"&&n.access_token||null;return a&&a.length>0?a:null}async function Th(e,t={}){if(!e)return null;const n=Math.max(0,Math.floor(Number(t.skewMs)||6e4)),a=e.tokenManager,s=()=>a?.getAccessToken?.()??a?.getSession?.()?.accessToken??null;let o=s();if(!o||SA(o,n)){const{data:u}=await e.auth.refreshSession();if(o=s()??Bv(u)??null,!o&&typeof e.auth.getCurrentUser=="function")try{await e.auth.getCurrentUser(),o=s()??Bv(u)??null}catch{}}return o||null}function aL({children:e}){const[t,n]=k.useState(null),[a,s]=k.useState(null),[o,u]=k.useState(!0);k.useEffect(()=>{if(!ff()){n(null),s(null),u(!1);return}n(gA())},[]),k.useEffect(()=>{if(!t)return;let G=!0;return u(!0),(async()=>{try{let{data:W,error:S}=await t.auth.getCurrentUser();if(!G)return;if(!S&&!W?.user){if(await new Promise(X=>setTimeout(X,150)),!G)return;const Z=await t.auth.getCurrentUser();W=Z.data,S=Z.error}if(S){s(null);return}s(W?.user??null)}catch{G&&s(null)}finally{G&&u(!1)}})(),()=>{G=!1}},[t]);const c=k.useCallback(async()=>{if(t)try{let{data:G,error:W}=await t.auth.getCurrentUser();if(!W&&!G?.user){await new Promise(Z=>setTimeout(Z,150));const S=await t.auth.getCurrentUser();G=S.data,W=S.error}if(W){s(null);return}s(G?.user??null)}catch{s(null)}},[t]),h=k.useCallback(async(G,W)=>{if(!t)return{error:new Error("InsForge client not configured")};const S=typeof window<"u"&&window.webkit?.messageHandlers?.nativeOAuth;if(S){const _e=typeof W=="string"&&W.trim()?W.trim():`${window.location.origin}/auth/callback`,oe=await t.auth.signInWithOAuth({provider:G,redirectTo:_e,skipBrowserRedirect:!0});if(oe.data?.url){try{const Re=await _p();await fetch("/api/auth-bridge/verifier",{method:"PUT",headers:{"Content-Type":"application/json",...Re},body:JSON.stringify({native:!0})})}catch{}S.postMessage(oe.data.url)}return oe}const Z=typeof W=="string"&&W.trim()?W.trim():typeof window<"u"?`${window.location.origin}/dashboard`:void 0;return await t.auth.signInWithOAuth({provider:G,redirectTo:Z})},[t]),f=k.useCallback(async G=>{if(!t)return{data:null,error:new Error("InsForge client not configured")};const{data:W,error:S}=await t.auth.signInWithPassword(G);return W?.user&&s(W.user),{data:W,error:S}},[t]),m=k.useCallback(async G=>{if(!t)return{data:null,error:new Error("InsForge client not configured")};const{data:W,error:S}=await t.auth.signUp(G);return W?.user&&W?.accessToken&&s(W.user),{data:W,error:S}},[t]),y=k.useCallback(async()=>t?t.auth.getPublicAuthConfig():{data:null,error:new Error("InsForge client not configured")},[t]),b=k.useCallback(async()=>{t&&(await t.auth.signOut(),K_(),tL(),s(null))},[t]),w=k.useCallback(async()=>Th(t),[t]),[x,T]=k.useState(null),[P,L]=k.useState(!1),D=k.useMemo(()=>rL(a),[a]);k.useEffect(()=>{if(!a||!t){T(null),L(!1);return}let G=!0;return(async()=>{try{const W=await Th(t);if(!G||!W){G&&L(!0);return}const S=await Uv({accessToken:W});G&&S?.display_name&&T(S.display_name)}catch{}G&&L(!0)})(),()=>{G=!1}},[a,t]);const M=P?x||D:"",j=k.useCallback(async()=>{if(t)try{const G=await Th(t);if(!G)return;const W=await Uv({accessToken:G});W?.display_name&&T(W.display_name)}catch{}},[t]),K=k.useMemo(()=>!ff()||!t?{enabled:!1,client:null,user:null,signedIn:!1,loading:!1,displayName:"",refreshUser:async()=>{},refreshDisplayName:async()=>{},signInWithOAuth:async()=>({error:new Error("InsForge not configured")}),signInWithPassword:async()=>({data:null,error:new Error("InsForge not configured")}),signUp:async()=>({data:null,error:new Error("InsForge not configured")}),getPublicAuthConfig:async()=>({data:null,error:new Error("InsForge not configured")}),signOut:async()=>{},getAccessToken:async()=>null}:{enabled:!0,client:t,user:a,signedIn:!!a,loading:o,displayName:M,refreshUser:c,refreshDisplayName:j,signInWithOAuth:h,signInWithPassword:f,signUp:m,getPublicAuthConfig:y,signOut:b,getAccessToken:w},[t,a,o,M,c,j,h,f,m,y,b,w]);return I.jsx(ew.Provider,{value:K,children:e})}function Ho(){return k.useContext(ew)}const iL=`key,module,page,component,slot,text,notes,status
|
|
43
43
|
header.auth.sign_in_aria,shared,*,InsforgeUserHeaderControls,sign_in_aria,"Sign in",,active
|
|
44
44
|
login.back_home,shared,LoginPage,LoginPage,back_home,"Back to home",,active
|
|
45
45
|
login.cloud_only,shared,LoginPage,LoginPage,cloud_only,"Cloud sign-in is not configured. Use the local dashboard on localhost.",,active
|
|
@@ -626,4 +626,4 @@ dashboard.context_breakdown.exec_details.group_by_exit,dashboard,DashboardPage,C
|
|
|
626
626
|
${D}px !important;
|
|
627
627
|
${M}px !important;
|
|
628
628
|
}
|
|
629
|
-
`),()=>{c.current?.removeAttribute("data-motion-pop-id"),K.contains(j)&&K.removeChild(j)}},[t]),I.jsx(EO,{isPresent:t,childRef:c,sizeRef:h,pop:o,children:o===!1?e:k.cloneElement(e,{ref:y})})}const AO=({children:e,initial:t,isPresent:n,onExitComplete:a,custom:s,presenceAffectsLayout:o,mode:u,anchorX:c,anchorY:h,root:f})=>{const m=Pp(LO),y=k.useId();let b=!0,w=k.useMemo(()=>(b=!1,{id:y,initial:t,isPresent:n,custom:s,onExitComplete:x=>{m.set(x,!0);for(const T of m.values())if(!T)return;a&&a()},register:x=>(m.set(x,!1),()=>m.delete(x))}),[n,m,a]);return o&&b&&(w={...w}),k.useMemo(()=>{m.forEach((x,T)=>m.set(T,!1))},[n]),k.useEffect(()=>{!n&&!m.size&&a&&a()},[n]),e=I.jsx(RO,{pop:u==="popLayout",isPresent:n,anchorX:c,anchorY:h,root:f,children:e}),I.jsx(xc.Provider,{value:w,children:e})};function LO(){return new Map}function qk(e=!0){const t=k.useContext(xc);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:a,register:s}=t,o=k.useId();k.useEffect(()=>{if(e)return s(o)},[e]);const u=k.useCallback(()=>e&&a&&a(o),[o,a,e]);return!n&&a?[!1,u]:[!0]}const pu=e=>e.key||"";function Y0(e){const t=[];return k.Children.forEach(e,n=>{k.isValidElement(n)&&t.push(n)}),t}const DO=({children:e,custom:t,initial:n=!0,onExitComplete:a,presenceAffectsLayout:s=!0,mode:o="sync",propagate:u=!1,anchorX:c="left",anchorY:h="top",root:f})=>{const[m,y]=qk(u),b=k.useMemo(()=>Y0(e),[e]),w=u&&!m?[]:b.map(pu),x=k.useRef(!0),T=k.useRef(b),P=Pp(()=>new Map),L=k.useRef(new Set),[D,M]=k.useState(b),[j,K]=k.useState(b);_w(()=>{x.current=!1,T.current=b;for(let S=0;S<j.length;S++){const Z=pu(j[S]);w.includes(Z)?(P.delete(Z),L.current.delete(Z)):P.get(Z)!==!0&&P.set(Z,!1)}},[j,w.length,w.join("-")]);const G=[];if(b!==D){let S=[...b];for(let Z=0;Z<j.length;Z++){const X=j[Z],_e=pu(X);w.includes(_e)||(S.splice(Z,0,X),G.push(X))}return o==="wait"&&G.length&&(S=G),K(Y0(S)),M(b),null}const{forceRender:W}=k.useContext(Sp);return I.jsx(I.Fragment,{children:j.map(S=>{const Z=pu(S),X=u&&!m?!1:b===j||w.includes(Z),_e=()=>{if(L.current.has(Z))return;if(P.has(Z))L.current.add(Z),P.set(Z,!0);else return;let oe=!0;P.forEach(Re=>{Re||(oe=!1)}),oe&&(W?.(),K(T.current),u&&y?.(),a&&a())};return I.jsx(AO,{isPresent:X,initial:!x.current||n?void 0:!1,custom:t,presenceAffectsLayout:s,mode:o,root:f,onExitComplete:X?void 0:_e,anchorX:c,anchorY:h,children:S},Z)})})},Gk=k.createContext({strict:!1}),Z0={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]};let Q0=!1;function MO(){if(Q0)return;const e={};for(const t in Z0)e[t]={isEnabled:n=>Z0[t].some(a=>!!n[a])};xk(e),Q0=!0}function Yk(){return MO(),gN()}function NO(e){const t=Yk();for(const n in e)t[n]={...t[n],...e[n]};xk(t)}const OO=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function uc(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||OO.has(e)}let Zk=e=>!uc(e);function IO(e){typeof e=="function"&&(Zk=t=>t.startsWith("on")?!uc(t):e(t))}try{IO(require("@emotion/is-prop-valid").default)}catch{}function jO(e,t,n){const a={};for(const s in e)s==="values"&&typeof e.values=="object"||qt(e[s])||(Zk(s)||n===!0&&uc(s)||!t&&!uc(s)||e.draggable&&s.startsWith("onDrag"))&&(a[s]=e[s]);return a}const Cc=k.createContext({});function UO(e,t){if(Tc(e)){const{initial:n,animate:a}=e;return{initial:n===!1||No(n)?n:void 0,animate:No(a)?a:void 0}}return e.inherit!==!1?t:{}}function BO(e){const{initial:t,animate:n}=UO(e,k.useContext(Cc));return k.useMemo(()=>({initial:t,animate:n}),[X0(t),X0(n)])}function X0(e){return Array.isArray(e)?e.join(" "):e}const Qp=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function Qk(e,t,n){for(const a in t)!qt(t[a])&&!Ak(a,n)&&(e[a]=t[a])}function FO({transformTemplate:e},t){return k.useMemo(()=>{const n=Qp();return Gp(n,t,e),Object.assign({},n.vars,n.style)},[t])}function VO(e,t){const n=e.style||{},a={};return Qk(a,n,e),Object.assign(a,FO(e,t)),a}function zO(e,t){const n={},a=VO(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,a.userSelect=a.WebkitUserSelect=a.WebkitTouchCallout="none",a.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=a,n}const Xk=()=>({...Qp(),attrs:{}});function $O(e,t,n,a){const s=k.useMemo(()=>{const o=Xk();return Lk(o,t,Mk(a),e.transformTemplate,e.style),{...o.attrs,style:{...o.style}}},[t]);if(e.style){const o={};Qk(o,e.style,e),s.style={...o,...s.style}}return s}const HO=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function Xp(e){return typeof e!="string"||e.includes("-")?!1:!!(HO.indexOf(e)>-1||/[A-Z]/u.test(e))}function WO(e,t,n,{latestValues:a},s,o=!1,u){const h=(u??Xp(e)?$O:zO)(t,a,s,e),f=jO(t,typeof e=="string",o),m=e!==k.Fragment?{...f,...h,ref:n}:{},{children:y}=t,b=k.useMemo(()=>qt(y)?y.get():y,[y]);return k.createElement(e,{...m,children:b})}function KO({scrapeMotionValuesFromProps:e,createRenderState:t},n,a,s){return{latestValues:qO(n,a,s,e),renderState:t()}}function qO(e,t,n,a){const s={},o=a(e,{});for(const b in o)s[b]=Iu(o[b]);let{initial:u,animate:c}=e;const h=Tc(e),f=wk(e);t&&f&&!h&&e.inherit!==!1&&(u===void 0&&(u=t.initial),c===void 0&&(c=t.animate));let m=n?n.initial===!1:!1;m=m||u===!1;const y=m?c:u;if(y&&typeof y!="boolean"&&!Pc(y)){const b=Array.isArray(y)?y:[y];for(let w=0;w<b.length;w++){const x=Fp(e,b[w]);if(x){const{transitionEnd:T,transition:P,...L}=x;for(const D in L){let M=L[D];if(Array.isArray(M)){const j=m?M.length-1:0;M=M[j]}M!==null&&(s[D]=M)}for(const D in T)s[D]=T[D]}}}return s}const Jk=e=>(t,n)=>{const a=k.useContext(Cc),s=k.useContext(xc),o=()=>KO(e,t,a,s);return n?o():Pp(o)},GO=Jk({scrapeMotionValuesFromProps:Yp,createRenderState:Qp}),YO=Jk({scrapeMotionValuesFromProps:Nk,createRenderState:Xk}),ZO=Symbol.for("motionComponentSymbol");function QO(e,t,n){const a=k.useRef(n);k.useInsertionEffect(()=>{a.current=n});const s=k.useRef(null);return k.useCallback(o=>{o&&e.onMount?.(o);const u=a.current;if(typeof u=="function")if(o){const c=u(o);typeof c=="function"&&(s.current=c)}else s.current?(s.current(),s.current=null):u(o);else u&&(u.current=o);t&&(o?t.mount(o):t.unmount())},[t])}const ex=k.createContext({});function ts(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function XO(e,t,n,a,s,o){const{visualElement:u}=k.useContext(Cc),c=k.useContext(Gk),h=k.useContext(xc),f=k.useContext(Zp),m=f.reducedMotion,y=f.skipAnimations,b=k.useRef(null),w=k.useRef(!1);a=a||c.renderer,!b.current&&a&&(b.current=a(e,{visualState:t,parent:u,props:n,presenceContext:h,blockInitialAnimation:h?h.initial===!1:!1,reducedMotionConfig:m,skipAnimations:y,isSVG:o}),w.current&&b.current&&(b.current.manuallyAnimateOnMount=!0));const x=b.current,T=k.useContext(ex);x&&!x.projection&&s&&(x.type==="html"||x.type==="svg")&&JO(b.current,n,s,T);const P=k.useRef(!1);k.useInsertionEffect(()=>{x&&P.current&&x.update(n,h)});const L=n[lk],D=k.useRef(!!L&&typeof window<"u"&&!window.MotionHandoffIsComplete?.(L)&&window.MotionHasOptimisedAnimation?.(L));return _w(()=>{w.current=!0,x&&(P.current=!0,window.MotionIsMounted=!0,x.updateFeatures(),x.scheduleRenderMicrotask(),D.current&&x.animationState&&x.animationState.animateChanges())}),k.useEffect(()=>{x&&(!D.current&&x.animationState&&x.animationState.animateChanges(),D.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(L)}),D.current=!1),x.enteringChildren=void 0)}),x}function JO(e,t,n,a){const{layoutId:s,layout:o,drag:u,dragConstraints:c,layoutScroll:h,layoutRoot:f,layoutAnchor:m,layoutCrossfade:y}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:tx(e.parent)),e.projection.setOptions({layoutId:s,layout:o,alwaysMeasureLayout:!!u||c&&ts(c),visualElement:e,animationType:typeof o=="string"?o:"both",initialPromotionConfig:a,crossfade:y,layoutScroll:h,layoutRoot:f,layoutAnchor:m})}function tx(e){if(e)return e.options.allowProjection!==!1?e.projection:tx(e.parent)}function Fh(e,{forwardMotionProps:t=!1,type:n}={},a,s){a&&NO(a);const o=n?n==="svg":Xp(e),u=o?YO:GO;function c(f,m){let y;const b={...k.useContext(Zp),...f,layoutId:eI(f)},{isStatic:w}=b,x=BO(f),T=u(f,w);if(!w&&typeof window<"u"){tI();const P=nI(b);y=P.MeasureLayout,x.visualElement=XO(e,T,b,s,P.ProjectionNode,o)}return I.jsxs(Cc.Provider,{value:x,children:[y&&x.visualElement?I.jsx(y,{visualElement:x.visualElement,...b}):null,WO(e,f,QO(T,x.visualElement,m),T,w,t,o)]})}c.displayName=`motion.${typeof e=="string"?e:`create(${e.displayName??e.name??""})`}`;const h=k.forwardRef(c);return h[ZO]=e,h}function eI({layoutId:e}){const t=k.useContext(Sp).id;return t&&e!==void 0?t+"-"+e:e}function tI(e,t){k.useContext(Gk).strict}function nI(e){const t=Yk(),{drag:n,layout:a}=t;if(!n&&!a)return{};const s={...n,...a};return{MeasureLayout:n?.isEnabled(e)||a?.isEnabled(e)?s.MeasureLayout:void 0,ProjectionNode:s.ProjectionNode}}function rI(e,t){if(typeof Proxy>"u")return Fh;const n=new Map,a=(o,u)=>Fh(o,u,e,t),s=(o,u)=>a(o,u);return new Proxy(s,{get:(o,u)=>u==="create"?a:(n.has(u)||n.set(u,Fh(u,void 0,e,t)),n.get(u))})}const aI=(e,t)=>t.isSVG??Xp(e)?new MN(t):new CN(t,{allowProjection:e!==k.Fragment});class iI extends Ia{constructor(t){super(t),t.animationState||(t.animationState=UN(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();Pc(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}let sI=0;class oI extends Ia{constructor(){super(...arguments),this.id=sI++,this.isExitComplete=!1}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:a}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===a)return;if(t&&a===!1){if(this.isExitComplete){const{initial:o,custom:u}=this.node.getProps();if(typeof o=="string"){const c=si(this.node,o,u);if(c){const{transition:h,transitionEnd:f,...m}=c;for(const y in m)this.node.getValue(y)?.jump(m[y])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive("exit",!1);this.isExitComplete=!1;return}const s=this.node.animationState.setActive("exit",!t);n&&!t&&s.then(()=>{this.isExitComplete=!0,n(this.id)})}mount(){const{register:t,onExitComplete:n}=this.node.presenceContext||{};n&&n(this.id),t&&(this.unmount=t(this.id))}unmount(){}}const lI={animation:{Feature:iI},exit:{Feature:oI}};function Zo(e){return{point:{x:e.pageX,y:e.pageY}}}const uI=e=>t=>Hp(t)&&e(t,Zo(t));function To(e,t,n,a){return Oo(e,t,uI(n),a)}const nx=({current:e})=>e?e.ownerDocument.defaultView:null,J0=(e,t)=>Math.abs(e-t);function cI(e,t){const n=J0(e.x,t.x),a=J0(e.y,t.y);return Math.sqrt(n**2+a**2)}const eb=new Set(["auto","scroll"]);class rx{constructor(t,n,{transformPagePoint:a,contextWindow:s=window,dragSnapToOrigin:o=!1,distanceThreshold:u=3,element:c}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=w=>{this.handleScroll(w.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=mu(this.lastRawMoveEventInfo,this.transformPagePoint));const w=Vh(this.lastMoveEventInfo,this.history),x=this.startEvent!==null,T=cI(w.offset,{x:0,y:0})>=this.distanceThreshold;if(!x&&!T)return;const{point:P}=w,{timestamp:L}=Kt;this.history.push({...P,timestamp:L});const{onStart:D,onMove:M}=this.handlers;x||(D&&D(this.lastMoveEvent,w),this.startEvent=this.lastMoveEvent),M&&M(this.lastMoveEvent,w)},this.handlePointerMove=(w,x)=>{this.lastMoveEvent=w,this.lastRawMoveEventInfo=x,this.lastMoveEventInfo=mu(x,this.transformPagePoint),dt.update(this.updatePoint,!0)},this.handlePointerUp=(w,x)=>{this.end();const{onEnd:T,onSessionEnd:P,resumeAnimation:L}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&L&&L(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const D=Vh(w.type==="pointercancel"?this.lastMoveEventInfo:mu(x,this.transformPagePoint),this.history);this.startEvent&&T&&T(w,D),P&&P(w,D)},!Hp(t))return;this.dragSnapToOrigin=o,this.handlers=n,this.transformPagePoint=a,this.distanceThreshold=u,this.contextWindow=s||window;const h=Zo(t),f=mu(h,this.transformPagePoint),{point:m}=f,{timestamp:y}=Kt;this.history=[{...m,timestamp:y}];const{onSessionStart:b}=n;b&&b(t,Vh(f,this.history)),this.removeListeners=qo(To(this.contextWindow,"pointermove",this.handlePointerMove),To(this.contextWindow,"pointerup",this.handlePointerUp),To(this.contextWindow,"pointercancel",this.handlePointerUp)),c&&this.startScrollTracking(c)}startScrollTracking(t){let n=t.parentElement;for(;n;){const a=getComputedStyle(n);(eb.has(a.overflowX)||eb.has(a.overflowY))&&this.scrollPositions.set(n,{x:n.scrollLeft,y:n.scrollTop}),n=n.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0}),window.addEventListener("scroll",this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(t){const n=this.scrollPositions.get(t);if(!n)return;const a=t===window,s=a?{x:window.scrollX,y:window.scrollY}:{x:t.scrollLeft,y:t.scrollTop},o={x:s.x-n.x,y:s.y-n.y};o.x===0&&o.y===0||(a?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=o.x,this.lastMoveEventInfo.point.y+=o.y):this.history.length>0&&(this.history[0].x-=o.x,this.history[0].y-=o.y),this.scrollPositions.set(t,s),dt.update(this.updatePoint,!0))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),Na(this.updatePoint)}}function mu(e,t){return t?{point:t(e.point)}:e}function tb(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Vh({point:e},t){return{point:e,delta:tb(e,ax(t)),offset:tb(e,dI(t)),velocity:hI(t,.1)}}function dI(e){return e[0]}function ax(e){return e[e.length-1]}function hI(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,a=null;const s=ax(e);for(;n>=0&&(a=e[n],!(s.timestamp-a.timestamp>Sn(t)));)n--;if(!a)return{x:0,y:0};a===e[0]&&e.length>2&&s.timestamp-a.timestamp>Sn(t)*2&&(a=e[1]);const o=In(s.timestamp-a.timestamp);if(o===0)return{x:0,y:0};const u={x:(s.x-a.x)/o,y:(s.y-a.y)/o};return u.x===1/0&&(u.x=0),u.y===1/0&&(u.y=0),u}function fI(e,{min:t,max:n},a){return t!==void 0&&e<t?e=a?vt(t,e,a.min):Math.max(e,t):n!==void 0&&e>n&&(e=a?vt(n,e,a.max):Math.min(e,n)),e}function nb(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function pI(e,{top:t,left:n,bottom:a,right:s}){return{x:nb(e.x,n,s),y:nb(e.y,t,a)}}function rb(e,t){let n=t.min-e.min,a=t.max-e.max;return t.max-t.min<e.max-e.min&&([n,a]=[a,n]),{min:n,max:a}}function mI(e,t){return{x:rb(e.x,t.x),y:rb(e.y,t.y)}}function gI(e,t){let n=.5;const a=ln(e),s=ln(t);return s>a?n=Do(t.min,t.max-a,e.min):a>s&&(n=Do(e.min,e.max-s,t.min)),kr(0,1,n)}function yI(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const Bf=.35;function vI(e=Bf){return e===!1?e=0:e===!0&&(e=Bf),{x:ab(e,"left","right"),y:ab(e,"top","bottom")}}function ab(e,t,n){return{min:ib(e,t),max:ib(e,n)}}function ib(e,t){return typeof e=="number"?e:e[t]||0}const bI=new WeakMap;class _I{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=It(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=t}start(t,{snapToCursor:n=!1,distanceThreshold:a}={}){const{presenceContext:s}=this.visualElement;if(s&&s.isPresent===!1)return;const o=y=>{n&&this.snapToCursor(Zo(y).point),this.stopAnimation()},u=(y,b)=>{const{drag:w,dragPropagation:x,onDragStart:T}=this.getProps();if(w&&!x&&(this.openDragLock&&this.openDragLock(),this.openDragLock=K2(w),!this.openDragLock))return;this.latestPointerEvent=y,this.latestPanInfo=b,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),hr(L=>{let D=this.getAxisMotionValue(L).get()||0;if(yr.test(D)){const{projection:M}=this.visualElement;if(M&&M.layout){const j=M.layout.layoutBox[L];j&&(D=ln(j)*(parseFloat(D)/100))}}this.originPoint[L]=D}),T&&dt.update(()=>T(y,b),!1,!0),Af(this.visualElement,"transform");const{animationState:P}=this.visualElement;P&&P.setActive("whileDrag",!0)},c=(y,b)=>{this.latestPointerEvent=y,this.latestPanInfo=b;const{dragPropagation:w,dragDirectionLock:x,onDirectionLock:T,onDrag:P}=this.getProps();if(!w&&!this.openDragLock)return;const{offset:L}=b;if(x&&this.currentDirection===null){this.currentDirection=kI(L),this.currentDirection!==null&&T&&T(this.currentDirection);return}this.updateAxis("x",b.point,L),this.updateAxis("y",b.point,L),this.visualElement.render(),P&&dt.update(()=>P(y,b),!1,!0)},h=(y,b)=>{this.latestPointerEvent=y,this.latestPanInfo=b,this.stop(y,b),this.latestPointerEvent=null,this.latestPanInfo=null},f=()=>{const{dragSnapToOrigin:y}=this.getProps();(y||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:m}=this.getProps();this.panSession=new rx(t,{onSessionStart:o,onStart:u,onMove:c,onSessionEnd:h,resumeAnimation:f},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:m,distanceThreshold:a,contextWindow:nx(this.visualElement),element:this.visualElement.current})}stop(t,n){const a=t||this.latestPointerEvent,s=n||this.latestPanInfo,o=this.isDragging;if(this.cancel(),!o||!s||!a)return;const{velocity:u}=s;this.startAnimation(u);const{onDragEnd:c}=this.getProps();c&&dt.postRender(()=>c(a,s))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.endPanSession();const{dragPropagation:a}=this.getProps();!a&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(t,n,a){const{drag:s}=this.getProps();if(!a||!gu(t,s,this.currentDirection))return;const o=this.getAxisMotionValue(t);let u=this.originPoint[t]+a[t];this.constraints&&this.constraints[t]&&(u=fI(u,this.constraints[t],this.elastic[t])),o.set(u)}resolveConstraints(){const{dragConstraints:t,dragElastic:n}=this.getProps(),a=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,s=this.constraints;t&&ts(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&a?this.constraints=pI(a.layoutBox,t):this.constraints=!1,this.elastic=vI(n),s!==this.constraints&&!ts(t)&&a&&this.constraints&&!this.hasMutatedConstraints&&hr(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=yI(a.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!ts(t))return!1;const a=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;const o=wN(a,s.root,this.visualElement.getTransformPagePoint());let u=mI(s.layout.layoutBox,o);if(n){const c=n(vN(u));this.hasMutatedConstraints=!!c,c&&(u=Pk(c))}return u}startAnimation(t){const{drag:n,dragMomentum:a,dragElastic:s,dragTransition:o,dragSnapToOrigin:u,onDragTransitionEnd:c}=this.getProps(),h=this.constraints||{},f=hr(m=>{if(!gu(m,n,this.currentDirection))return;let y=h&&h[m]||{};(u===!0||u===m)&&(y={min:0,max:0});const b=s?200:1e6,w=s?40:1e7,x={type:"inertia",velocity:a?t[m]:0,bounceStiffness:b,bounceDamping:w,timeConstant:750,restDelta:1,restSpeed:10,...o,...y};return this.startAxisValueAnimation(m,x)});return Promise.all(f).then(c)}startAxisValueAnimation(t,n){const a=this.getAxisMotionValue(t);return Af(this.visualElement,t),a.start(Bp(t,a,0,n,this.visualElement,!1))}stopAnimation(){hr(t=>this.getAxisMotionValue(t).stop())}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,a=this.visualElement.getProps(),s=a[n];return s||this.visualElement.getValue(t,(a.initial?a.initial[t]:void 0)||0)}snapToCursor(t){hr(n=>{const{drag:a}=this.getProps();if(!gu(n,a,this.currentDirection))return;const{projection:s}=this.visualElement,o=this.getAxisMotionValue(n);if(s&&s.layout){const{min:u,max:c}=s.layout.layoutBox[n],h=o.get()||0;o.set(t[n]-vt(u,c,.5)+h)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:a}=this.visualElement;if(!ts(n)||!a||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};hr(u=>{const c=this.getAxisMotionValue(u);if(c&&this.constraints!==!1){const h=c.get();s[u]=gI({min:h,max:h},this.constraints[u])}});const{transformTemplate:o}=this.visualElement.getProps();this.visualElement.current.style.transform=o?o({},""):"none",a.root&&a.root.updateScroll(),a.updateLayout(),this.constraints=!1,this.resolveConstraints(),hr(u=>{if(!gu(u,t,null))return;const c=this.getAxisMotionValue(u),{min:h,max:f}=this.constraints[u];c.set(vt(h,f,s[u]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;bI.set(this.visualElement,this);const t=this.visualElement.current,n=To(t,"pointerdown",f=>{const{drag:m,dragListener:y=!0}=this.getProps(),b=f.target,w=b!==t&&X2(b);m&&y&&!w&&this.start(f)});let a;const s=()=>{const{dragConstraints:f}=this.getProps();ts(f)&&f.current&&(this.constraints=this.resolveRefConstraints(),a||(a=wI(t,f.current,()=>this.scalePositionWithinConstraints())))},{projection:o}=this.visualElement,u=o.addEventListener("measure",s);o&&!o.layout&&(o.root&&o.root.updateScroll(),o.updateLayout()),dt.read(s);const c=Oo(window,"resize",()=>this.scalePositionWithinConstraints()),h=o.addEventListener("didUpdate",(({delta:f,hasLayoutChanged:m})=>{this.isDragging&&m&&(hr(y=>{const b=this.getAxisMotionValue(y);b&&(this.originPoint[y]+=f[y].translate,b.set(b.get()+f[y].translate))}),this.visualElement.render())}));return()=>{c(),n(),u(),h&&h(),a&&a()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:a=!1,dragPropagation:s=!1,dragConstraints:o=!1,dragElastic:u=Bf,dragMomentum:c=!0}=t;return{...t,drag:n,dragDirectionLock:a,dragPropagation:s,dragConstraints:o,dragElastic:u,dragMomentum:c}}}function sb(e){let t=!0;return()=>{if(t){t=!1;return}e()}}function wI(e,t,n){const a=f0(e,sb(n)),s=f0(t,sb(n));return()=>{a(),s()}}function gu(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function kI(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class xI extends Ia{constructor(t){super(t),this.removeGroupControls=jn,this.removeListeners=jn,this.controls=new _I(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||jn}update(){const{dragControls:t}=this.node.getProps(),{dragControls:n}=this.node.prevProps||{};t!==n&&(this.removeGroupControls(),t&&(this.removeGroupControls=t.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}}const zh=e=>(t,n)=>{e&&dt.update(()=>e(t,n),!1,!0)};class SI extends Ia{constructor(){super(...arguments),this.removePointerDownListener=jn}onPointerDown(t){this.session=new rx(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:nx(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:a,onPanEnd:s}=this.node.getProps();return{onSessionStart:zh(t),onStart:zh(n),onMove:zh(a),onEnd:(o,u)=>{delete this.session,s&&dt.postRender(()=>s(o,u))}}}mount(){this.removePointerDownListener=To(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let $h=!1;class PI extends k.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:a,layoutId:s}=this.props,{projection:o}=t;o&&(n.group&&n.group.add(o),a&&a.register&&s&&a.register(o),$h&&o.root.didUpdate(),o.addEventListener("animationComplete",()=>{this.safeToRemove()}),o.setOptions({...o.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),ju.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:a,drag:s,isPresent:o}=this.props,{projection:u}=a;return u&&(u.isPresent=o,t.layoutDependency!==n&&u.setOptions({...u.options,layoutDependency:n}),$h=!0,s||t.layoutDependency!==n||n===void 0||t.isPresent!==o?u.willUpdate():this.safeToRemove(),t.isPresent!==o&&(o?u.promote():u.relegate()||dt.postRender(()=>{const c=u.getStack();(!c||!c.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{visualElement:t,layoutAnchor:n}=this.props,{projection:a}=t;a&&(a.options.layoutAnchor=n,a.root.didUpdate(),$p.postRender(()=>{!a.currentAnimation&&a.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:a}=this.props,{projection:s}=t;$h=!0,s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),a&&a.deregister&&a.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function ix(e){const[t,n]=qk(),a=k.useContext(Sp);return I.jsx(PI,{...e,layoutGroup:a,switchLayoutGroup:k.useContext(ex),isPresent:t,safeToRemove:n})}const TI={pan:{Feature:SI},drag:{Feature:xI,ProjectionNode:Kk,MeasureLayout:ix}};function ob(e,t,n){const{props:a}=e;e.animationState&&a.whileHover&&e.animationState.setActive("whileHover",n==="Start");const s="onHover"+n,o=a[s];o&&dt.postRender(()=>o(t,Zo(t)))}class CI extends Ia{mount(){const{current:t}=this.node;t&&(this.unmount=G2(t,(n,a)=>(ob(this.node,a,"Start"),s=>ob(this.node,s,"End"))))}unmount(){}}class EI extends Ia{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=qo(Oo(this.node.current,"focus",()=>this.onFocus()),Oo(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function lb(e,t,n){const{props:a}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&a.whileTap&&e.animationState.setActive("whileTap",n==="Start");const s="onTap"+(n==="End"?"":n),o=a[s];o&&dt.postRender(()=>o(t,Zo(t)))}class RI extends Ia{mount(){const{current:t}=this.node;if(!t)return;const{globalTapTarget:n,propagate:a}=this.node.props;this.unmount=eN(t,(s,o)=>(lb(this.node,o,"Start"),(u,{success:c})=>lb(this.node,u,c?"End":"Cancel")),{useGlobalTarget:n,stopPropagation:a?.tap===!1})}unmount(){}}const Ff=new WeakMap,Hh=new WeakMap,AI=e=>{const t=Ff.get(e.target);t&&t(e)},LI=e=>{e.forEach(AI)};function DI({root:e,...t}){const n=e||document;Hh.has(n)||Hh.set(n,{});const a=Hh.get(n),s=JSON.stringify(t);return a[s]||(a[s]=new IntersectionObserver(LI,{root:e,...t})),a[s]}function MI(e,t,n){const a=DI(t);return Ff.set(e,n),a.observe(e),()=>{Ff.delete(e),a.unobserve(e)}}const NI={some:0,all:1};class OI extends Ia{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.stopObserver?.();const{viewport:t={}}=this.node.getProps(),{root:n,margin:a,amount:s="some",once:o}=t,u={root:n?n.current:void 0,rootMargin:a,threshold:typeof s=="number"?s:NI[s]},c=h=>{const{isIntersecting:f}=h;if(this.isInView===f||(this.isInView=f,o&&!f&&this.hasEnteredView))return;f&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",f);const{onViewportEnter:m,onViewportLeave:y}=this.node.getProps(),b=f?m:y;b&&b(h)};this.stopObserver=MI(this.node.current,u,c)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(II(t,n))&&this.startObserver()}unmount(){this.stopObserver?.(),this.hasEnteredView=!1,this.isInView=!1}}function II({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const jI={inView:{Feature:OI},tap:{Feature:RI},focus:{Feature:EI},hover:{Feature:CI}},UI={layout:{ProjectionNode:Kk,MeasureLayout:ix}},BI={...lI,...jI,...TI,...UI},Wh=rI(BI,aI);function sx(e){var t,n,a="";if(typeof e=="string"||typeof e=="number")a+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t<s;t++)e[t]&&(n=sx(e[t]))&&(a&&(a+=" "),a+=n)}else for(n in e)e[n]&&(a&&(a+=" "),a+=n);return a}function FI(){for(var e,t,n=0,a="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=sx(e))&&(a&&(a+=" "),a+=t);return a}const VI=(e,t)=>{const n=new Array(e.length+t.length);for(let a=0;a<e.length;a++)n[a]=e[a];for(let a=0;a<t.length;a++)n[e.length+a]=t[a];return n},zI=(e,t)=>({classGroupId:e,validator:t}),ox=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),cc="-",ub=[],$I="arbitrary..",HI=e=>{const t=KI(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:a}=e;return{getClassGroupId:u=>{if(u.startsWith("[")&&u.endsWith("]"))return WI(u);const c=u.split(cc),h=c[0]===""&&c.length>1?1:0;return lx(c,h,t)},getConflictingClassGroupIds:(u,c)=>{if(c){const h=a[u],f=n[u];return h?f?VI(f,h):h:f||ub}return n[u]||ub}}},lx=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const s=e[t],o=n.nextPart.get(s);if(o){const f=lx(e,t+1,o);if(f)return f}const u=n.validators;if(u===null)return;const c=t===0?e.join(cc):e.slice(t).join(cc),h=u.length;for(let f=0;f<h;f++){const m=u[f];if(m.validator(c))return m.classGroupId}},WI=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),n=t.indexOf(":"),a=t.slice(0,n);return a?$I+a:void 0})(),KI=e=>{const{theme:t,classGroups:n}=e;return qI(n,t)},qI=(e,t)=>{const n=ox();for(const a in e){const s=e[a];Jp(s,n,a,t)}return n},Jp=(e,t,n,a)=>{const s=e.length;for(let o=0;o<s;o++){const u=e[o];GI(u,t,n,a)}},GI=(e,t,n,a)=>{if(typeof e=="string"){YI(e,t,n);return}if(typeof e=="function"){ZI(e,t,n,a);return}QI(e,t,n,a)},YI=(e,t,n)=>{const a=e===""?t:ux(t,e);a.classGroupId=n},ZI=(e,t,n,a)=>{if(XI(e)){Jp(e(a),t,n,a);return}t.validators===null&&(t.validators=[]),t.validators.push(zI(n,e))},QI=(e,t,n,a)=>{const s=Object.entries(e),o=s.length;for(let u=0;u<o;u++){const[c,h]=s[u];Jp(h,ux(t,c),n,a)}},ux=(e,t)=>{let n=e;const a=t.split(cc),s=a.length;for(let o=0;o<s;o++){const u=a[o];let c=n.nextPart.get(u);c||(c=ox(),n.nextPart.set(u,c)),n=c}return n},XI=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,JI=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=Object.create(null),a=Object.create(null);const s=(o,u)=>{n[o]=u,t++,t>e&&(t=0,a=n,n=Object.create(null))};return{get(o){let u=n[o];if(u!==void 0)return u;if((u=a[o])!==void 0)return s(o,u),u},set(o,u){o in n?n[o]=u:s(o,u)}}},Vf="!",cb=":",ej=[],db=(e,t,n,a,s)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:a,isExternal:s}),tj=e=>{const{prefix:t,experimentalParseClassName:n}=e;let a=s=>{const o=[];let u=0,c=0,h=0,f;const m=s.length;for(let T=0;T<m;T++){const P=s[T];if(u===0&&c===0){if(P===cb){o.push(s.slice(h,T)),h=T+1;continue}if(P==="/"){f=T;continue}}P==="["?u++:P==="]"?u--:P==="("?c++:P===")"&&c--}const y=o.length===0?s:s.slice(h);let b=y,w=!1;y.endsWith(Vf)?(b=y.slice(0,-1),w=!0):y.startsWith(Vf)&&(b=y.slice(1),w=!0);const x=f&&f>h?f-h:void 0;return db(o,w,b,x)};if(t){const s=t+cb,o=a;a=u=>u.startsWith(s)?o(u.slice(s.length)):db(ej,!1,u,void 0,!0)}if(n){const s=a;a=o=>n({className:o,parseClassName:s})}return a},nj=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((n,a)=>{t.set(n,1e6+a)}),n=>{const a=[];let s=[];for(let o=0;o<n.length;o++){const u=n[o],c=u[0]==="[",h=t.has(u);c||h?(s.length>0&&(s.sort(),a.push(...s),s=[]),a.push(u)):s.push(u)}return s.length>0&&(s.sort(),a.push(...s)),a}},rj=e=>({cache:JI(e.cacheSize),parseClassName:tj(e),sortModifiers:nj(e),...HI(e)}),aj=/\s+/,ij=(e,t)=>{const{parseClassName:n,getClassGroupId:a,getConflictingClassGroupIds:s,sortModifiers:o}=t,u=[],c=e.trim().split(aj);let h="";for(let f=c.length-1;f>=0;f-=1){const m=c[f],{isExternal:y,modifiers:b,hasImportantModifier:w,baseClassName:x,maybePostfixModifierPosition:T}=n(m);if(y){h=m+(h.length>0?" "+h:h);continue}let P=!!T,L=a(P?x.substring(0,T):x);if(!L){if(!P){h=m+(h.length>0?" "+h:h);continue}if(L=a(x),!L){h=m+(h.length>0?" "+h:h);continue}P=!1}const D=b.length===0?"":b.length===1?b[0]:o(b).join(":"),M=w?D+Vf:D,j=M+L;if(u.indexOf(j)>-1)continue;u.push(j);const K=s(L,P);for(let G=0;G<K.length;++G){const W=K[G];u.push(M+W)}h=m+(h.length>0?" "+h:h)}return h},sj=(...e)=>{let t=0,n,a,s="";for(;t<e.length;)(n=e[t++])&&(a=cx(n))&&(s&&(s+=" "),s+=a);return s},cx=e=>{if(typeof e=="string")return e;let t,n="";for(let a=0;a<e.length;a++)e[a]&&(t=cx(e[a]))&&(n&&(n+=" "),n+=t);return n},oj=(e,...t)=>{let n,a,s,o;const u=h=>{const f=t.reduce((m,y)=>y(m),e());return n=rj(f),a=n.cache.get,s=n.cache.set,o=c,c(h)},c=h=>{const f=a(h);if(f)return f;const m=ij(h,n);return s(h,m),m};return o=u,(...h)=>o(sj(...h))},lj=[],Ot=e=>{const t=n=>n[e]||lj;return t.isThemeGetter=!0,t},dx=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,hx=/^\((?:(\w[\w-]*):)?(.+)\)$/i,uj=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,cj=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,dj=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,hj=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,fj=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,pj=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ka=e=>uj.test(e),Ge=e=>!!e&&!Number.isNaN(Number(e)),xa=e=>!!e&&Number.isInteger(Number(e)),Kh=e=>e.endsWith("%")&&Ge(e.slice(0,-1)),Fr=e=>cj.test(e),fx=()=>!0,mj=e=>dj.test(e)&&!hj.test(e),em=()=>!1,gj=e=>fj.test(e),yj=e=>pj.test(e),vj=e=>!ve(e)&&!we(e),bj=e=>ja(e,gx,em),ve=e=>dx.test(e),Ja=e=>ja(e,yx,mj),hb=e=>ja(e,Cj,Ge),_j=e=>ja(e,bx,fx),wj=e=>ja(e,vx,em),fb=e=>ja(e,px,em),kj=e=>ja(e,mx,yj),yu=e=>ja(e,_x,gj),we=e=>hx.test(e),mo=e=>gi(e,yx),xj=e=>gi(e,vx),pb=e=>gi(e,px),Sj=e=>gi(e,gx),Pj=e=>gi(e,mx),vu=e=>gi(e,_x,!0),Tj=e=>gi(e,bx,!0),ja=(e,t,n)=>{const a=dx.exec(e);return a?a[1]?t(a[1]):n(a[2]):!1},gi=(e,t,n=!1)=>{const a=hx.exec(e);return a?a[1]?t(a[1]):n:!1},px=e=>e==="position"||e==="percentage",mx=e=>e==="image"||e==="url",gx=e=>e==="length"||e==="size"||e==="bg-size",yx=e=>e==="length",Cj=e=>e==="number",vx=e=>e==="family-name",bx=e=>e==="number"||e==="weight",_x=e=>e==="shadow",Ej=()=>{const e=Ot("color"),t=Ot("font"),n=Ot("text"),a=Ot("font-weight"),s=Ot("tracking"),o=Ot("leading"),u=Ot("breakpoint"),c=Ot("container"),h=Ot("spacing"),f=Ot("radius"),m=Ot("shadow"),y=Ot("inset-shadow"),b=Ot("text-shadow"),w=Ot("drop-shadow"),x=Ot("blur"),T=Ot("perspective"),P=Ot("aspect"),L=Ot("ease"),D=Ot("animate"),M=()=>["auto","avoid","all","avoid-page","page","left","right","column"],j=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],K=()=>[...j(),we,ve],G=()=>["auto","hidden","clip","visible","scroll"],W=()=>["auto","contain","none"],S=()=>[we,ve,h],Z=()=>[ka,"full","auto",...S()],X=()=>[xa,"none","subgrid",we,ve],_e=()=>["auto",{span:["full",xa,we,ve]},xa,we,ve],oe=()=>[xa,"auto",we,ve],Re=()=>["auto","min","max","fr",we,ve],fe=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],ce=()=>["start","end","center","stretch","center-safe","end-safe"],ue=()=>["auto",...S()],Me=()=>[ka,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...S()],H=()=>[ka,"screen","full","dvw","lvw","svw","min","max","fit",...S()],Y=()=>[ka,"screen","full","lh","dvh","lvh","svh","min","max","fit",...S()],$=()=>[e,we,ve],N=()=>[...j(),pb,fb,{position:[we,ve]}],q=()=>["no-repeat",{repeat:["","x","y","space","round"]}],xe=()=>["auto","cover","contain",Sj,bj,{size:[we,ve]}],Ae=()=>[Kh,mo,Ja],Se=()=>["","none","full",f,we,ve],Ce=()=>["",Ge,mo,Ja],qe=()=>["solid","dashed","dotted","double"],Xe=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],Ue=()=>[Ge,Kh,pb,fb],jt=()=>["","none",x,we,ve],$n=()=>["none",Ge,we,ve],Tr=()=>["none",Ge,we,ve],pt=()=>[Ge,we,ve],en=()=>[ka,"full",...S()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Fr],breakpoint:[Fr],color:[fx],container:[Fr],"drop-shadow":[Fr],ease:["in","out","in-out"],font:[vj],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Fr],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Fr],shadow:[Fr],spacing:["px",Ge],text:[Fr],"text-shadow":[Fr],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",ka,ve,we,P]}],container:["container"],columns:[{columns:[Ge,ve,we,c]}],"break-after":[{"break-after":M()}],"break-before":[{"break-before":M()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:K()}],overflow:[{overflow:G()}],"overflow-x":[{"overflow-x":G()}],"overflow-y":[{"overflow-y":G()}],overscroll:[{overscroll:W()}],"overscroll-x":[{"overscroll-x":W()}],"overscroll-y":[{"overscroll-y":W()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:Z()}],"inset-x":[{"inset-x":Z()}],"inset-y":[{"inset-y":Z()}],start:[{"inset-s":Z(),start:Z()}],end:[{"inset-e":Z(),end:Z()}],"inset-bs":[{"inset-bs":Z()}],"inset-be":[{"inset-be":Z()}],top:[{top:Z()}],right:[{right:Z()}],bottom:[{bottom:Z()}],left:[{left:Z()}],visibility:["visible","invisible","collapse"],z:[{z:[xa,"auto",we,ve]}],basis:[{basis:[ka,"full","auto",c,...S()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Ge,ka,"auto","initial","none",ve]}],grow:[{grow:["",Ge,we,ve]}],shrink:[{shrink:["",Ge,we,ve]}],order:[{order:[xa,"first","last","none",we,ve]}],"grid-cols":[{"grid-cols":X()}],"col-start-end":[{col:_e()}],"col-start":[{"col-start":oe()}],"col-end":[{"col-end":oe()}],"grid-rows":[{"grid-rows":X()}],"row-start-end":[{row:_e()}],"row-start":[{"row-start":oe()}],"row-end":[{"row-end":oe()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":Re()}],"auto-rows":[{"auto-rows":Re()}],gap:[{gap:S()}],"gap-x":[{"gap-x":S()}],"gap-y":[{"gap-y":S()}],"justify-content":[{justify:[...fe(),"normal"]}],"justify-items":[{"justify-items":[...ce(),"normal"]}],"justify-self":[{"justify-self":["auto",...ce()]}],"align-content":[{content:["normal",...fe()]}],"align-items":[{items:[...ce(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...ce(),{baseline:["","last"]}]}],"place-content":[{"place-content":fe()}],"place-items":[{"place-items":[...ce(),"baseline"]}],"place-self":[{"place-self":["auto",...ce()]}],p:[{p:S()}],px:[{px:S()}],py:[{py:S()}],ps:[{ps:S()}],pe:[{pe:S()}],pbs:[{pbs:S()}],pbe:[{pbe:S()}],pt:[{pt:S()}],pr:[{pr:S()}],pb:[{pb:S()}],pl:[{pl:S()}],m:[{m:ue()}],mx:[{mx:ue()}],my:[{my:ue()}],ms:[{ms:ue()}],me:[{me:ue()}],mbs:[{mbs:ue()}],mbe:[{mbe:ue()}],mt:[{mt:ue()}],mr:[{mr:ue()}],mb:[{mb:ue()}],ml:[{ml:ue()}],"space-x":[{"space-x":S()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":S()}],"space-y-reverse":["space-y-reverse"],size:[{size:Me()}],"inline-size":[{inline:["auto",...H()]}],"min-inline-size":[{"min-inline":["auto",...H()]}],"max-inline-size":[{"max-inline":["none",...H()]}],"block-size":[{block:["auto",...Y()]}],"min-block-size":[{"min-block":["auto",...Y()]}],"max-block-size":[{"max-block":["none",...Y()]}],w:[{w:[c,"screen",...Me()]}],"min-w":[{"min-w":[c,"screen","none",...Me()]}],"max-w":[{"max-w":[c,"screen","none","prose",{screen:[u]},...Me()]}],h:[{h:["screen","lh",...Me()]}],"min-h":[{"min-h":["screen","lh","none",...Me()]}],"max-h":[{"max-h":["screen","lh",...Me()]}],"font-size":[{text:["base",n,mo,Ja]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[a,Tj,_j]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Kh,ve]}],"font-family":[{font:[xj,wj,t]}],"font-features":[{"font-features":[ve]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[s,we,ve]}],"line-clamp":[{"line-clamp":[Ge,"none",we,hb]}],leading:[{leading:[o,...S()]}],"list-image":[{"list-image":["none",we,ve]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",we,ve]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:$()}],"text-color":[{text:$()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...qe(),"wavy"]}],"text-decoration-thickness":[{decoration:[Ge,"from-font","auto",we,Ja]}],"text-decoration-color":[{decoration:$()}],"underline-offset":[{"underline-offset":[Ge,"auto",we,ve]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:S()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",we,ve]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",we,ve]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:N()}],"bg-repeat":[{bg:q()}],"bg-size":[{bg:xe()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},xa,we,ve],radial:["",we,ve],conic:[xa,we,ve]},Pj,kj]}],"bg-color":[{bg:$()}],"gradient-from-pos":[{from:Ae()}],"gradient-via-pos":[{via:Ae()}],"gradient-to-pos":[{to:Ae()}],"gradient-from":[{from:$()}],"gradient-via":[{via:$()}],"gradient-to":[{to:$()}],rounded:[{rounded:Se()}],"rounded-s":[{"rounded-s":Se()}],"rounded-e":[{"rounded-e":Se()}],"rounded-t":[{"rounded-t":Se()}],"rounded-r":[{"rounded-r":Se()}],"rounded-b":[{"rounded-b":Se()}],"rounded-l":[{"rounded-l":Se()}],"rounded-ss":[{"rounded-ss":Se()}],"rounded-se":[{"rounded-se":Se()}],"rounded-ee":[{"rounded-ee":Se()}],"rounded-es":[{"rounded-es":Se()}],"rounded-tl":[{"rounded-tl":Se()}],"rounded-tr":[{"rounded-tr":Se()}],"rounded-br":[{"rounded-br":Se()}],"rounded-bl":[{"rounded-bl":Se()}],"border-w":[{border:Ce()}],"border-w-x":[{"border-x":Ce()}],"border-w-y":[{"border-y":Ce()}],"border-w-s":[{"border-s":Ce()}],"border-w-e":[{"border-e":Ce()}],"border-w-bs":[{"border-bs":Ce()}],"border-w-be":[{"border-be":Ce()}],"border-w-t":[{"border-t":Ce()}],"border-w-r":[{"border-r":Ce()}],"border-w-b":[{"border-b":Ce()}],"border-w-l":[{"border-l":Ce()}],"divide-x":[{"divide-x":Ce()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":Ce()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...qe(),"hidden","none"]}],"divide-style":[{divide:[...qe(),"hidden","none"]}],"border-color":[{border:$()}],"border-color-x":[{"border-x":$()}],"border-color-y":[{"border-y":$()}],"border-color-s":[{"border-s":$()}],"border-color-e":[{"border-e":$()}],"border-color-bs":[{"border-bs":$()}],"border-color-be":[{"border-be":$()}],"border-color-t":[{"border-t":$()}],"border-color-r":[{"border-r":$()}],"border-color-b":[{"border-b":$()}],"border-color-l":[{"border-l":$()}],"divide-color":[{divide:$()}],"outline-style":[{outline:[...qe(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Ge,we,ve]}],"outline-w":[{outline:["",Ge,mo,Ja]}],"outline-color":[{outline:$()}],shadow:[{shadow:["","none",m,vu,yu]}],"shadow-color":[{shadow:$()}],"inset-shadow":[{"inset-shadow":["none",y,vu,yu]}],"inset-shadow-color":[{"inset-shadow":$()}],"ring-w":[{ring:Ce()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:$()}],"ring-offset-w":[{"ring-offset":[Ge,Ja]}],"ring-offset-color":[{"ring-offset":$()}],"inset-ring-w":[{"inset-ring":Ce()}],"inset-ring-color":[{"inset-ring":$()}],"text-shadow":[{"text-shadow":["none",b,vu,yu]}],"text-shadow-color":[{"text-shadow":$()}],opacity:[{opacity:[Ge,we,ve]}],"mix-blend":[{"mix-blend":[...Xe(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Xe()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[Ge]}],"mask-image-linear-from-pos":[{"mask-linear-from":Ue()}],"mask-image-linear-to-pos":[{"mask-linear-to":Ue()}],"mask-image-linear-from-color":[{"mask-linear-from":$()}],"mask-image-linear-to-color":[{"mask-linear-to":$()}],"mask-image-t-from-pos":[{"mask-t-from":Ue()}],"mask-image-t-to-pos":[{"mask-t-to":Ue()}],"mask-image-t-from-color":[{"mask-t-from":$()}],"mask-image-t-to-color":[{"mask-t-to":$()}],"mask-image-r-from-pos":[{"mask-r-from":Ue()}],"mask-image-r-to-pos":[{"mask-r-to":Ue()}],"mask-image-r-from-color":[{"mask-r-from":$()}],"mask-image-r-to-color":[{"mask-r-to":$()}],"mask-image-b-from-pos":[{"mask-b-from":Ue()}],"mask-image-b-to-pos":[{"mask-b-to":Ue()}],"mask-image-b-from-color":[{"mask-b-from":$()}],"mask-image-b-to-color":[{"mask-b-to":$()}],"mask-image-l-from-pos":[{"mask-l-from":Ue()}],"mask-image-l-to-pos":[{"mask-l-to":Ue()}],"mask-image-l-from-color":[{"mask-l-from":$()}],"mask-image-l-to-color":[{"mask-l-to":$()}],"mask-image-x-from-pos":[{"mask-x-from":Ue()}],"mask-image-x-to-pos":[{"mask-x-to":Ue()}],"mask-image-x-from-color":[{"mask-x-from":$()}],"mask-image-x-to-color":[{"mask-x-to":$()}],"mask-image-y-from-pos":[{"mask-y-from":Ue()}],"mask-image-y-to-pos":[{"mask-y-to":Ue()}],"mask-image-y-from-color":[{"mask-y-from":$()}],"mask-image-y-to-color":[{"mask-y-to":$()}],"mask-image-radial":[{"mask-radial":[we,ve]}],"mask-image-radial-from-pos":[{"mask-radial-from":Ue()}],"mask-image-radial-to-pos":[{"mask-radial-to":Ue()}],"mask-image-radial-from-color":[{"mask-radial-from":$()}],"mask-image-radial-to-color":[{"mask-radial-to":$()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":j()}],"mask-image-conic-pos":[{"mask-conic":[Ge]}],"mask-image-conic-from-pos":[{"mask-conic-from":Ue()}],"mask-image-conic-to-pos":[{"mask-conic-to":Ue()}],"mask-image-conic-from-color":[{"mask-conic-from":$()}],"mask-image-conic-to-color":[{"mask-conic-to":$()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:N()}],"mask-repeat":[{mask:q()}],"mask-size":[{mask:xe()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",we,ve]}],filter:[{filter:["","none",we,ve]}],blur:[{blur:jt()}],brightness:[{brightness:[Ge,we,ve]}],contrast:[{contrast:[Ge,we,ve]}],"drop-shadow":[{"drop-shadow":["","none",w,vu,yu]}],"drop-shadow-color":[{"drop-shadow":$()}],grayscale:[{grayscale:["",Ge,we,ve]}],"hue-rotate":[{"hue-rotate":[Ge,we,ve]}],invert:[{invert:["",Ge,we,ve]}],saturate:[{saturate:[Ge,we,ve]}],sepia:[{sepia:["",Ge,we,ve]}],"backdrop-filter":[{"backdrop-filter":["","none",we,ve]}],"backdrop-blur":[{"backdrop-blur":jt()}],"backdrop-brightness":[{"backdrop-brightness":[Ge,we,ve]}],"backdrop-contrast":[{"backdrop-contrast":[Ge,we,ve]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Ge,we,ve]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Ge,we,ve]}],"backdrop-invert":[{"backdrop-invert":["",Ge,we,ve]}],"backdrop-opacity":[{"backdrop-opacity":[Ge,we,ve]}],"backdrop-saturate":[{"backdrop-saturate":[Ge,we,ve]}],"backdrop-sepia":[{"backdrop-sepia":["",Ge,we,ve]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":S()}],"border-spacing-x":[{"border-spacing-x":S()}],"border-spacing-y":[{"border-spacing-y":S()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",we,ve]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Ge,"initial",we,ve]}],ease:[{ease:["linear","initial",L,we,ve]}],delay:[{delay:[Ge,we,ve]}],animate:[{animate:["none",D,we,ve]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[T,we,ve]}],"perspective-origin":[{"perspective-origin":K()}],rotate:[{rotate:$n()}],"rotate-x":[{"rotate-x":$n()}],"rotate-y":[{"rotate-y":$n()}],"rotate-z":[{"rotate-z":$n()}],scale:[{scale:Tr()}],"scale-x":[{"scale-x":Tr()}],"scale-y":[{"scale-y":Tr()}],"scale-z":[{"scale-z":Tr()}],"scale-3d":["scale-3d"],skew:[{skew:pt()}],"skew-x":[{"skew-x":pt()}],"skew-y":[{"skew-y":pt()}],transform:[{transform:[we,ve,"","none","gpu","cpu"]}],"transform-origin":[{origin:K()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:en()}],"translate-x":[{"translate-x":en()}],"translate-y":[{"translate-y":en()}],"translate-z":[{"translate-z":en()}],"translate-none":["translate-none"],accent:[{accent:$()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:$()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",we,ve]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":S()}],"scroll-mx":[{"scroll-mx":S()}],"scroll-my":[{"scroll-my":S()}],"scroll-ms":[{"scroll-ms":S()}],"scroll-me":[{"scroll-me":S()}],"scroll-mbs":[{"scroll-mbs":S()}],"scroll-mbe":[{"scroll-mbe":S()}],"scroll-mt":[{"scroll-mt":S()}],"scroll-mr":[{"scroll-mr":S()}],"scroll-mb":[{"scroll-mb":S()}],"scroll-ml":[{"scroll-ml":S()}],"scroll-p":[{"scroll-p":S()}],"scroll-px":[{"scroll-px":S()}],"scroll-py":[{"scroll-py":S()}],"scroll-ps":[{"scroll-ps":S()}],"scroll-pe":[{"scroll-pe":S()}],"scroll-pbs":[{"scroll-pbs":S()}],"scroll-pbe":[{"scroll-pbe":S()}],"scroll-pt":[{"scroll-pt":S()}],"scroll-pr":[{"scroll-pr":S()}],"scroll-pb":[{"scroll-pb":S()}],"scroll-pl":[{"scroll-pl":S()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",we,ve]}],fill:[{fill:["none",...$()]}],"stroke-w":[{stroke:[Ge,mo,Ja,hb]}],stroke:[{stroke:["none",...$()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},Rj=oj(Ej);function Ct(...e){return Rj(FI(e))}const Aj=I.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",children:[I.jsx("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1Z",fill:"#4285F4"}),I.jsx("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23Z",fill:"#34A853"}),I.jsx("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18A10.96 10.96 0 0 0 1 12c0 1.77.42 3.44 1.18 4.93l3.66-2.84Z",fill:"#FBBC05"}),I.jsx("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53Z",fill:"#EA4335"})]}),Lj=I.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor",children:I.jsx("path",{d:"M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12Z"})}),Dj={google:Aj,github:Lj},Mj={google:"Google",github:"GitHub",microsoft:"Microsoft",discord:"Discord",apple:"Apple"};function Nj(e){return Mj[e]||String(e||"").replace(/-/g," ")}function Oj(){Ko();const{isOpen:e,closeLoginModal:t}=bw(),{enabled:n,signedIn:a,refreshUser:s,signInWithPassword:o,signUp:u,signInWithOAuth:c,getPublicAuthConfig:h}=Ho(),[f,m]=k.useState("signin"),[y,b]=k.useState(""),[w,x]=k.useState(""),[T,P]=k.useState(""),[L,D]=k.useState(!1),[M,j]=k.useState(null),[K,G]=k.useState(null),[W,S]=k.useState(!1),[Z,X]=k.useState(!0),[_e,oe]=k.useState([]),[Re,fe]=k.useState(8);k.useEffect(()=>{e&&(j(null),G(null),m("signin"),b(""),x(""),P(""),S(!1))},[e]),k.useEffect(()=>{if(!e||!n){X(!1);return}let H=!0;return(async()=>{const{data:Y,error:$}=await h();if(H){if($||!Y)oe(["google","github"]);else{const N=Array.isArray(Y.oAuthProviders)?Y.oAuthProviders:[],q=Array.isArray(Y.customOAuthProviders)?Y.customOAuthProviders:[];oe([...N,...q]),typeof Y.passwordMinLength=="number"&&Y.passwordMinLength>0&&fe(Y.passwordMinLength)}X(!1)}})(),()=>{H=!1}},[e,n,h]),k.useEffect(()=>{e&&a&&t()},[e,a,t]);const ce=k.useMemo(()=>typeof window>"u"?"":!!window.webkit?.messageHandlers?.nativeOAuth?`${window.location.origin}/auth/callback`:`${window.location.origin}/`,[]),ue=k.useCallback(async H=>{j(null),D(!0);try{const{error:Y}=await c(H,ce);Y&&j(Y.message||String(Y))}finally{D(!1)}},[c,ce]),Me=k.useCallback(async H=>{H.preventDefault(),j(null),D(!0);try{if(f==="signup"){const{data:$,error:N}=await u({email:y.trim(),password:w,name:T.trim()||void 0});if(N){j(N.message||String(N));return}if($?.requireEmailVerification){G(Fe("login.verify_email_pending")),m("signin");return}await s();return}const{error:Y}=await o({email:y.trim(),password:w});if(Y){j(Y.message||String(Y));return}await s()}finally{D(!1)}},[f,y,w,T,u,o,s]);return k.useEffect(()=>{if(!e)return;const H=Y=>{Y.key==="Escape"&&t()};return document.addEventListener("keydown",H),()=>document.removeEventListener("keydown",H)},[e,t]),n?I.jsx(DO,{children:e&&I.jsxs(Wh.div,{className:"fixed inset-0 z-[100] flex items-center justify-center p-4",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2},children:[I.jsx(Wh.div,{className:"absolute inset-0 bg-black/40 dark:bg-black/60 ",onClick:t,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0}}),I.jsxs(Wh.div,{className:"relative w-full max-w-[420px] rounded-2xl border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-950 p-6 shadow-2xl",initial:{opacity:0,scale:.95,y:10},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.95,y:10},transition:{duration:.2},onClick:H=>H.stopPropagation(),children:[I.jsx("button",{type:"button",onClick:t,className:"absolute right-4 top-4 text-oai-gray-400 dark:text-oai-gray-500 hover:text-oai-black dark:hover:text-white transition-colors",children:I.jsx(gw,{className:"h-5 w-5"})}),I.jsxs("div",{className:"text-center mb-6",children:[I.jsxs("div",{className:"flex items-center justify-center gap-2 mb-2",children:[I.jsx("img",{src:"/app-icon.png",alt:"",width:28,height:28,className:"rounded-md"}),I.jsx("span",{className:"text-lg font-semibold text-oai-black dark:text-white",children:"Token Tracker"})]}),I.jsx("p",{className:"text-sm text-oai-gray-500",children:Fe("login_modal.subtitle")})]}),K&&I.jsx("div",{className:"mb-4 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900/50 px-3 py-2 text-xs text-oai-gray-700 dark:text-oai-gray-300",children:K}),M&&I.jsx("p",{className:"mb-4 text-sm text-red-500 dark:text-red-400",role:"alert",children:M}),I.jsx("div",{className:"space-y-2.5 mb-5",children:Z?I.jsx("div",{className:"h-10 rounded-lg bg-oai-gray-100 dark:bg-oai-gray-900 animate-pulse"}):_e.map(H=>I.jsxs("button",{type:"button",disabled:L,onClick:()=>ue(H),className:Ct("w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-700 bg-oai-gray-50 dark:bg-oai-gray-900 text-sm font-medium text-oai-black dark:text-white","hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 hover:border-oai-gray-300 dark:hover:border-oai-gray-600 transition-colors disabled:opacity-50","flex items-center justify-center gap-2.5"),children:[Dj[H]||null,Fe("login.oauth.continue",{provider:Nj(H)})]},H))}),W?I.jsxs(I.Fragment,{children:[I.jsxs("div",{className:"relative mb-5",children:[I.jsx("div",{className:"absolute inset-0 flex items-center",children:I.jsx("span",{className:"w-full border-t border-oai-gray-200 dark:border-oai-gray-800"})}),I.jsx("div",{className:"relative flex justify-center text-xs uppercase tracking-wider",children:I.jsx("span",{className:"bg-white dark:bg-oai-gray-950 px-3 text-oai-gray-400 dark:text-oai-gray-600",children:Fe("login_modal.divider_email")})})]}),I.jsxs("div",{className:"flex rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 p-0.5 bg-oai-gray-50 dark:bg-oai-gray-900/50 mb-4",children:[I.jsx("button",{type:"button",className:Ct("flex-1 py-1.5 text-xs font-medium rounded-md transition-colors",f==="signin"?"bg-white dark:bg-oai-gray-800 text-oai-black dark:text-white shadow-sm":"text-oai-gray-500 hover:text-oai-gray-700 dark:hover:text-oai-gray-300"),onClick:()=>{m("signin"),j(null)},children:Fe("login.tab.sign_in")}),I.jsx("button",{type:"button",className:Ct("flex-1 py-1.5 text-xs font-medium rounded-md transition-colors",f==="signup"?"bg-white dark:bg-oai-gray-800 text-oai-black dark:text-white shadow-sm":"text-oai-gray-500 hover:text-oai-gray-700 dark:hover:text-oai-gray-300"),onClick:()=>{m("signup"),j(null)},children:Fe("login.tab.sign_up")})]}),I.jsxs("form",{onSubmit:Me,className:"space-y-3",children:[f==="signup"&&I.jsxs("div",{children:[I.jsx("label",{htmlFor:"modal-name",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:Fe("login.field.name")}),I.jsx("input",{id:"modal-name",type:"text",autoComplete:"name",value:T,onChange:H=>P(H.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500",placeholder:Fe("login.field.name_placeholder")})]}),I.jsxs("div",{children:[I.jsx("label",{htmlFor:"modal-email",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:Fe("login.field.email")}),I.jsx("input",{id:"modal-email",type:"email",autoComplete:"email",required:!0,value:y,onChange:H=>b(H.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"})]}),I.jsxs("div",{children:[I.jsx("label",{htmlFor:"modal-password",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:Fe("login.field.password")}),I.jsx("input",{id:"modal-password",type:"password",autoComplete:f==="signup"?"new-password":"current-password",required:!0,minLength:f==="signup"?Re:void 0,value:w,onChange:H=>x(H.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"}),f==="signup"&&I.jsx("p",{className:"mt-1 text-xs text-oai-gray-400 dark:text-oai-gray-600",children:Fe("login.password_hint",{min:String(Re)})})]}),I.jsx("button",{type:"submit",disabled:L,className:"w-full h-10 rounded-lg bg-oai-gray-900 dark:bg-white text-white dark:text-oai-gray-950 text-sm font-semibold hover:bg-oai-gray-800 dark:hover:bg-oai-gray-100 transition-colors disabled:opacity-50",children:Fe(f==="signup"?"login.submit.sign_up":"login.submit.sign_in")})]})]}):I.jsxs(I.Fragment,{children:[I.jsxs("div",{className:"relative mb-5",children:[I.jsx("div",{className:"absolute inset-0 flex items-center",children:I.jsx("span",{className:"w-full border-t border-oai-gray-200 dark:border-oai-gray-800"})}),I.jsx("div",{className:"relative flex justify-center text-xs uppercase tracking-wider",children:I.jsx("span",{className:"bg-white dark:bg-oai-gray-950 px-3 text-oai-gray-400 dark:text-oai-gray-600",children:Fe("login.divider")})})]}),I.jsxs("button",{type:"button",onClick:()=>S(!0),className:Ct("w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-700 bg-oai-gray-50 dark:bg-oai-gray-900 text-sm font-medium text-oai-black dark:text-white","hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 hover:border-oai-gray-300 dark:hover:border-oai-gray-600 transition-colors","flex items-center justify-center gap-2.5"),children:[I.jsx(yD,{className:"h-[18px] w-[18px] text-oai-gray-500 dark:text-oai-gray-400",strokeWidth:1.75}),Fe("login_modal.continue_email")]})]})]})]})}):null}const Ij={VITE_INSFORGE_BASE_URL:"https://srctyff5.us-east.insforge.app"};function jj(){if(typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"))return"";const t=typeof import.meta<"u"?Ij:void 0;return(t?.VITE_TOKENTRACKER_BACKEND_BASE_URL||t?.VITE_INSFORGE_BASE_URL||"").trim()}function h3(){return fi()}function Uj(e=""){if(typeof e!="string"||e.length===0)return!1;const t=new URLSearchParams(e),n=String(t.get("screenshot")||"").toLowerCase();return n==="1"||n==="true"}const Bj=300*1e3,Fj=720*60*1e3;function tm(e){return typeof e=="string"&&/^https?:\/\//i.test(e.trim())}function Vj(e,t=Date.now()){if(!e?.token||!e?.deviceId||!e?.issuedAt)return!0;const n=Date.parse(e.issuedAt);return Number.isFinite(n)?n+Fj<=t:!0}async function wx(e,t){const n=fi();if(!tm(n)||!e)return;const a=n.replace(/\/$/,""),s=_c(),o={Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${e}`};s&&(o.apikey=s);try{await fetch(`${a}/functions/tokentracker-leaderboard-refresh`,{method:"POST",headers:o,body:JSON.stringify({period:"week",source:t})})}catch{}}async function zj(e){const t=fi();if(!tm(t)||!e)return null;const n=t.replace(/\/$/,""),a=_c(),s={Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${e}`};a&&(s.apikey=a);const o=typeof navigator<"u"&&typeof navigator.platform=="string"?navigator.platform:"web",u=await fetch(`${n}/functions/tokentracker-device-token-issue`,{method:"POST",headers:s,body:JSON.stringify({device_name:"Token Tracker (dashboard)",platform:o})});if(!u.ok)return null;const c=await u.json().catch(()=>null),h=typeof c?.token=="string"?c.token:null,f=typeof c?.device_id=="string"?c.device_id:null;return!h||!f?null:{token:h,deviceId:f,issuedAt:typeof c?.created_at=="string"?c.created_at:new Date().toISOString()}}async function mb(e){const{deviceToken:t,insforgeBaseUrl:n}=e,a={deviceToken:t},s=n||fi();tm(s)&&(a.insforgeBaseUrl=s.trim());const o=await _p(),u=await fetch("/functions/tokentracker-local-sync",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json",...o},body:JSON.stringify(a)}),c=await u.json().catch(()=>({}));if(!u.ok){const h=typeof c.error=="string"?c.error:`HTTP ${u.status}`;throw new Error(h)}return c}async function gb(e){const t=await e();if(!t)return null;const n=W_();if(n&&!Vj(n))return n;const a=await zj(t);return a?(_A(a),a):null}async function kx(e){let t=await e();if(!t)return null;let n=await gb(async()=>t);if(!n)return t;try{return await mb({deviceToken:n.token,insforgeBaseUrl:fi()}),t}catch(a){if(!W_()||(K_(),t=await e(),!t)||(n=await gb(async()=>t),!n))throw a;return await mb({deviceToken:n.token,insforgeBaseUrl:fi()}),t}}async function $j(e){const t=wA();if(Date.now()-t<Bj)return;const n=await kx(e);n&&(q_(Date.now()),await wx(n,"cloud-sync-auto"))}async function f3(e){const t=await kx(e);t&&(q_(Date.now()),await wx(t,"cloud-sync-now"))}function Hj(e){const t=e.replace(/\/+$/,"")||"/";return t==="/share"||t==="/share.html"||t.startsWith("/share/")}function Wj(e){const t=e.replace(/\/+$/,"")||"/";return t==="/login"||t==="/landing"||Hj(t)?!1:t==="/"||t==="/dashboard"||t.startsWith("/leaderboard")}function Kj(){const e=Fn(),t=Ho(),n=k.useRef(!1);k.useEffect(()=>{if(!vA()||!Wj(e.pathname||"/")||!t.enabled||!t.signedIn||t.loading||!bA())return;let a=!1;const s=window.setTimeout(()=>{(async()=>{if(!(a||n.current)){n.current=!0;try{await $j(()=>t.getAccessToken())}catch(o){console.warn("[tokentracker] cloud usage sync:",o)}finally{n.current=!1}}})()},2500);return()=>{a=!0,window.clearTimeout(s)}},[e.pathname,t.enabled,t.signedIn,t.loading,t.getAccessToken])}function qj(){const e=k.useContext(yw);if(e===null)throw new Error("useTheme must be used within a ThemeProvider");return e}function Gj({prefersReducedMotion:e,screenshotCapture:t}){return!(t||e)}function Yj(e){if(!e||typeof e!="object")return null;const t=e.user_metadata&&typeof e.user_metadata=="object"?e.user_metadata:{},n=e.profile&&typeof e.profile=="object"?e.profile:{},a=t.avatar_url||t.picture||n.avatar_url||e.avatar_url;return typeof a=="string"&&a.trim()?a.trim():null}function yb(e){const t=String(e||"").trim();if(!t)return"?";const n=t.split(/\s+/).filter(Boolean);return n.length>=2?(n[0][0]+n[n.length-1][0]).toUpperCase():t.slice(0,2).toUpperCase()}function vb({className:e,variant:t="header",collapsed:n=!1,onAfterAction:a}){Ko();const s=t==="sidebar",{enabled:o,loading:u,signedIn:c,user:h,displayName:f}=Ho(),{openLoginModal:m}=bw(),y=fc(),b=k.useMemo(()=>Yj(h),[h]);if(!o)return null;if(u)return I.jsx("div",{className:Ct("h-9 w-9 shrink-0 rounded-full bg-oai-gray-200 dark:bg-oai-gray-800 animate-pulse",e),"aria-hidden":!0});if(!c)return s?I.jsxs("button",{type:"button",onClick:()=>{m(),a?.()},className:Ct("flex items-center gap-2 rounded-md px-2 py-1.5 text-[13px] font-medium text-oai-gray-700 dark:text-oai-gray-300 hover:bg-oai-gray-200/60 dark:hover:bg-oai-gray-800 hover:text-oai-black dark:hover:text-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500 min-w-0",n?"h-8 w-8 justify-center px-0":"w-full",e),"aria-label":Fe("header.auth.sign_in_aria"),title:n?Fe("header.auth.sign_in_aria"):void 0,children:[I.jsx("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center",children:I.jsx("img",{src:"/app-icon.png",alt:"",width:18,height:18,className:"h-[18px] w-[18px] rounded"})}),!n&&I.jsx("span",{className:"truncate flex-1 text-left",children:Fe("header.auth.sign_in_aria")})]}):I.jsx("button",{type:"button",onClick:m,className:Ct("shrink-0 inline-flex h-9 items-center justify-center gap-1.5 rounded-full px-5 text-sm font-medium transition-colors duration-200 ease-out shadow-sm ring-1 ring-oai-gray-200 dark:ring-white/10 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 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",e),"aria-label":Fe("header.auth.sign_in_aria"),children:Fe("header.auth.sign_in_aria")});const w=()=>{y("/settings"),a?.()};return I.jsx("div",{className:Ct(s?"relative flex w-full shrink-0 items-center":"relative flex shrink-0 items-center",e),children:I.jsxs("button",{type:"button",onClick:w,className:Ct(s?Ct("flex w-full items-center gap-2 rounded-md px-2 py-1.5 hover:bg-oai-gray-200/60 dark:hover:bg-oai-gray-800 transition-colors min-w-0",n&&"justify-center px-0 py-0 h-9 w-9"):"flex items-center gap-2 rounded-full pl-1 pr-2 py-1 border border-transparent hover:bg-oai-gray-100 dark:hover:bg-oai-gray-900/80 hover:border-oai-gray-200 dark:hover:border-oai-gray-800 transition-colors"),"aria-label":Fe("header.auth.open_settings"),title:s&&n?f:void 0,children:[s?I.jsx("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center",children:b?I.jsx("img",{src:b,alt:"",width:20,height:20,className:"h-5 w-5 rounded-full object-cover ring-1 ring-oai-gray-300 dark:ring-oai-gray-700",referrerPolicy:"no-referrer"}):I.jsx("span",{className:"flex h-5 w-5 items-center justify-center rounded-full bg-oai-brand-600 text-[9px] font-semibold text-white ring-1 ring-oai-brand-500/50",children:yb(f)})}):b?I.jsx("img",{src:b,alt:"",width:32,height:32,className:"h-8 w-8 rounded-full object-cover ring-1 ring-oai-gray-300 dark:ring-oai-gray-700 shrink-0",referrerPolicy:"no-referrer"}):I.jsx("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-oai-brand-600 text-xs font-semibold text-white ring-1 ring-oai-brand-500/50",children:yb(f)}),s?!n&&I.jsx("span",{className:"truncate text-[13px] font-medium text-oai-gray-900 dark:text-oai-gray-200 flex-1 text-left min-w-0",children:f}):I.jsx("span",{className:"hidden sm:inline truncate text-sm font-medium text-oai-gray-900 dark:text-oai-gray-200 max-w-[120px]",children:f})]})})}const zf="tt.sidebarCollapsed";function Zj(){return[{id:"general",label:Fe("nav.group.general"),items:[{id:"usage",to:"/dashboard",icon:uD,label:Fe("nav.usage")},{id:"limits",to:"/limits",icon:dD,label:Fe("nav.limits")},{id:"leaderboard",to:"/leaderboard",icon:MD,label:Fe("nav.leaderboard")}]},{id:"tools",label:Fe("nav.group.tools"),items:[{id:"widgets",to:"/widgets",icon:mD,label:Fe("nav.widgets")},{id:"skills",to:"/skills",icon:SD,label:Fe("nav.skills")},{id:"ip-check",to:"/ip-check",icon:fD,label:Fe("nav.ip_check")}]},{id:"account",label:Fe("nav.group.account"),items:[{id:"settings",to:"/settings",icon:ED,label:Fe("nav.settings")}]}]}function Qj(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(zf)==="1"}catch{return!1}}function Xj(){const[e,t]=k.useState(Qj),n=k.useCallback(()=>{t(a=>{const s=!a;try{typeof window<"u"&&window.localStorage.setItem(zf,s?"1":"0")}catch{}return s})},[]);return k.useEffect(()=>{if(typeof window>"u")return;const a=s=>{s.key===zf&&t(s.newValue==="1")};return window.addEventListener("storage",a),()=>window.removeEventListener("storage",a)},[]),{collapsed:e,toggle:n}}function Jj(e,t){const n=e.replace(/\/+$/,"")||"/";return t==="/dashboard"?n==="/dashboard"||n==="/":t==="/leaderboard"?n==="/leaderboard"||n.startsWith("/leaderboard/"):n===t}function e4({label:e,collapsed:t,first:n}){return t?n?null:I.jsx("div",{className:"mx-2 my-2 h-px bg-oai-gray-200/70 dark:bg-oai-gray-800/70","aria-hidden":!0}):I.jsx("div",{className:Ct("px-3 pb-1 text-[10px] uppercase tracking-wider text-oai-gray-500 dark:text-oai-gray-500",n?"pt-2":"pt-4"),children:e})}function t4({item:e,collapsed:t,active:n,onClick:a}){const s=e.icon;return I.jsxs(mc,{to:e.to,onClick:a,title:t?e.label:void 0,"aria-current":n?"page":void 0,className:Ct("flex items-center gap-2 rounded-md px-2 py-1.5 text-[13px] no-underline transition-colors",t&&"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:[I.jsx("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center",children:I.jsx(s,{className:"h-[15px] w-[15px]","aria-hidden":!0})}),!t&&I.jsx("span",{className:"truncate",children:e.label})]})}function n4({as:e="button",title:t,onClick:n,href:a,children:s,className:o,...u}){const c=Ct("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",o);return e==="a"?I.jsx("a",{href:a,target:"_blank",rel:"noopener noreferrer",title:t,"aria-label":t,className:c,...u,children:s}):I.jsx("button",{type:"button",title:t,"aria-label":t,onClick:n,className:c,...u,children:s})}function r4({repo:e="mm7894215/TokenTracker",glassChrome:t=!1}){const[n,a]=k.useState(null);return k.useEffect(()=>{if(typeof window>"u")return;const s=typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;Gj({prefersReducedMotion:s,screenshotCapture:!1})&&fetch(`https://api.github.com/repos/${e}`).then(o=>o.json()).then(o=>{o&&typeof o.stargazers_count=="number"&&a(o.stargazers_count)}).catch(()=>{})},[e]),I.jsxs("a",{href:`https://github.com/${e}`,target:"_blank",rel:"noopener noreferrer","aria-label":n!==null?`Star on GitHub (${n})`:"Star on GitHub",className:Ct("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",t?"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:[I.jsx("svg",{height:"12",viewBox:"0 0 16 16",width:"12",className:"shrink-0 fill-current",children:I.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"})}),I.jsx("span",{children:"Star"}),n!==null&&I.jsx("span",{className:"text-[10px] text-oai-gray-500 dark:text-oai-gray-500 tabular-nums",children:n})]})}const a4=[{value:"light",label:"Light",Icon:mw},{value:"dark",label:"Dark",Icon:pw},{value:"system",label:"System",Icon:wD}];function i4({theme:e,resolvedTheme:t,onSetTheme:n,glassChrome:a=!1}){const[s,o]=k.useState(!1),u=k.useRef(null),c=t==="dark"?pw:mw;return k.useEffect(()=>{if(!s)return;const h=m=>{u.current&&!u.current.contains(m.target)&&o(!1)},f=m=>{m.key==="Escape"&&o(!1)};return document.addEventListener("mousedown",h),document.addEventListener("keydown",f),()=>{document.removeEventListener("mousedown",h),document.removeEventListener("keydown",f)}},[s]),I.jsxs("div",{ref:u,className:"relative",children:[I.jsx("button",{type:"button","aria-label":"Theme","aria-expanded":s,"aria-haspopup":"menu",title:"Theme",onClick:()=>o(h=>!h),className:Ct("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",a?"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:I.jsx(c,{className:"h-3.5 w-3.5","aria-hidden":!0})}),s&&I.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:a4.map(({value:h,label:f,Icon:m})=>{const y=e===h;return I.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{n(h),o(!1)},className:Ct("flex w-full items-center gap-2.5 px-3 py-1.5 text-[13px] transition-colors",y?"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:[I.jsx(m,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),I.jsx("span",{children:f})]},h)})})]})}function xx({collapsed:e,onToggleCollapsed:t,onItemClick:n,showCloseButton:a=!1,onClose:s,glassChrome:o=!1}){const c=Fn()?.pathname||"/",{theme:h,resolvedTheme:f,setTheme:m}=qj(),{resolvedLocale:y}=Ko(),b=k.useMemo(()=>Zj(),[y]);return I.jsxs(I.Fragment,{children:[I.jsx("div",{className:Ct("px-2 pt-2 pb-2",e&&"flex justify-center"),children:a?I.jsxs("div",{className:"flex items-center gap-2",children:[I.jsx("div",{className:"flex-1 min-w-0",children:I.jsx(vb,{variant:"sidebar",collapsed:e,onAfterAction:n})}),I.jsx("button",{type:"button",onClick:s,"aria-label":Fe("nav.close_menu"),title:Fe("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:I.jsx(gw,{className:"h-4 w-4",strokeWidth:1.75,"aria-hidden":!0})})]}):I.jsx(vb,{variant:"sidebar",collapsed:e,onAfterAction:n})}),I.jsx("nav",{"aria-label":Fe("nav.nav_label"),className:"flex-1 px-2 pb-2 flex flex-col overflow-y-auto",children:b.map((w,x)=>I.jsxs("div",{className:"flex flex-col",children:[I.jsx(e4,{label:w.label,collapsed:e,first:x===0}),I.jsx("div",{className:"flex flex-col gap-0.5",children:w.items.map(T=>I.jsx(t4,{item:T,collapsed:e,active:Jj(c,T.to),onClick:n},T.id))})]},w.id))}),I.jsxs("div",{className:Ct("flex items-center px-2 py-3",e?"flex-col justify-center gap-2":"justify-between gap-2"),children:[I.jsx(i4,{theme:h,resolvedTheme:f,onSetTheme:m,glassChrome:o}),I.jsx("div",{className:"flex items-center gap-1.5",children:!e&&I.jsx(r4,{glassChrome:o})})]})]})}function s4({collapsed:e,onToggleCollapsed:t}){const n=k.useMemo(()=>typeof window>"u"?!1:pr()||ow(),[]);return I.jsx("aside",{"aria-label":Fe("nav.aside_label"),className:Ct("hidden lg:flex flex-col shrink-0 h-full min-h-0 transition-[width] duration-200",e?"w-[72px]":"w-[220px]"),children:I.jsx(xx,{collapsed:e,onToggleCollapsed:t,glassChrome:n})})}function o4({open:e,onClose:t}){return k.useEffect(()=>{if(!e)return;const n=a=>{a.key==="Escape"&&t()};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[e,t]),k.useEffect(()=>{if(!e)return;const n=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=n}},[e]),e?I.jsxs("div",{className:"lg:hidden fixed inset-0 z-[80] flex",children:[I.jsx("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-sm",onClick:t,"aria-hidden":!0}),I.jsx("aside",{"aria-label":Fe("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:I.jsx(xx,{collapsed:!1,showCloseButton:!0,onClose:t,onItemClick:t})})]}):null}function l4({onOpenDrawer:e}){return I.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:[I.jsx(n4,{title:Fe("nav.menu"),onClick:e,children:I.jsx(bD,{className:"h-5 w-5","aria-hidden":!0})}),I.jsxs(mc,{to:"/landing",className:"flex items-center gap-2 no-underline hover:opacity-80 transition-opacity","aria-label":"Token Tracker",children:[I.jsx("img",{src:"/app-icon.png",alt:"",width:24,height:24,className:"rounded-md"}),I.jsx("span",{className:"text-sm font-semibold text-oai-black dark:text-oai-white",children:"Token Tracker"})]}),I.jsx("div",{className:"w-10 shrink-0","aria-hidden":!0})]})}function u4({children:e}){const{collapsed:t,toggle:n}=Xj(),[a,s]=k.useState(!1),o=k.useCallback(()=>s(!0),[]),u=k.useCallback(()=>s(!1),[]),c=k.useMemo(()=>typeof window>"u"?!1:pr()||ow(),[]);return I.jsxs("div",{className:Ct("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&&I.jsx("div",{className:"h-7 shrink-0",style:{WebkitAppRegion:"drag"},"aria-hidden":!0}),I.jsxs("div",{className:"flex-1 min-h-0 flex",children:[I.jsx(s4,{collapsed:t,onToggleCollapsed:n}),I.jsx(o4,{open:a,onClose:u}),I.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:I.jsxs("div",{className:Ct("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:[I.jsx(l4,{onOpenDrawer:o}),I.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto",children:e})]})})]})]})}const c4=typeof window<"u"?window.location.search:"",bb=new URLSearchParams(c4),bu=bb.get("insforge_code")||bb.get("code")||null;function d4(){Ko();const{loading:e,signedIn:t}=Ho(),n=fc(),[a,s]=k.useState("processing"),[o,u]=k.useState(null),c=k.useRef(!1);return k.useEffect(()=>{!bu||c.current||(c.current=!0,(async()=>{try{const f=await(await fetch("/api/auth-bridge/verifier")).json();u(!!f?.native)}catch{u(!1)}})())},[]),k.useEffect(()=>{if(o!==!0||!bu)return;s("redirecting");const h=setTimeout(()=>{window.location.href=`tokentracker://auth/callback?insforge_code=${encodeURIComponent(bu)}`},200);return()=>clearTimeout(h)},[o]),k.useEffect(()=>{if(o!==!1||e)return;if(t){n("/dashboard",{replace:!0});return}const h=setTimeout(()=>{t||s("failed")},5e3);return()=>clearTimeout(h)},[o,e,t,n]),k.useEffect(()=>{if(!bu&&o===null){const h=setTimeout(()=>s("failed"),3e3);return()=>clearTimeout(h)}},[o]),a==="processing"&&o!==!0&&(o===null||o===!1&&e)?I.jsx("div",{className:"min-h-screen bg-oai-gray-950"}):I.jsx("div",{className:"min-h-screen bg-oai-gray-950 text-white font-oai antialiased dark flex items-center justify-center",children:I.jsxs("div",{className:"text-center space-y-4 max-w-sm px-4",children:[a==="processing"&&I.jsxs(I.Fragment,{children:[I.jsx("div",{className:"w-8 h-8 border-2 border-oai-gray-600 border-t-white rounded-full animate-spin mx-auto"}),I.jsx("p",{className:"text-oai-gray-400 text-sm",children:Fe("auth.callback.processing")})]}),a==="redirecting"&&I.jsxs(I.Fragment,{children:[I.jsx("div",{className:"w-12 h-12 mx-auto rounded-full bg-green-500/15 flex items-center justify-center",children:I.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:I.jsx("path",{d:"M20 6 9 17l-5-5"})})}),I.jsx("p",{className:"text-white text-sm font-medium",children:Fe("auth.callback.success")}),I.jsx("p",{className:"text-oai-gray-500 text-xs",children:Fe("auth.callback.redirecting")})]}),a==="failed"&&I.jsxs("div",{className:"space-y-3",children:[I.jsx("p",{className:"text-oai-gray-300 text-sm",children:Fe("auth.callback.failed")}),I.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:Fe("auth.callback.close")})]})]})})}const h4=k.lazy(()=>Pr(()=>import("./DashboardPage-DpZaCksZ.js"),__vite__mapDeps([0,1,2,3,4,5,6])).then(e=>({default:e.DashboardPage}))),f4=k.lazy(()=>Pr(()=>import("./IpCheckPage-BPF8eGpg.js"),[])),p4=k.lazy(()=>Pr(()=>import("./LandingPage-0uTpqpAU.js"),__vite__mapDeps([7,8,4])).then(e=>({default:e.LandingPage}))),m4=k.lazy(()=>Pr(()=>import("./LeaderboardPage-DzxRJEzb.js"),__vite__mapDeps([9,5,10,11])).then(e=>({default:e.LeaderboardPage}))),g4=k.lazy(()=>Pr(()=>import("./LeaderboardProfilePage-C3_oUxhG.js"),__vite__mapDeps([12,8,10])).then(e=>({default:e.LeaderboardProfilePage}))),y4=k.lazy(()=>Pr(()=>import("./LimitsPage-BVuvoeY9.js"),__vite__mapDeps([13,1,14,3,6,4])).then(e=>({default:e.LimitsPage}))),v4=k.lazy(()=>Pr(()=>import("./LoginPage-CfkNRmT6.js"),[]).then(e=>({default:e.LoginPage}))),b4=k.lazy(()=>Pr(()=>import("./SettingsPage-Devu7beE.js"),__vite__mapDeps([15,14,16,3,17])).then(e=>({default:e.SettingsPage}))),_4=k.lazy(()=>Pr(()=>import("./SkillsPage-CSe8fW4V.js"),__vite__mapDeps([18,3,2,5,4,11,17])).then(e=>({default:e.SkillsPage}))),w4=k.lazy(()=>Pr(()=>import("./WidgetsPage-BrLp5YLk.js"),__vite__mapDeps([19,16,3,6,4,17,11])).then(e=>({default:e.WidgetsPage})));function k4(){const{resolvedLocale:e}=Ko(),t=Fn(),n=Ho();Kj();const a=Pn(),s=k.useMemo(()=>typeof window>"u"?!1:Uj(window.location.search),[]),o=t?.pathname||"/",u=new URL(window.location.href),c=u.pathname.replace(/\/+$/,"")||"/",f=c.match(/^\/share\/([^/?#]+)$/i)?.[1]||null,m=u.searchParams.get("token")||null,y=f||m,b=c==="/share"||c==="/share.html"||c.startsWith("/share/"),w=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),x=o.replace(/\/+$/,"")||"/",T=x.match(/^\/leaderboard\/u\/([^/]+)$/i),P=T?T[1]:null,L=x==="/leaderboard"||!!P,D=!!(n.enabled&&n.signedIn),M=w||D,j=!1,K=jj(),G=k.useMemo(()=>!n.enabled||!D?null:{getAccessToken:()=>n.getAccessToken(),name:n.displayName||"",userId:n.user?.id||null},[D,n]);let W=w||a||s?"dashboard":"landing";x==="/landing"&&(W="landing"),x==="/dashboard"&&(W="dashboard"),L&&(W="dashboard");const S=x==="/limits",Z=x==="/settings",X=x==="/skills",_e=x==="/widgets",oe=x==="/ip-check";(S||Z||X||_e||oe)&&(W="dashboard");let Re=h4;P?Re=g4:x==="/leaderboard"?Re=m4:S?Re=y4:Z?Re=b4:X?Re=_4:_e?Re=w4:oe&&(Re=f4);const ce=!b&&(x==="/dashboard"||x==="/"||x==="/leaderboard"||S||Z||X||_e||oe);let ue=null;if(x==="/auth/callback"||x==="/auth/native-callback")ue=I.jsx(d4,{});else if(x==="/login")ue=I.jsx(v4,{});else if(W==="landing")ue=I.jsx(p4,{signInUrl:"/login",signUpUrl:"/login"});else{const Me=I.jsx(Re,{baseUrl:K,auth:G,signedIn:M,sessionSoftExpired:j,signOut:()=>n.enabled?n.signOut():Promise.resolve(),publicMode:b,publicToken:y,userId:P,signInUrl:"/login",signUpUrl:"/login"},e);ce?ue=I.jsx(u4,{children:Me}):ue=Me}return I.jsx(ID,{children:I.jsx(BD,{children:I.jsxs(FD,{children:[I.jsx(k.Suspense,{fallback:null,children:ue}),I.jsx(Oj,{}),I.jsx(HL,{}),I.jsx(tD,{})]})})})}const x4=CT([{path:"*",element:I.jsx(k4,{})}]);mP.createRoot(document.getElementById("root")).render(I.jsx(Hf.StrictMode,{children:I.jsx(AL,{children:I.jsx(aL,{children:I.jsx(FT,{router:x4})})})}));export{LA as $,Y_ as A,Fe as B,qj as C,I as D,Wh as E,z4 as F,V4 as G,OD as H,J4 as I,ic as J,O4 as K,mc as L,Zp as M,N4 as N,DO as O,bw as P,Ho as Q,Hf as R,s3 as S,K4 as T,Ko as U,Uj as V,Ea as W,gw as X,Z4 as Y,$4 as Z,Pr as _,qt as a,I4 as a0,j4 as a1,Q4 as a2,F4 as a3,i3 as a4,Ct as a5,vb as a6,BT as a7,Fn as a8,fc as a9,pr as aA,ow as aB,o3 as aC,c3 as aD,l3 as aE,zv as aF,kk as aG,mN as aH,Nf as aI,h3 as aa,bA as ab,L4 as ac,f3 as ad,D4 as ae,G4 as af,Y4 as ag,Gj as ah,ED as ai,r3 as aj,S4 as ak,Sp as al,vA as am,Uv as an,q4 as ao,mw as ap,pw as aq,wD as ar,ps as as,Zu as at,wp as au,TD as av,_p as aw,cP as ax,$f as ay,u3 as az,_w as b,dn as c,Na as d,o0 as e,dt as f,Z_ as g,Pn as h,IM as i,M4 as j,PA as k,a3 as l,gs as m,NA as n,OA as o,e3 as p,B4 as q,k as r,W4 as s,t3 as t,Pp as u,n3 as v,U4 as w,yt as x,H4 as y,X4 as z};
|
|
629
|
+
`),()=>{c.current?.removeAttribute("data-motion-pop-id"),K.contains(j)&&K.removeChild(j)}},[t]),I.jsx(EO,{isPresent:t,childRef:c,sizeRef:h,pop:o,children:o===!1?e:k.cloneElement(e,{ref:y})})}const AO=({children:e,initial:t,isPresent:n,onExitComplete:a,custom:s,presenceAffectsLayout:o,mode:u,anchorX:c,anchorY:h,root:f})=>{const m=Pp(LO),y=k.useId();let b=!0,w=k.useMemo(()=>(b=!1,{id:y,initial:t,isPresent:n,custom:s,onExitComplete:x=>{m.set(x,!0);for(const T of m.values())if(!T)return;a&&a()},register:x=>(m.set(x,!1),()=>m.delete(x))}),[n,m,a]);return o&&b&&(w={...w}),k.useMemo(()=>{m.forEach((x,T)=>m.set(T,!1))},[n]),k.useEffect(()=>{!n&&!m.size&&a&&a()},[n]),e=I.jsx(RO,{pop:u==="popLayout",isPresent:n,anchorX:c,anchorY:h,root:f,children:e}),I.jsx(xc.Provider,{value:w,children:e})};function LO(){return new Map}function qk(e=!0){const t=k.useContext(xc);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:a,register:s}=t,o=k.useId();k.useEffect(()=>{if(e)return s(o)},[e]);const u=k.useCallback(()=>e&&a&&a(o),[o,a,e]);return!n&&a?[!1,u]:[!0]}const pu=e=>e.key||"";function Y0(e){const t=[];return k.Children.forEach(e,n=>{k.isValidElement(n)&&t.push(n)}),t}const DO=({children:e,custom:t,initial:n=!0,onExitComplete:a,presenceAffectsLayout:s=!0,mode:o="sync",propagate:u=!1,anchorX:c="left",anchorY:h="top",root:f})=>{const[m,y]=qk(u),b=k.useMemo(()=>Y0(e),[e]),w=u&&!m?[]:b.map(pu),x=k.useRef(!0),T=k.useRef(b),P=Pp(()=>new Map),L=k.useRef(new Set),[D,M]=k.useState(b),[j,K]=k.useState(b);_w(()=>{x.current=!1,T.current=b;for(let S=0;S<j.length;S++){const Z=pu(j[S]);w.includes(Z)?(P.delete(Z),L.current.delete(Z)):P.get(Z)!==!0&&P.set(Z,!1)}},[j,w.length,w.join("-")]);const G=[];if(b!==D){let S=[...b];for(let Z=0;Z<j.length;Z++){const X=j[Z],_e=pu(X);w.includes(_e)||(S.splice(Z,0,X),G.push(X))}return o==="wait"&&G.length&&(S=G),K(Y0(S)),M(b),null}const{forceRender:W}=k.useContext(Sp);return I.jsx(I.Fragment,{children:j.map(S=>{const Z=pu(S),X=u&&!m?!1:b===j||w.includes(Z),_e=()=>{if(L.current.has(Z))return;if(P.has(Z))L.current.add(Z),P.set(Z,!0);else return;let oe=!0;P.forEach(Re=>{Re||(oe=!1)}),oe&&(W?.(),K(T.current),u&&y?.(),a&&a())};return I.jsx(AO,{isPresent:X,initial:!x.current||n?void 0:!1,custom:t,presenceAffectsLayout:s,mode:o,root:f,onExitComplete:X?void 0:_e,anchorX:c,anchorY:h,children:S},Z)})})},Gk=k.createContext({strict:!1}),Z0={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]};let Q0=!1;function MO(){if(Q0)return;const e={};for(const t in Z0)e[t]={isEnabled:n=>Z0[t].some(a=>!!n[a])};xk(e),Q0=!0}function Yk(){return MO(),gN()}function NO(e){const t=Yk();for(const n in e)t[n]={...t[n],...e[n]};xk(t)}const OO=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function uc(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||OO.has(e)}let Zk=e=>!uc(e);function IO(e){typeof e=="function"&&(Zk=t=>t.startsWith("on")?!uc(t):e(t))}try{IO(require("@emotion/is-prop-valid").default)}catch{}function jO(e,t,n){const a={};for(const s in e)s==="values"&&typeof e.values=="object"||qt(e[s])||(Zk(s)||n===!0&&uc(s)||!t&&!uc(s)||e.draggable&&s.startsWith("onDrag"))&&(a[s]=e[s]);return a}const Cc=k.createContext({});function UO(e,t){if(Tc(e)){const{initial:n,animate:a}=e;return{initial:n===!1||No(n)?n:void 0,animate:No(a)?a:void 0}}return e.inherit!==!1?t:{}}function BO(e){const{initial:t,animate:n}=UO(e,k.useContext(Cc));return k.useMemo(()=>({initial:t,animate:n}),[X0(t),X0(n)])}function X0(e){return Array.isArray(e)?e.join(" "):e}const Qp=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function Qk(e,t,n){for(const a in t)!qt(t[a])&&!Ak(a,n)&&(e[a]=t[a])}function FO({transformTemplate:e},t){return k.useMemo(()=>{const n=Qp();return Gp(n,t,e),Object.assign({},n.vars,n.style)},[t])}function VO(e,t){const n=e.style||{},a={};return Qk(a,n,e),Object.assign(a,FO(e,t)),a}function zO(e,t){const n={},a=VO(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,a.userSelect=a.WebkitUserSelect=a.WebkitTouchCallout="none",a.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=a,n}const Xk=()=>({...Qp(),attrs:{}});function $O(e,t,n,a){const s=k.useMemo(()=>{const o=Xk();return Lk(o,t,Mk(a),e.transformTemplate,e.style),{...o.attrs,style:{...o.style}}},[t]);if(e.style){const o={};Qk(o,e.style,e),s.style={...o,...s.style}}return s}const HO=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function Xp(e){return typeof e!="string"||e.includes("-")?!1:!!(HO.indexOf(e)>-1||/[A-Z]/u.test(e))}function WO(e,t,n,{latestValues:a},s,o=!1,u){const h=(u??Xp(e)?$O:zO)(t,a,s,e),f=jO(t,typeof e=="string",o),m=e!==k.Fragment?{...f,...h,ref:n}:{},{children:y}=t,b=k.useMemo(()=>qt(y)?y.get():y,[y]);return k.createElement(e,{...m,children:b})}function KO({scrapeMotionValuesFromProps:e,createRenderState:t},n,a,s){return{latestValues:qO(n,a,s,e),renderState:t()}}function qO(e,t,n,a){const s={},o=a(e,{});for(const b in o)s[b]=Iu(o[b]);let{initial:u,animate:c}=e;const h=Tc(e),f=wk(e);t&&f&&!h&&e.inherit!==!1&&(u===void 0&&(u=t.initial),c===void 0&&(c=t.animate));let m=n?n.initial===!1:!1;m=m||u===!1;const y=m?c:u;if(y&&typeof y!="boolean"&&!Pc(y)){const b=Array.isArray(y)?y:[y];for(let w=0;w<b.length;w++){const x=Fp(e,b[w]);if(x){const{transitionEnd:T,transition:P,...L}=x;for(const D in L){let M=L[D];if(Array.isArray(M)){const j=m?M.length-1:0;M=M[j]}M!==null&&(s[D]=M)}for(const D in T)s[D]=T[D]}}}return s}const Jk=e=>(t,n)=>{const a=k.useContext(Cc),s=k.useContext(xc),o=()=>KO(e,t,a,s);return n?o():Pp(o)},GO=Jk({scrapeMotionValuesFromProps:Yp,createRenderState:Qp}),YO=Jk({scrapeMotionValuesFromProps:Nk,createRenderState:Xk}),ZO=Symbol.for("motionComponentSymbol");function QO(e,t,n){const a=k.useRef(n);k.useInsertionEffect(()=>{a.current=n});const s=k.useRef(null);return k.useCallback(o=>{o&&e.onMount?.(o);const u=a.current;if(typeof u=="function")if(o){const c=u(o);typeof c=="function"&&(s.current=c)}else s.current?(s.current(),s.current=null):u(o);else u&&(u.current=o);t&&(o?t.mount(o):t.unmount())},[t])}const ex=k.createContext({});function ts(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function XO(e,t,n,a,s,o){const{visualElement:u}=k.useContext(Cc),c=k.useContext(Gk),h=k.useContext(xc),f=k.useContext(Zp),m=f.reducedMotion,y=f.skipAnimations,b=k.useRef(null),w=k.useRef(!1);a=a||c.renderer,!b.current&&a&&(b.current=a(e,{visualState:t,parent:u,props:n,presenceContext:h,blockInitialAnimation:h?h.initial===!1:!1,reducedMotionConfig:m,skipAnimations:y,isSVG:o}),w.current&&b.current&&(b.current.manuallyAnimateOnMount=!0));const x=b.current,T=k.useContext(ex);x&&!x.projection&&s&&(x.type==="html"||x.type==="svg")&&JO(b.current,n,s,T);const P=k.useRef(!1);k.useInsertionEffect(()=>{x&&P.current&&x.update(n,h)});const L=n[lk],D=k.useRef(!!L&&typeof window<"u"&&!window.MotionHandoffIsComplete?.(L)&&window.MotionHasOptimisedAnimation?.(L));return _w(()=>{w.current=!0,x&&(P.current=!0,window.MotionIsMounted=!0,x.updateFeatures(),x.scheduleRenderMicrotask(),D.current&&x.animationState&&x.animationState.animateChanges())}),k.useEffect(()=>{x&&(!D.current&&x.animationState&&x.animationState.animateChanges(),D.current&&(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(L)}),D.current=!1),x.enteringChildren=void 0)}),x}function JO(e,t,n,a){const{layoutId:s,layout:o,drag:u,dragConstraints:c,layoutScroll:h,layoutRoot:f,layoutAnchor:m,layoutCrossfade:y}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:tx(e.parent)),e.projection.setOptions({layoutId:s,layout:o,alwaysMeasureLayout:!!u||c&&ts(c),visualElement:e,animationType:typeof o=="string"?o:"both",initialPromotionConfig:a,crossfade:y,layoutScroll:h,layoutRoot:f,layoutAnchor:m})}function tx(e){if(e)return e.options.allowProjection!==!1?e.projection:tx(e.parent)}function Fh(e,{forwardMotionProps:t=!1,type:n}={},a,s){a&&NO(a);const o=n?n==="svg":Xp(e),u=o?YO:GO;function c(f,m){let y;const b={...k.useContext(Zp),...f,layoutId:eI(f)},{isStatic:w}=b,x=BO(f),T=u(f,w);if(!w&&typeof window<"u"){tI();const P=nI(b);y=P.MeasureLayout,x.visualElement=XO(e,T,b,s,P.ProjectionNode,o)}return I.jsxs(Cc.Provider,{value:x,children:[y&&x.visualElement?I.jsx(y,{visualElement:x.visualElement,...b}):null,WO(e,f,QO(T,x.visualElement,m),T,w,t,o)]})}c.displayName=`motion.${typeof e=="string"?e:`create(${e.displayName??e.name??""})`}`;const h=k.forwardRef(c);return h[ZO]=e,h}function eI({layoutId:e}){const t=k.useContext(Sp).id;return t&&e!==void 0?t+"-"+e:e}function tI(e,t){k.useContext(Gk).strict}function nI(e){const t=Yk(),{drag:n,layout:a}=t;if(!n&&!a)return{};const s={...n,...a};return{MeasureLayout:n?.isEnabled(e)||a?.isEnabled(e)?s.MeasureLayout:void 0,ProjectionNode:s.ProjectionNode}}function rI(e,t){if(typeof Proxy>"u")return Fh;const n=new Map,a=(o,u)=>Fh(o,u,e,t),s=(o,u)=>a(o,u);return new Proxy(s,{get:(o,u)=>u==="create"?a:(n.has(u)||n.set(u,Fh(u,void 0,e,t)),n.get(u))})}const aI=(e,t)=>t.isSVG??Xp(e)?new MN(t):new CN(t,{allowProjection:e!==k.Fragment});class iI extends Ia{constructor(t){super(t),t.animationState||(t.animationState=UN(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();Pc(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}}let sI=0;class oI extends Ia{constructor(){super(...arguments),this.id=sI++,this.isExitComplete=!1}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:a}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===a)return;if(t&&a===!1){if(this.isExitComplete){const{initial:o,custom:u}=this.node.getProps();if(typeof o=="string"){const c=si(this.node,o,u);if(c){const{transition:h,transitionEnd:f,...m}=c;for(const y in m)this.node.getValue(y)?.jump(m[y])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive("exit",!1);this.isExitComplete=!1;return}const s=this.node.animationState.setActive("exit",!t);n&&!t&&s.then(()=>{this.isExitComplete=!0,n(this.id)})}mount(){const{register:t,onExitComplete:n}=this.node.presenceContext||{};n&&n(this.id),t&&(this.unmount=t(this.id))}unmount(){}}const lI={animation:{Feature:iI},exit:{Feature:oI}};function Zo(e){return{point:{x:e.pageX,y:e.pageY}}}const uI=e=>t=>Hp(t)&&e(t,Zo(t));function To(e,t,n,a){return Oo(e,t,uI(n),a)}const nx=({current:e})=>e?e.ownerDocument.defaultView:null,J0=(e,t)=>Math.abs(e-t);function cI(e,t){const n=J0(e.x,t.x),a=J0(e.y,t.y);return Math.sqrt(n**2+a**2)}const eb=new Set(["auto","scroll"]);class rx{constructor(t,n,{transformPagePoint:a,contextWindow:s=window,dragSnapToOrigin:o=!1,distanceThreshold:u=3,element:c}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=w=>{this.handleScroll(w.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=mu(this.lastRawMoveEventInfo,this.transformPagePoint));const w=Vh(this.lastMoveEventInfo,this.history),x=this.startEvent!==null,T=cI(w.offset,{x:0,y:0})>=this.distanceThreshold;if(!x&&!T)return;const{point:P}=w,{timestamp:L}=Kt;this.history.push({...P,timestamp:L});const{onStart:D,onMove:M}=this.handlers;x||(D&&D(this.lastMoveEvent,w),this.startEvent=this.lastMoveEvent),M&&M(this.lastMoveEvent,w)},this.handlePointerMove=(w,x)=>{this.lastMoveEvent=w,this.lastRawMoveEventInfo=x,this.lastMoveEventInfo=mu(x,this.transformPagePoint),dt.update(this.updatePoint,!0)},this.handlePointerUp=(w,x)=>{this.end();const{onEnd:T,onSessionEnd:P,resumeAnimation:L}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&L&&L(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const D=Vh(w.type==="pointercancel"?this.lastMoveEventInfo:mu(x,this.transformPagePoint),this.history);this.startEvent&&T&&T(w,D),P&&P(w,D)},!Hp(t))return;this.dragSnapToOrigin=o,this.handlers=n,this.transformPagePoint=a,this.distanceThreshold=u,this.contextWindow=s||window;const h=Zo(t),f=mu(h,this.transformPagePoint),{point:m}=f,{timestamp:y}=Kt;this.history=[{...m,timestamp:y}];const{onSessionStart:b}=n;b&&b(t,Vh(f,this.history)),this.removeListeners=qo(To(this.contextWindow,"pointermove",this.handlePointerMove),To(this.contextWindow,"pointerup",this.handlePointerUp),To(this.contextWindow,"pointercancel",this.handlePointerUp)),c&&this.startScrollTracking(c)}startScrollTracking(t){let n=t.parentElement;for(;n;){const a=getComputedStyle(n);(eb.has(a.overflowX)||eb.has(a.overflowY))&&this.scrollPositions.set(n,{x:n.scrollLeft,y:n.scrollTop}),n=n.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0}),window.addEventListener("scroll",this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(t){const n=this.scrollPositions.get(t);if(!n)return;const a=t===window,s=a?{x:window.scrollX,y:window.scrollY}:{x:t.scrollLeft,y:t.scrollTop},o={x:s.x-n.x,y:s.y-n.y};o.x===0&&o.y===0||(a?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=o.x,this.lastMoveEventInfo.point.y+=o.y):this.history.length>0&&(this.history[0].x-=o.x,this.history[0].y-=o.y),this.scrollPositions.set(t,s),dt.update(this.updatePoint,!0))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),Na(this.updatePoint)}}function mu(e,t){return t?{point:t(e.point)}:e}function tb(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Vh({point:e},t){return{point:e,delta:tb(e,ax(t)),offset:tb(e,dI(t)),velocity:hI(t,.1)}}function dI(e){return e[0]}function ax(e){return e[e.length-1]}function hI(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,a=null;const s=ax(e);for(;n>=0&&(a=e[n],!(s.timestamp-a.timestamp>Sn(t)));)n--;if(!a)return{x:0,y:0};a===e[0]&&e.length>2&&s.timestamp-a.timestamp>Sn(t)*2&&(a=e[1]);const o=In(s.timestamp-a.timestamp);if(o===0)return{x:0,y:0};const u={x:(s.x-a.x)/o,y:(s.y-a.y)/o};return u.x===1/0&&(u.x=0),u.y===1/0&&(u.y=0),u}function fI(e,{min:t,max:n},a){return t!==void 0&&e<t?e=a?vt(t,e,a.min):Math.max(e,t):n!==void 0&&e>n&&(e=a?vt(n,e,a.max):Math.min(e,n)),e}function nb(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function pI(e,{top:t,left:n,bottom:a,right:s}){return{x:nb(e.x,n,s),y:nb(e.y,t,a)}}function rb(e,t){let n=t.min-e.min,a=t.max-e.max;return t.max-t.min<e.max-e.min&&([n,a]=[a,n]),{min:n,max:a}}function mI(e,t){return{x:rb(e.x,t.x),y:rb(e.y,t.y)}}function gI(e,t){let n=.5;const a=ln(e),s=ln(t);return s>a?n=Do(t.min,t.max-a,e.min):a>s&&(n=Do(e.min,e.max-s,t.min)),kr(0,1,n)}function yI(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const Bf=.35;function vI(e=Bf){return e===!1?e=0:e===!0&&(e=Bf),{x:ab(e,"left","right"),y:ab(e,"top","bottom")}}function ab(e,t,n){return{min:ib(e,t),max:ib(e,n)}}function ib(e,t){return typeof e=="number"?e:e[t]||0}const bI=new WeakMap;class _I{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=It(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=t}start(t,{snapToCursor:n=!1,distanceThreshold:a}={}){const{presenceContext:s}=this.visualElement;if(s&&s.isPresent===!1)return;const o=y=>{n&&this.snapToCursor(Zo(y).point),this.stopAnimation()},u=(y,b)=>{const{drag:w,dragPropagation:x,onDragStart:T}=this.getProps();if(w&&!x&&(this.openDragLock&&this.openDragLock(),this.openDragLock=K2(w),!this.openDragLock))return;this.latestPointerEvent=y,this.latestPanInfo=b,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),hr(L=>{let D=this.getAxisMotionValue(L).get()||0;if(yr.test(D)){const{projection:M}=this.visualElement;if(M&&M.layout){const j=M.layout.layoutBox[L];j&&(D=ln(j)*(parseFloat(D)/100))}}this.originPoint[L]=D}),T&&dt.update(()=>T(y,b),!1,!0),Af(this.visualElement,"transform");const{animationState:P}=this.visualElement;P&&P.setActive("whileDrag",!0)},c=(y,b)=>{this.latestPointerEvent=y,this.latestPanInfo=b;const{dragPropagation:w,dragDirectionLock:x,onDirectionLock:T,onDrag:P}=this.getProps();if(!w&&!this.openDragLock)return;const{offset:L}=b;if(x&&this.currentDirection===null){this.currentDirection=kI(L),this.currentDirection!==null&&T&&T(this.currentDirection);return}this.updateAxis("x",b.point,L),this.updateAxis("y",b.point,L),this.visualElement.render(),P&&dt.update(()=>P(y,b),!1,!0)},h=(y,b)=>{this.latestPointerEvent=y,this.latestPanInfo=b,this.stop(y,b),this.latestPointerEvent=null,this.latestPanInfo=null},f=()=>{const{dragSnapToOrigin:y}=this.getProps();(y||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:m}=this.getProps();this.panSession=new rx(t,{onSessionStart:o,onStart:u,onMove:c,onSessionEnd:h,resumeAnimation:f},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:m,distanceThreshold:a,contextWindow:nx(this.visualElement),element:this.visualElement.current})}stop(t,n){const a=t||this.latestPointerEvent,s=n||this.latestPanInfo,o=this.isDragging;if(this.cancel(),!o||!s||!a)return;const{velocity:u}=s;this.startAnimation(u);const{onDragEnd:c}=this.getProps();c&&dt.postRender(()=>c(a,s))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.endPanSession();const{dragPropagation:a}=this.getProps();!a&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(t,n,a){const{drag:s}=this.getProps();if(!a||!gu(t,s,this.currentDirection))return;const o=this.getAxisMotionValue(t);let u=this.originPoint[t]+a[t];this.constraints&&this.constraints[t]&&(u=fI(u,this.constraints[t],this.elastic[t])),o.set(u)}resolveConstraints(){const{dragConstraints:t,dragElastic:n}=this.getProps(),a=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,s=this.constraints;t&&ts(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&a?this.constraints=pI(a.layoutBox,t):this.constraints=!1,this.elastic=vI(n),s!==this.constraints&&!ts(t)&&a&&this.constraints&&!this.hasMutatedConstraints&&hr(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=yI(a.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!ts(t))return!1;const a=t.current,{projection:s}=this.visualElement;if(!s||!s.layout)return!1;const o=wN(a,s.root,this.visualElement.getTransformPagePoint());let u=mI(s.layout.layoutBox,o);if(n){const c=n(vN(u));this.hasMutatedConstraints=!!c,c&&(u=Pk(c))}return u}startAnimation(t){const{drag:n,dragMomentum:a,dragElastic:s,dragTransition:o,dragSnapToOrigin:u,onDragTransitionEnd:c}=this.getProps(),h=this.constraints||{},f=hr(m=>{if(!gu(m,n,this.currentDirection))return;let y=h&&h[m]||{};(u===!0||u===m)&&(y={min:0,max:0});const b=s?200:1e6,w=s?40:1e7,x={type:"inertia",velocity:a?t[m]:0,bounceStiffness:b,bounceDamping:w,timeConstant:750,restDelta:1,restSpeed:10,...o,...y};return this.startAxisValueAnimation(m,x)});return Promise.all(f).then(c)}startAxisValueAnimation(t,n){const a=this.getAxisMotionValue(t);return Af(this.visualElement,t),a.start(Bp(t,a,0,n,this.visualElement,!1))}stopAnimation(){hr(t=>this.getAxisMotionValue(t).stop())}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,a=this.visualElement.getProps(),s=a[n];return s||this.visualElement.getValue(t,(a.initial?a.initial[t]:void 0)||0)}snapToCursor(t){hr(n=>{const{drag:a}=this.getProps();if(!gu(n,a,this.currentDirection))return;const{projection:s}=this.visualElement,o=this.getAxisMotionValue(n);if(s&&s.layout){const{min:u,max:c}=s.layout.layoutBox[n],h=o.get()||0;o.set(t[n]-vt(u,c,.5)+h)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:a}=this.visualElement;if(!ts(n)||!a||!this.constraints)return;this.stopAnimation();const s={x:0,y:0};hr(u=>{const c=this.getAxisMotionValue(u);if(c&&this.constraints!==!1){const h=c.get();s[u]=gI({min:h,max:h},this.constraints[u])}});const{transformTemplate:o}=this.visualElement.getProps();this.visualElement.current.style.transform=o?o({},""):"none",a.root&&a.root.updateScroll(),a.updateLayout(),this.constraints=!1,this.resolveConstraints(),hr(u=>{if(!gu(u,t,null))return;const c=this.getAxisMotionValue(u),{min:h,max:f}=this.constraints[u];c.set(vt(h,f,s[u]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;bI.set(this.visualElement,this);const t=this.visualElement.current,n=To(t,"pointerdown",f=>{const{drag:m,dragListener:y=!0}=this.getProps(),b=f.target,w=b!==t&&X2(b);m&&y&&!w&&this.start(f)});let a;const s=()=>{const{dragConstraints:f}=this.getProps();ts(f)&&f.current&&(this.constraints=this.resolveRefConstraints(),a||(a=wI(t,f.current,()=>this.scalePositionWithinConstraints())))},{projection:o}=this.visualElement,u=o.addEventListener("measure",s);o&&!o.layout&&(o.root&&o.root.updateScroll(),o.updateLayout()),dt.read(s);const c=Oo(window,"resize",()=>this.scalePositionWithinConstraints()),h=o.addEventListener("didUpdate",(({delta:f,hasLayoutChanged:m})=>{this.isDragging&&m&&(hr(y=>{const b=this.getAxisMotionValue(y);b&&(this.originPoint[y]+=f[y].translate,b.set(b.get()+f[y].translate))}),this.visualElement.render())}));return()=>{c(),n(),u(),h&&h(),a&&a()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:a=!1,dragPropagation:s=!1,dragConstraints:o=!1,dragElastic:u=Bf,dragMomentum:c=!0}=t;return{...t,drag:n,dragDirectionLock:a,dragPropagation:s,dragConstraints:o,dragElastic:u,dragMomentum:c}}}function sb(e){let t=!0;return()=>{if(t){t=!1;return}e()}}function wI(e,t,n){const a=f0(e,sb(n)),s=f0(t,sb(n));return()=>{a(),s()}}function gu(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function kI(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class xI extends Ia{constructor(t){super(t),this.removeGroupControls=jn,this.removeListeners=jn,this.controls=new _I(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||jn}update(){const{dragControls:t}=this.node.getProps(),{dragControls:n}=this.node.prevProps||{};t!==n&&(this.removeGroupControls(),t&&(this.removeGroupControls=t.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}}const zh=e=>(t,n)=>{e&&dt.update(()=>e(t,n),!1,!0)};class SI extends Ia{constructor(){super(...arguments),this.removePointerDownListener=jn}onPointerDown(t){this.session=new rx(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:nx(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:a,onPanEnd:s}=this.node.getProps();return{onSessionStart:zh(t),onStart:zh(n),onMove:zh(a),onEnd:(o,u)=>{delete this.session,s&&dt.postRender(()=>s(o,u))}}}mount(){this.removePointerDownListener=To(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let $h=!1;class PI extends k.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:a,layoutId:s}=this.props,{projection:o}=t;o&&(n.group&&n.group.add(o),a&&a.register&&s&&a.register(o),$h&&o.root.didUpdate(),o.addEventListener("animationComplete",()=>{this.safeToRemove()}),o.setOptions({...o.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),ju.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:a,drag:s,isPresent:o}=this.props,{projection:u}=a;return u&&(u.isPresent=o,t.layoutDependency!==n&&u.setOptions({...u.options,layoutDependency:n}),$h=!0,s||t.layoutDependency!==n||n===void 0||t.isPresent!==o?u.willUpdate():this.safeToRemove(),t.isPresent!==o&&(o?u.promote():u.relegate()||dt.postRender(()=>{const c=u.getStack();(!c||!c.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{visualElement:t,layoutAnchor:n}=this.props,{projection:a}=t;a&&(a.options.layoutAnchor=n,a.root.didUpdate(),$p.postRender(()=>{!a.currentAnimation&&a.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:a}=this.props,{projection:s}=t;$h=!0,s&&(s.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(s),a&&a.deregister&&a.deregister(s))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function ix(e){const[t,n]=qk(),a=k.useContext(Sp);return I.jsx(PI,{...e,layoutGroup:a,switchLayoutGroup:k.useContext(ex),isPresent:t,safeToRemove:n})}const TI={pan:{Feature:SI},drag:{Feature:xI,ProjectionNode:Kk,MeasureLayout:ix}};function ob(e,t,n){const{props:a}=e;e.animationState&&a.whileHover&&e.animationState.setActive("whileHover",n==="Start");const s="onHover"+n,o=a[s];o&&dt.postRender(()=>o(t,Zo(t)))}class CI extends Ia{mount(){const{current:t}=this.node;t&&(this.unmount=G2(t,(n,a)=>(ob(this.node,a,"Start"),s=>ob(this.node,s,"End"))))}unmount(){}}class EI extends Ia{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=qo(Oo(this.node.current,"focus",()=>this.onFocus()),Oo(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function lb(e,t,n){const{props:a}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&a.whileTap&&e.animationState.setActive("whileTap",n==="Start");const s="onTap"+(n==="End"?"":n),o=a[s];o&&dt.postRender(()=>o(t,Zo(t)))}class RI extends Ia{mount(){const{current:t}=this.node;if(!t)return;const{globalTapTarget:n,propagate:a}=this.node.props;this.unmount=eN(t,(s,o)=>(lb(this.node,o,"Start"),(u,{success:c})=>lb(this.node,u,c?"End":"Cancel")),{useGlobalTarget:n,stopPropagation:a?.tap===!1})}unmount(){}}const Ff=new WeakMap,Hh=new WeakMap,AI=e=>{const t=Ff.get(e.target);t&&t(e)},LI=e=>{e.forEach(AI)};function DI({root:e,...t}){const n=e||document;Hh.has(n)||Hh.set(n,{});const a=Hh.get(n),s=JSON.stringify(t);return a[s]||(a[s]=new IntersectionObserver(LI,{root:e,...t})),a[s]}function MI(e,t,n){const a=DI(t);return Ff.set(e,n),a.observe(e),()=>{Ff.delete(e),a.unobserve(e)}}const NI={some:0,all:1};class OI extends Ia{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.stopObserver?.();const{viewport:t={}}=this.node.getProps(),{root:n,margin:a,amount:s="some",once:o}=t,u={root:n?n.current:void 0,rootMargin:a,threshold:typeof s=="number"?s:NI[s]},c=h=>{const{isIntersecting:f}=h;if(this.isInView===f||(this.isInView=f,o&&!f&&this.hasEnteredView))return;f&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",f);const{onViewportEnter:m,onViewportLeave:y}=this.node.getProps(),b=f?m:y;b&&b(h)};this.stopObserver=MI(this.node.current,u,c)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(II(t,n))&&this.startObserver()}unmount(){this.stopObserver?.(),this.hasEnteredView=!1,this.isInView=!1}}function II({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const jI={inView:{Feature:OI},tap:{Feature:RI},focus:{Feature:EI},hover:{Feature:CI}},UI={layout:{ProjectionNode:Kk,MeasureLayout:ix}},BI={...lI,...jI,...TI,...UI},Wh=rI(BI,aI);function sx(e){var t,n,a="";if(typeof e=="string"||typeof e=="number")a+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t<s;t++)e[t]&&(n=sx(e[t]))&&(a&&(a+=" "),a+=n)}else for(n in e)e[n]&&(a&&(a+=" "),a+=n);return a}function FI(){for(var e,t,n=0,a="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=sx(e))&&(a&&(a+=" "),a+=t);return a}const VI=(e,t)=>{const n=new Array(e.length+t.length);for(let a=0;a<e.length;a++)n[a]=e[a];for(let a=0;a<t.length;a++)n[e.length+a]=t[a];return n},zI=(e,t)=>({classGroupId:e,validator:t}),ox=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),cc="-",ub=[],$I="arbitrary..",HI=e=>{const t=KI(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:a}=e;return{getClassGroupId:u=>{if(u.startsWith("[")&&u.endsWith("]"))return WI(u);const c=u.split(cc),h=c[0]===""&&c.length>1?1:0;return lx(c,h,t)},getConflictingClassGroupIds:(u,c)=>{if(c){const h=a[u],f=n[u];return h?f?VI(f,h):h:f||ub}return n[u]||ub}}},lx=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const s=e[t],o=n.nextPart.get(s);if(o){const f=lx(e,t+1,o);if(f)return f}const u=n.validators;if(u===null)return;const c=t===0?e.join(cc):e.slice(t).join(cc),h=u.length;for(let f=0;f<h;f++){const m=u[f];if(m.validator(c))return m.classGroupId}},WI=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),n=t.indexOf(":"),a=t.slice(0,n);return a?$I+a:void 0})(),KI=e=>{const{theme:t,classGroups:n}=e;return qI(n,t)},qI=(e,t)=>{const n=ox();for(const a in e){const s=e[a];Jp(s,n,a,t)}return n},Jp=(e,t,n,a)=>{const s=e.length;for(let o=0;o<s;o++){const u=e[o];GI(u,t,n,a)}},GI=(e,t,n,a)=>{if(typeof e=="string"){YI(e,t,n);return}if(typeof e=="function"){ZI(e,t,n,a);return}QI(e,t,n,a)},YI=(e,t,n)=>{const a=e===""?t:ux(t,e);a.classGroupId=n},ZI=(e,t,n,a)=>{if(XI(e)){Jp(e(a),t,n,a);return}t.validators===null&&(t.validators=[]),t.validators.push(zI(n,e))},QI=(e,t,n,a)=>{const s=Object.entries(e),o=s.length;for(let u=0;u<o;u++){const[c,h]=s[u];Jp(h,ux(t,c),n,a)}},ux=(e,t)=>{let n=e;const a=t.split(cc),s=a.length;for(let o=0;o<s;o++){const u=a[o];let c=n.nextPart.get(u);c||(c=ox(),n.nextPart.set(u,c)),n=c}return n},XI=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,JI=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=Object.create(null),a=Object.create(null);const s=(o,u)=>{n[o]=u,t++,t>e&&(t=0,a=n,n=Object.create(null))};return{get(o){let u=n[o];if(u!==void 0)return u;if((u=a[o])!==void 0)return s(o,u),u},set(o,u){o in n?n[o]=u:s(o,u)}}},Vf="!",cb=":",ej=[],db=(e,t,n,a,s)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:a,isExternal:s}),tj=e=>{const{prefix:t,experimentalParseClassName:n}=e;let a=s=>{const o=[];let u=0,c=0,h=0,f;const m=s.length;for(let T=0;T<m;T++){const P=s[T];if(u===0&&c===0){if(P===cb){o.push(s.slice(h,T)),h=T+1;continue}if(P==="/"){f=T;continue}}P==="["?u++:P==="]"?u--:P==="("?c++:P===")"&&c--}const y=o.length===0?s:s.slice(h);let b=y,w=!1;y.endsWith(Vf)?(b=y.slice(0,-1),w=!0):y.startsWith(Vf)&&(b=y.slice(1),w=!0);const x=f&&f>h?f-h:void 0;return db(o,w,b,x)};if(t){const s=t+cb,o=a;a=u=>u.startsWith(s)?o(u.slice(s.length)):db(ej,!1,u,void 0,!0)}if(n){const s=a;a=o=>n({className:o,parseClassName:s})}return a},nj=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((n,a)=>{t.set(n,1e6+a)}),n=>{const a=[];let s=[];for(let o=0;o<n.length;o++){const u=n[o],c=u[0]==="[",h=t.has(u);c||h?(s.length>0&&(s.sort(),a.push(...s),s=[]),a.push(u)):s.push(u)}return s.length>0&&(s.sort(),a.push(...s)),a}},rj=e=>({cache:JI(e.cacheSize),parseClassName:tj(e),sortModifiers:nj(e),...HI(e)}),aj=/\s+/,ij=(e,t)=>{const{parseClassName:n,getClassGroupId:a,getConflictingClassGroupIds:s,sortModifiers:o}=t,u=[],c=e.trim().split(aj);let h="";for(let f=c.length-1;f>=0;f-=1){const m=c[f],{isExternal:y,modifiers:b,hasImportantModifier:w,baseClassName:x,maybePostfixModifierPosition:T}=n(m);if(y){h=m+(h.length>0?" "+h:h);continue}let P=!!T,L=a(P?x.substring(0,T):x);if(!L){if(!P){h=m+(h.length>0?" "+h:h);continue}if(L=a(x),!L){h=m+(h.length>0?" "+h:h);continue}P=!1}const D=b.length===0?"":b.length===1?b[0]:o(b).join(":"),M=w?D+Vf:D,j=M+L;if(u.indexOf(j)>-1)continue;u.push(j);const K=s(L,P);for(let G=0;G<K.length;++G){const W=K[G];u.push(M+W)}h=m+(h.length>0?" "+h:h)}return h},sj=(...e)=>{let t=0,n,a,s="";for(;t<e.length;)(n=e[t++])&&(a=cx(n))&&(s&&(s+=" "),s+=a);return s},cx=e=>{if(typeof e=="string")return e;let t,n="";for(let a=0;a<e.length;a++)e[a]&&(t=cx(e[a]))&&(n&&(n+=" "),n+=t);return n},oj=(e,...t)=>{let n,a,s,o;const u=h=>{const f=t.reduce((m,y)=>y(m),e());return n=rj(f),a=n.cache.get,s=n.cache.set,o=c,c(h)},c=h=>{const f=a(h);if(f)return f;const m=ij(h,n);return s(h,m),m};return o=u,(...h)=>o(sj(...h))},lj=[],Ot=e=>{const t=n=>n[e]||lj;return t.isThemeGetter=!0,t},dx=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,hx=/^\((?:(\w[\w-]*):)?(.+)\)$/i,uj=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,cj=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,dj=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,hj=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,fj=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,pj=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ka=e=>uj.test(e),Ge=e=>!!e&&!Number.isNaN(Number(e)),xa=e=>!!e&&Number.isInteger(Number(e)),Kh=e=>e.endsWith("%")&&Ge(e.slice(0,-1)),Fr=e=>cj.test(e),fx=()=>!0,mj=e=>dj.test(e)&&!hj.test(e),em=()=>!1,gj=e=>fj.test(e),yj=e=>pj.test(e),vj=e=>!ve(e)&&!we(e),bj=e=>ja(e,gx,em),ve=e=>dx.test(e),Ja=e=>ja(e,yx,mj),hb=e=>ja(e,Cj,Ge),_j=e=>ja(e,bx,fx),wj=e=>ja(e,vx,em),fb=e=>ja(e,px,em),kj=e=>ja(e,mx,yj),yu=e=>ja(e,_x,gj),we=e=>hx.test(e),mo=e=>gi(e,yx),xj=e=>gi(e,vx),pb=e=>gi(e,px),Sj=e=>gi(e,gx),Pj=e=>gi(e,mx),vu=e=>gi(e,_x,!0),Tj=e=>gi(e,bx,!0),ja=(e,t,n)=>{const a=dx.exec(e);return a?a[1]?t(a[1]):n(a[2]):!1},gi=(e,t,n=!1)=>{const a=hx.exec(e);return a?a[1]?t(a[1]):n:!1},px=e=>e==="position"||e==="percentage",mx=e=>e==="image"||e==="url",gx=e=>e==="length"||e==="size"||e==="bg-size",yx=e=>e==="length",Cj=e=>e==="number",vx=e=>e==="family-name",bx=e=>e==="number"||e==="weight",_x=e=>e==="shadow",Ej=()=>{const e=Ot("color"),t=Ot("font"),n=Ot("text"),a=Ot("font-weight"),s=Ot("tracking"),o=Ot("leading"),u=Ot("breakpoint"),c=Ot("container"),h=Ot("spacing"),f=Ot("radius"),m=Ot("shadow"),y=Ot("inset-shadow"),b=Ot("text-shadow"),w=Ot("drop-shadow"),x=Ot("blur"),T=Ot("perspective"),P=Ot("aspect"),L=Ot("ease"),D=Ot("animate"),M=()=>["auto","avoid","all","avoid-page","page","left","right","column"],j=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],K=()=>[...j(),we,ve],G=()=>["auto","hidden","clip","visible","scroll"],W=()=>["auto","contain","none"],S=()=>[we,ve,h],Z=()=>[ka,"full","auto",...S()],X=()=>[xa,"none","subgrid",we,ve],_e=()=>["auto",{span:["full",xa,we,ve]},xa,we,ve],oe=()=>[xa,"auto",we,ve],Re=()=>["auto","min","max","fr",we,ve],fe=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],ce=()=>["start","end","center","stretch","center-safe","end-safe"],ue=()=>["auto",...S()],Me=()=>[ka,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...S()],H=()=>[ka,"screen","full","dvw","lvw","svw","min","max","fit",...S()],Y=()=>[ka,"screen","full","lh","dvh","lvh","svh","min","max","fit",...S()],$=()=>[e,we,ve],N=()=>[...j(),pb,fb,{position:[we,ve]}],q=()=>["no-repeat",{repeat:["","x","y","space","round"]}],xe=()=>["auto","cover","contain",Sj,bj,{size:[we,ve]}],Ae=()=>[Kh,mo,Ja],Se=()=>["","none","full",f,we,ve],Ce=()=>["",Ge,mo,Ja],qe=()=>["solid","dashed","dotted","double"],Xe=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],Ue=()=>[Ge,Kh,pb,fb],jt=()=>["","none",x,we,ve],$n=()=>["none",Ge,we,ve],Tr=()=>["none",Ge,we,ve],pt=()=>[Ge,we,ve],en=()=>[ka,"full",...S()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Fr],breakpoint:[Fr],color:[fx],container:[Fr],"drop-shadow":[Fr],ease:["in","out","in-out"],font:[vj],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Fr],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Fr],shadow:[Fr],spacing:["px",Ge],text:[Fr],"text-shadow":[Fr],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",ka,ve,we,P]}],container:["container"],columns:[{columns:[Ge,ve,we,c]}],"break-after":[{"break-after":M()}],"break-before":[{"break-before":M()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:K()}],overflow:[{overflow:G()}],"overflow-x":[{"overflow-x":G()}],"overflow-y":[{"overflow-y":G()}],overscroll:[{overscroll:W()}],"overscroll-x":[{"overscroll-x":W()}],"overscroll-y":[{"overscroll-y":W()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:Z()}],"inset-x":[{"inset-x":Z()}],"inset-y":[{"inset-y":Z()}],start:[{"inset-s":Z(),start:Z()}],end:[{"inset-e":Z(),end:Z()}],"inset-bs":[{"inset-bs":Z()}],"inset-be":[{"inset-be":Z()}],top:[{top:Z()}],right:[{right:Z()}],bottom:[{bottom:Z()}],left:[{left:Z()}],visibility:["visible","invisible","collapse"],z:[{z:[xa,"auto",we,ve]}],basis:[{basis:[ka,"full","auto",c,...S()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Ge,ka,"auto","initial","none",ve]}],grow:[{grow:["",Ge,we,ve]}],shrink:[{shrink:["",Ge,we,ve]}],order:[{order:[xa,"first","last","none",we,ve]}],"grid-cols":[{"grid-cols":X()}],"col-start-end":[{col:_e()}],"col-start":[{"col-start":oe()}],"col-end":[{"col-end":oe()}],"grid-rows":[{"grid-rows":X()}],"row-start-end":[{row:_e()}],"row-start":[{"row-start":oe()}],"row-end":[{"row-end":oe()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":Re()}],"auto-rows":[{"auto-rows":Re()}],gap:[{gap:S()}],"gap-x":[{"gap-x":S()}],"gap-y":[{"gap-y":S()}],"justify-content":[{justify:[...fe(),"normal"]}],"justify-items":[{"justify-items":[...ce(),"normal"]}],"justify-self":[{"justify-self":["auto",...ce()]}],"align-content":[{content:["normal",...fe()]}],"align-items":[{items:[...ce(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...ce(),{baseline:["","last"]}]}],"place-content":[{"place-content":fe()}],"place-items":[{"place-items":[...ce(),"baseline"]}],"place-self":[{"place-self":["auto",...ce()]}],p:[{p:S()}],px:[{px:S()}],py:[{py:S()}],ps:[{ps:S()}],pe:[{pe:S()}],pbs:[{pbs:S()}],pbe:[{pbe:S()}],pt:[{pt:S()}],pr:[{pr:S()}],pb:[{pb:S()}],pl:[{pl:S()}],m:[{m:ue()}],mx:[{mx:ue()}],my:[{my:ue()}],ms:[{ms:ue()}],me:[{me:ue()}],mbs:[{mbs:ue()}],mbe:[{mbe:ue()}],mt:[{mt:ue()}],mr:[{mr:ue()}],mb:[{mb:ue()}],ml:[{ml:ue()}],"space-x":[{"space-x":S()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":S()}],"space-y-reverse":["space-y-reverse"],size:[{size:Me()}],"inline-size":[{inline:["auto",...H()]}],"min-inline-size":[{"min-inline":["auto",...H()]}],"max-inline-size":[{"max-inline":["none",...H()]}],"block-size":[{block:["auto",...Y()]}],"min-block-size":[{"min-block":["auto",...Y()]}],"max-block-size":[{"max-block":["none",...Y()]}],w:[{w:[c,"screen",...Me()]}],"min-w":[{"min-w":[c,"screen","none",...Me()]}],"max-w":[{"max-w":[c,"screen","none","prose",{screen:[u]},...Me()]}],h:[{h:["screen","lh",...Me()]}],"min-h":[{"min-h":["screen","lh","none",...Me()]}],"max-h":[{"max-h":["screen","lh",...Me()]}],"font-size":[{text:["base",n,mo,Ja]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[a,Tj,_j]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Kh,ve]}],"font-family":[{font:[xj,wj,t]}],"font-features":[{"font-features":[ve]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[s,we,ve]}],"line-clamp":[{"line-clamp":[Ge,"none",we,hb]}],leading:[{leading:[o,...S()]}],"list-image":[{"list-image":["none",we,ve]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",we,ve]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:$()}],"text-color":[{text:$()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...qe(),"wavy"]}],"text-decoration-thickness":[{decoration:[Ge,"from-font","auto",we,Ja]}],"text-decoration-color":[{decoration:$()}],"underline-offset":[{"underline-offset":[Ge,"auto",we,ve]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:S()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",we,ve]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",we,ve]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:N()}],"bg-repeat":[{bg:q()}],"bg-size":[{bg:xe()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},xa,we,ve],radial:["",we,ve],conic:[xa,we,ve]},Pj,kj]}],"bg-color":[{bg:$()}],"gradient-from-pos":[{from:Ae()}],"gradient-via-pos":[{via:Ae()}],"gradient-to-pos":[{to:Ae()}],"gradient-from":[{from:$()}],"gradient-via":[{via:$()}],"gradient-to":[{to:$()}],rounded:[{rounded:Se()}],"rounded-s":[{"rounded-s":Se()}],"rounded-e":[{"rounded-e":Se()}],"rounded-t":[{"rounded-t":Se()}],"rounded-r":[{"rounded-r":Se()}],"rounded-b":[{"rounded-b":Se()}],"rounded-l":[{"rounded-l":Se()}],"rounded-ss":[{"rounded-ss":Se()}],"rounded-se":[{"rounded-se":Se()}],"rounded-ee":[{"rounded-ee":Se()}],"rounded-es":[{"rounded-es":Se()}],"rounded-tl":[{"rounded-tl":Se()}],"rounded-tr":[{"rounded-tr":Se()}],"rounded-br":[{"rounded-br":Se()}],"rounded-bl":[{"rounded-bl":Se()}],"border-w":[{border:Ce()}],"border-w-x":[{"border-x":Ce()}],"border-w-y":[{"border-y":Ce()}],"border-w-s":[{"border-s":Ce()}],"border-w-e":[{"border-e":Ce()}],"border-w-bs":[{"border-bs":Ce()}],"border-w-be":[{"border-be":Ce()}],"border-w-t":[{"border-t":Ce()}],"border-w-r":[{"border-r":Ce()}],"border-w-b":[{"border-b":Ce()}],"border-w-l":[{"border-l":Ce()}],"divide-x":[{"divide-x":Ce()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":Ce()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...qe(),"hidden","none"]}],"divide-style":[{divide:[...qe(),"hidden","none"]}],"border-color":[{border:$()}],"border-color-x":[{"border-x":$()}],"border-color-y":[{"border-y":$()}],"border-color-s":[{"border-s":$()}],"border-color-e":[{"border-e":$()}],"border-color-bs":[{"border-bs":$()}],"border-color-be":[{"border-be":$()}],"border-color-t":[{"border-t":$()}],"border-color-r":[{"border-r":$()}],"border-color-b":[{"border-b":$()}],"border-color-l":[{"border-l":$()}],"divide-color":[{divide:$()}],"outline-style":[{outline:[...qe(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Ge,we,ve]}],"outline-w":[{outline:["",Ge,mo,Ja]}],"outline-color":[{outline:$()}],shadow:[{shadow:["","none",m,vu,yu]}],"shadow-color":[{shadow:$()}],"inset-shadow":[{"inset-shadow":["none",y,vu,yu]}],"inset-shadow-color":[{"inset-shadow":$()}],"ring-w":[{ring:Ce()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:$()}],"ring-offset-w":[{"ring-offset":[Ge,Ja]}],"ring-offset-color":[{"ring-offset":$()}],"inset-ring-w":[{"inset-ring":Ce()}],"inset-ring-color":[{"inset-ring":$()}],"text-shadow":[{"text-shadow":["none",b,vu,yu]}],"text-shadow-color":[{"text-shadow":$()}],opacity:[{opacity:[Ge,we,ve]}],"mix-blend":[{"mix-blend":[...Xe(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Xe()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[Ge]}],"mask-image-linear-from-pos":[{"mask-linear-from":Ue()}],"mask-image-linear-to-pos":[{"mask-linear-to":Ue()}],"mask-image-linear-from-color":[{"mask-linear-from":$()}],"mask-image-linear-to-color":[{"mask-linear-to":$()}],"mask-image-t-from-pos":[{"mask-t-from":Ue()}],"mask-image-t-to-pos":[{"mask-t-to":Ue()}],"mask-image-t-from-color":[{"mask-t-from":$()}],"mask-image-t-to-color":[{"mask-t-to":$()}],"mask-image-r-from-pos":[{"mask-r-from":Ue()}],"mask-image-r-to-pos":[{"mask-r-to":Ue()}],"mask-image-r-from-color":[{"mask-r-from":$()}],"mask-image-r-to-color":[{"mask-r-to":$()}],"mask-image-b-from-pos":[{"mask-b-from":Ue()}],"mask-image-b-to-pos":[{"mask-b-to":Ue()}],"mask-image-b-from-color":[{"mask-b-from":$()}],"mask-image-b-to-color":[{"mask-b-to":$()}],"mask-image-l-from-pos":[{"mask-l-from":Ue()}],"mask-image-l-to-pos":[{"mask-l-to":Ue()}],"mask-image-l-from-color":[{"mask-l-from":$()}],"mask-image-l-to-color":[{"mask-l-to":$()}],"mask-image-x-from-pos":[{"mask-x-from":Ue()}],"mask-image-x-to-pos":[{"mask-x-to":Ue()}],"mask-image-x-from-color":[{"mask-x-from":$()}],"mask-image-x-to-color":[{"mask-x-to":$()}],"mask-image-y-from-pos":[{"mask-y-from":Ue()}],"mask-image-y-to-pos":[{"mask-y-to":Ue()}],"mask-image-y-from-color":[{"mask-y-from":$()}],"mask-image-y-to-color":[{"mask-y-to":$()}],"mask-image-radial":[{"mask-radial":[we,ve]}],"mask-image-radial-from-pos":[{"mask-radial-from":Ue()}],"mask-image-radial-to-pos":[{"mask-radial-to":Ue()}],"mask-image-radial-from-color":[{"mask-radial-from":$()}],"mask-image-radial-to-color":[{"mask-radial-to":$()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":j()}],"mask-image-conic-pos":[{"mask-conic":[Ge]}],"mask-image-conic-from-pos":[{"mask-conic-from":Ue()}],"mask-image-conic-to-pos":[{"mask-conic-to":Ue()}],"mask-image-conic-from-color":[{"mask-conic-from":$()}],"mask-image-conic-to-color":[{"mask-conic-to":$()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:N()}],"mask-repeat":[{mask:q()}],"mask-size":[{mask:xe()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",we,ve]}],filter:[{filter:["","none",we,ve]}],blur:[{blur:jt()}],brightness:[{brightness:[Ge,we,ve]}],contrast:[{contrast:[Ge,we,ve]}],"drop-shadow":[{"drop-shadow":["","none",w,vu,yu]}],"drop-shadow-color":[{"drop-shadow":$()}],grayscale:[{grayscale:["",Ge,we,ve]}],"hue-rotate":[{"hue-rotate":[Ge,we,ve]}],invert:[{invert:["",Ge,we,ve]}],saturate:[{saturate:[Ge,we,ve]}],sepia:[{sepia:["",Ge,we,ve]}],"backdrop-filter":[{"backdrop-filter":["","none",we,ve]}],"backdrop-blur":[{"backdrop-blur":jt()}],"backdrop-brightness":[{"backdrop-brightness":[Ge,we,ve]}],"backdrop-contrast":[{"backdrop-contrast":[Ge,we,ve]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Ge,we,ve]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Ge,we,ve]}],"backdrop-invert":[{"backdrop-invert":["",Ge,we,ve]}],"backdrop-opacity":[{"backdrop-opacity":[Ge,we,ve]}],"backdrop-saturate":[{"backdrop-saturate":[Ge,we,ve]}],"backdrop-sepia":[{"backdrop-sepia":["",Ge,we,ve]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":S()}],"border-spacing-x":[{"border-spacing-x":S()}],"border-spacing-y":[{"border-spacing-y":S()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",we,ve]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Ge,"initial",we,ve]}],ease:[{ease:["linear","initial",L,we,ve]}],delay:[{delay:[Ge,we,ve]}],animate:[{animate:["none",D,we,ve]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[T,we,ve]}],"perspective-origin":[{"perspective-origin":K()}],rotate:[{rotate:$n()}],"rotate-x":[{"rotate-x":$n()}],"rotate-y":[{"rotate-y":$n()}],"rotate-z":[{"rotate-z":$n()}],scale:[{scale:Tr()}],"scale-x":[{"scale-x":Tr()}],"scale-y":[{"scale-y":Tr()}],"scale-z":[{"scale-z":Tr()}],"scale-3d":["scale-3d"],skew:[{skew:pt()}],"skew-x":[{"skew-x":pt()}],"skew-y":[{"skew-y":pt()}],transform:[{transform:[we,ve,"","none","gpu","cpu"]}],"transform-origin":[{origin:K()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:en()}],"translate-x":[{"translate-x":en()}],"translate-y":[{"translate-y":en()}],"translate-z":[{"translate-z":en()}],"translate-none":["translate-none"],accent:[{accent:$()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:$()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",we,ve]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":S()}],"scroll-mx":[{"scroll-mx":S()}],"scroll-my":[{"scroll-my":S()}],"scroll-ms":[{"scroll-ms":S()}],"scroll-me":[{"scroll-me":S()}],"scroll-mbs":[{"scroll-mbs":S()}],"scroll-mbe":[{"scroll-mbe":S()}],"scroll-mt":[{"scroll-mt":S()}],"scroll-mr":[{"scroll-mr":S()}],"scroll-mb":[{"scroll-mb":S()}],"scroll-ml":[{"scroll-ml":S()}],"scroll-p":[{"scroll-p":S()}],"scroll-px":[{"scroll-px":S()}],"scroll-py":[{"scroll-py":S()}],"scroll-ps":[{"scroll-ps":S()}],"scroll-pe":[{"scroll-pe":S()}],"scroll-pbs":[{"scroll-pbs":S()}],"scroll-pbe":[{"scroll-pbe":S()}],"scroll-pt":[{"scroll-pt":S()}],"scroll-pr":[{"scroll-pr":S()}],"scroll-pb":[{"scroll-pb":S()}],"scroll-pl":[{"scroll-pl":S()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",we,ve]}],fill:[{fill:["none",...$()]}],"stroke-w":[{stroke:[Ge,mo,Ja,hb]}],stroke:[{stroke:["none",...$()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},Rj=oj(Ej);function Ct(...e){return Rj(FI(e))}const Aj=I.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",children:[I.jsx("path",{d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1Z",fill:"#4285F4"}),I.jsx("path",{d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23Z",fill:"#34A853"}),I.jsx("path",{d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18A10.96 10.96 0 0 0 1 12c0 1.77.42 3.44 1.18 4.93l3.66-2.84Z",fill:"#FBBC05"}),I.jsx("path",{d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53Z",fill:"#EA4335"})]}),Lj=I.jsx("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor",children:I.jsx("path",{d:"M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12Z"})}),Dj={google:Aj,github:Lj},Mj={google:"Google",github:"GitHub",microsoft:"Microsoft",discord:"Discord",apple:"Apple"};function Nj(e){return Mj[e]||String(e||"").replace(/-/g," ")}function Oj(){Ko();const{isOpen:e,closeLoginModal:t}=bw(),{enabled:n,signedIn:a,refreshUser:s,signInWithPassword:o,signUp:u,signInWithOAuth:c,getPublicAuthConfig:h}=Ho(),[f,m]=k.useState("signin"),[y,b]=k.useState(""),[w,x]=k.useState(""),[T,P]=k.useState(""),[L,D]=k.useState(!1),[M,j]=k.useState(null),[K,G]=k.useState(null),[W,S]=k.useState(!1),[Z,X]=k.useState(!0),[_e,oe]=k.useState([]),[Re,fe]=k.useState(8);k.useEffect(()=>{e&&(j(null),G(null),m("signin"),b(""),x(""),P(""),S(!1))},[e]),k.useEffect(()=>{if(!e||!n){X(!1);return}let H=!0;return(async()=>{const{data:Y,error:$}=await h();if(H){if($||!Y)oe(["google","github"]);else{const N=Array.isArray(Y.oAuthProviders)?Y.oAuthProviders:[],q=Array.isArray(Y.customOAuthProviders)?Y.customOAuthProviders:[];oe([...N,...q]),typeof Y.passwordMinLength=="number"&&Y.passwordMinLength>0&&fe(Y.passwordMinLength)}X(!1)}})(),()=>{H=!1}},[e,n,h]),k.useEffect(()=>{e&&a&&t()},[e,a,t]);const ce=k.useMemo(()=>typeof window>"u"?"":!!window.webkit?.messageHandlers?.nativeOAuth?`${window.location.origin}/auth/callback`:`${window.location.origin}/`,[]),ue=k.useCallback(async H=>{j(null),D(!0);try{const{error:Y}=await c(H,ce);Y&&j(Y.message||String(Y))}finally{D(!1)}},[c,ce]),Me=k.useCallback(async H=>{H.preventDefault(),j(null),D(!0);try{if(f==="signup"){const{data:$,error:N}=await u({email:y.trim(),password:w,name:T.trim()||void 0});if(N){j(N.message||String(N));return}if($?.requireEmailVerification){G(Fe("login.verify_email_pending")),m("signin");return}await s();return}const{error:Y}=await o({email:y.trim(),password:w});if(Y){j(Y.message||String(Y));return}await s()}finally{D(!1)}},[f,y,w,T,u,o,s]);return k.useEffect(()=>{if(!e)return;const H=Y=>{Y.key==="Escape"&&t()};return document.addEventListener("keydown",H),()=>document.removeEventListener("keydown",H)},[e,t]),n?I.jsx(DO,{children:e&&I.jsxs(Wh.div,{className:"fixed inset-0 z-[100] flex items-center justify-center p-4",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2},children:[I.jsx(Wh.div,{className:"absolute inset-0 bg-black/40 dark:bg-black/60 ",onClick:t,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0}}),I.jsxs(Wh.div,{className:"relative w-full max-w-[420px] rounded-2xl border border-oai-gray-200 dark:border-oai-gray-800 bg-white dark:bg-oai-gray-950 p-6 shadow-2xl",initial:{opacity:0,scale:.95,y:10},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.95,y:10},transition:{duration:.2},onClick:H=>H.stopPropagation(),children:[I.jsx("button",{type:"button",onClick:t,className:"absolute right-4 top-4 text-oai-gray-400 dark:text-oai-gray-500 hover:text-oai-black dark:hover:text-white transition-colors",children:I.jsx(gw,{className:"h-5 w-5"})}),I.jsxs("div",{className:"text-center mb-6",children:[I.jsxs("div",{className:"flex items-center justify-center gap-2 mb-2",children:[I.jsx("img",{src:"/app-icon.png",alt:"",width:28,height:28,className:"rounded-md"}),I.jsx("span",{className:"text-lg font-semibold text-oai-black dark:text-white",children:"Token Tracker"})]}),I.jsx("p",{className:"text-sm text-oai-gray-500",children:Fe("login_modal.subtitle")})]}),K&&I.jsx("div",{className:"mb-4 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900/50 px-3 py-2 text-xs text-oai-gray-700 dark:text-oai-gray-300",children:K}),M&&I.jsx("p",{className:"mb-4 text-sm text-red-500 dark:text-red-400",role:"alert",children:M}),I.jsx("div",{className:"space-y-2.5 mb-5",children:Z?I.jsx("div",{className:"h-10 rounded-lg bg-oai-gray-100 dark:bg-oai-gray-900 animate-pulse"}):_e.map(H=>I.jsxs("button",{type:"button",disabled:L,onClick:()=>ue(H),className:Ct("w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-700 bg-oai-gray-50 dark:bg-oai-gray-900 text-sm font-medium text-oai-black dark:text-white","hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 hover:border-oai-gray-300 dark:hover:border-oai-gray-600 transition-colors disabled:opacity-50","flex items-center justify-center gap-2.5"),children:[Dj[H]||null,Fe("login.oauth.continue",{provider:Nj(H)})]},H))}),W?I.jsxs(I.Fragment,{children:[I.jsxs("div",{className:"relative mb-5",children:[I.jsx("div",{className:"absolute inset-0 flex items-center",children:I.jsx("span",{className:"w-full border-t border-oai-gray-200 dark:border-oai-gray-800"})}),I.jsx("div",{className:"relative flex justify-center text-xs uppercase tracking-wider",children:I.jsx("span",{className:"bg-white dark:bg-oai-gray-950 px-3 text-oai-gray-400 dark:text-oai-gray-600",children:Fe("login_modal.divider_email")})})]}),I.jsxs("div",{className:"flex rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 p-0.5 bg-oai-gray-50 dark:bg-oai-gray-900/50 mb-4",children:[I.jsx("button",{type:"button",className:Ct("flex-1 py-1.5 text-xs font-medium rounded-md transition-colors",f==="signin"?"bg-white dark:bg-oai-gray-800 text-oai-black dark:text-white shadow-sm":"text-oai-gray-500 hover:text-oai-gray-700 dark:hover:text-oai-gray-300"),onClick:()=>{m("signin"),j(null)},children:Fe("login.tab.sign_in")}),I.jsx("button",{type:"button",className:Ct("flex-1 py-1.5 text-xs font-medium rounded-md transition-colors",f==="signup"?"bg-white dark:bg-oai-gray-800 text-oai-black dark:text-white shadow-sm":"text-oai-gray-500 hover:text-oai-gray-700 dark:hover:text-oai-gray-300"),onClick:()=>{m("signup"),j(null)},children:Fe("login.tab.sign_up")})]}),I.jsxs("form",{onSubmit:Me,className:"space-y-3",children:[f==="signup"&&I.jsxs("div",{children:[I.jsx("label",{htmlFor:"modal-name",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:Fe("login.field.name")}),I.jsx("input",{id:"modal-name",type:"text",autoComplete:"name",value:T,onChange:H=>P(H.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500",placeholder:Fe("login.field.name_placeholder")})]}),I.jsxs("div",{children:[I.jsx("label",{htmlFor:"modal-email",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:Fe("login.field.email")}),I.jsx("input",{id:"modal-email",type:"email",autoComplete:"email",required:!0,value:y,onChange:H=>b(H.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"})]}),I.jsxs("div",{children:[I.jsx("label",{htmlFor:"modal-password",className:"block text-xs font-medium text-oai-gray-500 mb-1",children:Fe("login.field.password")}),I.jsx("input",{id:"modal-password",type:"password",autoComplete:f==="signup"?"new-password":"current-password",required:!0,minLength:f==="signup"?Re:void 0,value:w,onChange:H=>x(H.target.value),className:"w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-800 bg-oai-gray-50 dark:bg-oai-gray-900 px-3 text-sm text-oai-black dark:text-white placeholder-oai-gray-400 dark:placeholder-oai-gray-600 focus:outline-none focus:ring-2 focus:ring-oai-brand-500"}),f==="signup"&&I.jsx("p",{className:"mt-1 text-xs text-oai-gray-400 dark:text-oai-gray-600",children:Fe("login.password_hint",{min:String(Re)})})]}),I.jsx("button",{type:"submit",disabled:L,className:"w-full h-10 rounded-lg bg-oai-gray-900 dark:bg-white text-white dark:text-oai-gray-950 text-sm font-semibold hover:bg-oai-gray-800 dark:hover:bg-oai-gray-100 transition-colors disabled:opacity-50",children:Fe(f==="signup"?"login.submit.sign_up":"login.submit.sign_in")})]})]}):I.jsxs(I.Fragment,{children:[I.jsxs("div",{className:"relative mb-5",children:[I.jsx("div",{className:"absolute inset-0 flex items-center",children:I.jsx("span",{className:"w-full border-t border-oai-gray-200 dark:border-oai-gray-800"})}),I.jsx("div",{className:"relative flex justify-center text-xs uppercase tracking-wider",children:I.jsx("span",{className:"bg-white dark:bg-oai-gray-950 px-3 text-oai-gray-400 dark:text-oai-gray-600",children:Fe("login.divider")})})]}),I.jsxs("button",{type:"button",onClick:()=>S(!0),className:Ct("w-full h-10 rounded-lg border border-oai-gray-200 dark:border-oai-gray-700 bg-oai-gray-50 dark:bg-oai-gray-900 text-sm font-medium text-oai-black dark:text-white","hover:bg-oai-gray-100 dark:hover:bg-oai-gray-800 hover:border-oai-gray-300 dark:hover:border-oai-gray-600 transition-colors","flex items-center justify-center gap-2.5"),children:[I.jsx(yD,{className:"h-[18px] w-[18px] text-oai-gray-500 dark:text-oai-gray-400",strokeWidth:1.75}),Fe("login_modal.continue_email")]})]})]})]})}):null}const Ij={VITE_INSFORGE_BASE_URL:"https://srctyff5.us-east.insforge.app"};function jj(){if(typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"))return"";const t=typeof import.meta<"u"?Ij:void 0;return(t?.VITE_TOKENTRACKER_BACKEND_BASE_URL||t?.VITE_INSFORGE_BASE_URL||"").trim()}function h3(){return fi()}function Uj(e=""){if(typeof e!="string"||e.length===0)return!1;const t=new URLSearchParams(e),n=String(t.get("screenshot")||"").toLowerCase();return n==="1"||n==="true"}const Bj=300*1e3,Fj=720*60*1e3;function tm(e){return typeof e=="string"&&/^https?:\/\//i.test(e.trim())}function Vj(e,t=Date.now()){if(!e?.token||!e?.deviceId||!e?.issuedAt)return!0;const n=Date.parse(e.issuedAt);return Number.isFinite(n)?n+Fj<=t:!0}async function wx(e,t){const n=fi();if(!tm(n)||!e)return;const a=n.replace(/\/$/,""),s=_c(),o={Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${e}`};s&&(o.apikey=s);try{await fetch(`${a}/functions/tokentracker-leaderboard-refresh`,{method:"POST",headers:o,body:JSON.stringify({period:"week",source:t})})}catch{}}async function zj(e){const t=fi();if(!tm(t)||!e)return null;const n=t.replace(/\/$/,""),a=_c(),s={Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${e}`};a&&(s.apikey=a);const o=typeof navigator<"u"&&typeof navigator.platform=="string"?navigator.platform:"web",u=await fetch(`${n}/functions/tokentracker-device-token-issue`,{method:"POST",headers:s,body:JSON.stringify({device_name:"Token Tracker (dashboard)",platform:o})});if(!u.ok)return null;const c=await u.json().catch(()=>null),h=typeof c?.token=="string"?c.token:null,f=typeof c?.device_id=="string"?c.device_id:null;return!h||!f?null:{token:h,deviceId:f,issuedAt:typeof c?.created_at=="string"?c.created_at:new Date().toISOString()}}async function mb(e){const{deviceToken:t,insforgeBaseUrl:n}=e,a={deviceToken:t},s=n||fi();tm(s)&&(a.insforgeBaseUrl=s.trim());const o=await _p(),u=await fetch("/functions/tokentracker-local-sync",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json",...o},body:JSON.stringify(a)}),c=await u.json().catch(()=>({}));if(!u.ok){const h=typeof c.error=="string"?c.error:`HTTP ${u.status}`;throw new Error(h)}return c}async function gb(e){const t=await e();if(!t)return null;const n=W_();if(n&&!Vj(n))return n;const a=await zj(t);return a?(_A(a),a):null}async function kx(e){let t=await e();if(!t)return null;let n=await gb(async()=>t);if(!n)return t;try{return await mb({deviceToken:n.token,insforgeBaseUrl:fi()}),t}catch(a){if(!W_()||(K_(),t=await e(),!t)||(n=await gb(async()=>t),!n))throw a;return await mb({deviceToken:n.token,insforgeBaseUrl:fi()}),t}}async function $j(e){const t=wA();if(Date.now()-t<Bj)return;const n=await kx(e);n&&(q_(Date.now()),await wx(n,"cloud-sync-auto"))}async function f3(e){const t=await kx(e);t&&(q_(Date.now()),await wx(t,"cloud-sync-now"))}function Hj(e){const t=e.replace(/\/+$/,"")||"/";return t==="/share"||t==="/share.html"||t.startsWith("/share/")}function Wj(e){const t=e.replace(/\/+$/,"")||"/";return t==="/login"||t==="/landing"||Hj(t)?!1:t==="/"||t==="/dashboard"||t.startsWith("/leaderboard")}function Kj(){const e=Fn(),t=Ho(),n=k.useRef(!1);k.useEffect(()=>{if(!vA()||!Wj(e.pathname||"/")||!t.enabled||!t.signedIn||t.loading||!bA())return;let a=!1;const s=window.setTimeout(()=>{(async()=>{if(!(a||n.current)){n.current=!0;try{await $j(()=>t.getAccessToken())}catch(o){console.warn("[tokentracker] cloud usage sync:",o)}finally{n.current=!1}}})()},2500);return()=>{a=!0,window.clearTimeout(s)}},[e.pathname,t.enabled,t.signedIn,t.loading,t.getAccessToken])}function qj(){const e=k.useContext(yw);if(e===null)throw new Error("useTheme must be used within a ThemeProvider");return e}function Gj({prefersReducedMotion:e,screenshotCapture:t}){return!(t||e)}function Yj(e){if(!e||typeof e!="object")return null;const t=e.user_metadata&&typeof e.user_metadata=="object"?e.user_metadata:{},n=e.profile&&typeof e.profile=="object"?e.profile:{},a=t.avatar_url||t.picture||n.avatar_url||e.avatar_url;return typeof a=="string"&&a.trim()?a.trim():null}function yb(e){const t=String(e||"").trim();if(!t)return"?";const n=t.split(/\s+/).filter(Boolean);return n.length>=2?(n[0][0]+n[n.length-1][0]).toUpperCase():t.slice(0,2).toUpperCase()}function vb({className:e,variant:t="header",collapsed:n=!1,onAfterAction:a}){Ko();const s=t==="sidebar",{enabled:o,loading:u,signedIn:c,user:h,displayName:f}=Ho(),{openLoginModal:m}=bw(),y=fc(),b=k.useMemo(()=>Yj(h),[h]);if(!o)return null;if(u)return I.jsx("div",{className:Ct("h-9 w-9 shrink-0 rounded-full bg-oai-gray-200 dark:bg-oai-gray-800 animate-pulse",e),"aria-hidden":!0});if(!c)return s?I.jsxs("button",{type:"button",onClick:()=>{m(),a?.()},className:Ct("flex items-center gap-2 rounded-md px-2 py-1.5 text-[13px] font-medium text-oai-gray-700 dark:text-oai-gray-300 hover:bg-oai-gray-200/60 dark:hover:bg-oai-gray-800 hover:text-oai-black dark:hover:text-white transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-oai-brand-500 min-w-0",n?"h-8 w-8 justify-center px-0":"w-full",e),"aria-label":Fe("header.auth.sign_in_aria"),title:n?Fe("header.auth.sign_in_aria"):void 0,children:[I.jsx("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center",children:I.jsx("img",{src:"/app-icon.png",alt:"",width:18,height:18,className:"h-[18px] w-[18px] rounded"})}),!n&&I.jsx("span",{className:"truncate flex-1 text-left",children:Fe("header.auth.sign_in_aria")})]}):I.jsx("button",{type:"button",onClick:m,className:Ct("shrink-0 inline-flex h-9 items-center justify-center gap-1.5 rounded-full px-5 text-sm font-medium transition-colors duration-200 ease-out shadow-sm ring-1 ring-oai-gray-200 dark:ring-white/10 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 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",e),"aria-label":Fe("header.auth.sign_in_aria"),children:Fe("header.auth.sign_in_aria")});const w=()=>{y("/settings"),a?.()};return I.jsx("div",{className:Ct(s?"relative flex w-full shrink-0 items-center":"relative flex shrink-0 items-center",e),children:I.jsxs("button",{type:"button",onClick:w,className:Ct(s?Ct("flex w-full items-center gap-2 rounded-md px-2 py-1.5 hover:bg-oai-gray-200/60 dark:hover:bg-oai-gray-800 transition-colors min-w-0",n&&"justify-center px-0 py-0 h-9 w-9"):"flex items-center gap-2 rounded-full pl-1 pr-2 py-1 border border-transparent hover:bg-oai-gray-100 dark:hover:bg-oai-gray-900/80 hover:border-oai-gray-200 dark:hover:border-oai-gray-800 transition-colors"),"aria-label":Fe("header.auth.open_settings"),title:s&&n?f:void 0,children:[s?I.jsx("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center",children:b?I.jsx("img",{src:b,alt:"",width:20,height:20,className:"h-5 w-5 rounded-full object-cover ring-1 ring-oai-gray-300 dark:ring-oai-gray-700",referrerPolicy:"no-referrer"}):I.jsx("span",{className:"flex h-5 w-5 items-center justify-center rounded-full bg-oai-brand-600 text-[9px] font-semibold text-white ring-1 ring-oai-brand-500/50",children:yb(f)})}):b?I.jsx("img",{src:b,alt:"",width:32,height:32,className:"h-8 w-8 rounded-full object-cover ring-1 ring-oai-gray-300 dark:ring-oai-gray-700 shrink-0",referrerPolicy:"no-referrer"}):I.jsx("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-oai-brand-600 text-xs font-semibold text-white ring-1 ring-oai-brand-500/50",children:yb(f)}),s?!n&&I.jsx("span",{className:"truncate text-[13px] font-medium text-oai-gray-900 dark:text-oai-gray-200 flex-1 text-left min-w-0",children:f}):I.jsx("span",{className:"hidden sm:inline truncate text-sm font-medium text-oai-gray-900 dark:text-oai-gray-200 max-w-[120px]",children:f})]})})}const zf="tt.sidebarCollapsed";function Zj(){return[{id:"general",label:Fe("nav.group.general"),items:[{id:"usage",to:"/dashboard",icon:uD,label:Fe("nav.usage")},{id:"limits",to:"/limits",icon:dD,label:Fe("nav.limits")},{id:"leaderboard",to:"/leaderboard",icon:MD,label:Fe("nav.leaderboard")}]},{id:"tools",label:Fe("nav.group.tools"),items:[{id:"widgets",to:"/widgets",icon:mD,label:Fe("nav.widgets")},{id:"skills",to:"/skills",icon:SD,label:Fe("nav.skills")},{id:"ip-check",to:"/ip-check",icon:fD,label:Fe("nav.ip_check")}]},{id:"account",label:Fe("nav.group.account"),items:[{id:"settings",to:"/settings",icon:ED,label:Fe("nav.settings")}]}]}function Qj(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(zf)==="1"}catch{return!1}}function Xj(){const[e,t]=k.useState(Qj),n=k.useCallback(()=>{t(a=>{const s=!a;try{typeof window<"u"&&window.localStorage.setItem(zf,s?"1":"0")}catch{}return s})},[]);return k.useEffect(()=>{if(typeof window>"u")return;const a=s=>{s.key===zf&&t(s.newValue==="1")};return window.addEventListener("storage",a),()=>window.removeEventListener("storage",a)},[]),{collapsed:e,toggle:n}}function Jj(e,t){const n=e.replace(/\/+$/,"")||"/";return t==="/dashboard"?n==="/dashboard"||n==="/":t==="/leaderboard"?n==="/leaderboard"||n.startsWith("/leaderboard/"):n===t}function e4({label:e,collapsed:t,first:n}){return t?n?null:I.jsx("div",{className:"mx-2 my-2 h-px bg-oai-gray-200/70 dark:bg-oai-gray-800/70","aria-hidden":!0}):I.jsx("div",{className:Ct("px-3 pb-1 text-[10px] uppercase tracking-wider text-oai-gray-500 dark:text-oai-gray-500",n?"pt-2":"pt-4"),children:e})}function t4({item:e,collapsed:t,active:n,onClick:a}){const s=e.icon;return I.jsxs(mc,{to:e.to,onClick:a,title:t?e.label:void 0,"aria-current":n?"page":void 0,className:Ct("flex items-center gap-2 rounded-md px-2 py-1.5 text-[13px] no-underline transition-colors",t&&"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:[I.jsx("span",{className:"flex h-5 w-5 shrink-0 items-center justify-center",children:I.jsx(s,{className:"h-[15px] w-[15px]","aria-hidden":!0})}),!t&&I.jsx("span",{className:"truncate",children:e.label})]})}function n4({as:e="button",title:t,onClick:n,href:a,children:s,className:o,...u}){const c=Ct("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",o);return e==="a"?I.jsx("a",{href:a,target:"_blank",rel:"noopener noreferrer",title:t,"aria-label":t,className:c,...u,children:s}):I.jsx("button",{type:"button",title:t,"aria-label":t,onClick:n,className:c,...u,children:s})}function r4({repo:e="mm7894215/TokenTracker",glassChrome:t=!1}){const[n,a]=k.useState(null);return k.useEffect(()=>{if(typeof window>"u")return;const s=typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;Gj({prefersReducedMotion:s,screenshotCapture:!1})&&fetch(`https://api.github.com/repos/${e}`).then(o=>o.json()).then(o=>{o&&typeof o.stargazers_count=="number"&&a(o.stargazers_count)}).catch(()=>{})},[e]),I.jsxs("a",{href:`https://github.com/${e}`,target:"_blank",rel:"noopener noreferrer","aria-label":n!==null?`Star on GitHub (${n})`:"Star on GitHub",className:Ct("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",t?"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:[I.jsx("svg",{height:"12",viewBox:"0 0 16 16",width:"12",className:"shrink-0 fill-current",children:I.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"})}),I.jsx("span",{children:"Star"}),n!==null&&I.jsx("span",{className:"text-[10px] text-oai-gray-500 dark:text-oai-gray-500 tabular-nums",children:n})]})}const a4=[{value:"light",label:"Light",Icon:mw},{value:"dark",label:"Dark",Icon:pw},{value:"system",label:"System",Icon:wD}];function i4({theme:e,resolvedTheme:t,onSetTheme:n,glassChrome:a=!1}){const[s,o]=k.useState(!1),u=k.useRef(null),c=t==="dark"?pw:mw;return k.useEffect(()=>{if(!s)return;const h=m=>{u.current&&!u.current.contains(m.target)&&o(!1)},f=m=>{m.key==="Escape"&&o(!1)};return document.addEventListener("mousedown",h),document.addEventListener("keydown",f),()=>{document.removeEventListener("mousedown",h),document.removeEventListener("keydown",f)}},[s]),I.jsxs("div",{ref:u,className:"relative",children:[I.jsx("button",{type:"button","aria-label":"Theme","aria-expanded":s,"aria-haspopup":"menu",title:"Theme",onClick:()=>o(h=>!h),className:Ct("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",a?"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:I.jsx(c,{className:"h-3.5 w-3.5","aria-hidden":!0})}),s&&I.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:a4.map(({value:h,label:f,Icon:m})=>{const y=e===h;return I.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{n(h),o(!1)},className:Ct("flex w-full items-center gap-2.5 px-3 py-1.5 text-[13px] transition-colors",y?"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:[I.jsx(m,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),I.jsx("span",{children:f})]},h)})})]})}function xx({collapsed:e,onToggleCollapsed:t,onItemClick:n,showCloseButton:a=!1,onClose:s,glassChrome:o=!1}){const c=Fn()?.pathname||"/",{theme:h,resolvedTheme:f,setTheme:m}=qj(),{resolvedLocale:y}=Ko(),b=k.useMemo(()=>Zj(),[y]);return I.jsxs(I.Fragment,{children:[I.jsx("div",{className:Ct("px-2 pt-2 pb-2",e&&"flex justify-center"),children:a?I.jsxs("div",{className:"flex items-center gap-2",children:[I.jsx("div",{className:"flex-1 min-w-0",children:I.jsx(vb,{variant:"sidebar",collapsed:e,onAfterAction:n})}),I.jsx("button",{type:"button",onClick:s,"aria-label":Fe("nav.close_menu"),title:Fe("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:I.jsx(gw,{className:"h-4 w-4",strokeWidth:1.75,"aria-hidden":!0})})]}):I.jsx(vb,{variant:"sidebar",collapsed:e,onAfterAction:n})}),I.jsx("nav",{"aria-label":Fe("nav.nav_label"),className:"flex-1 px-2 pb-2 flex flex-col overflow-y-auto",children:b.map((w,x)=>I.jsxs("div",{className:"flex flex-col",children:[I.jsx(e4,{label:w.label,collapsed:e,first:x===0}),I.jsx("div",{className:"flex flex-col gap-0.5",children:w.items.map(T=>I.jsx(t4,{item:T,collapsed:e,active:Jj(c,T.to),onClick:n},T.id))})]},w.id))}),I.jsxs("div",{className:Ct("flex items-center px-2 py-3",e?"flex-col justify-center gap-2":"justify-between gap-2"),children:[I.jsx(i4,{theme:h,resolvedTheme:f,onSetTheme:m,glassChrome:o}),I.jsx("div",{className:"flex items-center gap-1.5",children:!e&&I.jsx(r4,{glassChrome:o})})]})]})}function s4({collapsed:e,onToggleCollapsed:t}){const n=k.useMemo(()=>typeof window>"u"?!1:pr()||ow(),[]);return I.jsx("aside",{"aria-label":Fe("nav.aside_label"),className:Ct("hidden lg:flex flex-col shrink-0 h-full min-h-0 transition-[width] duration-200",e?"w-[72px]":"w-[220px]"),children:I.jsx(xx,{collapsed:e,onToggleCollapsed:t,glassChrome:n})})}function o4({open:e,onClose:t}){return k.useEffect(()=>{if(!e)return;const n=a=>{a.key==="Escape"&&t()};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[e,t]),k.useEffect(()=>{if(!e)return;const n=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=n}},[e]),e?I.jsxs("div",{className:"lg:hidden fixed inset-0 z-[80] flex",children:[I.jsx("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-sm",onClick:t,"aria-hidden":!0}),I.jsx("aside",{"aria-label":Fe("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:I.jsx(xx,{collapsed:!1,showCloseButton:!0,onClose:t,onItemClick:t})})]}):null}function l4({onOpenDrawer:e}){return I.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:[I.jsx(n4,{title:Fe("nav.menu"),onClick:e,children:I.jsx(bD,{className:"h-5 w-5","aria-hidden":!0})}),I.jsxs(mc,{to:"/landing",className:"flex items-center gap-2 no-underline hover:opacity-80 transition-opacity","aria-label":"Token Tracker",children:[I.jsx("img",{src:"/app-icon.png",alt:"",width:24,height:24,className:"rounded-md"}),I.jsx("span",{className:"text-sm font-semibold text-oai-black dark:text-oai-white",children:"Token Tracker"})]}),I.jsx("div",{className:"w-10 shrink-0","aria-hidden":!0})]})}function u4({children:e}){const{collapsed:t,toggle:n}=Xj(),[a,s]=k.useState(!1),o=k.useCallback(()=>s(!0),[]),u=k.useCallback(()=>s(!1),[]),c=k.useMemo(()=>typeof window>"u"?!1:pr()||ow(),[]);return I.jsxs("div",{className:Ct("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&&I.jsx("div",{className:"h-7 shrink-0",style:{WebkitAppRegion:"drag"},"aria-hidden":!0}),I.jsxs("div",{className:"flex-1 min-h-0 flex",children:[I.jsx(s4,{collapsed:t,onToggleCollapsed:n}),I.jsx(o4,{open:a,onClose:u}),I.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:I.jsxs("div",{className:Ct("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:[I.jsx(l4,{onOpenDrawer:o}),I.jsx("div",{className:"flex-1 min-h-0 overflow-y-auto",children:e})]})})]})]})}const c4=typeof window<"u"?window.location.search:"",bb=new URLSearchParams(c4),bu=bb.get("insforge_code")||bb.get("code")||null;function d4(){Ko();const{loading:e,signedIn:t}=Ho(),n=fc(),[a,s]=k.useState("processing"),[o,u]=k.useState(null),c=k.useRef(!1);return k.useEffect(()=>{!bu||c.current||(c.current=!0,(async()=>{try{const f=await(await fetch("/api/auth-bridge/verifier")).json();u(!!f?.native)}catch{u(!1)}})())},[]),k.useEffect(()=>{if(o!==!0||!bu)return;s("redirecting");const h=setTimeout(()=>{window.location.href=`tokentracker://auth/callback?insforge_code=${encodeURIComponent(bu)}`},200);return()=>clearTimeout(h)},[o]),k.useEffect(()=>{if(o!==!1||e)return;if(t){n("/dashboard",{replace:!0});return}const h=setTimeout(()=>{t||s("failed")},5e3);return()=>clearTimeout(h)},[o,e,t,n]),k.useEffect(()=>{if(!bu&&o===null){const h=setTimeout(()=>s("failed"),3e3);return()=>clearTimeout(h)}},[o]),a==="processing"&&o!==!0&&(o===null||o===!1&&e)?I.jsx("div",{className:"min-h-screen bg-oai-gray-950"}):I.jsx("div",{className:"min-h-screen bg-oai-gray-950 text-white font-oai antialiased dark flex items-center justify-center",children:I.jsxs("div",{className:"text-center space-y-4 max-w-sm px-4",children:[a==="processing"&&I.jsxs(I.Fragment,{children:[I.jsx("div",{className:"w-8 h-8 border-2 border-oai-gray-600 border-t-white rounded-full animate-spin mx-auto"}),I.jsx("p",{className:"text-oai-gray-400 text-sm",children:Fe("auth.callback.processing")})]}),a==="redirecting"&&I.jsxs(I.Fragment,{children:[I.jsx("div",{className:"w-12 h-12 mx-auto rounded-full bg-green-500/15 flex items-center justify-center",children:I.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:I.jsx("path",{d:"M20 6 9 17l-5-5"})})}),I.jsx("p",{className:"text-white text-sm font-medium",children:Fe("auth.callback.success")}),I.jsx("p",{className:"text-oai-gray-500 text-xs",children:Fe("auth.callback.redirecting")})]}),a==="failed"&&I.jsxs("div",{className:"space-y-3",children:[I.jsx("p",{className:"text-oai-gray-300 text-sm",children:Fe("auth.callback.failed")}),I.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:Fe("auth.callback.close")})]})]})})}const h4=k.lazy(()=>Pr(()=>import("./DashboardPage-chDVOYmG.js"),__vite__mapDeps([0,1,2,3,4,5,6])).then(e=>({default:e.DashboardPage}))),f4=k.lazy(()=>Pr(()=>import("./IpCheckPage-CkEZ9yLK.js"),[])),p4=k.lazy(()=>Pr(()=>import("./LandingPage-BgckTHRQ.js"),__vite__mapDeps([7,8,4])).then(e=>({default:e.LandingPage}))),m4=k.lazy(()=>Pr(()=>import("./LeaderboardPage-BCNW7UWp.js"),__vite__mapDeps([9,5,10,11])).then(e=>({default:e.LeaderboardPage}))),g4=k.lazy(()=>Pr(()=>import("./LeaderboardProfilePage-BLATxMt-.js"),__vite__mapDeps([12,8,10])).then(e=>({default:e.LeaderboardProfilePage}))),y4=k.lazy(()=>Pr(()=>import("./LimitsPage-arF--WgR.js"),__vite__mapDeps([13,1,14,3,6,4])).then(e=>({default:e.LimitsPage}))),v4=k.lazy(()=>Pr(()=>import("./LoginPage-DpoFP0va.js"),[]).then(e=>({default:e.LoginPage}))),b4=k.lazy(()=>Pr(()=>import("./SettingsPage-Bb22ORmU.js"),__vite__mapDeps([15,14,16,3,17])).then(e=>({default:e.SettingsPage}))),_4=k.lazy(()=>Pr(()=>import("./SkillsPage-xhtBqVKC.js"),__vite__mapDeps([18,3,2,5,4,11,17])).then(e=>({default:e.SkillsPage}))),w4=k.lazy(()=>Pr(()=>import("./WidgetsPage-CUoSVDET.js"),__vite__mapDeps([19,16,3,6,4,17,11])).then(e=>({default:e.WidgetsPage})));function k4(){const{resolvedLocale:e}=Ko(),t=Fn(),n=Ho();Kj();const a=Pn(),s=k.useMemo(()=>typeof window>"u"?!1:Uj(window.location.search),[]),o=t?.pathname||"/",u=new URL(window.location.href),c=u.pathname.replace(/\/+$/,"")||"/",f=c.match(/^\/share\/([^/?#]+)$/i)?.[1]||null,m=u.searchParams.get("token")||null,y=f||m,b=c==="/share"||c==="/share.html"||c.startsWith("/share/"),w=typeof window<"u"&&(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"),x=o.replace(/\/+$/,"")||"/",T=x.match(/^\/leaderboard\/u\/([^/]+)$/i),P=T?T[1]:null,L=x==="/leaderboard"||!!P,D=!!(n.enabled&&n.signedIn),M=w||D,j=!1,K=jj(),G=k.useMemo(()=>!n.enabled||!D?null:{getAccessToken:()=>n.getAccessToken(),name:n.displayName||"",userId:n.user?.id||null},[D,n]);let W=w||a||s?"dashboard":"landing";x==="/landing"&&(W="landing"),x==="/dashboard"&&(W="dashboard"),L&&(W="dashboard");const S=x==="/limits",Z=x==="/settings",X=x==="/skills",_e=x==="/widgets",oe=x==="/ip-check";(S||Z||X||_e||oe)&&(W="dashboard");let Re=h4;P?Re=g4:x==="/leaderboard"?Re=m4:S?Re=y4:Z?Re=b4:X?Re=_4:_e?Re=w4:oe&&(Re=f4);const ce=!b&&(x==="/dashboard"||x==="/"||x==="/leaderboard"||S||Z||X||_e||oe);let ue=null;if(x==="/auth/callback"||x==="/auth/native-callback")ue=I.jsx(d4,{});else if(x==="/login")ue=I.jsx(v4,{});else if(W==="landing")ue=I.jsx(p4,{signInUrl:"/login",signUpUrl:"/login"});else{const Me=I.jsx(Re,{baseUrl:K,auth:G,signedIn:M,sessionSoftExpired:j,signOut:()=>n.enabled?n.signOut():Promise.resolve(),publicMode:b,publicToken:y,userId:P,signInUrl:"/login",signUpUrl:"/login"},e);ce?ue=I.jsx(u4,{children:Me}):ue=Me}return I.jsx(ID,{children:I.jsx(BD,{children:I.jsxs(FD,{children:[I.jsx(k.Suspense,{fallback:null,children:ue}),I.jsx(Oj,{}),I.jsx(HL,{}),I.jsx(tD,{})]})})})}const x4=CT([{path:"*",element:I.jsx(k4,{})}]);mP.createRoot(document.getElementById("root")).render(I.jsx(Hf.StrictMode,{children:I.jsx(AL,{children:I.jsx(aL,{children:I.jsx(FT,{router:x4})})})}));export{LA as $,Y_ as A,Fe as B,qj as C,I as D,Wh as E,z4 as F,V4 as G,OD as H,J4 as I,ic as J,O4 as K,mc as L,Zp as M,N4 as N,DO as O,bw as P,Ho as Q,Hf as R,s3 as S,K4 as T,Ko as U,Uj as V,Ea as W,gw as X,Z4 as Y,$4 as Z,Pr as _,qt as a,I4 as a0,j4 as a1,Q4 as a2,F4 as a3,i3 as a4,Ct as a5,vb as a6,BT as a7,Fn as a8,fc as a9,pr as aA,ow as aB,o3 as aC,c3 as aD,l3 as aE,zv as aF,kk as aG,mN as aH,Nf as aI,h3 as aa,bA as ab,L4 as ac,f3 as ad,D4 as ae,G4 as af,Y4 as ag,Gj as ah,ED as ai,r3 as aj,S4 as ak,Sp as al,vA as am,Uv as an,q4 as ao,mw as ap,pw as aq,wD as ar,ps as as,Zu as at,wp as au,TD as av,_p as aw,cP as ax,$f as ay,u3 as az,_w as b,dn as c,Na as d,o0 as e,dt as f,Z_ as g,Pn as h,IM as i,M4 as j,PA as k,a3 as l,gs as m,NA as n,OA as o,e3 as p,B4 as q,k as r,W4 as s,t3 as t,Pp as u,n3 as v,U4 as w,yt as x,H4 as y,X4 as z};
|